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",