blob: 14d6dd0b5f96ae637cd8be358af9890936ccc3f1 [file] [log] [blame]
{
"swagger" : "2.0",
"info" : {
"description" : "This provides the REST API for admin operations",
"version" : "v2",
"title" : "Pulsar Admin REST API",
"license" : {
"name" : "Apache 2.0",
"url" : "http://www.apache.org/licenses/LICENSE-2.0.html"
}
},
"basePath" : "/admin/v2",
"tags" : [ {
"name" : "bookies"
}, {
"name" : "broker-stats"
}, {
"name" : "brokers"
}, {
"name" : "clusters"
}, {
"name" : "namespaces"
}, {
"name" : "non-persistent topic"
}, {
"name" : "persistent topic"
}, {
"name" : "resource-quotas"
}, {
"name" : "resourcegroups"
}, {
"name" : "schemas"
}, {
"name" : "tenants"
} ],
"schemes" : [ "http", "https" ],
"paths" : {
"/bookies/all" : {
"get" : {
"tags" : [ "bookies" ],
"summary" : "Gets raw information for all the bookies in the cluster",
"description" : "",
"operationId" : "getAllBookies",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/BookiesClusterInfo"
}
},
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/bookies/racks-info" : {
"get" : {
"tags" : [ "bookies" ],
"summary" : "Gets the rack placement information for all the bookies in the cluster",
"description" : "",
"operationId" : "getBookiesRackInfo",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "object",
"additionalProperties" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/BookieInfo"
}
}
}
},
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/bookies/racks-info/{bookie}" : {
"get" : {
"tags" : [ "bookies" ],
"summary" : "Gets the rack placement information for a specific bookie in the cluster",
"description" : "",
"operationId" : "getBookieRackInfo",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "bookie",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/BookieInfo"
}
},
"403" : {
"description" : "Don't have admin permission"
}
}
},
"post" : {
"tags" : [ "bookies" ],
"summary" : "Updates the rack placement information for a specific bookie in the cluster (note. bookie address format:`address:port`)",
"description" : "",
"operationId" : "updateBookieRackInfo",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "bookie",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "group",
"in" : "query",
"required" : false,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
}
}
},
"delete" : {
"tags" : [ "bookies" ],
"summary" : "Removed the rack placement information for a specific bookie in the cluster",
"description" : "",
"operationId" : "deleteBookieRackInfo",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "bookie",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/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/{tenant}/{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" : "tenant",
"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"
},
"409" : {
"description" : "Load-manager doesn't support operation"
}
}
}
},
"/broker-stats/load-report" : {
"get" : {
"tags" : [ "broker-stats" ],
"summary" : "Get Load for this broker",
"description" : "consists of topics stats & 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"
}
}
}
},
"/broker-stats/topics" : {
"get" : {
"tags" : [ "broker-stats" ],
"summary" : "Get all the topic stats by namespace",
"description" : "",
"operationId" : "getTopics2",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/OutputStream"
}
},
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/brokers/backlog-quota-check" : {
"get" : {
"tags" : [ "brokers" ],
"summary" : "An REST endpoint to trigger backlogQuotaCheck",
"description" : "",
"operationId" : "backlogQuotaCheck",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "Everything is OK"
},
"403" : {
"description" : "Don't have admin permission"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/brokers/configuration" : {
"get" : {
"tags" : [ "brokers" ],
"summary" : "Get all updatable dynamic configurations's name",
"description" : "",
"operationId" : "getDynamicConfigurationName",
"produces" : [ "application/json" ],
"responses" : {
"403" : {
"description" : "You don't have admin permission to get configuration"
}
}
}
},
"/brokers/configuration/runtime" : {
"get" : {
"tags" : [ "brokers" ],
"summary" : "Get all runtime configurations. This operation requires Pulsar super-user privileges.",
"description" : "",
"operationId" : "getRuntimeConfiguration",
"produces" : [ "application/json" ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/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" : {
"403" : {
"description" : "You don't have admin permission to view configuration"
},
"404" : {
"description" : "Configuration not found"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/brokers/configuration/{configName}" : {
"delete" : {
"tags" : [ "brokers" ],
"summary" : "Delete dynamic ServiceConfiguration into metadata only. This operation requires Pulsar super-user privileges.",
"description" : "",
"operationId" : "deleteDynamicConfiguration",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "configName",
"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"
},
"412" : {
"description" : "Invalid dynamic-config value"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/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" : "Invalid dynamic-config value"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/brokers/health" : {
"get" : {
"tags" : [ "brokers" ],
"summary" : "Run a healthCheck against the broker",
"description" : "",
"operationId" : "healthCheck",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "topicVersion",
"in" : "query",
"required" : false,
"type" : "string",
"enum" : [ "V1", "V2" ]
} ],
"responses" : {
"200" : {
"description" : "Everything is OK"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Cluster doesn't exist"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/brokers/internal-configuration" : {
"get" : {
"tags" : [ "brokers" ],
"summary" : "Get the internal configuration data",
"description" : "",
"operationId" : "getInternalConfigurationData",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/InternalConfigurationData"
}
},
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/brokers/leaderBroker" : {
"get" : {
"tags" : [ "brokers" ],
"summary" : "Get the information of the leader broker.",
"description" : "",
"operationId" : "getLeaderBroker",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/BrokerInfo"
}
},
"401" : {
"description" : "Authentication required"
},
"403" : {
"description" : "This operation requires super-user access"
},
"404" : {
"description" : "Leader broker not found"
}
}
}
},
"/brokers/ready" : {
"get" : {
"tags" : [ "brokers" ],
"summary" : "Check if the broker is fully initialized",
"description" : "",
"operationId" : "isReady",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "Broker is ready"
},
"500" : {
"description" : "Broker is not ready"
}
}
}
},
"/brokers/shutdown" : {
"post" : {
"tags" : [ "brokers" ],
"summary" : "Shutdown broker gracefully.",
"description" : "",
"operationId" : "shutDownBrokerGracefully",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "maxConcurrentUnloadPerSec",
"in" : "query",
"description" : "if the value absent(value=0) means no concurrent limitation.",
"required" : false,
"type" : "integer",
"format" : "int32"
}, {
"name" : "forcedTerminateTopic",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : true
} ],
"responses" : {
"204" : {
"description" : "Execute shutdown command successfully"
},
"403" : {
"description" : "You don't have admin permission to update service-configuration"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/brokers/version" : {
"get" : {
"tags" : [ "brokers" ],
"summary" : "Get version of current broker",
"description" : "",
"operationId" : "version",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "Everything is OK",
"schema" : {
"type" : "string"
}
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/brokers/{clusterName}/{broker-webserviceurl}/ownedNamespaces" : {
"get" : {
"tags" : [ "brokers" ],
"summary" : "Get the list of namespaces served by the specific broker",
"description" : "",
"operationId" : "getOwnedNamespaces",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "clusterName",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "broker-webserviceurl",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/NamespaceOwnershipStatus"
}
}
},
"307" : {
"description" : "Current broker doesn't serve the cluster"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Cluster doesn't exist"
}
}
}
},
"/brokers/{cluster}" : {
"get" : {
"tags" : [ "brokers" ],
"summary" : "Get the list of active brokers (web service addresses) in the cluster.If authorization is not enabled, any cluster name is valid.",
"description" : "",
"operationId" : "getActiveBrokers",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
}
},
"307" : {
"description" : "Current broker doesn't serve this cluster"
},
"401" : {
"description" : "Authentication required"
},
"403" : {
"description" : "This operation requires super-user access"
},
"404" : {
"description" : "Cluster does not exist: cluster={clustername}"
}
}
}
},
"/clusters" : {
"get" : {
"tags" : [ "clusters" ],
"summary" : "Get the list of all the Pulsar clusters.",
"description" : "",
"operationId" : "getClusters",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "Return a list of clusters.",
"schema" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
}
},
"500" : {
"description" : "Internal server error."
}
}
}
},
"/clusters/{cluster}" : {
"get" : {
"tags" : [ "clusters" ],
"summary" : "Get the configuration for the specified cluster.",
"description" : "This operation requires Pulsar superuser privileges.",
"operationId" : "getCluster",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"description" : "The cluster name",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "Return the cluster data.",
"schema" : {
"$ref" : "#/definitions/ClusterData"
}
},
"403" : {
"description" : "Don't have admin permission."
},
"404" : {
"description" : "Cluster doesn't exist."
},
"500" : {
"description" : "Internal server error."
}
}
},
"post" : {
"tags" : [ "clusters" ],
"summary" : "Update the configuration for a cluster.",
"description" : "This operation requires Pulsar superuser privileges.",
"operationId" : "updateCluster",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"description" : "The cluster name",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "The cluster data",
"required" : true,
"schema" : {
"$ref" : "#/definitions/ClusterData"
},
"x-examples" : {
"application/json" : "{\n 'serviceUrl': 'http://pulsar.example.com:8080',\n 'brokerServiceUrl': 'pulsar://pulsar.example.com:6651'\n}"
}
} ],
"responses" : {
"204" : {
"description" : "Cluster has been updated."
},
"403" : {
"description" : "Don't have admin permission or policies are read-only."
},
"404" : {
"description" : "Cluster doesn't exist."
},
"500" : {
"description" : "Internal server error."
}
}
},
"put" : {
"tags" : [ "clusters" ],
"summary" : "Create a new cluster.",
"description" : "This operation requires Pulsar superuser privileges, and the name cannot contain the '/' characters.",
"operationId" : "createCluster",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"description" : "The cluster name",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "The cluster data",
"required" : true,
"schema" : {
"$ref" : "#/definitions/ClusterData"
},
"x-examples" : {
"application/json" : "{\n 'serviceUrl': 'http://pulsar.example.com:8080',\n 'brokerServiceUrl': 'pulsar://pulsar.example.com:6651',\n}"
}
} ],
"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."
},
"500" : {
"description" : "Internal server error."
}
}
},
"delete" : {
"tags" : [ "clusters" ],
"summary" : "Delete an existing cluster.",
"description" : "This operation requires Pulsar superuser privileges.",
"operationId" : "deleteCluster",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"description" : "The cluster name",
"required" : true,
"type" : "string"
} ],
"responses" : {
"204" : {
"description" : "Cluster has been deleted."
},
"403" : {
"description" : "Don't have admin permission or policies are read-only."
},
"404" : {
"description" : "Cluster doesn't exist."
},
"412" : {
"description" : "Cluster is not empty."
},
"500" : {
"description" : "Internal server error."
}
}
}
},
"/clusters/{cluster}/failureDomains" : {
"get" : {
"tags" : [ "clusters" ],
"summary" : "Get the cluster failure domains.",
"description" : "This operation requires Pulsar superuser privileges.",
"operationId" : "getFailureDomains",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"description" : "The cluster name",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/FailureDomain"
}
}
},
"403" : {
"description" : "Don't have admin permission"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/clusters/{cluster}/failureDomains/{domainName}" : {
"get" : {
"tags" : [ "clusters" ],
"summary" : "Get a domain in a cluster",
"description" : "This operation requires Pulsar superuser privileges.",
"operationId" : "getDomain",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"description" : "The cluster name",
"required" : true,
"type" : "string"
}, {
"name" : "domainName",
"in" : "path",
"description" : "The failure domain name",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/FailureDomain"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "FailureDomain doesn't exist"
},
"412" : {
"description" : "Cluster doesn't exist"
},
"500" : {
"description" : "Internal server error"
}
}
},
"post" : {
"tags" : [ "clusters" ],
"summary" : "Set the failure domain of the cluster.",
"description" : "This operation requires Pulsar superuser privileges.",
"operationId" : "setFailureDomain",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"description" : "The cluster name",
"required" : true,
"type" : "string"
}, {
"name" : "domainName",
"in" : "path",
"description" : "The failure domain name",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "The configuration data of a failure domain",
"required" : true,
"schema" : {
"$ref" : "#/definitions/FailureDomain"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission."
},
"404" : {
"description" : "Failure domain doesn't exist."
},
"409" : {
"description" : "Broker already exists in another domain."
},
"412" : {
"description" : "Cluster doesn't exist."
},
"500" : {
"description" : "Internal server error."
}
}
},
"delete" : {
"tags" : [ "clusters" ],
"summary" : "Delete the failure domain of the cluster",
"description" : "This operation requires Pulsar superuser privileges.",
"operationId" : "deleteFailureDomain",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"description" : "The cluster name",
"required" : true,
"type" : "string"
}, {
"name" : "domainName",
"in" : "path",
"description" : "The failure domain name",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission or policy is read only"
},
"404" : {
"description" : "FailureDomain doesn't exist"
},
"412" : {
"description" : "Cluster doesn't exist"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/clusters/{cluster}/namespaceIsolationPolicies" : {
"get" : {
"tags" : [ "clusters" ],
"summary" : "Get the namespace isolation policies assigned to the cluster.",
"description" : "This operation requires Pulsar superuser privileges.",
"operationId" : "getNamespaceIsolationPolicies",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"description" : "The cluster name",
"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."
},
"500" : {
"description" : "Internal server error."
}
}
}
},
"/clusters/{cluster}/namespaceIsolationPolicies/brokers" : {
"get" : {
"tags" : [ "clusters" ],
"summary" : "Get list of brokers with namespace-isolation policies attached to them.",
"description" : "This operation requires Pulsar superuser privileges.",
"operationId" : "getBrokersWithNamespaceIsolationPolicy",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"description" : "The cluster name",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"$ref" : "#/definitions/BrokerNamespaceIsolationData"
}
}
},
"403" : {
"description" : "Don't have admin permission."
},
"404" : {
"description" : "Namespace-isolation policies not found."
},
"412" : {
"description" : "Cluster doesn't exist."
},
"500" : {
"description" : "Internal server error."
}
}
}
},
"/clusters/{cluster}/namespaceIsolationPolicies/brokers/{broker}" : {
"get" : {
"tags" : [ "clusters" ],
"summary" : "Get a broker with namespace-isolation policies attached to it.",
"description" : "This operation requires Pulsar superuser privileges.",
"operationId" : "getBrokerWithNamespaceIsolationPolicy",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"description" : "The cluster name",
"required" : true,
"type" : "string"
}, {
"name" : "broker",
"in" : "path",
"description" : "The broker name (<broker-hostname>:<web-service-port>)",
"required" : true,
"type" : "string",
"x-example" : "broker1:8080"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/BrokerNamespaceIsolationData"
}
},
"403" : {
"description" : "Don't have admin permission."
},
"404" : {
"description" : "Namespace-isolation policies/ Broker not found."
},
"412" : {
"description" : "Cluster doesn't exist."
},
"500" : {
"description" : "Internal server error."
}
}
}
},
"/clusters/{cluster}/namespaceIsolationPolicies/{policyName}" : {
"get" : {
"tags" : [ "clusters" ],
"summary" : "Get the single namespace isolation policy assigned to the cluster.",
"description" : "This operation requires Pulsar superuser privileges.",
"operationId" : "getNamespaceIsolationPolicy",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"description" : "The cluster name",
"required" : true,
"type" : "string"
}, {
"name" : "policyName",
"in" : "path",
"description" : "The name of the namespace isolation policy",
"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."
},
"500" : {
"description" : "Internal server error."
}
}
},
"post" : {
"tags" : [ "clusters" ],
"summary" : "Set namespace isolation policy.",
"description" : "This operation requires Pulsar superuser privileges.",
"operationId" : "setNamespaceIsolationPolicy",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"description" : "The cluster name",
"required" : true,
"type" : "string"
}, {
"name" : "policyName",
"in" : "path",
"description" : "The namespace isolation policy name",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "The namespace isolation policy data",
"required" : true,
"schema" : {
"$ref" : "#/definitions/NamespaceIsolationData"
}
} ],
"responses" : {
"400" : {
"description" : "Namespace isolation policy data is invalid."
},
"403" : {
"description" : "Don't have admin permission or policies are read-only."
},
"404" : {
"description" : "Namespace isolation policy doesn't exist."
},
"412" : {
"description" : "Cluster doesn't exist."
},
"500" : {
"description" : "Internal server error."
}
}
},
"delete" : {
"tags" : [ "clusters" ],
"summary" : "Delete namespace isolation policy.",
"description" : "This operation requires Pulsar superuser privileges.",
"operationId" : "deleteNamespaceIsolationPolicy",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"description" : "The cluster name",
"required" : true,
"type" : "string"
}, {
"name" : "policyName",
"in" : "path",
"description" : "The namespace isolation policy name",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission or policies are read only."
},
"404" : {
"description" : "Namespace isolation policy doesn't exist."
},
"412" : {
"description" : "Cluster doesn't exist."
},
"500" : {
"description" : "Internal server error."
}
}
}
},
"/clusters/{cluster}/peers" : {
"get" : {
"tags" : [ "clusters" ],
"summary" : "Get the peer-cluster data for the specified cluster.",
"description" : "This operation requires Pulsar superuser privileges.",
"operationId" : "getPeerCluster",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"description" : "The cluster name",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
}
},
"403" : {
"description" : "Don't have admin permission."
},
"404" : {
"description" : "Cluster doesn't exist."
},
"500" : {
"description" : "Internal server error."
}
}
},
"post" : {
"tags" : [ "clusters" ],
"summary" : "Update peer-cluster-list for a cluster.",
"description" : "This operation requires Pulsar superuser privileges.",
"operationId" : "setPeerClusterNames",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"description" : "The cluster name",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "The list of peer cluster names",
"required" : true,
"schema" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"x-examples" : {
"application/json" : "[\n 'cluster-a',\n 'cluster-b'\n]"
}
} ],
"responses" : {
"204" : {
"description" : "Cluster has been updated."
},
"403" : {
"description" : "Don't have admin permission or policies are read-only."
},
"404" : {
"description" : "Cluster doesn't exist."
},
"412" : {
"description" : "Peer cluster doesn't exist."
},
"500" : {
"description" : "Internal server error."
}
}
}
},
"/namespaces/{cluster}/antiAffinity/{group}" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get all namespaces that are grouped by given anti-affinity group in a given cluster. api can be only accessed by admin of any of the existing tenant",
"description" : "",
"operationId" : "getAntiAffinityNamespaces",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "cluster",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "group",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "tenant",
"in" : "query",
"required" : false,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
},
"403" : {
"description" : "Don't have admin permission"
},
"412" : {
"description" : "Cluster not exist/Anti-affinity group can't be empty."
}
}
}
},
"/namespaces/{property}/{namespace}/persistence/bookieAffinity" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get the bookie-affinity-group from namespace-local policy.",
"description" : "",
"operationId" : "getBookieAffinityGroup",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/BookieAffinityGroupData"
}
},
"307" : {
"description" : "Current broker doesn't serve the namespace"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Delete the bookie-affinity-group from namespace-local policy.",
"description" : "",
"operationId" : "deleteBookieAffinityGroup",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "property",
"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/{tenant}" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get the list of all the namespaces for a certain tenant.",
"description" : "",
"operationId" : "getTenantNamespaces",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant doesn't exist"
}
}
}
},
"/namespaces/{tenant}/{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" : "tenant",
"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" : "Tenant or cluster or namespace doesn't exist"
}
}
},
"put" : {
"tags" : [ "namespaces" ],
"summary" : "Creates a new namespace with the specified policies",
"description" : "",
"operationId" : "createNamespace",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Policies for the namespace",
"required" : false,
"schema" : {
"$ref" : "#/definitions/Policies"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster 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 topics under it.",
"description" : "",
"operationId" : "deleteNamespace",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "force",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
},
"405" : {
"description" : "Broker doesn't allow forced deletion of namespaces"
},
"409" : {
"description" : "Namespace is not empty"
}
}
}
},
"/namespaces/{tenant}/{namespace}/antiAffinity" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get anti-affinity group of a namespace.",
"description" : "",
"operationId" : "getNamespaceAntiAffinityGroup",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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" : "Tenant or cluster or namespace doesn't exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Set anti-affinity group for a namespace",
"description" : "",
"operationId" : "setNamespaceAntiAffinityGroup",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Anti-affinity group for the specified namespace",
"required" : true,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
},
"412" : {
"description" : "Invalid antiAffinityGroup"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Remove anti-affinity group of a namespace.",
"description" : "",
"operationId" : "removeNamespaceAntiAffinityGroup",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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/{tenant}/{namespace}/autoSubscriptionCreation" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get autoSubscriptionCreation info in a namespace",
"description" : "",
"operationId" : "getAutoSubscriptionCreation",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/AutoSubscriptionCreationOverride"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or namespace doesn't exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Override broker's allowAutoSubscriptionCreation setting for a namespace",
"description" : "",
"operationId" : "setAutoSubscriptionCreation",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Settings for automatic subscription creation",
"required" : false,
"schema" : {
"$ref" : "#/definitions/AutoSubscriptionCreationOverride"
}
} ],
"responses" : {
"400" : {
"description" : "Invalid autoSubscriptionCreation override"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Remove override of broker's allowAutoSubscriptionCreation in a namespace",
"description" : "",
"operationId" : "removeAutoSubscriptionCreation",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
}
}
}
},
"/namespaces/{tenant}/{namespace}/autoTopicCreation" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get autoTopicCreation info in a namespace",
"description" : "",
"operationId" : "getAutoTopicCreation",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/AutoTopicCreationOverride"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or namespace doesn't exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Override broker's allowAutoTopicCreation setting for a namespace",
"description" : "",
"operationId" : "setAutoTopicCreation",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Settings for automatic topic creation",
"required" : true,
"schema" : {
"$ref" : "#/definitions/AutoTopicCreationOverride"
}
} ],
"responses" : {
"400" : {
"description" : "Invalid autoTopicCreation override"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
},
"406" : {
"description" : "The number of partitions should be less than or equal to maxNumPartitionsPerPartitionedTopic"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Remove override of broker's allowAutoTopicCreation in a namespace",
"description" : "",
"operationId" : "removeAutoTopicCreation",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
}
}
}
},
"/namespaces/{tenant}/{namespace}/backlogQuota" : {
"post" : {
"tags" : [ "namespaces" ],
"summary" : " Set a backlog quota for all the topics on a namespace.",
"description" : "",
"operationId" : "setBacklogQuota",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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", "message_age" ]
}, {
"in" : "body",
"name" : "body",
"description" : "Backlog quota for all topics of the specified namespace",
"required" : false,
"schema" : {
"$ref" : "#/definitions/BacklogQuota"
}
} ],
"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" : "tenant",
"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", "message_age" ]
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/namespaces/{tenant}/{namespace}/backlogQuotaMap" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get backlog quota map on a namespace.",
"description" : "",
"operationId" : "getBacklogQuotaMap",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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/BacklogQuota"
}
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
}
}
}
},
"/namespaces/{tenant}/{namespace}/bundles" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get the bundles split data.",
"description" : "",
"operationId" : "getBundlesData",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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" : "Tenant or cluster or namespace doesn't exist"
},
"412" : {
"description" : "Namespace is not setup to split in bundles"
}
}
}
},
"/namespaces/{tenant}/{namespace}/clearBacklog" : {
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Clear backlog for all topics on a namespace.",
"description" : "",
"operationId" : "clearNamespaceBacklog",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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 or operate permission on the namespace"
},
"404" : {
"description" : "Namespace does not exist"
}
}
}
},
"/namespaces/{tenant}/{namespace}/clearBacklog/{subscription}" : {
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Clear backlog for a given subscription on all topics on a namespace.",
"description" : "",
"operationId" : "clearNamespaceBacklogForSubscription",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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 or operate permission on the namespace"
},
"404" : {
"description" : "Namespace does not exist"
}
}
}
},
"/namespaces/{tenant}/{namespace}/compactionThreshold" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Maximum number of uncompacted bytes in topics before compaction is triggered.",
"description" : "The backlog size is compared to the threshold periodically. A threshold of 0 disabled automatic compaction",
"operationId" : "getCompactionThreshold",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "integer",
"format" : "int64"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace doesn't exist"
}
}
},
"put" : {
"tags" : [ "namespaces" ],
"summary" : "Set maximum number of uncompacted bytes in a topic before compaction is triggered.",
"description" : "The backlog size is compared to the threshold periodically. A threshold of 0 disabled automatic compaction",
"operationId" : "setCompactionThreshold",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Maximum number of uncompacted bytes in a topic of the specified namespace",
"required" : true,
"schema" : {
"type" : "integer",
"format" : "int64"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace doesn't exist"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "compactionThreshold value is not valid"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Delete maximum number of uncompacted bytes in a topic before compaction is triggered.",
"description" : "The backlog size is compared to the threshold periodically. A threshold of 0 disabled automatic compaction",
"operationId" : "deleteCompactionThreshold",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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 doesn't exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/namespaces/{tenant}/{namespace}/deduplication" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get broker side deduplication for all topics in a namespace",
"description" : "",
"operationId" : "getDeduplication",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "boolean"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Enable or disable broker side deduplication for all topics in a namespace",
"description" : "",
"operationId" : "modifyDeduplication",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Flag for disabling or enabling broker side deduplication for all topics in the specified namespace",
"required" : true,
"schema" : {
"type" : "boolean"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Remove broker side deduplication for all topics in a namespace",
"description" : "",
"operationId" : "removeDeduplication",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
}
}
}
},
"/namespaces/{tenant}/{namespace}/deduplicationSnapshotInterval" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get deduplicationSnapshotInterval config on a namespace.",
"description" : "",
"operationId" : "getDeduplicationSnapshotInterval",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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" : "Namespace does not exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Set deduplicationSnapshotInterval config on a namespace.",
"description" : "",
"operationId" : "setDeduplicationSnapshotInterval",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Interval to take deduplication snapshot per topic",
"required" : true,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
}
}
}
},
"/namespaces/{tenant}/{namespace}/delayedDelivery" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get delayed delivery messages config on a namespace.",
"description" : "",
"operationId" : "getDelayedDeliveryPolicies",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/DelayedDeliveryPolicies"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Set delayed delivery messages config on a namespace.",
"description" : "",
"operationId" : "setDelayedDeliveryPolicies",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Delayed delivery policies for the specified namespace",
"required" : false,
"schema" : {
"$ref" : "#/definitions/DelayedDeliveryPolicies"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Delete delayed delivery messages config on a namespace.",
"description" : "",
"operationId" : "removeDelayedDeliveryPolicies",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
}
}
}
},
"/namespaces/{tenant}/{namespace}/dispatchRate" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get dispatch-rate configured for the namespace, null means dispatch-rate not configured, -1 means msg-dispatch-rate or byte-dispatch-rate not configured in dispatch-rate yet",
"description" : "",
"operationId" : "getDispatchRate",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/DispatchRate"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Set dispatch-rate throttling for all topics of the namespace",
"description" : "",
"operationId" : "setDispatchRate",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Dispatch rate for all topics of the specified namespace",
"required" : false,
"schema" : {
"$ref" : "#/definitions/DispatchRateImpl"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Delete dispatch-rate throttling for all topics of the namespace",
"description" : "",
"operationId" : "deleteDispatchRate",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/namespaces/{tenant}/{namespace}/encryptionRequired" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get message encryption required status in a namespace",
"description" : "",
"operationId" : "getEncryptionRequired",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "boolean"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or namespace doesn't exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Message encryption is required or not for all topics in a namespace",
"description" : "",
"operationId" : "modifyEncryptionRequired",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Flag defining if message encryption is required",
"required" : true,
"schema" : {
"type" : "boolean"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/namespaces/{tenant}/{namespace}/inactiveTopicPolicies" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get inactive topic policies config on a namespace.",
"description" : "",
"operationId" : "getInactiveTopicPolicies",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/InactiveTopicPolicies"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Set inactive topic policies config on a namespace.",
"description" : "",
"operationId" : "setInactiveTopicPolicies",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Inactive topic policies for the specified namespace",
"required" : false,
"schema" : {
"$ref" : "#/definitions/InactiveTopicPolicies"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Remove inactive topic policies from a namespace.",
"description" : "",
"operationId" : "removeInactiveTopicPolicies",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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/{tenant}/{namespace}/isAllowAutoUpdateSchema" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "The flag of whether allow auto update schema",
"description" : "",
"operationId" : "getIsAllowAutoUpdateSchema",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "boolean"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace doesn't exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Update flag of whether allow auto update schema",
"description" : "",
"operationId" : "setIsAllowAutoUpdateSchema",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Flag of whether to allow auto update schema",
"required" : true,
"schema" : {
"type" : "boolean"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace doesn't exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/namespaces/{tenant}/{namespace}/maxConsumersPerSubscription" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get maxConsumersPerSubscription config on a namespace.",
"description" : "",
"operationId" : "getMaxConsumersPerSubscription",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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" : "Namespace does not exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : " Set maxConsumersPerSubscription configuration on a namespace.",
"description" : "",
"operationId" : "setMaxConsumersPerSubscription",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Number of maximum consumers per subscription",
"required" : true,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "maxConsumersPerSubscription value is not valid"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : " Set maxConsumersPerSubscription configuration on a namespace.",
"description" : "",
"operationId" : "removeMaxConsumersPerSubscription",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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" : "maxConsumersPerSubscription value is not valid"
}
}
}
},
"/namespaces/{tenant}/{namespace}/maxConsumersPerTopic" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get maxConsumersPerTopic config on a namespace.",
"description" : "",
"operationId" : "getMaxConsumersPerTopic",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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" : "Namespace does not exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : " Set maxConsumersPerTopic configuration on a namespace.",
"description" : "",
"operationId" : "setMaxConsumersPerTopic",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Number of maximum consumers per topic",
"required" : true,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "maxConsumersPerTopic value is not valid"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Remove maxConsumersPerTopic configuration on a namespace.",
"description" : "",
"operationId" : "removeMaxConsumersPerTopic",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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/{tenant}/{namespace}/maxProducersPerTopic" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get maxProducersPerTopic config on a namespace.",
"description" : "",
"operationId" : "getMaxProducersPerTopic",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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" : "Namespace does not exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : " Set maxProducersPerTopic configuration on a namespace.",
"description" : "",
"operationId" : "setMaxProducersPerTopic",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Number of maximum producers per topic",
"required" : true,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "maxProducersPerTopic value is not valid"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Remove maxProducersPerTopic configuration on a namespace.",
"description" : "",
"operationId" : "removeMaxProducersPerTopic",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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/{tenant}/{namespace}/maxSubscriptionsPerTopic" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get maxSubscriptionsPerTopic config on a namespace.",
"description" : "",
"operationId" : "getMaxSubscriptionsPerTopic",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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" : "Namespace does not exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : " Set maxSubscriptionsPerTopic configuration on a namespace.",
"description" : "",
"operationId" : "setMaxSubscriptionsPerTopic",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Number of maximum subscriptions per topic",
"required" : true,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "maxUnackedMessagesPerSubscription value is not valid"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Remove maxSubscriptionsPerTopic configuration on a namespace.",
"description" : "",
"operationId" : "removeMaxSubscriptionsPerTopic",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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/{tenant}/{namespace}/maxTopicsPerNamespace" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get maxTopicsPerNamespace config on a namespace.",
"description" : "",
"operationId" : "getMaxTopicsPerNamespace",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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" : "Tenant or namespace does not exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Set maxTopicsPerNamespace config on a namespace.",
"description" : "",
"operationId" : "setInactiveTopicPolicies",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Number of maximum topics for specific namespace",
"required" : true,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or namespace doesn't exist"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Set maxTopicsPerNamespace config on a namespace.",
"description" : "",
"operationId" : "setInactiveTopicPolicies",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or namespace doesn't exist"
}
}
}
},
"/namespaces/{tenant}/{namespace}/maxUnackedMessagesPerConsumer" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get maxUnackedMessagesPerConsumer config on a namespace.",
"description" : "",
"operationId" : "getMaxUnackedMessagesPerConsumer",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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" : "Namespace does not exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : " Set maxConsumersPerTopic configuration on a namespace.",
"description" : "",
"operationId" : "setMaxUnackedMessagesPerConsumer",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Number of maximum unacked messages per consumer",
"required" : true,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "maxUnackedMessagesPerConsumer value is not valid"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Remove maxUnackedMessagesPerConsumer config on a namespace.",
"description" : "",
"operationId" : "removeMaxUnackedmessagesPerConsumer",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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"
}
}
}
},
"/namespaces/{tenant}/{namespace}/maxUnackedMessagesPerSubscription" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get maxUnackedMessagesPerSubscription config on a namespace.",
"description" : "",
"operationId" : "getMaxUnackedmessagesPerSubscription",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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" : "Namespace does not exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : " Set maxUnackedMessagesPerSubscription configuration on a namespace.",
"description" : "",
"operationId" : "setMaxUnackedMessagesPerSubscription",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Number of maximum unacked messages per subscription",
"required" : true,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "maxUnackedMessagesPerSubscription value is not valid"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Remove maxUnackedMessagesPerSubscription config on a namespace.",
"description" : "",
"operationId" : "removeMaxUnackedmessagesPerSubscription",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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"
}
}
}
},
"/namespaces/{tenant}/{namespace}/messageTTL" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get the message TTL for the namespace",
"description" : "",
"operationId" : "getNamespaceMessageTTL",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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" : "Tenant 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" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "TTL in seconds for the specified namespace",
"required" : true,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
},
"412" : {
"description" : "Invalid TTL"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Set message TTL in seconds for namespace",
"description" : "",
"operationId" : "removeNamespaceMessageTTL",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
},
"412" : {
"description" : "Invalid TTL"
}
}
}
},
"/namespaces/{tenant}/{namespace}/offloadDeletionLagMs" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Number of milliseconds to wait before deleting a ledger segment which has been offloaded from the Pulsar cluster's local storage (i.e. BookKeeper)",
"description" : "A negative value denotes that deletion has been completely disabled. 'null' denotes that the topics in the namespace will fall back to the broker default for deletion lag.",
"operationId" : "getOffloadDeletionLag",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "integer",
"format" : "int64"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace doesn't exist"
}
}
},
"put" : {
"tags" : [ "namespaces" ],
"summary" : "Set number of milliseconds to wait before deleting a ledger segment which has been offloaded from the Pulsar cluster's local storage (i.e. BookKeeper)",
"description" : "A negative value disables the deletion completely.",
"operationId" : "setOffloadDeletionLag",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "New number of milliseconds to wait before deleting a ledger segment which has been offloaded",
"required" : true,
"schema" : {
"type" : "integer",
"format" : "int64"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace doesn't exist"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "offloadDeletionLagMs value is not valid"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Clear the namespace configured offload deletion lag. The topics in the namespace will fallback to using the default configured deletion lag for the broker",
"description" : "",
"operationId" : "clearOffloadDeletionLag",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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 doesn't exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/namespaces/{tenant}/{namespace}/offloadPolicies" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get offload configuration on a namespace.",
"description" : "",
"operationId" : "getOffloadPolicies",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/OffloadPoliciesImpl"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : " Set offload configuration on a namespace.",
"description" : "",
"operationId" : "setOffloadPolicies",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Offload policies for the specified namespace",
"required" : true,
"schema" : {
"$ref" : "#/definitions/OffloadPoliciesImpl"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "OffloadPolicies is empty or driver is not supported or bucket is not valid"
}
}
}
},
"/namespaces/{tenant}/{namespace}/offloadThreshold" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Maximum number of bytes stored on the pulsar cluster for a topic, before the broker will start offloading to longterm storage",
"description" : "A negative value disables automatic offloading",
"operationId" : "getOffloadThreshold",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "integer",
"format" : "int64"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace doesn't exist"
}
}
},
"put" : {
"tags" : [ "namespaces" ],
"summary" : "Set maximum number of bytes stored on the pulsar cluster for a topic, before the broker will start offloading to longterm storage",
"description" : "-1 will revert to using the cluster default. A negative value disables automatic offloading. ",
"operationId" : "setOffloadThreshold",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Maximum number of bytes stored on the pulsar cluster for a topic of the specified namespace",
"required" : true,
"schema" : {
"type" : "integer",
"format" : "int64"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace doesn't exist"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "offloadThreshold value is not valid"
}
}
}
},
"/namespaces/{tenant}/{namespace}/permissions" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Retrieve the permissions for a namespace.",
"description" : "",
"operationId" : "getPermissions",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "object",
"additionalProperties" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string",
"enum" : [ "produce", "consume", "functions", "sources", "sinks", "packages" ]
}
}
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
},
"409" : {
"description" : "Namespace is not empty"
}
}
}
},
"/namespaces/{tenant}/{namespace}/permissions/subscription" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Retrieve the permissions for a subscription.",
"description" : "",
"operationId" : "getPermissionOnSubscription",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "object",
"additionalProperties" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
}
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
},
"409" : {
"description" : "Namespace is not empty"
}
}
}
},
"/namespaces/{tenant}/{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" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "role",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "List of permissions for the specified role",
"required" : false,
"schema" : {
"type" : "array",
"items" : {
"type" : "string",
"enum" : [ "produce", "consume", "functions", "sources", "sinks", "packages" ]
}
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
},
"409" : {
"description" : "Concurrent modification"
},
"501" : {
"description" : "Authorization is not enabled"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Revoke all permissions to a role on a namespace.",
"description" : "",
"operationId" : "revokePermissionsOnNamespace",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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" : "Tenant or cluster or namespace doesn't exist"
}
}
}
},
"/namespaces/{tenant}/{namespace}/persistence" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get the persistence configuration for a namespace.",
"description" : "",
"operationId" : "getPersistence",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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 topics on a namespace.",
"description" : "",
"operationId" : "setPersistence",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Persistence policies for the specified namespace",
"required" : true,
"schema" : {
"$ref" : "#/definitions/PersistencePolicies"
}
} ],
"responses" : {
"400" : {
"description" : "Invalid persistence policies"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Delete the persistence configuration for all topics on a namespace",
"description" : "",
"operationId" : "deletePersistence",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/namespaces/{tenant}/{namespace}/persistence/bookieAffinity" : {
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Set the bookie-affinity-group to namespace-persistent policy.",
"description" : "",
"operationId" : "setBookieAffinityGroup",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Bookie affinity group for the specified namespace",
"required" : false,
"schema" : {
"$ref" : "#/definitions/BookieAffinityGroupData"
}
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/namespaces/{tenant}/{namespace}/properties" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get key value pair properties for a given namespace.",
"description" : "",
"operationId" : "getProperties",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or namespace doesn't exist"
}
}
},
"put" : {
"tags" : [ "namespaces" ],
"summary" : "Put key value pairs property on a namespace.",
"description" : "",
"operationId" : "setProperties",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Key value pair properties for the namespace",
"required" : true,
"schema" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or namespace doesn't exist"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Get property value for a given key on a namespace.",
"description" : "",
"operationId" : "clearProperties",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or namespace doesn't exist"
}
}
}
},
"/namespaces/{tenant}/{namespace}/property/{key}" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get property value for a given key on a namespace.",
"description" : "",
"operationId" : "getProperty",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "key",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or namespace doesn't exist"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Get property value for a given key on a namespace.",
"description" : "",
"operationId" : "removeProperty",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "key",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or namespace doesn't exist"
}
}
}
},
"/namespaces/{tenant}/{namespace}/property/{key}/{value}" : {
"put" : {
"tags" : [ "namespaces" ],
"summary" : "Put a key value pair property on a namespace.",
"description" : "",
"operationId" : "setProperty",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "key",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "value",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or namespace doesn't exist"
}
}
}
},
"/namespaces/{tenant}/{namespace}/removeOffloadPolicies" : {
"delete" : {
"tags" : [ "namespaces" ],
"summary" : " Set offload configuration on a namespace.",
"description" : "",
"operationId" : "removeOffloadPolicies",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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" : "OffloadPolicies is empty or driver is not supported or bucket is not valid"
}
}
}
},
"/namespaces/{tenant}/{namespace}/replication" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get the replication clusters for a namespace.",
"description" : "",
"operationId" : "getNamespaceReplicationClusters",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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" : "Tenant 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" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "List of replication clusters",
"required" : true,
"schema" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
},
"409" : {
"description" : "Peer-cluster can't be part of replication-cluster"
},
"412" : {
"description" : "Namespace is not global or invalid cluster ids"
}
}
}
},
"/namespaces/{tenant}/{namespace}/replicatorDispatchRate" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get replicator dispatch-rate configured for the namespace, null means replicator dispatch-rate not configured, -1 means msg-dispatch-rate or byte-dispatch-rate not configured in dispatch-rate yet",
"description" : "",
"operationId" : "getReplicatorDispatchRate",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/DispatchRate"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Set replicator dispatch-rate throttling for all topics of the namespace",
"description" : "",
"operationId" : "setReplicatorDispatchRate",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Replicator dispatch rate for all topics of the specified namespace",
"required" : false,
"schema" : {
"$ref" : "#/definitions/DispatchRateImpl"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Remove replicator dispatch-rate throttling for all topics of the namespace",
"description" : "",
"operationId" : "removeReplicatorDispatchRate",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/namespaces/{tenant}/{namespace}/resourcegroup" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get the resourcegroup attached to the namespace",
"description" : "",
"operationId" : "getNamespaceResourceGroup",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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" : "Tenant or cluster or namespace doesn't exist"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Delete resourcegroup for a namespace",
"description" : "",
"operationId" : "removeNamespaceResourceGroup",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
},
"412" : {
"description" : "Invalid resourcegroup"
}
}
}
},
"/namespaces/{tenant}/{namespace}/resourcegroup/{resourcegroup}" : {
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Set resourcegroup for a namespace",
"description" : "",
"operationId" : "setNamespaceResourceGroup",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "resourcegroup",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
},
"412" : {
"description" : "Invalid resourcegroup"
}
}
}
},
"/namespaces/{tenant}/{namespace}/retention" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get retention config on a namespace.",
"description" : "",
"operationId" : "getRetention",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Retention policies for the specified namespace",
"required" : false,
"schema" : {
"$ref" : "#/definitions/RetentionPolicies"
}
} ],
"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"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : " Remove retention configuration on a namespace.",
"description" : "",
"operationId" : "removeRetention",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Retention policies for the specified namespace",
"required" : false,
"schema" : {
"$ref" : "#/definitions/RetentionPolicies"
}
} ],
"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/{tenant}/{namespace}/scanOffloadedLedgers" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Trigger the scan of offloaded Ledgers on the LedgerOffloader for the given namespace",
"description" : "",
"operationId" : "scanOffloadedLedgers",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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 doesn't exist"
}
}
}
},
"/namespaces/{tenant}/{namespace}/schemaAutoUpdateCompatibilityStrategy" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "The strategy used to check the compatibility of new schemas, provided by producers, before automatically updating the schema",
"description" : "The value AutoUpdateDisabled prevents producers from updating the schema. If set to AutoUpdateDisabled, schemas must be updated through the REST api",
"operationId" : "getSchemaAutoUpdateCompatibilityStrategy",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "string",
"enum" : [ "AutoUpdateDisabled", "Backward", "Forward", "Full", "AlwaysCompatible", "BackwardTransitive", "ForwardTransitive", "FullTransitive" ]
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace doesn't exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"put" : {
"tags" : [ "namespaces" ],
"summary" : "Update the strategy used to check the compatibility of new schemas, provided by producers, before automatically updating the schema",
"description" : "The value AutoUpdateDisabled prevents producers from updating the schema. If set to AutoUpdateDisabled, schemas must be updated through the REST api",
"operationId" : "setSchemaAutoUpdateCompatibilityStrategy",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Strategy used to check the compatibility of new schemas",
"required" : false,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace doesn't exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/namespaces/{tenant}/{namespace}/schemaCompatibilityStrategy" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "The strategy of the namespace schema compatibility ",
"description" : "",
"operationId" : "getSchemaCompatibilityStrategy",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "string",
"enum" : [ "UNDEFINED", "ALWAYS_INCOMPATIBLE", "ALWAYS_COMPATIBLE", "BACKWARD", "FORWARD", "FULL", "BACKWARD_TRANSITIVE", "FORWARD_TRANSITIVE", "FULL_TRANSITIVE" ]
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace doesn't exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"put" : {
"tags" : [ "namespaces" ],
"summary" : "Update the strategy used to check the compatibility of new schema",
"description" : "",
"operationId" : "setSchemaCompatibilityStrategy",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Strategy used to check the compatibility of new schema",
"required" : false,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace doesn't exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/namespaces/{tenant}/{namespace}/schemaValidationEnforced" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get schema validation enforced flag for namespace.",
"description" : "If the flag is set to true, when a producer without a schema attempts to produce to a topic with schema in this namespace, the producer will be failed to connect. PLEASE be carefully on using this, since non-java clients don't support schema.if you enable this setting, it will cause non-java clients failed to produce.",
"operationId" : "getSchemaValidtionEnforced",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "boolean"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenants or Namespace doesn't exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Set schema validation enforced flag on namespace.",
"description" : "If the flag is set to true, when a producer without a schema attempts to produce to a topic with schema in this namespace, the producer will be failed to connect. PLEASE be carefully on using this, since non-java clients don't support schema.if you enable this setting, it will cause non-java clients failed to produce.",
"operationId" : "setSchemaValidtionEnforced",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Flag of whether validation is enforced on the specified namespace",
"required" : true,
"schema" : {
"type" : "boolean"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or Namespace doesn't exist"
},
"412" : {
"description" : "schemaValidationEnforced value is not valid"
}
}
}
},
"/namespaces/{tenant}/{namespace}/subscribeRate" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get subscribe-rate configured for the namespace",
"description" : "",
"operationId" : "getSubscribeRate",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/SubscribeRate"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Set subscribe-rate throttling for all topics of the namespace",
"description" : "",
"operationId" : "setSubscribeRate",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Subscribe rate for all topics of the specified namespace",
"required" : false,
"schema" : {
"$ref" : "#/definitions/SubscribeRate"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Delete subscribe-rate throttling for all topics of the namespace",
"description" : "",
"operationId" : "deleteSubscribeRate",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/namespaces/{tenant}/{namespace}/subscriptionAuthMode" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get subscription auth mode in a namespace",
"description" : "",
"operationId" : "getSubscriptionAuthMode",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "string",
"enum" : [ "None", "Prefix" ]
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or namespace doesn't exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : " Set a subscription auth mode for all the topics on a namespace.",
"description" : "",
"operationId" : "setSubscriptionAuthMode",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Subscription auth mode for all topics of the specified namespace",
"required" : false,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/namespaces/{tenant}/{namespace}/subscriptionDispatchRate" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get subscription dispatch-rate configured for the namespace, null means subscription dispatch-rate not configured, -1 means msg-dispatch-rate or byte-dispatch-rate not configured in dispatch-rate yet",
"description" : "",
"operationId" : "getSubscriptionDispatchRate",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/DispatchRate"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Set Subscription dispatch-rate throttling for all topics of the namespace",
"description" : "",
"operationId" : "setSubscriptionDispatchRate",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Subscription dispatch rate for all topics of the specified namespace",
"required" : false,
"schema" : {
"$ref" : "#/definitions/DispatchRateImpl"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Delete Subscription dispatch-rate throttling for all topics of the namespace",
"description" : "",
"operationId" : "deleteSubscriptionDispatchRate",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/namespaces/{tenant}/{namespace}/subscriptionExpirationTime" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get the subscription expiration time for the namespace",
"description" : "",
"operationId" : "getSubscriptionExpirationTime",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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" : "Tenant or cluster or namespace doesn't exist"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Set subscription expiration time in minutes for namespace",
"description" : "",
"operationId" : "setSubscriptionExpirationTime",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Expiration time in minutes for the specified namespace",
"required" : true,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
},
"412" : {
"description" : "Invalid expiration time"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Remove subscription expiration time for namespace",
"description" : "",
"operationId" : "removeSubscriptionExpirationTime",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
}
}
}
},
"/namespaces/{tenant}/{namespace}/subscriptionTypesEnabled" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "The set of whether allow subscription types",
"description" : "",
"operationId" : "getSubscriptionTypesEnabled",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string",
"enum" : [ "Exclusive", "Shared", "Failover", "Key_Shared" ]
}
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace doesn't exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Update set of whether allow share sub type",
"description" : "",
"operationId" : "setSubscriptionTypesEnabled",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Set of whether allow subscription types",
"required" : true,
"schema" : {
"type" : "array",
"items" : {
"type" : "string",
"enum" : [ "Exclusive", "Shared", "Failover", "Key_Shared" ]
}
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace doesn't exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "namespaces" ],
"summary" : " Remove subscription types enabled on a namespace.",
"description" : "",
"operationId" : "removeSubscriptionTypesEnabled",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or Namespace does not exist"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/namespaces/{tenant}/{namespace}/topics" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get the list of all the topics under a certain namespace.",
"description" : "",
"operationId" : "getTopics",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "mode",
"in" : "query",
"required" : false,
"type" : "string",
"default" : "PERSISTENT",
"enum" : [ "PERSISTENT", "NON_PERSISTENT", "ALL" ]
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
}
},
"403" : {
"description" : "Don't have admin or operate permission on the namespace"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
}
}
}
},
"/namespaces/{tenant}/{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 topics (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" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or namespace doesn't exist"
},
"412" : {
"description" : "Namespace is already unloaded or Namespace has bundles activated"
}
}
}
},
"/namespaces/{tenant}/{namespace}/unsubscribe/{subscription}" : {
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Unsubscribes the given subscription on all topics on a namespace.",
"description" : "",
"operationId" : "unsubscribeNamespace",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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 or operate permission on the namespacen"
},
"404" : {
"description" : "Namespace does not exist"
}
}
}
},
"/namespaces/{tenant}/{namespace}/{bundle}" : {
"delete" : {
"tags" : [ "namespaces" ],
"summary" : "Delete a namespace bundle and all the topics under it.",
"description" : "",
"operationId" : "deleteNamespaceBundle",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "bundle",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "force",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace doesn't exist"
},
"409" : {
"description" : "Namespace bundle is not empty"
}
}
}
},
"/namespaces/{tenant}/{namespace}/{bundle}/clearBacklog" : {
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Clear backlog for all topics on a namespace bundle.",
"description" : "",
"operationId" : "clearNamespaceBundleBacklog",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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" : {
"307" : {
"description" : "Current broker doesn't serve the namespace"
},
"403" : {
"description" : "Don't have admin or operate permission on the namespace"
},
"404" : {
"description" : "Namespace does not exist"
}
}
}
},
"/namespaces/{tenant}/{namespace}/{bundle}/clearBacklog/{subscription}" : {
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Clear backlog for a given subscription on all topics on a namespace bundle.",
"description" : "",
"operationId" : "clearNamespaceBundleBacklogForSubscription",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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" : {
"307" : {
"description" : "Current broker doesn't serve the namespace"
},
"403" : {
"description" : "Don't have admin or operate permission on the namespace"
},
"404" : {
"description" : "Namespace does not exist"
}
}
}
},
"/namespaces/{tenant}/{namespace}/{bundle}/split" : {
"put" : {
"tags" : [ "namespaces" ],
"summary" : "Split a namespace bundle",
"description" : "",
"operationId" : "splitNamespaceBundle",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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
}, {
"name" : "unload",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "splitAlgorithmName",
"in" : "query",
"required" : false,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "splitBoundaries",
"required" : false,
"schema" : {
"type" : "array",
"items" : {
"type" : "integer",
"format" : "int64"
}
}
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace"
},
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/namespaces/{tenant}/{namespace}/{bundle}/topicHashPositions" : {
"get" : {
"tags" : [ "namespaces" ],
"summary" : "Get hash positions for topics",
"description" : "",
"operationId" : "getTopicHashPositions",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "bundle",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topics",
"in" : "query",
"required" : false,
"type" : "array",
"items" : {
"type" : "string"
},
"collectionFormat" : "multi"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace does not exist"
}
}
}
},
"/namespaces/{tenant}/{namespace}/{bundle}/unload" : {
"put" : {
"tags" : [ "namespaces" ],
"summary" : "Unload a namespace bundle",
"description" : "",
"operationId" : "unloadNamespaceBundle",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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" : {
"307" : {
"description" : "Current broker doesn't serve the namespace"
},
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/namespaces/{tenant}/{namespace}/{bundle}/unsubscribe/{subscription}" : {
"post" : {
"tags" : [ "namespaces" ],
"summary" : "Unsubscribes the given subscription on all topics on a namespace bundle.",
"description" : "",
"operationId" : "unsubscribeNamespaceBundle",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"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 or operate permission on the namespace"
},
"404" : {
"description" : "Namespace does not exist"
}
}
}
},
"/non-persistent/{tenant}/{namespace}" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get the list of non-persistent topics under a namespace.",
"description" : "",
"operationId" : "getList",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "bundle",
"in" : "query",
"description" : "Specify the bundle name",
"required" : false,
"type" : "string"
}, {
"name" : "includeSystemTopic",
"in" : "query",
"description" : "Include system topic",
"required" : false,
"type" : "boolean"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
},
"401" : {
"description" : "Don't have permission to manage resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "The tenant/namespace does not exist"
},
"412" : {
"description" : "Namespace name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/partitioned" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get the list of partitioned topics under a namespace.",
"description" : "",
"operationId" : "getPartitionedTopicList",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "includeSystemTopic",
"in" : "query",
"description" : "Include system topic",
"required" : false,
"type" : "boolean"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin or operate permission on the namespace"
},
"404" : {
"description" : "tenant/namespace/topic doesn't exit"
},
"412" : {
"description" : "Namespace name is not valid"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{bundle}" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get the list of non-persistent topics under a namespace bundle.",
"description" : "",
"operationId" : "getListFromBundle",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "bundle",
"in" : "path",
"description" : "Bundle range of a topic",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
},
"401" : {
"description" : "Don't have permission to manage resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Namespace doesn't exist"
},
"412" : {
"description" : "Namespace name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}" : {
"put" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Create a non-partitioned topic.",
"description" : "This is the only REST endpoint from which non-partitioned topics could be created.",
"operationId" : "createNonPartitionedTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Key value pair properties for the topic metadata",
"required" : false,
"schema" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
}
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"409" : {
"description" : "Partitioned topic already exist"
},
"412" : {
"description" : "Failed Reason : Name is invalid or Namespace does not have any clusters configured"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Delete a topic.",
"description" : "The topic cannot be deleted if delete is not forcefully and there's any active subscription or producer connected to the it. Force delete ignores connected clients and deletes topic by explicitly closing them.",
"operationId" : "deleteTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "force",
"in" : "query",
"description" : "Stop all producer/consumer/replicator and delete topic forcefully",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"412" : {
"description" : "Topic has active producers/subscriptions"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/all_subscription/expireMessages/{expireTimeInSeconds}" : {
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Expiry messages on all subscriptions of topic.",
"description" : "",
"operationId" : "expireMessagesForAllSubscriptions",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "expireTimeInSeconds",
"in" : "path",
"description" : "Expires beyond the specified number of seconds",
"required" : true,
"type" : "integer",
"default" : 0,
"format" : "int32"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic or subscription does not exist"
},
"405" : {
"description" : "Expiry messages on a non-persistent topic is not allowed"
},
"412" : {
"description" : "Can't find owner for topic"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/backlog" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get estimated backlog for offline topic.",
"description" : "",
"operationId" : "getBacklog",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/PersistentOfflineTopicStats"
}
},
"404" : {
"description" : "Namespace does not exist"
},
"412" : {
"description" : "Topic name is not valid"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/backlogQuota" : {
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set a backlog quota for a topic.",
"description" : "",
"operationId" : "setBacklogQuota",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "backlogQuotaType",
"in" : "query",
"required" : false,
"type" : "string",
"enum" : [ "destination_storage", "message_age" ]
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Specified backlog quota exceeds retention quota. Increase retention quota and retry request"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Remove a backlog quota policy from a topic.",
"description" : "",
"operationId" : "removeBacklogQuota",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "backlogQuotaType",
"in" : "query",
"required" : false,
"type" : "string",
"enum" : [ "destination_storage", "message_age" ]
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/backlogQuotaMap" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get backlog quota map on a topic.",
"description" : "",
"operationId" : "getBacklogQuotaMap",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic policy does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/backlogSize" : {
"put" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Calculate backlog size by a message ID (in bytes).",
"description" : "",
"operationId" : "getBacklogSizeByMessageId",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/compaction" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get the status of a compaction operation for a topic.",
"description" : "",
"operationId" : "compactionStatus",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/LongRunningProcessStatus"
}
},
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist, or compaction hasn't run"
},
"405" : {
"description" : "Operation is not allowed on the persistent topic"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
},
"put" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Trigger a compaction operation on a topic.",
"description" : "",
"operationId" : "compact",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Operation is not allowed on the persistent topic"
},
"409" : {
"description" : "Compaction already running"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/compactionThreshold" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get compaction threshold configuration for specified topic.",
"description" : "",
"operationId" : "getCompactionThreshold",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set compaction threshold configuration for specified topic.",
"description" : "",
"operationId" : "setCompactionThreshold",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Dispatch rate for the specified topic",
"required" : false,
"schema" : {
"type" : "integer",
"format" : "int64"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Remove compaction threshold configuration for specified topic.",
"description" : "",
"operationId" : "removeCompactionThreshold",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/createMissedPartitions" : {
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Create missed partitions of an existing partitioned topic.",
"description" : "",
"operationId" : "createMissedPartitions",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant does not exist"
},
"409" : {
"description" : "Partitioned topic does not exist"
},
"412" : {
"description" : "Partitioned topic name is invalid"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/deduplicationEnabled" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get deduplication configuration of a topic.",
"description" : "",
"operationId" : "getDeduplication",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set deduplication enabled on a topic.",
"description" : "",
"operationId" : "setDeduplication",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "DeduplicationEnabled policies for the specified topic",
"required" : false,
"schema" : {
"type" : "boolean"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Remove deduplication configuration for specified topic.",
"description" : "",
"operationId" : "removeDeduplication",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/deduplicationSnapshotInterval" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get deduplicationSnapshotInterval config on a topic.",
"description" : "",
"operationId" : "getDeduplicationSnapshotInterval",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
},
"500" : {
"description" : "Internal server error"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set deduplicationSnapshotInterval config on a topic.",
"description" : "",
"operationId" : "setDeduplicationSnapshotInterval",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Interval to take deduplication snapshot for the specified topic",
"required" : false,
"schema" : {
"type" : "integer",
"format" : "int32"
}
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Delete deduplicationSnapshotInterval config on a topic.",
"description" : "",
"operationId" : "deleteDeduplicationSnapshotInterval",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/delayedDelivery" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get delayed delivery messages config on a topic.",
"description" : "",
"operationId" : "getDelayedDeliveryPolicies",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
},
"500" : {
"description" : "Internal server error"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set delayed delivery messages config on a topic.",
"description" : "",
"operationId" : "setDelayedDeliveryPolicies",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Delayed delivery policies for the specified topic",
"required" : false,
"schema" : {
"$ref" : "#/definitions/DelayedDeliveryPolicies"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set delayed delivery messages config on a topic.",
"description" : "",
"operationId" : "deleteDelayedDeliveryPolicies",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/dispatchRate" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get dispatch rate configuration for specified topic.",
"description" : "",
"operationId" : "getDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set message dispatch rate configuration for specified topic.",
"description" : "",
"operationId" : "setDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Dispatch rate for the specified topic",
"required" : false,
"schema" : {
"$ref" : "#/definitions/DispatchRateImpl"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Remove message dispatch rate configuration for specified topic.",
"description" : "",
"operationId" : "removeDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/examinemessage" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Examine a specific message on a topic by position relative to the earliest or the latest message.",
"description" : "",
"operationId" : "examineMessage",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "initialPosition",
"in" : "query",
"description" : "Relative start position to examine message.It can be 'latest' or 'earliest'",
"required" : false,
"type" : "string",
"default" : "latest",
"enum" : [ "latest", "earliest" ]
}, {
"name" : "messagePosition",
"in" : "query",
"description" : "The position of messages (default 1)",
"required" : false,
"type" : "integer",
"default" : 1,
"format" : "int64"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic, the message position does not exist"
},
"405" : {
"description" : "If given partitioned topic"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/inactiveTopicPolicies" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get inactive topic policies on a topic.",
"description" : "",
"operationId" : "getInactiveTopicPolicies",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
},
"500" : {
"description" : "Internal server error"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set inactive topic policies on a topic.",
"description" : "",
"operationId" : "setInactiveTopicPolicies",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "inactive topic policies for the specified topic",
"required" : false,
"schema" : {
"$ref" : "#/definitions/InactiveTopicPolicies"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Delete inactive topic policies on a topic.",
"description" : "",
"operationId" : "deleteInactiveTopicPolicies",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/internal-info" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get the stored topic metadata.",
"description" : "",
"operationId" : "getManagedLedgerInfo",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
} ],
"responses" : {
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/internalStats" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get the internal stats for the topic.",
"description" : "",
"operationId" : "getInternalStats",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "metadata",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/PersistentTopicInternalStats"
}
},
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to manage resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "The tenant/namespace/topic does not exist"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/lastMessageId" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Return the last commit message id of topic",
"description" : "",
"operationId" : "getLastMessageId",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Operation is not allowed on the persistent topic"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/ledger/{ledgerId}/entry/{entryId}" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get message by its messageId.",
"description" : "",
"operationId" : "getMessageById",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "ledgerId",
"in" : "path",
"description" : "The ledger id",
"required" : true,
"type" : "integer",
"format" : "int64"
}, {
"name" : "entryId",
"in" : "path",
"description" : "The entry id",
"required" : true,
"type" : "integer",
"format" : "int64"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic, subscription or the message position does not exist"
},
"405" : {
"description" : "Skipping messages on a non-persistent topic is not allowed"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/maxConsumers" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get maxConsumers config for specified topic.",
"description" : "",
"operationId" : "getMaxConsumers",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set maxConsumers config for specified topic.",
"description" : "",
"operationId" : "setMaxConsumers",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "The max consumers of the topic",
"required" : false,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Invalid value of maxConsumers"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Remove maxConsumers config for specified topic.",
"description" : "",
"operationId" : "removeMaxConsumers",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/maxConsumersPerSubscription" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get max consumers per subscription configuration for specified topic.",
"description" : "",
"operationId" : "getMaxConsumersPerSubscription",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set max consumers per subscription configuration for specified topic.",
"description" : "",
"operationId" : "setMaxConsumersPerSubscription",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Dispatch rate for the specified topic",
"required" : false,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Remove max consumers per subscription configuration for specified topic.",
"description" : "",
"operationId" : "removeMaxConsumersPerSubscription",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/maxMessageSize" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get maxMessageSize config for specified topic.",
"description" : "",
"operationId" : "getMaxMessageSize",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set maxMessageSize config for specified topic.",
"description" : "",
"operationId" : "setMaxMessageSize",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "The max message size of the topic",
"required" : false,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Invalid value of maxConsumers"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Remove maxMessageSize config for specified topic.",
"description" : "",
"operationId" : "removeMaxMessageSize",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/maxProducers" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get maxProducers config for specified topic.",
"description" : "",
"operationId" : "getMaxProducers",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set maxProducers config for specified topic.",
"description" : "",
"operationId" : "setMaxProducers",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "The max producers of the topic",
"required" : false,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Invalid value of maxProducers"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Remove maxProducers config for specified topic.",
"description" : "",
"operationId" : "removeMaxProducers",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/maxSubscriptionsPerTopic" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get maxSubscriptionsPerTopic config for specified topic.",
"description" : "",
"operationId" : "getMaxSubscriptionsPerTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set maxSubscriptionsPerTopic config for specified topic.",
"description" : "",
"operationId" : "setMaxSubscriptionsPerTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "The max subscriptions of the topic",
"required" : false,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Invalid value of maxSubscriptionsPerTopic"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Remove maxSubscriptionsPerTopic config for specified topic.",
"description" : "",
"operationId" : "removeMaxSubscriptionsPerTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/maxUnackedMessagesOnConsumer" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get max unacked messages per consumer config on a topic.",
"description" : "",
"operationId" : "getMaxUnackedMessagesOnConsumer",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
},
"500" : {
"description" : "Internal server error"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set max unacked messages per consumer config on a topic.",
"description" : "",
"operationId" : "setMaxUnackedMessagesOnConsumer",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Max unacked messages on consumer policies for the specified topic",
"required" : false,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Delete max unacked messages per consumer config on a topic.",
"description" : "",
"operationId" : "deleteMaxUnackedMessagesOnConsumer",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/maxUnackedMessagesOnSubscription" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get max unacked messages per subscription config on a topic.",
"description" : "",
"operationId" : "getMaxUnackedMessagesOnSubscription",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
},
"500" : {
"description" : "Internal server error"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set max unacked messages per subscription config on a topic.",
"description" : "",
"operationId" : "setMaxUnackedMessagesOnSubscription",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Max unacked messages on subscription policies for the specified topic",
"required" : false,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Delete max unacked messages per subscription config on a topic.",
"description" : "",
"operationId" : "deleteMaxUnackedMessagesOnSubscription",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/messageTTL" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get message TTL in seconds for a topic",
"description" : "",
"operationId" : "getMessageTTL",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, enable the topic level policy and retry"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set message TTL in seconds for a topic",
"description" : "",
"operationId" : "setMessageTTL",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "messageTTL",
"in" : "query",
"description" : "TTL in seconds for the specified namespace",
"required" : true,
"type" : "integer",
"format" : "int32"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Not authenticate to perform the request or policy is read only"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, enable the topic level policy and retry"
},
"412" : {
"description" : "Invalid message TTL value"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Remove message TTL in seconds for a topic",
"description" : "",
"operationId" : "removeMessageTTL",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Not authenticate to perform the request or policy is read only"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, enable the topic level policy and retry"
},
"412" : {
"description" : "Invalid message TTL value"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/messageid/{timestamp}" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get message ID published at or just after this absolute timestamp (in ms).",
"description" : "",
"operationId" : "getMessageIdByTimestamp",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "timestamp",
"in" : "path",
"description" : "Specify the timestamp",
"required" : true,
"type" : "integer",
"format" : "int64"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic is not non-partitioned and persistent"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/offload" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Offload a prefix of a topic to long term storage",
"description" : "",
"operationId" : "offloadStatus",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Operation is not allowed on the persistent topic"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
},
"put" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Offload a prefix of a topic to long term storage",
"description" : "",
"operationId" : "triggerOffload",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"400" : {
"description" : "Message ID is null"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Operation is not allowed on the persistent topic"
},
"409" : {
"description" : "Offload already running"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/offloadPolicies" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get offload policies on a topic.",
"description" : "",
"operationId" : "getOffloadPolicies",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
},
"500" : {
"description" : "Internal server error"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set offload policies on a topic.",
"description" : "",
"operationId" : "setOffloadPolicies",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Offload policies for the specified topic",
"required" : false,
"schema" : {
"$ref" : "#/definitions/OffloadPoliciesImpl"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Delete offload policies on a topic.",
"description" : "",
"operationId" : "removeOffloadPolicies",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/partitioned-stats" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get the stats for the partitioned topic.",
"description" : "",
"operationId" : "getPartitionedStats",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "perPartition",
"in" : "query",
"description" : "Get per partition stats",
"required" : false,
"type" : "boolean",
"default" : true
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "getPreciseBacklog",
"in" : "query",
"description" : "If return precise backlog or imprecise backlog",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "subscriptionBacklogSize",
"in" : "query",
"description" : "If return backlog size for each subscription, require locking on ledger so be careful not to use when there's heavy traffic.",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "getEarliestTimeInBacklog",
"in" : "query",
"description" : "If return the earliest time in backlog",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"412" : {
"description" : "Partitioned topic name is invalid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/partitions" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get partitioned topic metadata.",
"description" : "",
"operationId" : "getPartitionedMetadata",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "checkAllowAutoCreation",
"in" : "query",
"description" : "Is check configuration required to automatically create topic",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to manage resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "The tenant/namespace/topic does not exist"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate cluster configuration"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Increment partitions of an existing partitioned topic.",
"description" : "It only increments partitions of existing non-global partitioned-topic",
"operationId" : "updatePartitionedTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "updateLocalTopicOnly",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "force",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "The number of partitions for the topic",
"required" : true,
"schema" : {
"type" : "integer",
"format" : "int32",
"default" : 0
}
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant does not exist"
},
"406" : {
"description" : "The number of partitions should be more than 0 and less than or equal to maxNumPartitionsPerPartitionedTopic"
},
"409" : {
"description" : "Partitioned topic does not exist"
},
"412" : {
"description" : "Partitioned topic name is invalid"
},
"500" : {
"description" : "Internal server error"
}
}
},
"put" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Create a partitioned topic.",
"description" : "It needs to be called before creating a producer on a partitioned topic.",
"operationId" : "createPartitionedTopic",
"consumes" : [ "application/vnd.partitioned-topic-metadata+json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "The metadata for the topic",
"required" : true,
"schema" : {
"$ref" : "#/definitions/PartitionedTopicMetadata"
}
}, {
"name" : "createLocalTopicOnly",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant does not exist"
},
"406" : {
"description" : "The number of partitions should be more than 0 and less than or equal to maxNumPartitionsPerPartitionedTopic"
},
"409" : {
"description" : "Partitioned topic already exist"
},
"412" : {
"description" : "Failed Reason : Name is invalid or Namespace does not have any clusters configured"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
},
"delete" : {
"tags" : [ "non-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" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "force",
"in" : "query",
"description" : "Stop all producer/consumer/replicator and delete topic forcefully",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Partitioned topic does not exist"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Partitioned topic name is invalid"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/permissions" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get permissions on a topic.",
"description" : "Retrieve the effective permissions for a topic. These permissions are defined by the permissions set at thenamespace level combined (union) with any eventual specific permission set on the topic.",
"operationId" : "getPermissionsOnTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
} ],
"responses" : {
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "tenant/namespace/topic doesn't exit"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/permissions/{role}" : {
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Grant a new permission to a role on a single topic.",
"description" : "",
"operationId" : "grantPermissionsOnTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "role",
"in" : "path",
"description" : "Client role to which grant permissions",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Actions to be granted (produce,functions,consume)",
"required" : false,
"schema" : {
"type" : "array",
"items" : {
"type" : "string",
"enum" : [ "produce", "consume", "functions", "sources", "sinks", "packages" ]
}
}
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "tenant/namespace/topic doesn't exit"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Revoke permissions on a topic.",
"description" : "Revoke permissions to a role on a single topic. If the permission was not set at the topiclevel, but rather at the namespace level, this operation will return an error (HTTP status code 412).",
"operationId" : "revokePermissionsOnTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "role",
"in" : "path",
"description" : "Client role to which grant permissions",
"required" : true,
"type" : "string"
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "tenant/namespace/topic doesn't exit"
},
"412" : {
"description" : "Permissions are not set at the topic level"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/persistence" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get configuration of persistence policies for specified topic.",
"description" : "",
"operationId" : "getPersistence",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set configuration of persistence policies for specified topic.",
"description" : "",
"operationId" : "setPersistence",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Bookkeeper persistence policies for specified topic",
"required" : false,
"schema" : {
"$ref" : "#/definitions/PersistencePolicies"
}
} ],
"responses" : {
"400" : {
"description" : "Invalid persistence policies"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Remove configuration of persistence policies for specified topic.",
"description" : "",
"operationId" : "removePersistence",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/publishRate" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get publish rate configuration for specified topic.",
"description" : "",
"operationId" : "getPublishRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set message publish rate configuration for specified topic.",
"description" : "",
"operationId" : "setPublishRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Dispatch rate for the specified topic",
"required" : false,
"schema" : {
"$ref" : "#/definitions/PublishRate"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Remove message publish rate configuration for specified topic.",
"description" : "",
"operationId" : "removePublishRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/replication" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get the replication clusters for a topic",
"description" : "",
"operationId" : "getReplicationClusters",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, enable the topic level policy and retry"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set the replication clusters for a topic.",
"description" : "",
"operationId" : "setReplicationClusters",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "List of replication clusters",
"required" : true,
"schema" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Topic is not global or invalid cluster ids"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Remove the replication clusters from a topic.",
"description" : "",
"operationId" : "removeReplicationClusters",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "backlogQuotaType",
"in" : "query",
"required" : false,
"type" : "string",
"enum" : [ "destination_storage", "message_age" ]
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/replicatorDispatchRate" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get replicatorDispatchRate config for specified topic.",
"description" : "",
"operationId" : "getReplicatorDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set replicatorDispatchRate config for specified topic.",
"description" : "",
"operationId" : "setReplicatorDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Replicator dispatch rate of the topic",
"required" : false,
"schema" : {
"$ref" : "#/definitions/DispatchRateImpl"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Invalid value of replicatorDispatchRate"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Remove replicatorDispatchRate config for specified topic.",
"description" : "",
"operationId" : "removeReplicatorDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/retention" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get retention configuration for specified topic.",
"description" : "",
"operationId" : "getRetention",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set retention configuration for specified topic.",
"description" : "",
"operationId" : "setRetention",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Retention policies for the specified namespace",
"required" : false,
"schema" : {
"$ref" : "#/definitions/RetentionPolicies"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Retention Quota must exceed backlog quota"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Remove retention configuration for specified topic.",
"description" : "",
"operationId" : "removeRetention",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"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" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Retention Quota must exceed backlog quota"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/schemaCompatibilityStrategy" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get schema compatibility strategy on a topic",
"description" : "",
"operationId" : "getSchemaCompatibilityStrategy",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the cluster",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Operation not allowed on persistent topic"
}
}
},
"put" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set schema compatibility strategy on a topic",
"description" : "",
"operationId" : "setSchemaCompatibilityStrategy",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Strategy used to check the compatibility of new schema",
"required" : false,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Operation not allowed on persistent topic"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Remove schema compatibility strategy on a topic",
"description" : "",
"operationId" : "removeSchemaCompatibilityStrategy",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Strategy used to check the compatibility of new schema",
"required" : false,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Operation not allowed on persistent topic"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/stats" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get the stats for the topic.",
"description" : "",
"operationId" : "getStats",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "getPreciseBacklog",
"in" : "query",
"description" : "If return precise backlog or imprecise backlog",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "subscriptionBacklogSize",
"in" : "query",
"description" : "If return backlog size for each subscription, require locking on ledger so be careful not to use when there's heavy traffic.",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "getEarliestTimeInBacklog",
"in" : "query",
"description" : "If return time of the earliest message in backlog",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/NonPersistentTopicStats"
}
},
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to manage resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "The tenant/namespace/topic does not exist"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/subscribeRate" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get subscribe rate configuration for specified topic.",
"description" : "",
"operationId" : "getSubscribeRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set subscribe rate configuration for specified topic.",
"description" : "",
"operationId" : "setSubscribeRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Subscribe rate for the specified topic",
"required" : false,
"schema" : {
"$ref" : "#/definitions/SubscribeRate"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Remove subscribe rate configuration for specified topic.",
"description" : "",
"operationId" : "removeSubscribeRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Subscribe rate for the specified topic",
"required" : false,
"schema" : {
"$ref" : "#/definitions/SubscribeRate"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}" : {
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Delete a subscription.",
"description" : "The subscription cannot be deleted if delete is not forcefully and there are any active consumers attached to it. Force delete ignores connected consumers and deletes subscription by explicitly closing them.",
"operationId" : "deleteSubscription",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"description" : "Subscription to be deleted",
"required" : true,
"type" : "string"
}, {
"name" : "force",
"in" : "query",
"description" : "Disconnect and close all consumers and delete subscription forcefully",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"412" : {
"description" : "Subscription has active consumers"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/expireMessages" : {
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Expiry messages on a topic subscription.",
"description" : "",
"operationId" : "expireTopicMessages",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"description" : "Subscription to be Expiry messages on",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "messageId",
"description" : "messageId to reset back to (ledgerId:entryId)",
"required" : false,
"schema" : {
"$ref" : "#/definitions/ResetCursorData"
}
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic or subscription does not exist"
},
"405" : {
"description" : "Expiry messages on a non-persistent topic is not allowed"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/expireMessages/{expireTimeInSeconds}" : {
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Expiry messages on a topic subscription.",
"description" : "",
"operationId" : "expireTopicMessages",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"description" : "Subscription to be Expiry messages on",
"required" : true,
"type" : "string"
}, {
"name" : "expireTimeInSeconds",
"in" : "path",
"description" : "Expires beyond the specified number of seconds",
"required" : true,
"type" : "integer",
"default" : 0,
"format" : "int32"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic or subscription does not exist"
},
"405" : {
"description" : "Expiry messages on a non-persistent topic is not allowed"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/position/{messagePosition}" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Peek nth message on a topic subscription.",
"description" : "",
"operationId" : "peekNthMessage",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"description" : "Subscribed message expired",
"required" : true,
"type" : "string"
}, {
"name" : "messagePosition",
"in" : "path",
"description" : "The number of messages (default 1)",
"required" : true,
"type" : "integer",
"default" : 1,
"format" : "int32"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic, subscription or the message position does not exist"
},
"405" : {
"description" : "Skipping messages on a non-persistent topic is not allowed"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/replicatedSubscriptionStatus" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get replicated subscription status on a topic.",
"description" : "",
"operationId" : "getReplicatedSubscriptionStatus",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"description" : "Name of subscription",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"401" : {
"description" : "Don't have permission to administrate resources"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"412" : {
"description" : "Can't find owner for topic"
},
"500" : {
"description" : "Internal server error"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Enable or disable a replicated subscription on a topic.",
"description" : "",
"operationId" : "setReplicatedSubscriptionStatus",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"description" : "Name of subscription",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Whether to enable replicated subscription",
"required" : true,
"schema" : {
"type" : "boolean"
}
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant or subscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic or subscription does not exist"
},
"405" : {
"description" : "Operation not allowed on this topic"
},
"412" : {
"description" : "Can't find owner for topic"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/resetcursor" : {
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Reset subscription to message position closest to given position.",
"description" : "It fence cursor and disconnects all active consumers before reseting cursor.",
"operationId" : "resetCursorOnPosition",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"description" : "Subscription to reset position on",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "messageId",
"description" : "messageId to reset back to (ledgerId:entryId)",
"required" : false,
"schema" : {
"$ref" : "#/definitions/ResetCursorData"
}
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic/Subscription does not exist"
},
"405" : {
"description" : "Not supported for partitioned topics"
},
"412" : {
"description" : "Unable to find position for position specified"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/resetcursor/{timestamp}" : {
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Reset subscription to message position closest to absolute timestamp (in ms).",
"description" : "It fence cursor and disconnects all active consumers before reseting cursor.",
"operationId" : "resetCursor",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"description" : "Subscription to reset position on",
"required" : true,
"type" : "string"
}, {
"name" : "timestamp",
"in" : "path",
"description" : "the timestamp to reset back",
"required" : true,
"type" : "integer",
"format" : "int64"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic/Subscription does not exist"
},
"405" : {
"description" : "Method Not Allowed"
},
"412" : {
"description" : "Failed to reset cursor on subscription or Unable to find position for timestamp specified"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/skip/{numMessages}" : {
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Skipping messages on a topic subscription.",
"description" : "",
"operationId" : "skipMessages",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"description" : "Name of subscription",
"required" : true,
"type" : "string"
}, {
"name" : "numMessages",
"in" : "path",
"description" : "The number of messages to skip",
"required" : true,
"type" : "integer",
"default" : 0,
"format" : "int32"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic or subscription does not exist"
},
"405" : {
"description" : "Skipping messages on a partitioned topic is not allowed"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/skip_all" : {
"post" : {
"tags" : [ "non-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" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"description" : "Name of subscription",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic or subscription does not exist"
},
"405" : {
"description" : "Operation not allowed on non-persistent topic"
},
"412" : {
"description" : "Can't find owner for topic"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/subscription/{subscriptionName}" : {
"put" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Create a subscription on the topic.",
"description" : "Creates a subscription on the topic at the specified message id",
"operationId" : "createSubscription",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "subscriptionName",
"in" : "path",
"description" : "Subscription to create position on",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "messageId",
"description" : "messageId where to create the subscription. It can be 'latest', 'earliest' or (ledgerId:entryId)",
"required" : false,
"schema" : {
"$ref" : "#/definitions/ResetCursorData"
}
}, {
"name" : "replicated",
"in" : "query",
"description" : "Is replicated required to perform this operation",
"required" : false,
"type" : "boolean"
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"400" : {
"description" : "Create subscription on non persistent topic is not supported"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic/Subscription does not exist"
},
"405" : {
"description" : "Not supported for partitioned topics"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/subscriptionDispatchRate" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get subscription message dispatch rate configuration for specified topic.",
"description" : "",
"operationId" : "getSubscriptionDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set subscription message dispatch rate configuration for specified topic.",
"description" : "",
"operationId" : "setSubscriptionDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Subscription message dispatch rate for the specified topic",
"required" : false,
"schema" : {
"$ref" : "#/definitions/DispatchRateImpl"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Remove subscription message dispatch rate configuration for specified topic.",
"description" : "",
"operationId" : "removeSubscriptionDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/subscriptionTypesEnabled" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get is enable sub type fors specified topic.",
"description" : "",
"operationId" : "getSubscriptionTypesEnabled",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"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" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set is enable sub types for specified topic",
"description" : "",
"operationId" : "setSubscriptionTypesEnabled",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Enable sub types for the specified topic",
"required" : false,
"schema" : {
"type" : "array",
"items" : {
"type" : "string",
"enum" : [ "Exclusive", "Shared", "Failover", "Key_Shared" ]
}
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Remove subscription types enabled for specified topic.",
"description" : "",
"operationId" : "removeSubscriptionTypesEnabled",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"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" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/subscriptions" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get the list of persistent subscriptions for a given topic.",
"description" : "",
"operationId" : "getSubscriptions",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/terminate" : {
"post" : {
"tags" : [ "non-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" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/MessageId"
}
},
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Termination of a partitioned topic is not allowed"
},
"406" : {
"description" : "Need to provide a persistent topic name"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/terminate/partitions" : {
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Terminate all partitioned 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" : "terminatePartitionedTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Termination of a non-partitioned topic is not allowed"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/truncate" : {
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Truncate a topic.",
"description" : "NonPersistentTopic does not support truncate.",
"operationId" : "truncateTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"412" : {
"description" : "NonPersistentTopic does not support truncate."
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/unload" : {
"put" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Unload a topic",
"description" : "",
"operationId" : "unloadTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "This operation requires super-user access"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "The tenant/namespace/topic does not exist"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/non-persistent/{tenant}/{namespace}/{topic}/{subName}/dispatchRate" : {
"get" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Get message dispatch rate configuration for specified subscription.",
"description" : "",
"operationId" : "getSubscriptionLevelDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Set message dispatch rate configuration for specified subscription.",
"description" : "",
"operationId" : "setSubscriptionLevelDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Subscription message dispatch rate for the specified topic",
"required" : false,
"schema" : {
"$ref" : "#/definitions/DispatchRateImpl"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "non-persistent topic" ],
"summary" : "Remove message dispatch rate configuration for specified subscription.",
"description" : "",
"operationId" : "removeSubscriptionLevelDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/persistent/{tenant}/{namespace}" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get the list of topics under a namespace.",
"description" : "",
"operationId" : "getList",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "bundle",
"in" : "query",
"description" : "Specify the bundle name",
"required" : false,
"type" : "string"
}, {
"name" : "includeSystemTopic",
"in" : "query",
"description" : "Include system topic",
"required" : false,
"type" : "boolean"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin or operate permission on the namespacee"
},
"404" : {
"description" : "tenant/namespace/topic doesn't exit"
},
"412" : {
"description" : "Namespace name is not valid"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/persistent/{tenant}/{namespace}/partitioned" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get the list of partitioned topics under a namespace.",
"description" : "",
"operationId" : "getPartitionedTopicList",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "includeSystemTopic",
"in" : "query",
"description" : "Include system topic",
"required" : false,
"type" : "boolean"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin or operate permission on the namespace"
},
"404" : {
"description" : "tenant/namespace/topic doesn't exit"
},
"412" : {
"description" : "Namespace name is not valid"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}" : {
"put" : {
"tags" : [ "persistent topic" ],
"summary" : "Create a non-partitioned topic.",
"description" : "This is the only REST endpoint from which non-partitioned topics could be created.",
"operationId" : "createNonPartitionedTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Key value pair properties for the topic metadata",
"required" : false,
"schema" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
}
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"409" : {
"description" : "Partitioned topic already exist"
},
"412" : {
"description" : "Failed Reason : Name is invalid or Namespace does not have any clusters configured"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Delete a topic.",
"description" : "The topic cannot be deleted if delete is not forcefully and there's any active subscription or producer connected to the it. Force delete ignores connected clients and deletes topic by explicitly closing them.",
"operationId" : "deleteTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "force",
"in" : "query",
"description" : "Stop all producer/consumer/replicator and delete topic forcefully",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"412" : {
"description" : "Topic has active producers/subscriptions"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/all_subscription/expireMessages/{expireTimeInSeconds}" : {
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Expiry messages on all subscriptions of topic.",
"description" : "",
"operationId" : "expireMessagesForAllSubscriptions",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "expireTimeInSeconds",
"in" : "path",
"description" : "Expires beyond the specified number of seconds",
"required" : true,
"type" : "integer",
"default" : 0,
"format" : "int32"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic or subscription does not exist"
},
"405" : {
"description" : "Expiry messages on a non-persistent topic is not allowed"
},
"412" : {
"description" : "Can't find owner for topic"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/backlog" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get estimated backlog for offline topic.",
"description" : "",
"operationId" : "getBacklog",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/PersistentOfflineTopicStats"
}
},
"404" : {
"description" : "Namespace does not exist"
},
"412" : {
"description" : "Topic name is not valid"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/backlogQuota" : {
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set a backlog quota for a topic.",
"description" : "",
"operationId" : "setBacklogQuota",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "backlogQuotaType",
"in" : "query",
"required" : false,
"type" : "string",
"enum" : [ "destination_storage", "message_age" ]
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Specified backlog quota exceeds retention quota. Increase retention quota and retry request"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Remove a backlog quota policy from a topic.",
"description" : "",
"operationId" : "removeBacklogQuota",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "backlogQuotaType",
"in" : "query",
"required" : false,
"type" : "string",
"enum" : [ "destination_storage", "message_age" ]
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/backlogQuotaMap" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get backlog quota map on a topic.",
"description" : "",
"operationId" : "getBacklogQuotaMap",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic policy does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/backlogSize" : {
"put" : {
"tags" : [ "persistent topic" ],
"summary" : "Calculate backlog size by a message ID (in bytes).",
"description" : "",
"operationId" : "getBacklogSizeByMessageId",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/compaction" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get the status of a compaction operation for a topic.",
"description" : "",
"operationId" : "compactionStatus",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/LongRunningProcessStatus"
}
},
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist, or compaction hasn't run"
},
"405" : {
"description" : "Operation is not allowed on the persistent topic"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
},
"put" : {
"tags" : [ "persistent topic" ],
"summary" : "Trigger a compaction operation on a topic.",
"description" : "",
"operationId" : "compact",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Operation is not allowed on the persistent topic"
},
"409" : {
"description" : "Compaction already running"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/compactionThreshold" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get compaction threshold configuration for specified topic.",
"description" : "",
"operationId" : "getCompactionThreshold",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set compaction threshold configuration for specified topic.",
"description" : "",
"operationId" : "setCompactionThreshold",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Dispatch rate for the specified topic",
"required" : false,
"schema" : {
"type" : "integer",
"format" : "int64"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Remove compaction threshold configuration for specified topic.",
"description" : "",
"operationId" : "removeCompactionThreshold",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/createMissedPartitions" : {
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Create missed partitions of an existing partitioned topic.",
"description" : "",
"operationId" : "createMissedPartitions",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant does not exist"
},
"409" : {
"description" : "Partitioned topic does not exist"
},
"412" : {
"description" : "Partitioned topic name is invalid"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/deduplicationEnabled" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get deduplication configuration of a topic.",
"description" : "",
"operationId" : "getDeduplication",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set deduplication enabled on a topic.",
"description" : "",
"operationId" : "setDeduplication",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "DeduplicationEnabled policies for the specified topic",
"required" : false,
"schema" : {
"type" : "boolean"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Remove deduplication configuration for specified topic.",
"description" : "",
"operationId" : "removeDeduplication",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/deduplicationSnapshotInterval" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get deduplicationSnapshotInterval config on a topic.",
"description" : "",
"operationId" : "getDeduplicationSnapshotInterval",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
},
"500" : {
"description" : "Internal server error"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set deduplicationSnapshotInterval config on a topic.",
"description" : "",
"operationId" : "setDeduplicationSnapshotInterval",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Interval to take deduplication snapshot for the specified topic",
"required" : false,
"schema" : {
"type" : "integer",
"format" : "int32"
}
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Delete deduplicationSnapshotInterval config on a topic.",
"description" : "",
"operationId" : "deleteDeduplicationSnapshotInterval",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/delayedDelivery" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get delayed delivery messages config on a topic.",
"description" : "",
"operationId" : "getDelayedDeliveryPolicies",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
},
"500" : {
"description" : "Internal server error"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set delayed delivery messages config on a topic.",
"description" : "",
"operationId" : "setDelayedDeliveryPolicies",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Delayed delivery policies for the specified topic",
"required" : false,
"schema" : {
"$ref" : "#/definitions/DelayedDeliveryPolicies"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Set delayed delivery messages config on a topic.",
"description" : "",
"operationId" : "deleteDelayedDeliveryPolicies",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/dispatchRate" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get dispatch rate configuration for specified topic.",
"description" : "",
"operationId" : "getDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set message dispatch rate configuration for specified topic.",
"description" : "",
"operationId" : "setDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Dispatch rate for the specified topic",
"required" : false,
"schema" : {
"$ref" : "#/definitions/DispatchRateImpl"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Remove message dispatch rate configuration for specified topic.",
"description" : "",
"operationId" : "removeDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/examinemessage" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Examine a specific message on a topic by position relative to the earliest or the latest message.",
"description" : "",
"operationId" : "examineMessage",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "initialPosition",
"in" : "query",
"description" : "Relative start position to examine message.It can be 'latest' or 'earliest'",
"required" : false,
"type" : "string",
"default" : "latest",
"enum" : [ "latest", "earliest" ]
}, {
"name" : "messagePosition",
"in" : "query",
"description" : "The position of messages (default 1)",
"required" : false,
"type" : "integer",
"default" : 1,
"format" : "int64"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic, the message position does not exist"
},
"405" : {
"description" : "If given partitioned topic"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/inactiveTopicPolicies" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get inactive topic policies on a topic.",
"description" : "",
"operationId" : "getInactiveTopicPolicies",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
},
"500" : {
"description" : "Internal server error"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set inactive topic policies on a topic.",
"description" : "",
"operationId" : "setInactiveTopicPolicies",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "inactive topic policies for the specified topic",
"required" : false,
"schema" : {
"$ref" : "#/definitions/InactiveTopicPolicies"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Delete inactive topic policies on a topic.",
"description" : "",
"operationId" : "deleteInactiveTopicPolicies",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/internal-info" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get the stored topic metadata.",
"description" : "",
"operationId" : "getManagedLedgerInfo",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
} ],
"responses" : {
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/internalStats" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get the internal stats for the topic.",
"description" : "",
"operationId" : "getInternalStats",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "metadata",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/PersistentTopicInternalStats"
}
},
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/lastMessageId" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Return the last commit message id of topic",
"description" : "",
"operationId" : "getLastMessageId",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Operation is not allowed on the persistent topic"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/ledger/{ledgerId}/entry/{entryId}" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get message by its messageId.",
"description" : "",
"operationId" : "getMessageById",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "ledgerId",
"in" : "path",
"description" : "The ledger id",
"required" : true,
"type" : "integer",
"format" : "int64"
}, {
"name" : "entryId",
"in" : "path",
"description" : "The entry id",
"required" : true,
"type" : "integer",
"format" : "int64"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic, subscription or the message position does not exist"
},
"405" : {
"description" : "Skipping messages on a non-persistent topic is not allowed"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/maxConsumers" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get maxConsumers config for specified topic.",
"description" : "",
"operationId" : "getMaxConsumers",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set maxConsumers config for specified topic.",
"description" : "",
"operationId" : "setMaxConsumers",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "The max consumers of the topic",
"required" : false,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Invalid value of maxConsumers"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Remove maxConsumers config for specified topic.",
"description" : "",
"operationId" : "removeMaxConsumers",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/maxConsumersPerSubscription" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get max consumers per subscription configuration for specified topic.",
"description" : "",
"operationId" : "getMaxConsumersPerSubscription",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set max consumers per subscription configuration for specified topic.",
"description" : "",
"operationId" : "setMaxConsumersPerSubscription",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Dispatch rate for the specified topic",
"required" : false,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Remove max consumers per subscription configuration for specified topic.",
"description" : "",
"operationId" : "removeMaxConsumersPerSubscription",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/maxMessageSize" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get maxMessageSize config for specified topic.",
"description" : "",
"operationId" : "getMaxMessageSize",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set maxMessageSize config for specified topic.",
"description" : "",
"operationId" : "setMaxMessageSize",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "The max message size of the topic",
"required" : false,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Invalid value of maxConsumers"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Remove maxMessageSize config for specified topic.",
"description" : "",
"operationId" : "removeMaxMessageSize",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/maxProducers" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get maxProducers config for specified topic.",
"description" : "",
"operationId" : "getMaxProducers",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set maxProducers config for specified topic.",
"description" : "",
"operationId" : "setMaxProducers",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "The max producers of the topic",
"required" : false,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Invalid value of maxProducers"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Remove maxProducers config for specified topic.",
"description" : "",
"operationId" : "removeMaxProducers",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/maxSubscriptionsPerTopic" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get maxSubscriptionsPerTopic config for specified topic.",
"description" : "",
"operationId" : "getMaxSubscriptionsPerTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set maxSubscriptionsPerTopic config for specified topic.",
"description" : "",
"operationId" : "setMaxSubscriptionsPerTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "The max subscriptions of the topic",
"required" : false,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Invalid value of maxSubscriptionsPerTopic"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Remove maxSubscriptionsPerTopic config for specified topic.",
"description" : "",
"operationId" : "removeMaxSubscriptionsPerTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/maxUnackedMessagesOnConsumer" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get max unacked messages per consumer config on a topic.",
"description" : "",
"operationId" : "getMaxUnackedMessagesOnConsumer",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
},
"500" : {
"description" : "Internal server error"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set max unacked messages per consumer config on a topic.",
"description" : "",
"operationId" : "setMaxUnackedMessagesOnConsumer",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Max unacked messages on consumer policies for the specified topic",
"required" : false,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Delete max unacked messages per consumer config on a topic.",
"description" : "",
"operationId" : "deleteMaxUnackedMessagesOnConsumer",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/maxUnackedMessagesOnSubscription" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get max unacked messages per subscription config on a topic.",
"description" : "",
"operationId" : "getMaxUnackedMessagesOnSubscription",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
},
"500" : {
"description" : "Internal server error"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set max unacked messages per subscription config on a topic.",
"description" : "",
"operationId" : "setMaxUnackedMessagesOnSubscription",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Max unacked messages on subscription policies for the specified topic",
"required" : false,
"schema" : {
"type" : "integer",
"format" : "int32"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Delete max unacked messages per subscription config on a topic.",
"description" : "",
"operationId" : "deleteMaxUnackedMessagesOnSubscription",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/messageTTL" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get message TTL in seconds for a topic",
"description" : "",
"operationId" : "getMessageTTL",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, enable the topic level policy and retry"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set message TTL in seconds for a topic",
"description" : "",
"operationId" : "setMessageTTL",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "messageTTL",
"in" : "query",
"description" : "TTL in seconds for the specified namespace",
"required" : true,
"type" : "integer",
"format" : "int32"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Not authenticate to perform the request or policy is read only"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, enable the topic level policy and retry"
},
"412" : {
"description" : "Invalid message TTL value"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Remove message TTL in seconds for a topic",
"description" : "",
"operationId" : "removeMessageTTL",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Not authenticate to perform the request or policy is read only"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, enable the topic level policy and retry"
},
"412" : {
"description" : "Invalid message TTL value"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/messageid/{timestamp}" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get message ID published at or just after this absolute timestamp (in ms).",
"description" : "",
"operationId" : "getMessageIdByTimestamp",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "timestamp",
"in" : "path",
"description" : "Specify the timestamp",
"required" : true,
"type" : "integer",
"format" : "int64"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic is not non-partitioned and persistent"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/offload" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Offload a prefix of a topic to long term storage",
"description" : "",
"operationId" : "offloadStatus",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Operation is not allowed on the persistent topic"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
},
"put" : {
"tags" : [ "persistent topic" ],
"summary" : "Offload a prefix of a topic to long term storage",
"description" : "",
"operationId" : "triggerOffload",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"400" : {
"description" : "Message ID is null"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Operation is not allowed on the persistent topic"
},
"409" : {
"description" : "Offload already running"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/offloadPolicies" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get offload policies on a topic.",
"description" : "",
"operationId" : "getOffloadPolicies",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
},
"500" : {
"description" : "Internal server error"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set offload policies on a topic.",
"description" : "",
"operationId" : "setOffloadPolicies",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Offload policies for the specified topic",
"required" : false,
"schema" : {
"$ref" : "#/definitions/OffloadPoliciesImpl"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Delete offload policies on a topic.",
"description" : "",
"operationId" : "removeOffloadPolicies",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant or cluster or namespace or topic doesn't exist"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/partitioned-stats" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get the stats for the partitioned topic.",
"description" : "",
"operationId" : "getPartitionedStats",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "perPartition",
"in" : "query",
"description" : "Get per partition stats",
"required" : false,
"type" : "boolean",
"default" : true
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "getPreciseBacklog",
"in" : "query",
"description" : "If return precise backlog or imprecise backlog",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "subscriptionBacklogSize",
"in" : "query",
"description" : "If return backlog size for each subscription, require locking on ledger so be careful not to use when there's heavy traffic.",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "getEarliestTimeInBacklog",
"in" : "query",
"description" : "If return the earliest time in backlog",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"412" : {
"description" : "Partitioned topic name is invalid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/partitions" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get partitioned topic metadata.",
"description" : "",
"operationId" : "getPartitionedMetadata",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "checkAllowAutoCreation",
"in" : "query",
"description" : "Is check configuration required to automatically create topic",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Partitioned topic does not exist"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Partitioned topic name is invalid"
},
"500" : {
"description" : "Internal server error"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Increment partitions of an existing partitioned topic.",
"description" : "It only increments partitions of existing non-global partitioned-topic",
"operationId" : "updatePartitionedTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "updateLocalTopicOnly",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "force",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "The number of partitions for the topic",
"required" : true,
"schema" : {
"type" : "integer",
"format" : "int32",
"default" : 0
}
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant does not exist"
},
"406" : {
"description" : "The number of partitions should be more than 0 and less than or equal to maxNumPartitionsPerPartitionedTopic"
},
"409" : {
"description" : "Partitioned topic does not exist"
},
"412" : {
"description" : "Partitioned topic name is invalid"
},
"500" : {
"description" : "Internal server error"
}
}
},
"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",
"consumes" : [ "application/vnd.partitioned-topic-metadata+json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "The metadata for the topic",
"required" : true,
"schema" : {
"$ref" : "#/definitions/PartitionedTopicMetadata"
}
}, {
"name" : "createLocalTopicOnly",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Tenant does not exist"
},
"406" : {
"description" : "The number of partitions should be more than 0 and less than or equal to maxNumPartitionsPerPartitionedTopic"
},
"409" : {
"description" : "Partitioned topic already exist"
},
"412" : {
"description" : "Failed Reason : Name is invalid or Namespace does not have any clusters configured"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
},
"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" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "force",
"in" : "query",
"description" : "Stop all producer/consumer/replicator and delete topic forcefully",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Partitioned topic does not exist"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Partitioned topic name is invalid"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/permissions" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get permissions on a topic.",
"description" : "Retrieve the effective permissions for a topic. These permissions are defined by the permissions set at thenamespace level combined (union) with any eventual specific permission set on the topic.",
"operationId" : "getPermissionsOnTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
} ],
"responses" : {
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "tenant/namespace/topic doesn't exit"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/permissions/{role}" : {
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Grant a new permission to a role on a single topic.",
"description" : "",
"operationId" : "grantPermissionsOnTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "role",
"in" : "path",
"description" : "Client role to which grant permissions",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Actions to be granted (produce,functions,consume)",
"required" : false,
"schema" : {
"type" : "array",
"items" : {
"type" : "string",
"enum" : [ "produce", "consume", "functions", "sources", "sinks", "packages" ]
}
}
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "tenant/namespace/topic doesn't exit"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Revoke permissions on a topic.",
"description" : "Revoke permissions to a role on a single topic. If the permission was not set at the topiclevel, but rather at the namespace level, this operation will return an error (HTTP status code 412).",
"operationId" : "revokePermissionsOnTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "role",
"in" : "path",
"description" : "Client role to which grant permissions",
"required" : true,
"type" : "string"
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "tenant/namespace/topic doesn't exit"
},
"412" : {
"description" : "Permissions are not set at the topic level"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/persistence" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get configuration of persistence policies for specified topic.",
"description" : "",
"operationId" : "getPersistence",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set configuration of persistence policies for specified topic.",
"description" : "",
"operationId" : "setPersistence",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Bookkeeper persistence policies for specified topic",
"required" : false,
"schema" : {
"$ref" : "#/definitions/PersistencePolicies"
}
} ],
"responses" : {
"400" : {
"description" : "Invalid persistence policies"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Remove configuration of persistence policies for specified topic.",
"description" : "",
"operationId" : "removePersistence",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/publishRate" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get publish rate configuration for specified topic.",
"description" : "",
"operationId" : "getPublishRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set message publish rate configuration for specified topic.",
"description" : "",
"operationId" : "setPublishRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Dispatch rate for the specified topic",
"required" : false,
"schema" : {
"$ref" : "#/definitions/PublishRate"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Remove message publish rate configuration for specified topic.",
"description" : "",
"operationId" : "removePublishRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/replication" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get the replication clusters for a topic",
"description" : "",
"operationId" : "getReplicationClusters",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, enable the topic level policy and retry"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set the replication clusters for a topic.",
"description" : "",
"operationId" : "setReplicationClusters",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "List of replication clusters",
"required" : true,
"schema" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Topic is not global or invalid cluster ids"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Remove the replication clusters from a topic.",
"description" : "",
"operationId" : "removeReplicationClusters",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "backlogQuotaType",
"in" : "query",
"required" : false,
"type" : "string",
"enum" : [ "destination_storage", "message_age" ]
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/replicatorDispatchRate" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get replicatorDispatchRate config for specified topic.",
"description" : "",
"operationId" : "getReplicatorDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set replicatorDispatchRate config for specified topic.",
"description" : "",
"operationId" : "setReplicatorDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Replicator dispatch rate of the topic",
"required" : false,
"schema" : {
"$ref" : "#/definitions/DispatchRateImpl"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Invalid value of replicatorDispatchRate"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Remove replicatorDispatchRate config for specified topic.",
"description" : "",
"operationId" : "removeReplicatorDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/retention" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get retention configuration for specified topic.",
"description" : "",
"operationId" : "getRetention",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set retention configuration for specified topic.",
"description" : "",
"operationId" : "setRetention",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Retention policies for the specified namespace",
"required" : false,
"schema" : {
"$ref" : "#/definitions/RetentionPolicies"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Retention Quota must exceed backlog quota"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Remove retention configuration for specified topic.",
"description" : "",
"operationId" : "removeRetention",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"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" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Retention Quota must exceed backlog quota"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/schemaCompatibilityStrategy" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get schema compatibility strategy on a topic",
"description" : "",
"operationId" : "getSchemaCompatibilityStrategy",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the cluster",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Operation not allowed on persistent topic"
}
}
},
"put" : {
"tags" : [ "persistent topic" ],
"summary" : "Set schema compatibility strategy on a topic",
"description" : "",
"operationId" : "setSchemaCompatibilityStrategy",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Strategy used to check the compatibility of new schema",
"required" : false,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Operation not allowed on persistent topic"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Remove schema compatibility strategy on a topic",
"description" : "",
"operationId" : "removeSchemaCompatibilityStrategy",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Strategy used to check the compatibility of new schema",
"required" : false,
"schema" : {
"type" : "string"
}
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Operation not allowed on persistent topic"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/stats" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get the stats for the topic.",
"description" : "",
"operationId" : "getStats",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "getPreciseBacklog",
"in" : "query",
"description" : "If return precise backlog or imprecise backlog",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "subscriptionBacklogSize",
"in" : "query",
"description" : "If return backlog size for each subscription, require locking on ledger so be careful not to use when there's heavy traffic.",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "getEarliestTimeInBacklog",
"in" : "query",
"description" : "If return time of the earliest message in backlog",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/TopicStats"
}
},
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/subscribeRate" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get subscribe rate configuration for specified topic.",
"description" : "",
"operationId" : "getSubscribeRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set subscribe rate configuration for specified topic.",
"description" : "",
"operationId" : "setSubscribeRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Subscribe rate for the specified topic",
"required" : false,
"schema" : {
"$ref" : "#/definitions/SubscribeRate"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Remove subscribe rate configuration for specified topic.",
"description" : "",
"operationId" : "removeSubscribeRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Subscribe rate for the specified topic",
"required" : false,
"schema" : {
"$ref" : "#/definitions/SubscribeRate"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}" : {
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Delete a subscription.",
"description" : "The subscription cannot be deleted if delete is not forcefully and there are any active consumers attached to it. Force delete ignores connected consumers and deletes subscription by explicitly closing them.",
"operationId" : "deleteSubscription",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"description" : "Subscription to be deleted",
"required" : true,
"type" : "string"
}, {
"name" : "force",
"in" : "query",
"description" : "Disconnect and close all consumers and delete subscription forcefully",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"412" : {
"description" : "Subscription has active consumers"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/expireMessages" : {
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Expiry messages on a topic subscription.",
"description" : "",
"operationId" : "expireTopicMessages",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"description" : "Subscription to be Expiry messages on",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "messageId",
"description" : "messageId to reset back to (ledgerId:entryId)",
"required" : false,
"schema" : {
"$ref" : "#/definitions/ResetCursorData"
}
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic or subscription does not exist"
},
"405" : {
"description" : "Expiry messages on a non-persistent topic is not allowed"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/expireMessages/{expireTimeInSeconds}" : {
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Expiry messages on a topic subscription.",
"description" : "",
"operationId" : "expireTopicMessages",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"description" : "Subscription to be Expiry messages on",
"required" : true,
"type" : "string"
}, {
"name" : "expireTimeInSeconds",
"in" : "path",
"description" : "Expires beyond the specified number of seconds",
"required" : true,
"type" : "integer",
"default" : 0,
"format" : "int32"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic or subscription does not exist"
},
"405" : {
"description" : "Expiry messages on a non-persistent topic is not allowed"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/position/{messagePosition}" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Peek nth message on a topic subscription.",
"description" : "",
"operationId" : "peekNthMessage",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"description" : "Subscribed message expired",
"required" : true,
"type" : "string"
}, {
"name" : "messagePosition",
"in" : "path",
"description" : "The number of messages (default 1)",
"required" : true,
"type" : "integer",
"default" : 1,
"format" : "int32"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic, subscription or the message position does not exist"
},
"405" : {
"description" : "Skipping messages on a non-persistent topic is not allowed"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/replicatedSubscriptionStatus" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get replicated subscription status on a topic.",
"description" : "",
"operationId" : "getReplicatedSubscriptionStatus",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"description" : "Name of subscription",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"401" : {
"description" : "Don't have permission to administrate resources"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"412" : {
"description" : "Can't find owner for topic"
},
"500" : {
"description" : "Internal server error"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Enable or disable a replicated subscription on a topic.",
"description" : "",
"operationId" : "setReplicatedSubscriptionStatus",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"description" : "Name of subscription",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Whether to enable replicated subscription",
"required" : true,
"schema" : {
"type" : "boolean"
}
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant or subscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic or subscription does not exist"
},
"405" : {
"description" : "Operation not allowed on this topic"
},
"412" : {
"description" : "Can't find owner for topic"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/resetcursor" : {
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Reset subscription to message position closest to given position.",
"description" : "It fence cursor and disconnects all active consumers before reseting cursor.",
"operationId" : "resetCursorOnPosition",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"description" : "Subscription to reset position on",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "messageId",
"description" : "messageId to reset back to (ledgerId:entryId)",
"required" : false,
"schema" : {
"$ref" : "#/definitions/ResetCursorData"
}
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic/Subscription does not exist"
},
"405" : {
"description" : "Not supported for partitioned topics"
},
"412" : {
"description" : "Unable to find position for position specified"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/resetcursor/{timestamp}" : {
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Reset subscription to message position closest to absolute timestamp (in ms).",
"description" : "It fence cursor and disconnects all active consumers before reseting cursor.",
"operationId" : "resetCursor",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"description" : "Subscription to reset position on",
"required" : true,
"type" : "string"
}, {
"name" : "timestamp",
"in" : "path",
"description" : "the timestamp to reset back",
"required" : true,
"type" : "integer",
"format" : "int64"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic/Subscription does not exist"
},
"405" : {
"description" : "Method Not Allowed"
},
"412" : {
"description" : "Failed to reset cursor on subscription or Unable to find position for timestamp specified"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/subscription/{subName}/skip/{numMessages}" : {
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Skipping messages on a topic subscription.",
"description" : "",
"operationId" : "skipMessages",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"description" : "Name of subscription",
"required" : true,
"type" : "string"
}, {
"name" : "numMessages",
"in" : "path",
"description" : "The number of messages to skip",
"required" : true,
"type" : "integer",
"default" : 0,
"format" : "int32"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic or subscription does not exist"
},
"405" : {
"description" : "Skipping messages on a partitioned topic is not allowed"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/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" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"description" : "Name of subscription",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic or subscription does not exist"
},
"405" : {
"description" : "Operation not allowed on non-persistent topic"
},
"412" : {
"description" : "Can't find owner for topic"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/subscription/{subscriptionName}" : {
"put" : {
"tags" : [ "persistent topic" ],
"summary" : "Create a subscription on the topic.",
"description" : "Creates a subscription on the topic at the specified message id",
"operationId" : "createSubscription",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "subscriptionName",
"in" : "path",
"description" : "Subscription to create position on",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "messageId",
"description" : "messageId where to create the subscription. It can be 'latest', 'earliest' or (ledgerId:entryId)",
"required" : false,
"schema" : {
"$ref" : "#/definitions/ResetCursorData"
}
}, {
"name" : "replicated",
"in" : "query",
"description" : "Is replicated required to perform this operation",
"required" : false,
"type" : "boolean"
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"400" : {
"description" : "Create subscription on non persistent topic is not supported"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic/Subscription does not exist"
},
"405" : {
"description" : "Not supported for partitioned topics"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/subscriptionDispatchRate" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get subscription message dispatch rate configuration for specified topic.",
"description" : "",
"operationId" : "getSubscriptionDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set subscription message dispatch rate configuration for specified topic.",
"description" : "",
"operationId" : "setSubscriptionDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Subscription message dispatch rate for the specified topic",
"required" : false,
"schema" : {
"$ref" : "#/definitions/DispatchRateImpl"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Remove subscription message dispatch rate configuration for specified topic.",
"description" : "",
"operationId" : "removeSubscriptionDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/subscriptionTypesEnabled" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get is enable sub type fors specified topic.",
"description" : "",
"operationId" : "getSubscriptionTypesEnabled",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"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" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set is enable sub types for specified topic",
"description" : "",
"operationId" : "setSubscriptionTypesEnabled",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Enable sub types for the specified topic",
"required" : false,
"schema" : {
"type" : "array",
"items" : {
"type" : "string",
"enum" : [ "Exclusive", "Shared", "Failover", "Key_Shared" ]
}
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Remove subscription types enabled for specified topic.",
"description" : "",
"operationId" : "removeSubscriptionTypesEnabled",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"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" : "Topic level policy is disabled, to enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/subscriptions" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get the list of persistent subscriptions for a given topic.",
"description" : "",
"operationId" : "getSubscriptions",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/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" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/MessageId"
}
},
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Termination of a partitioned topic is not allowed"
},
"406" : {
"description" : "Need to provide a persistent topic name"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/terminate/partitions" : {
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Terminate all partitioned 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" : "terminatePartitionedTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"401" : {
"description" : "Don't have permission to administrate resources on this tenant orsubscriber is not authorized to access this operation"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Termination of a non-partitioned topic is not allowed"
},
"412" : {
"description" : "Topic name is not valid"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/truncate" : {
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Truncate a topic.",
"description" : "The truncate operation will move all cursors to the end of the topic and delete all inactive ledgers.",
"operationId" : "truncateTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"500" : {
"description" : "Internal server error"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/unload" : {
"put" : {
"tags" : [ "persistent topic" ],
"summary" : "Unload a topic",
"description" : "",
"operationId" : "unloadTopic",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "Specify the tenant",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Specify the namespace",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"description" : "Specify topic name",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"401" : {
"description" : "Don't have permission to administrate resources on this tenant"
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"409" : {
"description" : "Concurrent modification"
},
"412" : {
"description" : "Topic name is not valid or can't find owner for topic"
},
"500" : {
"description" : "Internal server error"
},
"503" : {
"description" : "Failed to validate global cluster configuration"
}
}
}
},
"/persistent/{tenant}/{namespace}/{topic}/{subName}/dispatchRate" : {
"get" : {
"tags" : [ "persistent topic" ],
"summary" : "Get message dispatch rate configuration for specified subscription.",
"description" : "",
"operationId" : "getSubscriptionLevelDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "applied",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"post" : {
"tags" : [ "persistent topic" ],
"summary" : "Set message dispatch rate configuration for specified subscription.",
"description" : "",
"operationId" : "setSubscriptionLevelDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"in" : "body",
"name" : "body",
"description" : "Subscription message dispatch rate for the specified topic",
"required" : false,
"schema" : {
"$ref" : "#/definitions/DispatchRateImpl"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
},
"delete" : {
"tags" : [ "persistent topic" ],
"summary" : "Remove message dispatch rate configuration for specified subscription.",
"description" : "",
"operationId" : "removeSubscriptionLevelDispatchRate",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "subName",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "isGlobal",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "authoritative",
"in" : "query",
"description" : "Is authentication required to perform this operation",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "Topic does not exist"
},
"405" : {
"description" : "Topic level policy is disabled, please enable the topic level policy and retry"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/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" : "array",
"uniqueItems" : true,
"items" : {
"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" ],
"parameters" : [ {
"in" : "body",
"name" : "body",
"description" : "Default resource quota",
"required" : false,
"schema" : {
"$ref" : "#/definitions/ResourceQuota"
}
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
}
},
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/resource-quotas/{tenant}/{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" : "tenant",
"in" : "path",
"description" : "Tenant name",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Namespace name within the specified tenant",
"required" : true,
"type" : "string"
}, {
"name" : "bundle",
"in" : "path",
"description" : "Namespace bundle range",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/ResourceQuota"
}
},
"307" : {
"description" : "Current broker doesn't serve the namespace"
},
"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" : "tenant",
"in" : "path",
"description" : "Tenant name",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Namespace name within the specified tenant",
"required" : true,
"type" : "string"
}, {
"name" : "bundle",
"in" : "path",
"description" : "Namespace bundle range",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Resource quota for the specified namespace",
"required" : false,
"schema" : {
"$ref" : "#/definitions/ResourceQuota"
}
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace"
},
"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" : "tenant",
"in" : "path",
"description" : "Tenant name",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"description" : "Namespace name within the specified tenant",
"required" : true,
"type" : "string"
}, {
"name" : "bundle",
"in" : "path",
"description" : "Namespace bundle range",
"required" : true,
"type" : "string"
} ],
"responses" : {
"307" : {
"description" : "Current broker doesn't serve the namespace"
},
"403" : {
"description" : "Don't have admin permission"
},
"409" : {
"description" : "Concurrent modification"
}
}
}
},
"/resourcegroups" : {
"get" : {
"tags" : [ "resourcegroups" ],
"summary" : "Get the list of all the resourcegroups.",
"description" : "",
"operationId" : "getResourceGroups",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
}
},
"403" : {
"description" : "Don't have admin permission"
}
}
}
},
"/resourcegroups/{resourcegroup}" : {
"get" : {
"tags" : [ "resourcegroups" ],
"summary" : "Get the rate limiters specified for a resourcegroup.",
"description" : "",
"operationId" : "getResourceGroup",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "resourcegroup",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/ResourceGroup"
}
},
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "ResourceGroup doesn't exist"
}
}
},
"put" : {
"tags" : [ "resourcegroups" ],
"summary" : "Creates a new resourcegroup with the specified rate limiters",
"description" : "",
"operationId" : "createOrUpdateResourceGroup",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "resourcegroup",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "Rate limiters for the resourcegroup",
"required" : false,
"schema" : {
"$ref" : "#/definitions/ResourceGroup"
}
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "cluster doesn't exist"
}
}
},
"delete" : {
"tags" : [ "resourcegroups" ],
"summary" : "Delete a resourcegroup.",
"description" : "",
"operationId" : "deleteResourceGroup",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "resourcegroup",
"in" : "path",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "Don't have admin permission"
},
"404" : {
"description" : "ResourceGroup doesn't exist"
},
"409" : {
"description" : "ResourceGroup is in use"
}
}
}
},
"/schemas/{tenant}/{namespace}/{topic}/compatibility" : {
"post" : {
"tags" : [ "schemas" ],
"summary" : "test the schema compatibility",
"description" : "",
"operationId" : "testCompatibility",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "A JSON value presenting a schema playload. An example of the expected schema can be found down here.",
"required" : false,
"schema" : {
"$ref" : "#/definitions/PostSchemaPayload"
},
"x-examples" : {
"application/json" : "{\"type\": \"STRING\", \"schema\": \"\", \"properties\": { \"key1\" : \"value1\" + } }"
}
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/IsCompatibilityResponse"
}
},
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Client is not authorized or Don't have admin permission"
},
"403" : {
"description" : "Client is not authenticated"
},
"404" : {
"description" : "Tenant or Namespace or Topic doesn't exist"
},
"412" : {
"description" : "Failed to find the ownership for the topic"
},
"500" : {
"description" : "Internal Server Error"
}
}
}
},
"/schemas/{tenant}/{namespace}/{topic}/schema" : {
"get" : {
"tags" : [ "schemas" ],
"summary" : "Get the schema of a topic",
"description" : "",
"operationId" : "getSchema",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/GetSchemaResponse"
}
},
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Client is not authorized or Don't have admin permission"
},
"403" : {
"description" : "Client is not authenticated"
},
"404" : {
"description" : "Tenant or Namespace or Topic doesn't exist; or Schema is not found for this topic"
},
"412" : {
"description" : "Failed to find the ownership for the topic"
},
"500" : {
"description" : "Internal Server Error"
}
}
},
"post" : {
"tags" : [ "schemas" ],
"summary" : "Update the schema of a topic",
"description" : "",
"operationId" : "postSchema",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "A JSON value presenting a schema playload. An example of the expected schema can be found down here.",
"required" : false,
"schema" : {
"$ref" : "#/definitions/PostSchemaPayload"
},
"x-examples" : {
"application/json" : "{\"type\": \"STRING\", \"schema\": \"\", \"properties\": { \"key1\" : \"value1\" + } }"
}
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/PostSchemaResponse"
}
},
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Client is not authorized or Don't have admin permission"
},
"403" : {
"description" : "Client is not authenticated"
},
"404" : {
"description" : "Tenant or Namespace or Topic doesn't exist"
},
"409" : {
"description" : "Incompatible schema"
},
"412" : {
"description" : "Failed to find the ownership for the topic"
},
"422" : {
"description" : "Invalid schema data"
},
"500" : {
"description" : "Internal Server Error"
}
}
},
"delete" : {
"tags" : [ "schemas" ],
"summary" : "Delete the schema of a topic",
"description" : "",
"operationId" : "deleteSchema",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
}, {
"name" : "force",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/DeleteSchemaResponse"
}
},
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Client is not authorized or Don't have admin permission"
},
"403" : {
"description" : "Client is not authenticated"
},
"404" : {
"description" : "Tenant or Namespace or Topic doesn't exist"
},
"412" : {
"description" : "Failed to find the ownership for the topic"
},
"500" : {
"description" : "Internal Server Error"
}
}
}
},
"/schemas/{tenant}/{namespace}/{topic}/schema/{version}" : {
"get" : {
"tags" : [ "schemas" ],
"summary" : "Get the schema of a topic at a given version",
"description" : "",
"operationId" : "getSchema",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "version",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/GetSchemaResponse"
}
},
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Client is not authorized or Don't have admin permission"
},
"403" : {
"description" : "Client is not authenticated"
},
"404" : {
"description" : "Tenant or Namespace or Topic doesn't exist; or Schema is not found for this topic"
},
"412" : {
"description" : "Failed to find the ownership for the topic"
},
"500" : {
"description" : "Internal Server Error"
}
}
}
},
"/schemas/{tenant}/{namespace}/{topic}/schemas" : {
"get" : {
"tags" : [ "schemas" ],
"summary" : "Get the all schemas of a topic",
"description" : "",
"operationId" : "getAllSchemas",
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/GetAllVersionsSchemaResponse"
}
},
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Client is not authorized or Don't have admin permission"
},
"403" : {
"description" : "Client is not authenticated"
},
"404" : {
"description" : "Tenant or Namespace or Topic doesn't exist; or Schema is not found for this topic"
},
"412" : {
"description" : "Failed to find the ownership for the topic"
},
"500" : {
"description" : "Internal Server Error"
}
}
}
},
"/schemas/{tenant}/{namespace}/{topic}/version" : {
"post" : {
"tags" : [ "schemas" ],
"summary" : "get the version of the schema",
"description" : "",
"operationId" : "getVersionBySchema",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "namespace",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"name" : "topic",
"in" : "path",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "A JSON value presenting a schema playload. An example of the expected schema can be found down here.",
"required" : false,
"schema" : {
"$ref" : "#/definitions/PostSchemaPayload"
},
"x-examples" : {
"application/json" : "{\"type\": \"STRING\", \"schema\": \"\", \"properties\": { \"key1\" : \"value1\" + } }"
}
}, {
"name" : "authoritative",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/LongSchemaVersion"
}
},
"307" : {
"description" : "Current broker doesn't serve the namespace of this topic"
},
"401" : {
"description" : "Client is not authorized or Don't have admin permission"
},
"403" : {
"description" : "Client is not authenticated"
},
"404" : {
"description" : "Tenant or Namespace or Topic doesn't exist"
},
"412" : {
"description" : "Failed to find the ownership for the topic"
},
"422" : {
"description" : "Invalid schema data"
},
"500" : {
"description" : "Internal Server Error"
}
}
}
},
"/tenants" : {
"get" : {
"tags" : [ "tenants" ],
"summary" : "Get the list of existing tenants.",
"description" : "",
"operationId" : "getTenants",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"type" : "string"
}
}
},
"403" : {
"description" : "The requester doesn't have admin permissions"
},
"404" : {
"description" : "Tenant doesn't exist"
}
}
}
},
"/tenants/{tenant}" : {
"get" : {
"tags" : [ "tenants" ],
"summary" : "Get the admin configuration for a given tenant.",
"description" : "",
"operationId" : "getTenantAdmin",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "The tenant name",
"required" : true,
"type" : "string"
} ],
"responses" : {
"403" : {
"description" : "The requester doesn't have admin permissions"
},
"404" : {
"description" : "Tenant does not exist"
}
}
},
"post" : {
"tags" : [ "tenants" ],
"summary" : "Update the admins for a tenant.",
"description" : "This operation requires Pulsar super-user privileges.",
"operationId" : "updateTenant",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "The tenant name",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "TenantInfo",
"required" : false,
"schema" : {
"$ref" : "#/definitions/TenantInfo"
}
} ],
"responses" : {
"403" : {
"description" : "The requester doesn't have admin permissions"
},
"404" : {
"description" : "Tenant does not exist"
},
"409" : {
"description" : "Tenant already exists"
},
"412" : {
"description" : "Clusters do not exist"
}
}
},
"put" : {
"tags" : [ "tenants" ],
"summary" : "Create a new tenant.",
"description" : "This operation requires Pulsar super-user privileges.",
"operationId" : "createTenant",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "The tenant name",
"required" : true,
"type" : "string"
}, {
"in" : "body",
"name" : "body",
"description" : "TenantInfo",
"required" : false,
"schema" : {
"$ref" : "#/definitions/TenantInfo"
}
} ],
"responses" : {
"403" : {
"description" : "The requester doesn't have admin permissions"
},
"409" : {
"description" : "Tenant already exists"
},
"412" : {
"description" : "Clusters do not exist"
}
}
},
"delete" : {
"tags" : [ "tenants" ],
"summary" : "Delete a tenant and all namespaces and topics under it.",
"description" : "",
"operationId" : "deleteTenant",
"consumes" : [ "application/json" ],
"produces" : [ "application/json" ],
"parameters" : [ {
"name" : "tenant",
"in" : "path",
"description" : "The tenant name",
"required" : true,
"type" : "string"
}, {
"name" : "force",
"in" : "query",
"required" : false,
"type" : "boolean",
"default" : false
} ],
"responses" : {
"403" : {
"description" : "The requester doesn't have admin permissions"
},
"404" : {
"description" : "Tenant does not exist"
},
"405" : {
"description" : "Broker doesn't allow forced deletion of tenants"
},
"409" : {
"description" : "The tenant still has active namespaces"
}
}
}
},
"/worker-stats/functionsmetrics" : {
"get" : {
"summary" : "Get metrics for all functions owned by worker",
"description" : "Requested should be executed by Monitoring agent on each worker to fetch the metrics",
"operationId" : "getStats",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/WorkerFunctionInstanceStats"
}
}
},
"401" : {
"description" : "Don't have admin permission"
},
"503" : {
"description" : "Worker service is not running"
}
}
}
},
"/worker-stats/metrics" : {
"get" : {
"summary" : "Gets the metrics for Monitoring",
"description" : "Request should be executed by Monitoring agent on each worker to fetch the worker-metrics",
"operationId" : "getMetrics",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/Metrics"
}
}
},
"401" : {
"description" : "Don't have admin permission"
},
"503" : {
"description" : "Worker service is not running"
}
}
}
},
"/worker/assignments" : {
"get" : {
"summary" : "Fetches information about which Pulsar Functions are assigned to which Pulsar clusters",
"description" : "",
"operationId" : "getAssignments",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
}
}
},
"403" : {
"description" : "The requester doesn't have admin permissions"
},
"503" : {
"description" : "Worker service is not running"
}
}
}
},
"/worker/cluster" : {
"get" : {
"summary" : "Fetches information about the Pulsar cluster running Pulsar Functions",
"description" : "",
"operationId" : "getCluster",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/WorkerInfo"
}
}
},
"403" : {
"description" : "The requester doesn't have admin permissions"
},
"503" : {
"description" : "Worker service is not running"
}
}
}
},
"/worker/cluster/leader" : {
"get" : {
"summary" : "Fetches info about the leader node of the Pulsar cluster running Pulsar Functions",
"description" : "",
"operationId" : "getClusterLeader",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/WorkerInfo"
}
},
"403" : {
"description" : "The requester doesn't have admin permissions"
},
"503" : {
"description" : "Worker service is not running"
}
}
}
},
"/worker/cluster/leader/ready" : {
"get" : {
"summary" : "Checks if this node is the leader and is ready to service requests",
"description" : "",
"operationId" : "isLeaderReady",
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "boolean"
}
},
"503" : {
"description" : "Worker service is not running"
}
}
}
},
"/worker/connectors" : {
"get" : {
"summary" : "Fetches a list of supported Pulsar IO connectors currently running in cluster mode",
"description" : "",
"operationId" : "getConnectorsList",
"produces" : [ "application/json" ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"type" : "array",
"items" : {
"type" : "object"
}
}
},
"400" : {
"description" : "Invalid request"
},
"403" : {
"description" : "The requester doesn't have admin permissions"
},
"408" : {
"description" : "Request timeout"
}
}
}
},
"/worker/drain" : {
"get" : {
"summary" : "Get the status of any ongoing drain operation at this worker",
"description" : "",
"operationId" : "getDrainStatus",
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/LongRunningProcessStatus"
}
},
"403" : {
"description" : "The requester doesn't have admin permissions"
},
"503" : {
"description" : "Worker service is not ready"
}
}
},
"put" : {
"summary" : "Drains this worker, i.e., moves its work-assignments to other workers",
"description" : "",
"operationId" : "drain",
"responses" : {
"400" : {
"description" : "Invalid request"
},
"403" : {
"description" : "The requester doesn't have admin permissions"
},
"408" : {
"description" : "Request timeout"
},
"409" : {
"description" : "Drain already in progress"
},
"503" : {
"description" : "Worker service is not ready"
}
}
}
},
"/worker/leader/drain" : {
"get" : {
"summary" : "Get the status of any ongoing drain operation at the specified worker",
"description" : "",
"operationId" : "getDrainStatusFromLeader",
"parameters" : [ {
"name" : "workerId",
"in" : "query",
"required" : false,
"type" : "string"
} ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/LongRunningProcessStatus"
}
},
"403" : {
"description" : "The requester doesn't have admin permissions"
},
"503" : {
"description" : "Worker service is not ready"
}
}
},
"put" : {
"summary" : "Drains the specified worker, i.e., moves its work-assignments to other workers",
"description" : "",
"operationId" : "drainAtLeader",
"parameters" : [ {
"name" : "workerId",
"in" : "query",
"required" : false,
"type" : "string"
} ],
"responses" : {
"400" : {
"description" : "Invalid request"
},
"403" : {
"description" : "The requester doesn't have admin permissions"
},
"408" : {
"description" : "Request timeout"
},
"409" : {
"description" : "Drain already in progress"
},
"503" : {
"description" : "Worker service is not ready"
}
}
}
},
"/worker/rebalance" : {
"put" : {
"summary" : "Triggers a rebalance of functions to workers",
"description" : "",
"operationId" : "rebalance",
"responses" : {
"400" : {
"description" : "Invalid request"
},
"403" : {
"description" : "The requester doesn't have admin permissions"
},
"408" : {
"description" : "Request timeout"
}
}
}
}
},
"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"
},
"directArenas" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/PoolArenaStats"
}
},
"heapArenas" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/PoolArenaStats"
}
}
}
},
"Annotation" : {
"type" : "object"
},
"AnnotationIntrospector" : {
"type" : "object"
},
"ArrayBuilders" : {
"type" : "object",
"properties" : {
"booleanBuilder" : {
"$ref" : "#/definitions/BooleanBuilder"
},
"byteBuilder" : {
"$ref" : "#/definitions/ByteBuilder"
},
"shortBuilder" : {
"$ref" : "#/definitions/ShortBuilder"
},
"intBuilder" : {
"$ref" : "#/definitions/IntBuilder"
},
"longBuilder" : {
"$ref" : "#/definitions/LongBuilder"
},
"floatBuilder" : {
"$ref" : "#/definitions/FloatBuilder"
},
"doubleBuilder" : {
"$ref" : "#/definitions/DoubleBuilder"
}
}
},
"AuthPolicies" : {
"type" : "object",
"properties" : {
"subscriptionAuthentication" : {
"type" : "object",
"additionalProperties" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
}
},
"namespaceAuthentication" : {
"type" : "object",
"additionalProperties" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string",
"enum" : [ "produce", "consume", "functions", "sources", "sinks", "packages" ]
}
}
},
"topicAuthentication" : {
"type" : "object",
"additionalProperties" : {
"type" : "object",
"additionalProperties" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string",
"enum" : [ "produce", "consume", "functions", "sources", "sinks", "packages" ]
}
}
}
}
}
},
"AuthenticationDataSource" : {
"type" : "object",
"properties" : {
"subscription" : {
"type" : "string"
},
"tlsCertificates" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/Certificate"
}
},
"httpAuthType" : {
"type" : "string"
},
"commandData" : {
"type" : "string"
},
"peerAddress" : {
"$ref" : "#/definitions/SocketAddress"
}
}
},
"AutoFailoverPolicyData" : {
"type" : "object",
"properties" : {
"parameters" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
},
"policyType" : {
"type" : "string",
"enum" : [ "min_available" ]
}
}
},
"AutoSubscriptionCreationOverride" : {
"type" : "object",
"properties" : {
"allowAutoSubscriptionCreation" : {
"type" : "boolean"
}
}
},
"AutoTopicCreationOverride" : {
"type" : "object",
"properties" : {
"defaultNumPartitions" : {
"type" : "integer",
"format" : "int32"
},
"allowAutoTopicCreation" : {
"type" : "boolean"
},
"topicType" : {
"type" : "string"
}
}
},
"BacklogQuota" : {
"type" : "object",
"properties" : {
"policy" : {
"type" : "string",
"enum" : [ "producer_request_hold", "producer_exception", "consumer_backlog_eviction" ]
},
"limitSize" : {
"type" : "integer",
"format" : "int64"
},
"limitTime" : {
"type" : "integer",
"format" : "int32"
},
"limit" : {
"type" : "integer",
"format" : "int64"
}
}
},
"Base64Variant" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"paddingChar" : {
"type" : "string"
},
"paddingByte" : {
"type" : "string",
"format" : "byte"
},
"maxLineLength" : {
"type" : "integer",
"format" : "int32"
}
}
},
"BookieAffinityGroupData" : {
"type" : "object",
"properties" : {
"bookkeeperAffinityGroupPrimary" : {
"type" : "string"
},
"bookkeeperAffinityGroupSecondary" : {
"type" : "string"
}
}
},
"BookieInfo" : {
"type" : "object",
"properties" : {
"hostname" : {
"type" : "string"
},
"rack" : {
"type" : "string"
}
}
},
"BookiesClusterInfo" : {
"type" : "object",
"properties" : {
"bookies" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/RawBookieInfo"
}
}
}
},
"BooleanBuilder" : {
"type" : "object"
},
"BrokerInfo" : {
"type" : "object",
"properties" : {
"serviceUrl" : {
"type" : "string"
}
}
},
"BrokerNamespaceIsolationData" : {
"type" : "object",
"properties" : {
"brokerName" : {
"type" : "string",
"example" : "broker1:8080",
"description" : "The broker name"
},
"policyName" : {
"type" : "string",
"example" : "my-policy",
"description" : "Policy name"
},
"namespaceRegex" : {
"type" : "array",
"description" : "The namespace-isolation policies attached to this broker",
"items" : {
"type" : "string"
}
},
"primary" : {
"type" : "boolean"
}
},
"description" : "The namespace isolation data for a given broker"
},
"BundlesData" : {
"type" : "object",
"properties" : {
"boundaries" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"numBundles" : {
"type" : "integer",
"format" : "int32"
}
}
},
"ByteBuilder" : {
"type" : "object"
},
"Certificate" : {
"type" : "object",
"properties" : {
"type" : {
"type" : "string"
},
"encoded" : {
"type" : "array",
"items" : {
"type" : "string",
"format" : "byte"
}
},
"publicKey" : {
"$ref" : "#/definitions/PublicKey"
}
}
},
"CharacterEscapes" : {
"type" : "object",
"properties" : {
"escapeCodesForAscii" : {
"type" : "array",
"items" : {
"type" : "integer",
"format" : "int32"
}
}
}
},
"ClassIntrospector" : {
"type" : "object"
},
"ClassLoader" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"registeredAsParallelCapable" : {
"type" : "boolean"
},
"parent" : {
"$ref" : "#/definitions/ClassLoader"
},
"unnamedModule" : {
"$ref" : "#/definitions/Module"
},
"definedPackages" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/Package"
}
}
}
},
"ClusterData" : {
"type" : "object",
"properties" : {
"serviceUrl" : {
"type" : "string",
"example" : "http://pulsar.example.com:8080",
"description" : "The HTTP rest service URL (for admin operations)"
},
"serviceUrlTls" : {
"type" : "string",
"example" : "https://pulsar.example.com:8443",
"description" : "The HTTPS rest service URL (for admin operations)"
},
"brokerServiceUrl" : {
"type" : "string",
"example" : "pulsar://pulsar.example.com:6650",
"description" : "The broker service url (for produce and consume operations)"
},
"brokerServiceUrlTls" : {
"type" : "string",
"example" : "pulsar+ssl://pulsar.example.com:6651",
"description" : "The secured broker service url (for produce and consume operations)"
},
"proxyServiceUrl" : {
"type" : "string",
"example" : "pulsar+ssl://ats-proxy.example.com:4443 or pulsar://ats-proxy.example.com:4080",
"description" : "Proxy-service url when client would like to connect to broker via proxy."
},
"authenticationPlugin" : {
"type" : "string",
"example" : "org.apache.pulsar.client.impl.auth.AuthenticationToken",
"description" : "Authentication plugin when client would like to connect to cluster."
},
"authenticationParameters" : {
"type" : "string",
"description" : "Authentication parameters when client would like to connect to cluster."
},
"proxyProtocol" : {
"type" : "string",
"example" : "SNI",
"description" : "protocol to decide type of proxy routing eg: SNI-routing",
"enum" : [ "SNI" ]
},
"peerClusterNames" : {
"type" : "array",
"description" : "A set of peer cluster names",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
},
"brokerClientTlsEnabled" : {
"type" : "boolean",
"description" : "Enable TLS when talking with other brokers in the same cluster (admin operation) or different clusters (replication)"
},
"tlsAllowInsecureConnection" : {
"type" : "boolean",
"description" : "Allow TLS connections to servers whose certificate cannot be be verified to have been signed by a trusted certificate authority."
},
"brokerClientTlsEnabledWithKeyStore" : {
"type" : "boolean",
"description" : "Whether internal client use KeyStore type to authenticate with other Pulsar brokers"
},
"brokerClientTlsTrustStoreType" : {
"type" : "string",
"example" : "JKS",
"description" : "TLS TrustStore type configuration for internal client: JKS, PKCS12 used by the internal client to authenticate with Pulsar brokers"
},
"brokerClientTlsTrustStore" : {
"type" : "string",
"description" : "TLS TrustStore path for internal client used by the internal client to authenticate with Pulsar brokers"
},
"brokerClientTlsTrustStorePassword" : {
"type" : "string",
"description" : "TLS TrustStore password for internal client used by the internal client to authenticate with Pulsar brokers"
},
"brokerClientTrustCertsFilePath" : {
"type" : "string",
"description" : "Path for the trusted TLS certificate file for outgoing connection to a server (broker)"
},
"listenerName" : {
"type" : "string",
"description" : "listenerName when client would like to connect to cluster"
}
},
"description" : "The configuration data for a cluster"
},
"CompactionStats" : {
"type" : "object",
"properties" : {
"lastCompactionRemovedEventCount" : {
"type" : "integer",
"format" : "int64"
},
"lastCompactionSucceedTimestamp" : {
"type" : "integer",
"format" : "int64"
},
"lastCompactionFailedTimestamp" : {
"type" : "integer",
"format" : "int64"
},
"lastCompactionDurationTimeInMills" : {
"type" : "integer",
"format" : "int64"
}
}
},
"CompletableFuture" : {
"type" : "object",
"properties" : {
"cancelled" : {
"type" : "boolean"
},
"done" : {
"type" : "boolean"
},
"numberOfDependents" : {
"type" : "integer",
"format" : "int32"
},
"completedExceptionally" : {
"type" : "boolean"
}
}
},
"CompletableFutureClusterData" : {
"type" : "object",
"properties" : {
"cancelled" : {
"type" : "boolean"
},
"done" : {
"type" : "boolean"
},
"numberOfDependents" : {
"type" : "integer",
"format" : "int32"
},
"completedExceptionally" : {
"type" : "boolean"
}
}
},
"CompletableFuturePartitionedTopicMetadata" : {
"type" : "object",
"properties" : {
"cancelled" : {
"type" : "boolean"
},
"done" : {
"type" : "boolean"
},
"numberOfDependents" : {
"type" : "integer",
"format" : "int32"
},
"completedExceptionally" : {
"type" : "boolean"
}
}
},
"CompletableFutureVoid" : {
"type" : "object",
"properties" : {
"cancelled" : {
"type" : "boolean"
},
"done" : {
"type" : "boolean"
},
"numberOfDependents" : {
"type" : "integer",
"format" : "int32"
},
"completedExceptionally" : {
"type" : "boolean"
}
}
},
"ConnectorDefinition" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"description" : {
"type" : "string"
},
"sourceClass" : {
"type" : "string"
},
"sinkClass" : {
"type" : "string"
},
"sourceConfigClass" : {
"type" : "string"
},
"sinkConfigClass" : {
"type" : "string"
}
}
},
"ConsumerStats" : {
"type" : "object",
"properties" : {
"address" : {
"type" : "string"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
},
"msgThroughputOut" : {
"type" : "number",
"format" : "double"
},
"bytesOutCounter" : {
"type" : "integer",
"format" : "int64"
},
"msgOutCounter" : {
"type" : "integer",
"format" : "int64"
},
"connectedSince" : {
"type" : "string"
},
"consumerName" : {
"type" : "string"
},
"availablePermits" : {
"type" : "integer",
"format" : "int32"
},
"chunkedMessageRate" : {
"type" : "number",
"format" : "double"
},
"clientVersion" : {
"type" : "string"
},
"msgRateRedeliver" : {
"type" : "number",
"format" : "double"
},
"unackedMessages" : {
"type" : "integer",
"format" : "int32"
},
"lastConsumedTimestamp" : {
"type" : "integer",
"format" : "int64"
},
"lastAckedTimestamp" : {
"type" : "integer",
"format" : "int64"
},
"avgMessagesPerEntry" : {
"type" : "integer",
"format" : "int32"
},
"blockedConsumerOnUnackedMsgs" : {
"type" : "boolean"
},
"readPositionWhenJoining" : {
"type" : "string"
},
"keyHashRanges" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"msgRateOut" : {
"type" : "number",
"format" : "double"
}
}
},
"ContextAttributes" : {
"type" : "object"
},
"Currency" : {
"type" : "object",
"properties" : {
"currencyCode" : {
"type" : "string"
},
"defaultFractionDigits" : {
"type" : "integer",
"format" : "int32"
},
"numericCode" : {
"type" : "integer",
"format" : "int32"
},
"displayName" : {
"type" : "string"
},
"symbol" : {
"type" : "string"
},
"numericCodeAsString" : {
"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"
},
"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"
},
"numberOfEntriesSinceFirstNotAckedMessage" : {
"type" : "integer",
"format" : "int64"
},
"totalNonContiguousDeletedMessagesRange" : {
"type" : "integer",
"format" : "int32"
},
"subscriptionHavePendingRead" : {
"type" : "boolean"
},
"subscriptionHavePendingReplayRead" : {
"type" : "boolean"
},
"properties" : {
"type" : "object",
"additionalProperties" : {
"type" : "integer",
"format" : "int64"
}
}
}
},
"DateFormat" : {
"type" : "object",
"properties" : {
"calendar" : {
"type" : "string",
"format" : "date-time"
},
"numberFormat" : {
"$ref" : "#/definitions/NumberFormat"
},
"timeZone" : {
"$ref" : "#/definitions/TimeZone"
},
"lenient" : {
"type" : "boolean"
}
}
},
"DelayedDeliveryPolicies" : {
"type" : "object",
"properties" : {
"active" : {
"type" : "boolean"
},
"tickTime" : {
"type" : "integer",
"format" : "int64"
}
}
},
"DeleteSchemaResponse" : {
"type" : "object",
"properties" : {
"version" : {
"type" : "integer",
"format" : "int64"
}
}
},
"DeserializationConfig" : {
"type" : "object",
"properties" : {
"nodeFactory" : {
"$ref" : "#/definitions/JsonNodeFactory"
},
"annotationIntrospector" : {
"$ref" : "#/definitions/AnnotationIntrospector"
},
"defaultPropertyInclusion" : {
"$ref" : "#/definitions/Value"
},
"deserializationFeatures" : {
"type" : "integer",
"format" : "int32"
},
"problemHandlers" : {
"$ref" : "#/definitions/LinkedNodeDeserializationProblemHandler"
},
"attributes" : {
"$ref" : "#/definitions/ContextAttributes"
},
"rootName" : {
"type" : "string"
},
"subtypeResolver" : {
"$ref" : "#/definitions/SubtypeResolver"
},
"fullRootName" : {
"$ref" : "#/definitions/PropertyName"
},
"defaultVisibilityChecker" : {
"$ref" : "#/definitions/VisibilityCheckerObject"
},
"locale" : {
"$ref" : "#/definitions/Locale"
},
"timeZone" : {
"$ref" : "#/definitions/TimeZone"
},
"typeFactory" : {
"$ref" : "#/definitions/TypeFactory"
},
"propertyNamingStrategy" : {
"$ref" : "#/definitions/PropertyNamingStrategy"
},
"dateFormat" : {
"$ref" : "#/definitions/DateFormat"
},
"handlerInstantiator" : {
"$ref" : "#/definitions/HandlerInstantiator"
},
"base64Variant" : {
"$ref" : "#/definitions/Base64Variant"
},
"annotationProcessingEnabled" : {
"type" : "boolean"
},
"classIntrospector" : {
"$ref" : "#/definitions/ClassIntrospector"
}
}
},
"DeserializationContext" : {
"type" : "object",
"properties" : {
"factory" : {
"$ref" : "#/definitions/DeserializerFactory"
},
"locale" : {
"$ref" : "#/definitions/Locale"
},
"timeZone" : {
"$ref" : "#/definitions/TimeZone"
},
"typeFactory" : {
"$ref" : "#/definitions/TypeFactory"
},
"config" : {
"$ref" : "#/definitions/DeserializationConfig"
},
"parser" : {
"$ref" : "#/definitions/JsonParser"
},
"nodeFactory" : {
"$ref" : "#/definitions/JsonNodeFactory"
},
"annotationIntrospector" : {
"$ref" : "#/definitions/AnnotationIntrospector"
},
"contextualType" : {
"$ref" : "#/definitions/JavaType"
},
"deserializationFeatures" : {
"type" : "integer",
"format" : "int32"
},
"base64Variant" : {
"$ref" : "#/definitions/Base64Variant"
},
"arrayBuilders" : {
"$ref" : "#/definitions/ArrayBuilders"
}
}
},
"DeserializerFactory" : {
"type" : "object"
},
"DispatchRate" : {
"type" : "object",
"properties" : {
"ratePeriodInSecond" : {
"type" : "integer",
"format" : "int32"
},
"dispatchThrottlingRateInMsg" : {
"type" : "integer",
"format" : "int32"
},
"dispatchThrottlingRateInByte" : {
"type" : "integer",
"format" : "int64"
},
"relativeToPublishRate" : {
"type" : "boolean"
}
}
},
"DispatchRateImpl" : {
"type" : "object",
"properties" : {
"dispatchThrottlingRateInMsg" : {
"type" : "integer",
"format" : "int32"
},
"dispatchThrottlingRateInByte" : {
"type" : "integer",
"format" : "int64"
},
"relativeToPublishRate" : {
"type" : "boolean"
},
"ratePeriodInSecond" : {
"type" : "integer",
"format" : "int32"
}
}
},
"DoubleBuilder" : {
"type" : "object"
},
"FailureDomain" : {
"type" : "object",
"properties" : {
"brokers" : {
"type" : "array",
"example" : "[ 'broker-1', 'broker-2' ]",
"description" : "The collection of brokers in the same failure domain",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
}
},
"description" : "The data of a failure domain configuration in a cluster"
},
"FilterProvider" : {
"type" : "object"
},
"FloatBuilder" : {
"type" : "object"
},
"FormatSchema" : {
"type" : "object",
"properties" : {
"schemaType" : {
"type" : "string"
}
}
},
"FunctionInstanceStatsData" : {
"type" : "object",
"properties" : {
"lastInvocation" : {
"type" : "integer",
"format" : "int64"
},
"userMetrics" : {
"type" : "object",
"additionalProperties" : {
"type" : "number",
"format" : "double"
}
},
"oneMin" : {
"$ref" : "#/definitions/FunctionInstanceStatsDataBase"
},
"receivedTotal" : {
"type" : "integer",
"format" : "int64"
},
"processedSuccessfullyTotal" : {
"type" : "integer",
"format" : "int64"
},
"systemExceptionsTotal" : {
"type" : "integer",
"format" : "int64"
},
"userExceptionsTotal" : {
"type" : "integer",
"format" : "int64"
},
"avgProcessLatency" : {
"type" : "number",
"format" : "double"
}
}
},
"FunctionInstanceStatsDataBase" : {
"type" : "object",
"properties" : {
"receivedTotal" : {
"type" : "integer",
"format" : "int64"
},
"processedSuccessfullyTotal" : {
"type" : "integer",
"format" : "int64"
},
"systemExceptionsTotal" : {
"type" : "integer",
"format" : "int64"
},
"userExceptionsTotal" : {
"type" : "integer",
"format" : "int64"
},
"avgProcessLatency" : {
"type" : "number",
"format" : "double"
}
}
},
"Functions" : {
"type" : "object",
"properties" : {
"listOfConnectors" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/ConnectorDefinition"
}
}
}
},
"FunctionsV2" : {
"type" : "object",
"properties" : {
"listOfConnectors" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/ConnectorDefinition"
}
}
}
},
"FunctionsV2WorkerService" : {
"type" : "object",
"properties" : {
"listOfConnectors" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/ConnectorDefinition"
}
}
}
},
"FunctionsWorkerService" : {
"type" : "object",
"properties" : {
"listOfConnectors" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/ConnectorDefinition"
}
}
}
},
"GetAllVersionsSchemaResponse" : {
"type" : "object",
"properties" : {
"getSchemaResponses" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/GetSchemaResponse"
}
}
}
},
"GetSchemaResponse" : {
"type" : "object",
"properties" : {
"version" : {
"type" : "integer",
"format" : "int64"
},
"type" : {
"type" : "string",
"enum" : [ "NONE", "STRING", "JSON", "PROTOBUF", "AVRO", "BOOLEAN", "INT8", "INT16", "INT32", "INT64", "FLOAT", "DOUBLE", "DATE", "TIME", "TIMESTAMP", "KEY_VALUE", "INSTANT", "LOCAL_DATE", "LOCAL_TIME", "LOCAL_DATE_TIME", "PROTOBUF_NATIVE", "BYTES", "AUTO", "AUTO_CONSUME", "AUTO_PUBLISH" ]
},
"timestamp" : {
"type" : "integer",
"format" : "int64"
},
"data" : {
"type" : "string"
},
"properties" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
}
}
},
"HandlerInstantiator" : {
"type" : "object"
},
"InactiveTopicPolicies" : {
"type" : "object",
"properties" : {
"inactiveTopicDeleteMode" : {
"type" : "string",
"enum" : [ "delete_when_no_subscriptions", "delete_when_subscriptions_caught_up" ]
},
"maxInactiveDurationSeconds" : {
"type" : "integer",
"format" : "int32"
},
"deleteWhileInactive" : {
"type" : "boolean"
}
}
},
"InjectableValues" : {
"type" : "object"
},
"InputDecorator" : {
"type" : "object"
},
"IntBuilder" : {
"type" : "object"
},
"InternalConfigurationData" : {
"type" : "object",
"properties" : {
"metadataStoreUrl" : {
"type" : "string"
},
"configurationMetadataStoreUrl" : {
"type" : "string"
},
"ledgersRootPath" : {
"type" : "string"
},
"bookkeeperMetadataServiceUri" : {
"type" : "string"
},
"stateStorageServiceUrl" : {
"type" : "string"
}
}
},
"IsCompatibilityResponse" : {
"type" : "object",
"properties" : {
"schemaCompatibilityStrategy" : {
"type" : "string"
},
"compatibility" : {
"type" : "boolean"
}
}
},
"JavaType" : {
"type" : "object",
"properties" : {
"interface" : {
"type" : "boolean"
},
"primitive" : {
"type" : "boolean"
},
"interfaces" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/JavaType"
}
},
"genericSignature" : {
"type" : "string"
},
"final" : {
"type" : "boolean"
},
"abstract" : {
"type" : "boolean"
},
"bindings" : {
"$ref" : "#/definitions/TypeBindings"
},
"concrete" : {
"type" : "boolean"
},
"keyType" : {
"$ref" : "#/definitions/JavaType"
},
"arrayType" : {
"type" : "boolean"
},
"throwable" : {
"type" : "boolean"
},
"javaLangObject" : {
"type" : "boolean"
},
"enumType" : {
"type" : "boolean"
},
"containerType" : {
"type" : "boolean"
},
"valueHandler" : {
"type" : "object"
},
"typeHandler" : {
"type" : "object"
},
"referencedType" : {
"$ref" : "#/definitions/JavaType"
},
"superClass" : {
"$ref" : "#/definitions/JavaType"
},
"contentValueHandler" : {
"type" : "object"
},
"contentTypeHandler" : {
"type" : "object"
},
"erasedSignature" : {
"type" : "string"
},
"collectionLikeType" : {
"type" : "boolean"
},
"mapLikeType" : {
"type" : "boolean"
},
"contentType" : {
"$ref" : "#/definitions/JavaType"
},
"typeName" : {
"type" : "string"
},
"referenceType" : {
"type" : "boolean"
}
}
},
"JsonFactory" : {
"type" : "object",
"properties" : {
"inputDecorator" : {
"$ref" : "#/definitions/InputDecorator"
},
"characterEscapes" : {
"$ref" : "#/definitions/CharacterEscapes"
},
"outputDecorator" : {
"$ref" : "#/definitions/OutputDecorator"
},
"rootValueSeparator" : {
"type" : "string"
},
"codec" : {
"$ref" : "#/definitions/ObjectCodec"
},
"formatName" : {
"type" : "string"
}
}
},
"JsonGenerator" : {
"type" : "object",
"properties" : {
"closed" : {
"type" : "boolean"
},
"schema" : {
"$ref" : "#/definitions/FormatSchema"
},
"characterEscapes" : {
"$ref" : "#/definitions/CharacterEscapes"
},
"codec" : {
"$ref" : "#/definitions/ObjectCodec"
},
"prettyPrinter" : {
"$ref" : "#/definitions/PrettyPrinter"
},
"featureMask" : {
"type" : "integer",
"format" : "int32"
},
"formatFeatures" : {
"type" : "integer",
"format" : "int32"
},
"currentValue" : {
"type" : "object"
},
"highestEscapedChar" : {
"type" : "integer",
"format" : "int32"
},
"outputTarget" : {
"type" : "object"
},
"outputBuffered" : {
"type" : "integer",
"format" : "int32"
},
"outputContext" : {
"$ref" : "#/definitions/JsonStreamContext"
}
}
},
"JsonLocation" : {
"type" : "object",
"properties" : {
"byteOffset" : {
"type" : "integer",
"format" : "int64"
},
"lineNr" : {
"type" : "integer",
"format" : "int32"
},
"charOffset" : {
"type" : "integer",
"format" : "int64"
},
"columnNr" : {
"type" : "integer",
"format" : "int32"
},
"sourceRef" : {
"type" : "object"
}
}
},
"JsonNodeFactory" : {
"type" : "object"
},
"JsonParser" : {
"type" : "object",
"properties" : {
"textLength" : {
"type" : "integer",
"format" : "int32"
},
"text" : {
"type" : "string"
},
"typeId" : {
"type" : "object"
},
"textCharacters" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"booleanValue" : {
"type" : "boolean"
},
"byteValue" : {
"type" : "string",
"format" : "byte"
},
"doubleValue" : {
"type" : "number",
"format" : "double"
},
"floatValue" : {
"type" : "number",
"format" : "float"
},
"longValue" : {
"type" : "integer",
"format" : "int64"
},
"shortValue" : {
"type" : "integer",
"format" : "int32"
},
"closed" : {
"type" : "boolean"
},
"intValue" : {
"type" : "integer",
"format" : "int32"
},
"schema" : {
"$ref" : "#/definitions/FormatSchema"
},
"codec" : {
"$ref" : "#/definitions/ObjectCodec"
},
"currentToken" : {
"type" : "string",
"enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
},
"currentName" : {
"type" : "string"
},
"tokenLocation" : {
"$ref" : "#/definitions/JsonLocation"
},
"featureMask" : {
"type" : "integer",
"format" : "int32"
},
"formatFeatures" : {
"type" : "integer",
"format" : "int32"
},
"currentTokenId" : {
"type" : "integer",
"format" : "int32"
},
"parsingContext" : {
"$ref" : "#/definitions/JsonStreamContext"
},
"currentLocation" : {
"$ref" : "#/definitions/JsonLocation"
},
"expectedStartArrayToken" : {
"type" : "boolean"
},
"expectedStartObjectToken" : {
"type" : "boolean"
},
"lastClearedToken" : {
"type" : "string",
"enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
},
"textOffset" : {
"type" : "integer",
"format" : "int32"
},
"numberValue" : {
"$ref" : "#/definitions/Number"
},
"numberType" : {
"type" : "string",
"enum" : [ "INT", "LONG", "BIG_INTEGER", "FLOAT", "DOUBLE", "BIG_DECIMAL" ]
},
"bigIntegerValue" : {
"type" : "integer"
},
"decimalValue" : {
"type" : "number"
},
"embeddedObject" : {
"type" : "object"
},
"binaryValue" : {
"type" : "array",
"items" : {
"type" : "string",
"format" : "byte"
}
},
"valueAsInt" : {
"type" : "integer",
"format" : "int32"
},
"valueAsLong" : {
"type" : "integer",
"format" : "int64"
},
"valueAsDouble" : {
"type" : "number",
"format" : "double"
},
"valueAsBoolean" : {
"type" : "boolean"
},
"valueAsString" : {
"type" : "string"
},
"objectId" : {
"type" : "object"
},
"inputSource" : {
"type" : "object"
},
"currentValue" : {
"type" : "object"
}
}
},
"JsonSerializer" : {
"type" : "object",
"properties" : {
"unwrappingSerializer" : {
"type" : "boolean"
}
}
},
"JsonSerializerObject" : {
"type" : "object",
"properties" : {
"delegatee" : {
"$ref" : "#/definitions/JsonSerializerObject"
},
"unwrappingSerializer" : {
"type" : "boolean"
}
}
},
"JsonStreamContext" : {
"type" : "object",
"properties" : {
"parent" : {
"$ref" : "#/definitions/JsonStreamContext"
},
"currentIndex" : {
"type" : "integer",
"format" : "int32"
},
"typeDesc" : {
"type" : "string"
},
"currentName" : {
"type" : "string"
},
"currentValue" : {
"type" : "object"
},
"entryCount" : {
"type" : "integer",
"format" : "int32"
}
}
},
"KubernetesContainerFactory" : {
"type" : "object",
"properties" : {
"k8Uri" : {
"type" : "string"
},
"jobNamespace" : {
"type" : "string"
},
"jobName" : {
"type" : "string"
},
"pulsarDockerImageName" : {
"type" : "string"
},
"functionDockerImages" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
},
"imagePullPolicy" : {
"type" : "string"
},
"pulsarRootDir" : {
"type" : "string"
},
"configAdminCLI" : {
"type" : "string"
},
"submittingInsidePod" : {
"type" : "boolean"
},
"pulsarServiceUrl" : {
"type" : "string"
},
"pulsarAdminUrl" : {
"type" : "string"
},
"installUserCodeDependencies" : {
"type" : "boolean"
},
"pythonDependencyRepository" : {
"type" : "string"
},
"pythonExtraDependencyRepository" : {
"type" : "string"
},
"extraFunctionDependenciesDir" : {
"type" : "string"
},
"customLabels" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
},
"expectedMetricsCollectionInterval" : {
"type" : "integer",
"format" : "int32"
},
"changeConfigMap" : {
"type" : "string"
},
"changeConfigMapNamespace" : {
"type" : "string"
},
"percentMemoryPadding" : {
"type" : "integer",
"format" : "int32"
},
"cpuOverCommitRatio" : {
"type" : "number",
"format" : "double"
},
"memoryOverCommitRatio" : {
"type" : "number",
"format" : "double"
},
"grpcPort" : {
"type" : "integer",
"format" : "int32"
},
"metricsPort" : {
"type" : "integer",
"format" : "int32"
},
"narExtractionDirectory" : {
"type" : "string"
},
"functionInstanceClassPath" : {
"type" : "string"
},
"gracePeriodSeconds" : {
"type" : "integer",
"format" : "int32"
}
}
},
"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"
},
"offloaded" : {
"type" : "boolean"
},
"metadata" : {
"type" : "string"
},
"underReplicated" : {
"type" : "boolean"
}
}
},
"LinkedNode" : {
"type" : "object"
},
"LinkedNodeDeserializationProblemHandler" : {
"type" : "object"
},
"LoadReport" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"brokerVersionString" : {
"type" : "string"
},
"webServiceUrl" : {
"type" : "string"
},
"webServiceUrlTls" : {
"type" : "string"
},
"pulsarServiceUrl" : {
"type" : "string"
},
"pulsarServiceUrlTls" : {
"type" : "string"
},
"persistentTopicsEnabled" : {
"type" : "boolean"
},
"nonPersistentTopicsEnabled" : {
"type" : "boolean"
},
"timestamp" : {
"type" : "integer",
"format" : "int64"
},
"msgRateIn" : {
"type" : "number",
"format" : "double"
},
"msgRateOut" : {
"type" : "number",
"format" : "double"
},
"numTopics" : {
"type" : "integer",
"format" : "int32"
},
"numConsumers" : {
"type" : "integer",
"format" : "int32"
},
"numProducers" : {
"type" : "integer",
"format" : "int32"
},
"numBundles" : {
"type" : "integer",
"format" : "int32"
},
"protocols" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
},
"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"
},
"msgThroughputIn" : {
"type" : "number",
"format" : "double"
},
"msgThroughputOut" : {
"type" : "number",
"format" : "double"
},
"cpu" : {
"$ref" : "#/definitions/ResourceUsage"
},
"directMemory" : {
"$ref" : "#/definitions/ResourceUsage"
},
"lastUpdate" : {
"type" : "integer",
"format" : "int64"
},
"underLoaded" : {
"type" : "boolean"
},
"overLoaded" : {
"type" : "boolean"
},
"loadReportType" : {
"type" : "string"
},
"bandwidthIn" : {
"$ref" : "#/definitions/ResourceUsage"
},
"bandwidthOut" : {
"$ref" : "#/definitions/ResourceUsage"
},
"memory" : {
"$ref" : "#/definitions/ResourceUsage"
}
}
},
"Locale" : {
"type" : "object",
"properties" : {
"language" : {
"type" : "string"
},
"script" : {
"type" : "string"
},
"variant" : {
"type" : "string"
},
"displayName" : {
"type" : "string"
},
"country" : {
"type" : "string"
},
"unicodeLocaleAttributes" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
},
"unicodeLocaleKeys" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
},
"displayLanguage" : {
"type" : "string"
},
"displayScript" : {
"type" : "string"
},
"displayCountry" : {
"type" : "string"
},
"displayVariant" : {
"type" : "string"
},
"extensionKeys" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
},
"iso3Language" : {
"type" : "string"
},
"iso3Country" : {
"type" : "string"
}
}
},
"LongBuilder" : {
"type" : "object"
},
"LongRunningProcessStatus" : {
"type" : "object",
"properties" : {
"status" : {
"type" : "string",
"enum" : [ "NOT_RUN", "RUNNING", "SUCCESS", "ERROR" ]
},
"lastError" : {
"type" : "string"
}
}
},
"LongSchemaVersion" : {
"type" : "object",
"properties" : {
"version" : {
"type" : "integer",
"format" : "int64"
}
}
},
"MemoryLimit" : {
"type" : "object",
"properties" : {
"absoluteValue" : {
"type" : "integer",
"format" : "int64"
},
"percentOfMaxDirectMemory" : {
"type" : "number",
"format" : "double"
}
}
},
"MessageId" : {
"type" : "object"
},
"Metrics" : {
"type" : "object",
"properties" : {
"metrics" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
}
},
"dimensions" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
}
}
},
"Module" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"classLoader" : {
"$ref" : "#/definitions/ClassLoader"
},
"descriptor" : {
"$ref" : "#/definitions/ModuleDescriptor"
},
"named" : {
"type" : "boolean"
},
"annotations" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/Annotation"
}
},
"declaredAnnotations" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/Annotation"
}
},
"packages" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
},
"layer" : {
"$ref" : "#/definitions/ModuleLayer"
}
}
},
"ModuleDescriptor" : {
"type" : "object",
"properties" : {
"open" : {
"type" : "boolean"
},
"automatic" : {
"type" : "boolean"
}
}
},
"ModuleLayer" : {
"type" : "object"
},
"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",
"description" : "The list of namespaces to apply this namespace isolation data",
"items" : {
"type" : "string"
}
},
"primary" : {
"type" : "array",
"description" : "The list of primary brokers for serving the list of namespaces in this isolation policy",
"items" : {
"type" : "string"
}
},
"secondary" : {
"type" : "array",
"description" : "The list of secondary brokers for serving the list of namespaces in this isolation policy",
"items" : {
"type" : "string"
}
},
"auto_failover_policy" : {
"example" : "{ \"policy_type\": \"min_available\" \"parameters\": { \"\": \"\" }}",
"description" : "The data of auto-failover policy configuration",
"$ref" : "#/definitions/AutoFailoverPolicyData"
}
},
"description" : "The data of namespace isolation configuration"
},
"NamespaceOwnershipStatus" : {
"type" : "object",
"properties" : {
"broker_assignment" : {
"type" : "string",
"enum" : [ "primary", "secondary", "shared" ]
},
"is_controlled" : {
"type" : "boolean"
},
"is_active" : {
"type" : "boolean"
}
}
},
"NonPersistentPublisherStats" : {
"type" : "object",
"properties" : {
"msgDropRate" : {
"type" : "number",
"format" : "double"
},
"address" : {
"type" : "string"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
},
"supportsPartialProducer" : {
"type" : "boolean"
},
"msgThroughputIn" : {
"type" : "number",
"format" : "double"
},
"averageMsgSize" : {
"type" : "number",
"format" : "double"
},
"connectedSince" : {
"type" : "string"
},
"accessMode" : {
"type" : "string",
"enum" : [ "Shared", "Exclusive", "WaitForExclusive" ]
},
"producerName" : {
"type" : "string"
},
"chunkedMessageRate" : {
"type" : "number",
"format" : "double"
},
"producerId" : {
"type" : "integer",
"format" : "int64"
},
"clientVersion" : {
"type" : "string"
},
"msgRateIn" : {
"type" : "number",
"format" : "double"
}
}
},
"NonPersistentReplicatorStats" : {
"type" : "object",
"properties" : {
"msgDropRate" : {
"type" : "number",
"format" : "double"
},
"connected" : {
"type" : "boolean"
},
"msgThroughputIn" : {
"type" : "number",
"format" : "double"
},
"msgThroughputOut" : {
"type" : "number",
"format" : "double"
},
"replicationDelayInSeconds" : {
"type" : "integer",
"format" : "int64"
},
"msgRateExpired" : {
"type" : "number",
"format" : "double"
},
"replicationBacklog" : {
"type" : "integer",
"format" : "int64"
},
"inboundConnection" : {
"type" : "string"
},
"inboundConnectedSince" : {
"type" : "string"
},
"outboundConnection" : {
"type" : "string"
},
"outboundConnectedSince" : {
"type" : "string"
},
"msgRateIn" : {
"type" : "number",
"format" : "double"
},
"msgRateOut" : {
"type" : "number",
"format" : "double"
}
}
},
"NonPersistentSubscriptionStats" : {
"type" : "object",
"properties" : {
"msgDropRate" : {
"type" : "number",
"format" : "double"
},
"type" : {
"type" : "string"
},
"consumers" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/ConsumerStats"
}
},
"msgThroughputOut" : {
"type" : "number",
"format" : "double"
},
"bytesOutCounter" : {
"type" : "integer",
"format" : "int64"
},
"msgOutCounter" : {
"type" : "integer",
"format" : "int64"
},
"subscriptionProperties" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
},
"nonContiguousDeletedMessagesRangesSerializedSize" : {
"type" : "integer",
"format" : "int32"
},
"nonContiguousDeletedMessagesRanges" : {
"type" : "integer",
"format" : "int32"
},
"backlogSize" : {
"type" : "integer",
"format" : "int64"
},
"allowOutOfOrderDelivery" : {
"type" : "boolean"
},
"keySharedMode" : {
"type" : "string"
},
"replicated" : {
"type" : "boolean"
},
"durable" : {
"type" : "boolean"
},
"msgRateExpired" : {
"type" : "number",
"format" : "double"
},
"chunkedMessageRate" : {
"type" : "integer",
"format" : "int32"
},
"msgRateRedeliver" : {
"type" : "number",
"format" : "double"
},
"msgBacklog" : {
"type" : "integer",
"format" : "int64"
},
"earliestMsgPublishTimeInBacklog" : {
"type" : "integer",
"format" : "int64"
},
"msgBacklogNoDelayed" : {
"type" : "integer",
"format" : "int64"
},
"blockedSubscriptionOnUnackedMsgs" : {
"type" : "boolean"
},
"msgDelayed" : {
"type" : "integer",
"format" : "int64"
},
"unackedMessages" : {
"type" : "integer",
"format" : "int64"
},
"activeConsumerName" : {
"type" : "string"
},
"totalMsgExpired" : {
"type" : "integer",
"format" : "int64"
},
"lastExpireTimestamp" : {
"type" : "integer",
"format" : "int64"
},
"lastConsumedFlowTimestamp" : {
"type" : "integer",
"format" : "int64"
},
"lastConsumedTimestamp" : {
"type" : "integer",
"format" : "int64"
},
"lastAckedTimestamp" : {
"type" : "integer",
"format" : "int64"
},
"lastMarkDeleteAdvancedTimestamp" : {
"type" : "integer",
"format" : "int64"
},
"consumersAfterMarkDeletePosition" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
},
"msgRateOut" : {
"type" : "number",
"format" : "double"
}
}
},
"NonPersistentTopicStats" : {
"type" : "object",
"properties" : {
"replication" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/NonPersistentReplicatorStats"
}
},
"publishers" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/NonPersistentPublisherStats"
}
},
"msgDropRate" : {
"type" : "number",
"format" : "double"
},
"subscriptions" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/NonPersistentSubscriptionStats"
}
},
"compaction" : {
"$ref" : "#/definitions/CompactionStats"
},
"msgThroughputIn" : {
"type" : "number",
"format" : "double"
},
"msgThroughputOut" : {
"type" : "number",
"format" : "double"
},
"bytesInCounter" : {
"type" : "integer",
"format" : "int64"
},
"msgInCounter" : {
"type" : "integer",
"format" : "int64"
},
"bytesOutCounter" : {
"type" : "integer",
"format" : "int64"
},
"msgOutCounter" : {
"type" : "integer",
"format" : "int64"
},
"averageMsgSize" : {
"type" : "number",
"format" : "double"
},
"nonContiguousDeletedMessagesRangesSerializedSize" : {
"type" : "integer",
"format" : "int32"
},
"deduplicationStatus" : {
"type" : "string"
},
"topicEpoch" : {
"type" : "integer",
"format" : "int64"
},
"nonContiguousDeletedMessagesRanges" : {
"type" : "integer",
"format" : "int32"
},
"msgChunkPublished" : {
"type" : "boolean"
},
"storageSize" : {
"type" : "integer",
"format" : "int64"
},
"backlogSize" : {
"type" : "integer",
"format" : "int64"
},
"earliestMsgPublishTimeInBacklogs" : {
"type" : "integer",
"format" : "int64"
},
"offloadedStorageSize" : {
"type" : "integer",
"format" : "int64"
},
"waitingPublishers" : {
"type" : "integer",
"format" : "int32"
},
"msgRateIn" : {
"type" : "number",
"format" : "double"
},
"msgRateOut" : {
"type" : "number",
"format" : "double"
}
}
},
"Number" : {
"type" : "object"
},
"NumberFormat" : {
"type" : "object",
"properties" : {
"groupingUsed" : {
"type" : "boolean"
},
"parseIntegerOnly" : {
"type" : "boolean"
},
"maximumIntegerDigits" : {
"type" : "integer",
"format" : "int32"
},
"minimumIntegerDigits" : {
"type" : "integer",
"format" : "int32"
},
"maximumFractionDigits" : {
"type" : "integer",
"format" : "int32"
},
"minimumFractionDigits" : {
"type" : "integer",
"format" : "int32"
},
"roundingMode" : {
"type" : "string",
"enum" : [ "UP", "DOWN", "CEILING", "FLOOR", "HALF_UP", "HALF_DOWN", "HALF_EVEN", "UNNECESSARY" ]
},
"currency" : {
"$ref" : "#/definitions/Currency"
}
}
},
"ObjectCodec" : {
"type" : "object",
"properties" : {
"factory" : {
"$ref" : "#/definitions/JsonFactory"
},
"jsonFactory" : {
"$ref" : "#/definitions/JsonFactory"
}
}
},
"ObjectMapper" : {
"type" : "object",
"properties" : {
"factory" : {
"$ref" : "#/definitions/JsonFactory"
},
"typeFactory" : {
"$ref" : "#/definitions/TypeFactory"
},
"serializationConfig" : {
"$ref" : "#/definitions/SerializationConfig"
},
"deserializationConfig" : {
"$ref" : "#/definitions/DeserializationConfig"
},
"deserializationContext" : {
"$ref" : "#/definitions/DeserializationContext"
},
"serializerFactory" : {
"$ref" : "#/definitions/SerializerFactory"
},
"serializerProvider" : {
"$ref" : "#/definitions/SerializerProvider"
},
"serializerProviderInstance" : {
"$ref" : "#/definitions/SerializerProvider"
},
"visibilityChecker" : {
"$ref" : "#/definitions/VisibilityCheckerObject"
},
"subtypeResolver" : {
"$ref" : "#/definitions/SubtypeResolver"
},
"propertyNamingStrategy" : {
"$ref" : "#/definitions/PropertyNamingStrategy"
},
"nodeFactory" : {
"$ref" : "#/definitions/JsonNodeFactory"
},
"jsonFactory" : {
"$ref" : "#/definitions/JsonFactory"
},
"dateFormat" : {
"$ref" : "#/definitions/DateFormat"
},
"injectableValues" : {
"$ref" : "#/definitions/InjectableValues"
}
}
},
"OffloadPolicies" : {
"type" : "object",
"properties" : {
"managedLedgerOffloadThresholdInBytes" : {
"type" : "integer",
"format" : "int64"
},
"managedLedgerOffloadDeletionLagInMillis" : {
"type" : "integer",
"format" : "int64"
},
"managedLedgerOffloadedReadPriority" : {
"type" : "string",
"enum" : [ "BOOKKEEPER_FIRST", "TIERED_STORAGE_FIRST" ]
},
"s3ManagedLedgerOffloadRegion" : {
"type" : "string"
},
"s3ManagedLedgerOffloadBucket" : {
"type" : "string"
},
"s3ManagedLedgerOffloadServiceEndpoint" : {
"type" : "string"
},
"s3ManagedLedgerOffloadMaxBlockSizeInBytes" : {
"type" : "integer",
"format" : "int32"
},
"s3ManagedLedgerOffloadReadBufferSizeInBytes" : {
"type" : "integer",
"format" : "int32"
},
"s3ManagedLedgerOffloadCredentialId" : {
"type" : "string"
},
"s3ManagedLedgerOffloadCredentialSecret" : {
"type" : "string"
},
"s3ManagedLedgerOffloadRole" : {
"type" : "string"
},
"s3ManagedLedgerOffloadRoleSessionName" : {
"type" : "string"
},
"offloadersDirectory" : {
"type" : "string"
},
"managedLedgerOffloadDriver" : {
"type" : "string"
},
"managedLedgerOffloadMaxThreads" : {
"type" : "integer",
"format" : "int32"
},
"managedLedgerOffloadPrefetchRounds" : {
"type" : "integer",
"format" : "int32"
},
"gcsManagedLedgerOffloadRegion" : {
"type" : "string"
},
"gcsManagedLedgerOffloadBucket" : {
"type" : "string"
},
"gcsManagedLedgerOffloadMaxBlockSizeInBytes" : {
"type" : "integer",
"format" : "int32"
},
"gcsManagedLedgerOffloadReadBufferSizeInBytes" : {
"type" : "integer",
"format" : "int32"
},
"gcsManagedLedgerOffloadServiceAccountKeyFile" : {
"type" : "string"
},
"fileSystemProfilePath" : {
"type" : "string"
},
"fileSystemURI" : {
"type" : "string"
},
"managedLedgerOffloadBucket" : {
"type" : "string"
},
"managedLedgerOffloadRegion" : {
"type" : "string"
},
"managedLedgerOffloadServiceEndpoint" : {
"type" : "string"
},
"managedLedgerOffloadMaxBlockSizeInBytes" : {
"type" : "integer",
"format" : "int32"
},
"managedLedgerOffloadReadBufferSizeInBytes" : {
"type" : "integer",
"format" : "int32"
}
}
},
"OffloadPoliciesImpl" : {
"type" : "object",
"properties" : {
"offloadersDirectory" : {
"type" : "string"
},
"managedLedgerOffloadDriver" : {
"type" : "string"
},
"managedLedgerOffloadMaxThreads" : {
"type" : "integer",
"format" : "int32"
},
"managedLedgerOffloadPrefetchRounds" : {
"type" : "integer",
"format" : "int32"
},
"managedLedgerOffloadThresholdInBytes" : {
"type" : "integer",
"format" : "int64"
},
"managedLedgerOffloadDeletionLagInMillis" : {
"type" : "integer",
"format" : "int64"
},
"managedLedgerOffloadedReadPriority" : {
"type" : "string",
"enum" : [ "BOOKKEEPER_FIRST", "TIERED_STORAGE_FIRST" ]
},
"s3ManagedLedgerOffloadRegion" : {
"type" : "string"
},
"s3ManagedLedgerOffloadBucket" : {
"type" : "string"
},
"s3ManagedLedgerOffloadServiceEndpoint" : {
"type" : "string"
},
"s3ManagedLedgerOffloadMaxBlockSizeInBytes" : {
"type" : "integer",
"format" : "int32"
},
"s3ManagedLedgerOffloadReadBufferSizeInBytes" : {
"type" : "integer",
"format" : "int32"
},
"s3ManagedLedgerOffloadCredentialId" : {
"type" : "string"
},
"s3ManagedLedgerOffloadCredentialSecret" : {
"type" : "string"
},
"s3ManagedLedgerOffloadRole" : {
"type" : "string"
},
"s3ManagedLedgerOffloadRoleSessionName" : {
"type" : "string"
},
"gcsManagedLedgerOffloadRegion" : {
"type" : "string"
},
"gcsManagedLedgerOffloadBucket" : {
"type" : "string"
},
"gcsManagedLedgerOffloadMaxBlockSizeInBytes" : {
"type" : "integer",
"format" : "int32"
},
"gcsManagedLedgerOffloadReadBufferSizeInBytes" : {
"type" : "integer",
"format" : "int32"
},
"gcsManagedLedgerOffloadServiceAccountKeyFile" : {
"type" : "string"
},
"fileSystemProfilePath" : {
"type" : "string"
},
"fileSystemURI" : {
"type" : "string"
},
"managedLedgerOffloadBucket" : {
"type" : "string"
},
"managedLedgerOffloadRegion" : {
"type" : "string"
},
"managedLedgerOffloadServiceEndpoint" : {
"type" : "string"
},
"managedLedgerOffloadMaxBlockSizeInBytes" : {
"type" : "integer",
"format" : "int32"
},
"managedLedgerOffloadReadBufferSizeInBytes" : {
"type" : "integer",
"format" : "int32"
},
"s3Driver" : {
"type" : "boolean"
},
"gcsDriver" : {
"type" : "boolean"
},
"fileSystemDriver" : {
"type" : "boolean"
}
}
},
"OutputDecorator" : {
"type" : "object"
},
"OutputStream" : {
"type" : "object"
},
"Package" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"annotations" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/Annotation"
}
},
"declaredAnnotations" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/Annotation"
}
},
"sealed" : {
"type" : "boolean"
},
"specificationTitle" : {
"type" : "string"
},
"specificationVersion" : {
"type" : "string"
},
"specificationVendor" : {
"type" : "string"
},
"implementationTitle" : {
"type" : "string"
},
"implementationVersion" : {
"type" : "string"
},
"implementationVendor" : {
"type" : "string"
}
}
},
"PartitionedTopicMetadata" : {
"type" : "object",
"properties" : {
"partitions" : {
"type" : "integer",
"format" : "int32"
},
"properties" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
}
}
},
"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"
}
}
},
"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"
}
},
"schemaLedgers" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/LedgerInfo"
}
},
"compactedLedger" : {
"$ref" : "#/definitions/LedgerInfo"
}
}
},
"Policies" : {
"type" : "object",
"properties" : {
"auth_policies" : {
"$ref" : "#/definitions/AuthPolicies"
},
"replication_clusters" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
},
"bundles" : {
"$ref" : "#/definitions/BundlesData"
},
"backlog_quota_map" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/BacklogQuota"
}
},
"clusterDispatchRate" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/DispatchRateImpl"
}
},
"topicDispatchRate" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/DispatchRateImpl"
}
},
"subscriptionDispatchRate" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/DispatchRateImpl"
}
},
"replicatorDispatchRate" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/DispatchRateImpl"
}
},
"clusterSubscribeRate" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/SubscribeRate"
}
},
"persistence" : {
"$ref" : "#/definitions/PersistencePolicies"
},
"deduplicationEnabled" : {
"type" : "boolean"
},
"autoTopicCreationOverride" : {
"$ref" : "#/definitions/AutoTopicCreationOverride"
},
"autoSubscriptionCreationOverride" : {
"$ref" : "#/definitions/AutoSubscriptionCreationOverride"
},
"publishMaxMessageRate" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/PublishRate"
}
},
"latency_stats_sample_rate" : {
"type" : "object",
"additionalProperties" : {
"type" : "integer",
"format" : "int32"
}
},
"message_ttl_in_seconds" : {
"type" : "integer",
"format" : "int32"
},
"subscription_expiration_time_minutes" : {
"type" : "integer",
"format" : "int32"
},
"retention_policies" : {
"$ref" : "#/definitions/RetentionPolicies"
},
"deleted" : {
"type" : "boolean"
},
"encryption_required" : {
"type" : "boolean"
},
"delayed_delivery_policies" : {
"$ref" : "#/definitions/DelayedDeliveryPolicies"
},
"inactive_topic_policies" : {
"$ref" : "#/definitions/InactiveTopicPolicies"
},
"subscription_auth_mode" : {
"type" : "string",
"enum" : [ "None", "Prefix" ]
},
"max_producers_per_topic" : {
"type" : "integer",
"format" : "int32"
},
"max_consumers_per_topic" : {
"type" : "integer",
"format" : "int32"
},
"max_consumers_per_subscription" : {
"type" : "integer",
"format" : "int32"
},
"max_unacked_messages_per_consumer" : {
"type" : "integer",
"format" : "int32"
},
"max_unacked_messages_per_subscription" : {
"type" : "integer",
"format" : "int32"
},
"max_subscriptions_per_topic" : {
"type" : "integer",
"format" : "int32"
},
"compaction_threshold" : {
"type" : "integer",
"format" : "int64"
},
"offload_threshold" : {
"type" : "integer",
"format" : "int64"
},
"offload_deletion_lag_ms" : {
"type" : "integer",
"format" : "int64"
},
"max_topics_per_namespace" : {
"type" : "integer",
"format" : "int32"
},
"schema_auto_update_compatibility_strategy" : {
"type" : "string",
"enum" : [ "AutoUpdateDisabled", "Backward", "Forward", "Full", "AlwaysCompatible", "BackwardTransitive", "ForwardTransitive", "FullTransitive" ]
},
"schema_compatibility_strategy" : {
"type" : "string",
"enum" : [ "UNDEFINED", "ALWAYS_INCOMPATIBLE", "ALWAYS_COMPATIBLE", "BACKWARD", "FORWARD", "FULL", "BACKWARD_TRANSITIVE", "FORWARD_TRANSITIVE", "FULL_TRANSITIVE" ]
},
"is_allow_auto_update_schema" : {
"type" : "boolean"
},
"schema_validation_enforced" : {
"type" : "boolean"
},
"offload_policies" : {
"$ref" : "#/definitions/OffloadPolicies"
},
"deduplicationSnapshotIntervalSeconds" : {
"type" : "integer",
"format" : "int32"
},
"subscription_types_enabled" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
},
"properties" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
},
"resource_group_name" : {
"type" : "string"
}
}
},
"PoolArenaStats" : {
"type" : "object",
"properties" : {
"numSmallSubpages" : {
"type" : "integer",
"format" : "int32"
},
"numChunkLists" : {
"type" : "integer",
"format" : "int32"
},
"smallSubpages" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/PoolSubpageStats"
}
},
"chunkLists" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/PoolChunkListStats"
}
},
"numAllocations" : {
"type" : "integer",
"format" : "int64"
},
"numSmallAllocations" : {
"type" : "integer",
"format" : "int64"
},
"numNormalAllocations" : {
"type" : "integer",
"format" : "int64"
},
"numHugeAllocations" : {
"type" : "integer",
"format" : "int64"
},
"numDeallocations" : {
"type" : "integer",
"format" : "int64"
},
"numSmallDeallocations" : {
"type" : "integer",
"format" : "int64"
},
"numNormalDeallocations" : {
"type" : "integer",
"format" : "int64"
},
"numHugeDeallocations" : {
"type" : "integer",
"format" : "int64"
},
"numActiveAllocations" : {
"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"
}
}
},
"PostSchemaPayload" : {
"type" : "object",
"properties" : {
"type" : {
"type" : "string"
},
"schema" : {
"type" : "string"
},
"properties" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
}
}
},
"PostSchemaResponse" : {
"type" : "object",
"properties" : {
"version" : {
"$ref" : "#/definitions/SchemaVersion"
}
}
},
"PrettyPrinter" : {
"type" : "object"
},
"ProcessContainerFactory" : {
"type" : "object",
"properties" : {
"javaInstanceJarLocation" : {
"type" : "string"
},
"pythonInstanceLocation" : {
"type" : "string"
},
"logDirectory" : {
"type" : "string"
},
"extraFunctionDependenciesDir" : {
"type" : "string"
}
}
},
"PropertyName" : {
"type" : "object",
"properties" : {
"empty" : {
"type" : "boolean"
},
"simpleName" : {
"type" : "string"
},
"namespace" : {
"type" : "string"
}
}
},
"PropertyNamingStrategy" : {
"type" : "object"
},
"PublicKey" : {
"type" : "object",
"properties" : {
"encoded" : {
"type" : "array",
"items" : {
"type" : "string",
"format" : "byte"
}
},
"format" : {
"type" : "string"
},
"algorithm" : {
"type" : "string"
}
}
},
"PublishRate" : {
"type" : "object",
"properties" : {
"publishThrottlingRateInMsg" : {
"type" : "integer",
"format" : "int32"
},
"publishThrottlingRateInByte" : {
"type" : "integer",
"format" : "int64"
}
}
},
"PublisherStats" : {
"type" : "object",
"properties" : {
"address" : {
"type" : "string"
},
"metadata" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
},
"supportsPartialProducer" : {
"type" : "boolean"
},
"msgThroughputIn" : {
"type" : "number",
"format" : "double"
},
"averageMsgSize" : {
"type" : "number",
"format" : "double"
},
"connectedSince" : {
"type" : "string"
},
"accessMode" : {
"type" : "string",
"enum" : [ "Shared", "Exclusive", "WaitForExclusive" ]
},
"producerName" : {
"type" : "string"
},
"chunkedMessageRate" : {
"type" : "number",
"format" : "double"
},
"producerId" : {
"type" : "integer",
"format" : "int64"
},
"clientVersion" : {
"type" : "string"
},
"msgRateIn" : {
"type" : "number",
"format" : "double"
}
}
},
"RawBookieInfo" : {
"type" : "object",
"properties" : {
"bookieId" : {
"type" : "string"
}
}
},
"ReplicatorStats" : {
"type" : "object",
"properties" : {
"connected" : {
"type" : "boolean"
},
"msgThroughputIn" : {
"type" : "number",
"format" : "double"
},
"msgThroughputOut" : {
"type" : "number",
"format" : "double"
},
"replicationDelayInSeconds" : {
"type" : "integer",
"format" : "int64"
},
"msgRateExpired" : {
"type" : "number",
"format" : "double"
},
"replicationBacklog" : {
"type" : "integer",
"format" : "int64"
},
"inboundConnection" : {
"type" : "string"
},
"inboundConnectedSince" : {
"type" : "string"
},
"outboundConnection" : {
"type" : "string"
},
"outboundConnectedSince" : {
"type" : "string"
},
"msgRateIn" : {
"type" : "number",
"format" : "double"
},
"msgRateOut" : {
"type" : "number",
"format" : "double"
}
}
},
"ResetCursorData" : {
"type" : "object",
"properties" : {
"ledgerId" : {
"type" : "integer",
"format" : "int64"
},
"entryId" : {
"type" : "integer",
"format" : "int64"
},
"partitionIndex" : {
"type" : "integer",
"format" : "int32"
},
"batchIndex" : {
"type" : "integer",
"format" : "int32"
},
"excluded" : {
"type" : "boolean"
}
}
},
"ResourceDescription" : {
"type" : "object",
"properties" : {
"usagePct" : {
"type" : "integer",
"format" : "int32"
},
"resourceUsage" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/ResourceUsage"
}
}
}
},
"ResourceGroup" : {
"type" : "object",
"properties" : {
"publishRateInMsgs" : {
"type" : "integer",
"format" : "int32"
},
"publishRateInBytes" : {
"type" : "integer",
"format" : "int64"
},
"dispatchRateInMsgs" : {
"type" : "integer",
"format" : "int32"
},
"dispatchRateInBytes" : {
"type" : "integer",
"format" : "int64"
}
}
},
"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"
}
}
},
"ResourceUnit" : {
"type" : "object",
"properties" : {
"availableResource" : {
"$ref" : "#/definitions/ResourceDescription"
},
"resourceId" : {
"type" : "string"
}
}
},
"ResourceUsage" : {
"type" : "object",
"properties" : {
"usage" : {
"type" : "number",
"format" : "double"
},
"limit" : {
"type" : "number",
"format" : "double"
}
}
},
"Resources" : {
"type" : "object",
"properties" : {
"cpu" : {
"type" : "number",
"format" : "double"
},
"ram" : {
"type" : "integer",
"format" : "int64"
},
"disk" : {
"type" : "integer",
"format" : "int64"
}
}
},
"RetentionPolicies" : {
"type" : "object",
"properties" : {
"retentionTimeInMinutes" : {
"type" : "integer",
"format" : "int32"
},
"retentionSizeInMB" : {
"type" : "integer",
"format" : "int64"
}
}
},
"SchemaVersion" : {
"type" : "object"
},
"SerializationConfig" : {
"type" : "object",
"properties" : {
"annotationIntrospector" : {
"$ref" : "#/definitions/AnnotationIntrospector"
},
"defaultPropertyInclusion" : {
"$ref" : "#/definitions/Value"
},
"filterProvider" : {
"$ref" : "#/definitions/FilterProvider"
},
"defaultPrettyPrinter" : {
"$ref" : "#/definitions/PrettyPrinter"
},
"serializationInclusion" : {
"type" : "string",
"enum" : [ "ALWAYS", "NON_NULL", "NON_ABSENT", "NON_EMPTY", "NON_DEFAULT", "USE_DEFAULTS" ]
},
"serializationFeatures" : {
"type" : "integer",
"format" : "int32"
},
"attributes" : {
"$ref" : "#/definitions/ContextAttributes"
},
"rootName" : {
"type" : "string"
},
"subtypeResolver" : {
"$ref" : "#/definitions/SubtypeResolver"
},
"fullRootName" : {
"$ref" : "#/definitions/PropertyName"
},
"defaultVisibilityChecker" : {
"$ref" : "#/definitions/VisibilityCheckerObject"
},
"locale" : {
"$ref" : "#/definitions/Locale"
},
"timeZone" : {
"$ref" : "#/definitions/TimeZone"
},
"typeFactory" : {
"$ref" : "#/definitions/TypeFactory"
},
"propertyNamingStrategy" : {
"$ref" : "#/definitions/PropertyNamingStrategy"
},
"dateFormat" : {
"$ref" : "#/definitions/DateFormat"
},
"handlerInstantiator" : {
"$ref" : "#/definitions/HandlerInstantiator"
},
"base64Variant" : {
"$ref" : "#/definitions/Base64Variant"
},
"annotationProcessingEnabled" : {
"type" : "boolean"
},
"classIntrospector" : {
"$ref" : "#/definitions/ClassIntrospector"
}
}
},
"SerializerFactory" : {
"type" : "object"
},
"SerializerProvider" : {
"type" : "object",
"properties" : {
"locale" : {
"$ref" : "#/definitions/Locale"
},
"timeZone" : {
"$ref" : "#/definitions/TimeZone"
},
"typeFactory" : {
"$ref" : "#/definitions/TypeFactory"
},
"config" : {
"$ref" : "#/definitions/SerializationConfig"
},
"annotationIntrospector" : {
"$ref" : "#/definitions/AnnotationIntrospector"
},
"defaultNullValueSerializer" : {
"$ref" : "#/definitions/JsonSerializerObject"
},
"filterProvider" : {
"$ref" : "#/definitions/FilterProvider"
},
"generator" : {
"$ref" : "#/definitions/JsonGenerator"
},
"defaultNullKeySerializer" : {
"$ref" : "#/definitions/JsonSerializerObject"
}
}
},
"ShortBuilder" : {
"type" : "object"
},
"Sinks" : {
"type" : "object",
"properties" : {
"sinkList" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/ConnectorDefinition"
}
},
"listOfConnectors" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/ConnectorDefinition"
}
}
}
},
"SinksWorkerService" : {
"type" : "object",
"properties" : {
"sinkList" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/ConnectorDefinition"
}
},
"listOfConnectors" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/ConnectorDefinition"
}
}
}
},
"SocketAddress" : {
"type" : "object"
},
"Sources" : {
"type" : "object",
"properties" : {
"sourceList" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/ConnectorDefinition"
}
},
"listOfConnectors" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/ConnectorDefinition"
}
}
}
},
"SourcesWorkerService" : {
"type" : "object",
"properties" : {
"sourceList" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/ConnectorDefinition"
}
},
"listOfConnectors" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/ConnectorDefinition"
}
}
}
},
"SubscribeRate" : {
"type" : "object",
"properties" : {
"subscribeThrottlingRatePerConsumer" : {
"type" : "integer",
"format" : "int32"
},
"ratePeriodInSecond" : {
"type" : "integer",
"format" : "int32"
}
}
},
"SubscriptionStats" : {
"type" : "object",
"properties" : {
"type" : {
"type" : "string"
},
"consumers" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/ConsumerStats"
}
},
"msgThroughputOut" : {
"type" : "number",
"format" : "double"
},
"bytesOutCounter" : {
"type" : "integer",
"format" : "int64"
},
"msgOutCounter" : {
"type" : "integer",
"format" : "int64"
},
"subscriptionProperties" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
},
"nonContiguousDeletedMessagesRangesSerializedSize" : {
"type" : "integer",
"format" : "int32"
},
"nonContiguousDeletedMessagesRanges" : {
"type" : "integer",
"format" : "int32"
},
"backlogSize" : {
"type" : "integer",
"format" : "int64"
},
"allowOutOfOrderDelivery" : {
"type" : "boolean"
},
"keySharedMode" : {
"type" : "string"
},
"replicated" : {
"type" : "boolean"
},
"durable" : {
"type" : "boolean"
},
"msgRateExpired" : {
"type" : "number",
"format" : "double"
},
"chunkedMessageRate" : {
"type" : "integer",
"format" : "int32"
},
"msgRateRedeliver" : {
"type" : "number",
"format" : "double"
},
"msgBacklog" : {
"type" : "integer",
"format" : "int64"
},
"earliestMsgPublishTimeInBacklog" : {
"type" : "integer",
"format" : "int64"
},
"msgBacklogNoDelayed" : {
"type" : "integer",
"format" : "int64"
},
"blockedSubscriptionOnUnackedMsgs" : {
"type" : "boolean"
},
"msgDelayed" : {
"type" : "integer",
"format" : "int64"
},
"unackedMessages" : {
"type" : "integer",
"format" : "int64"
},
"activeConsumerName" : {
"type" : "string"
},
"totalMsgExpired" : {
"type" : "integer",
"format" : "int64"
},
"lastExpireTimestamp" : {
"type" : "integer",
"format" : "int64"
},
"lastConsumedFlowTimestamp" : {
"type" : "integer",
"format" : "int64"
},
"lastConsumedTimestamp" : {
"type" : "integer",
"format" : "int64"
},
"lastAckedTimestamp" : {
"type" : "integer",
"format" : "int64"
},
"lastMarkDeleteAdvancedTimestamp" : {
"type" : "integer",
"format" : "int64"
},
"consumersAfterMarkDeletePosition" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
},
"msgRateOut" : {
"type" : "number",
"format" : "double"
}
}
},
"SubtypeResolver" : {
"type" : "object"
},
"SystemResourceUsage" : {
"type" : "object",
"properties" : {
"bandwidthIn" : {
"$ref" : "#/definitions/ResourceUsage"
},
"bandwidthOut" : {
"$ref" : "#/definitions/ResourceUsage"
},
"cpu" : {
"$ref" : "#/definitions/ResourceUsage"
},
"memory" : {
"$ref" : "#/definitions/ResourceUsage"
},
"directMemory" : {
"$ref" : "#/definitions/ResourceUsage"
}
}
},
"TenantInfo" : {
"type" : "object",
"properties" : {
"adminRoles" : {
"type" : "array",
"description" : "Comma separated list of auth principal allowed to administrate the tenant.",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
},
"allowedClusters" : {
"type" : "array",
"description" : "Comma separated allowed clusters.",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
}
},
"description" : "Information of adminRoles and allowedClusters for tenant"
},
"ThreadContainerFactory" : {
"type" : "object",
"properties" : {
"threadGroupName" : {
"type" : "string"
},
"pulsarClientMemoryLimit" : {
"$ref" : "#/definitions/MemoryLimit"
}
}
},
"TimeZone" : {
"type" : "object",
"properties" : {
"displayName" : {
"type" : "string"
},
"id" : {
"type" : "string"
},
"dstsavings" : {
"type" : "integer",
"format" : "int32"
},
"rawOffset" : {
"type" : "integer",
"format" : "int32"
}
}
},
"TopicStats" : {
"type" : "object",
"properties" : {
"compaction" : {
"$ref" : "#/definitions/CompactionStats"
},
"msgThroughputIn" : {
"type" : "number",
"format" : "double"
},
"msgThroughputOut" : {
"type" : "number",
"format" : "double"
},
"bytesInCounter" : {
"type" : "integer",
"format" : "int64"
},
"msgInCounter" : {
"type" : "integer",
"format" : "int64"
},
"bytesOutCounter" : {
"type" : "integer",
"format" : "int64"
},
"msgOutCounter" : {
"type" : "integer",
"format" : "int64"
},
"averageMsgSize" : {
"type" : "number",
"format" : "double"
},
"nonContiguousDeletedMessagesRangesSerializedSize" : {
"type" : "integer",
"format" : "int32"
},
"replication" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/ReplicatorStats"
}
},
"deduplicationStatus" : {
"type" : "string"
},
"topicEpoch" : {
"type" : "integer",
"format" : "int64"
},
"nonContiguousDeletedMessagesRanges" : {
"type" : "integer",
"format" : "int32"
},
"msgChunkPublished" : {
"type" : "boolean"
},
"storageSize" : {
"type" : "integer",
"format" : "int64"
},
"backlogSize" : {
"type" : "integer",
"format" : "int64"
},
"earliestMsgPublishTimeInBacklogs" : {
"type" : "integer",
"format" : "int64"
},
"offloadedStorageSize" : {
"type" : "integer",
"format" : "int64"
},
"publishers" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/PublisherStats"
}
},
"waitingPublishers" : {
"type" : "integer",
"format" : "int32"
},
"subscriptions" : {
"type" : "object",
"additionalProperties" : {
"$ref" : "#/definitions/SubscriptionStats"
}
},
"msgRateIn" : {
"type" : "number",
"format" : "double"
},
"msgRateOut" : {
"type" : "number",
"format" : "double"
}
}
},
"TypeBindings" : {
"type" : "object",
"properties" : {
"empty" : {
"type" : "boolean"
},
"typeParameters" : {
"type" : "array",
"items" : {
"$ref" : "#/definitions/JavaType"
}
}
}
},
"TypeFactory" : {
"type" : "object",
"properties" : {
"classLoader" : {
"$ref" : "#/definitions/ClassLoader"
}
}
},
"Value" : {
"type" : "object",
"properties" : {
"contentInclusion" : {
"type" : "string",
"enum" : [ "ALWAYS", "NON_NULL", "NON_ABSENT", "NON_EMPTY", "NON_DEFAULT", "USE_DEFAULTS" ]
},
"valueInclusion" : {
"type" : "string",
"enum" : [ "ALWAYS", "NON_NULL", "NON_ABSENT", "NON_EMPTY", "NON_DEFAULT", "USE_DEFAULTS" ]
}
}
},
"VisibilityChecker" : {
"type" : "object"
},
"VisibilityCheckerObject" : {
"type" : "object"
},
"WorkerConfig" : {
"type" : "object",
"properties" : {
"workerId" : {
"type" : "string"
},
"workerHostname" : {
"type" : "string"
},
"workerPort" : {
"type" : "integer",
"format" : "int32"
},
"workerPortTls" : {
"type" : "integer",
"format" : "int32"
},
"authenticateMetricsEndpoint" : {
"type" : "boolean"
},
"includeStandardPrometheusMetrics" : {
"type" : "boolean"
},
"jvmGCMetricsLoggerClassName" : {
"type" : "string"
},
"numHttpServerThreads" : {
"type" : "integer",
"format" : "int32"
},
"httpRequestsLimitEnabled" : {
"type" : "boolean"
},
"httpRequestsMaxPerSecond" : {
"type" : "number",
"format" : "double"
},
"maxConcurrentHttpRequests" : {
"type" : "integer",
"format" : "int32"
},
"httpServerThreadPoolQueueSize" : {
"type" : "integer",
"format" : "int32"
},
"httpServerAcceptQueueSize" : {
"type" : "integer",
"format" : "int32"
},
"maxHttpServerConnections" : {
"type" : "integer",
"format" : "int32"
},
"configurationStoreServers" : {
"type" : "string"
},
"configurationMetadataStoreUrl" : {
"type" : "string"
},
"metadataStoreSessionTimeoutMillis" : {
"type" : "integer",
"format" : "int64"
},
"metadataStoreOperationTimeoutSeconds" : {
"type" : "integer",
"format" : "int32"
},
"metadataStoreCacheExpirySeconds" : {
"type" : "integer",
"format" : "int32"
},
"zooKeeperSessionTimeoutMillis" : {
"type" : "integer",
"format" : "int64"
},
"zooKeeperOperationTimeoutSeconds" : {
"type" : "integer",
"format" : "int32"
},
"zooKeeperCacheExpirySeconds" : {
"type" : "integer",
"format" : "int32"
},
"connectorsDirectory" : {
"type" : "string"
},
"narExtractionDirectory" : {
"type" : "string"
},
"validateConnectorConfig" : {
"type" : "boolean"
},
"uploadBuiltinSinksSources" : {
"type" : "boolean"
},
"functionsDirectory" : {
"type" : "string"
},
"functionMetadataTopicName" : {
"type" : "string"
},
"useCompactedMetadataTopic" : {
"type" : "boolean"
},
"functionWebServiceUrl" : {
"type" : "string"
},
"pulsarServiceUrl" : {
"type" : "string"
},
"pulsarWebServiceUrl" : {
"type" : "string"
},
"clusterCoordinationTopicName" : {
"type" : "string"
},
"pulsarFunctionsNamespace" : {
"type" : "string"
},
"pulsarFunctionsCluster" : {
"type" : "string"
},
"numFunctionPackageReplicas" : {
"type" : "integer",
"format" : "int32"
},
"functionsWorkerEnablePackageManagement" : {
"type" : "boolean"
},
"downloadDirectory" : {
"type" : "string"
},
"stateStorageServiceUrl" : {
"type" : "string"
},
"stateStorageProviderImplementation" : {
"type" : "string"
},
"functionAssignmentTopicName" : {
"type" : "string"
},
"schedulerClassName" : {
"type" : "string"
},
"failureCheckFreqMs" : {
"type" : "integer",
"format" : "int64"
},
"rescheduleTimeoutMs" : {
"type" : "integer",
"format" : "int64"
},
"rebalanceCheckFreqSec" : {
"type" : "integer",
"format" : "int64"
},
"workerListProbeIntervalSec" : {
"type" : "integer",
"format" : "int32"
},
"initialBrokerReconnectMaxRetries" : {
"type" : "integer",
"format" : "int32"
},
"assignmentWriteMaxRetries" : {
"type" : "integer",
"format" : "int32"
},
"instanceLivenessCheckFreqMs" : {
"type" : "integer",
"format" : "int64"
},
"brokerClientAuthenticationEnabled" : {
"type" : "boolean"
},
"brokerClientAuthenticationPlugin" : {
"type" : "string"
},
"brokerClientAuthenticationParameters" : {
"type" : "string"
},
"bookkeeperClientAuthenticationPlugin" : {
"type" : "string"
},
"bookkeeperClientAuthenticationParametersName" : {
"type" : "string"
},
"bookkeeperClientAuthenticationParameters" : {
"type" : "string"
},
"topicCompactionFrequencySec" : {
"type" : "integer",
"format" : "int64"
},
"tlsEnabled" : {
"type" : "boolean"
},
"tlsCertificateFilePath" : {
"type" : "string"
},
"tlsKeyFilePath" : {
"type" : "string"
},
"tlsTrustCertsFilePath" : {
"type" : "string"
},
"tlsAllowInsecureConnection" : {
"type" : "boolean"
},
"tlsRequireTrustedClientCertOnConnect" : {
"type" : "boolean"
},
"useTls" : {
"type" : "boolean"
},
"tlsEnableHostnameVerification" : {
"type" : "boolean"
},
"tlsCertRefreshCheckDurationSec" : {
"type" : "integer",
"format" : "int64"
},
"tlsEnabledWithKeyStore" : {
"type" : "boolean"
},
"tlsProvider" : {
"type" : "string"
},
"tlsKeyStoreType" : {
"type" : "string"
},
"tlsKeyStore" : {
"type" : "string"
},
"tlsKeyStorePassword" : {
"type" : "string"
},
"tlsTrustStoreType" : {
"type" : "string"
},
"tlsTrustStore" : {
"type" : "string"
},
"tlsTrustStorePassword" : {
"type" : "string"
},
"webServiceTlsProtocols" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
},
"webServiceTlsCiphers" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
},
"authenticationEnabled" : {
"type" : "boolean"
},
"authenticationProviders" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
},
"authorizationEnabled" : {
"type" : "boolean"
},
"authorizationProvider" : {
"type" : "string"
},
"superUserRoles" : {
"type" : "array",
"uniqueItems" : true,
"items" : {
"type" : "string"
}
},
"properties" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
},
"initializedDlogMetadata" : {
"type" : "boolean"
},
"brokerClientTrustCertsFilePath" : {
"type" : "string"
},
"functionRuntimeFactoryClassName" : {
"type" : "string"
},
"functionRuntimeFactoryConfigs" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
}
},
"secretsProviderConfiguratorClassName" : {
"type" : "string"
},
"secretsProviderConfiguratorConfig" : {
"type" : "object",
"additionalProperties" : {
"type" : "string"
}
},
"functionInstanceMinResources" : {
"$ref" : "#/definitions/Resources"
},
"functionInstanceMaxResources" : {
"$ref" : "#/definitions/Resources"
},
"functionInstanceResourceGranularities" : {
"$ref" : "#/definitions/Resources"
},
"functionInstanceResourceChangeInLockStep" : {
"type" : "boolean"
},
"functionAuthProviderClassName" : {
"type" : "string"
},
"runtimeCustomizerClassName" : {
"type" : "string"
},
"runtimeCustomizerConfig" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
}
},
"maxPendingAsyncRequests" : {
"type" : "integer",
"format" : "int32"
},
"forwardSourceMessageProperty" : {
"type" : "boolean"
},
"additionalJavaRuntimeArguments" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"functionsWorkerServiceNarPackage" : {
"type" : "string"
},
"functionsWorkerServiceCustomConfigs" : {
"type" : "object",
"additionalProperties" : {
"type" : "object"
}
},
"exposeAdminClientEnabled" : {
"type" : "boolean"
},
"threadContainerFactory" : {
"$ref" : "#/definitions/ThreadContainerFactory"
},
"processContainerFactory" : {
"$ref" : "#/definitions/ProcessContainerFactory"
},
"kubernetesContainerFactory" : {
"$ref" : "#/definitions/KubernetesContainerFactory"
},
"clientAuthenticationParameters" : {
"type" : "string"
},
"clientAuthenticationPlugin" : {
"type" : "string"
},
"functionMetadataTopic" : {
"type" : "string"
},
"clusterCoordinationTopic" : {
"type" : "string"
},
"functionAssignmentTopic" : {
"type" : "string"
},
"tlsTrustChainBytes" : {
"type" : "array",
"items" : {
"type" : "string",
"format" : "byte"
}
},
"workerWebAddress" : {
"type" : "string"
},
"workerWebAddressTls" : {
"type" : "string"
}
}
},
"WorkerFunctionInstanceStats" : {
"type" : "object",
"properties" : {
"name" : {
"type" : "string"
},
"metrics" : {
"$ref" : "#/definitions/FunctionInstanceStatsData"
}
}
},
"WorkerInfo" : {
"type" : "object",
"properties" : {
"workerId" : {
"type" : "string"
},
"workerHostname" : {
"type" : "string"
},
"port" : {
"type" : "integer",
"format" : "int32"
}
}
},
"WorkerService" : {
"type" : "object",
"properties" : {
"sources" : {
"$ref" : "#/definitions/SourcesWorkerService"
},
"initialized" : {
"type" : "boolean"
},
"functions" : {
"$ref" : "#/definitions/FunctionsWorkerService"
},
"sinks" : {
"$ref" : "#/definitions/SinksWorkerService"
},
"functionsV2" : {
"$ref" : "#/definitions/FunctionsV2WorkerService"
},
"workers" : {
"$ref" : "#/definitions/WorkersWorkerService"
},
"workerConfig" : {
"$ref" : "#/definitions/WorkerConfig"
}
}
},
"Workers" : {
"type" : "object"
},
"WorkersWorkerService" : {
"type" : "object"
}
}
}