admin

package
v0.17.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 10, 2025 License: Apache-2.0 Imports: 22 Imported by: 8

Documentation

Index

Constants

View Source
const (
	DefaultWebServiceURL       = "http://localhost:8080"
	DefaultHTTPTimeOutDuration = 5 * time.Minute
	ReleaseVersion             = "None"
)
View Source
const (
	PublishTimeHeader = "X-Pulsar-Publish-Time"
	BatchHeader       = "X-Pulsar-Num-Batch-Message"

	// PropertyPrefix is part of the old protocol for message properties.
	PropertyPrefix = "X-Pulsar-Property-"

	// PropertyHeader is part of the new protocol introduced in SNIP-279
	// https://github.com/apache/pulsar/pull/20627
	// The value is a JSON string representing the properties.
	PropertyHeader = "X-Pulsar-Property"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type BrokerStats

type BrokerStats interface {
	// GetMetrics returns Monitoring metrics
	GetMetrics() ([]utils.Metrics, error)

	// GetMetricsWithContext returns Monitoring metrics
	GetMetricsWithContext(context.Context) ([]utils.Metrics, error)

	// GetMBeans requests JSON string server mbean dump
	GetMBeans() ([]utils.Metrics, error)

	// GetMBeansWithContext requests JSON string server mbean dump
	GetMBeansWithContext(context.Context) ([]utils.Metrics, error)

	// GetTopics returns JSON string topics stats
	GetTopics() (string, error)

	// GetTopicsWithContext returns JSON string topics stats
	GetTopicsWithContext(context.Context) (string, error)

	// GetLoadReport returns load report of broker
	GetLoadReport() (*utils.LocalBrokerData, error)

	// GetLoadReport returns load report of broker
	GetLoadReportWithContext(context.Context) (*utils.LocalBrokerData, error)

	// GetAllocatorStats returns stats from broker
	GetAllocatorStats(allocatorName string) (*utils.AllocatorStats, error)

	// GetAllocatorStatsWithContext returns stats from broker
	GetAllocatorStatsWithContext(ctx context.Context, allocatorName string) (*utils.AllocatorStats, error)
}

BrokerStats is admin interface for broker stats management

type Brokers

type Brokers interface {

	// GetListActiveBrokers returns the list of active brokers in the local cluster.
	GetListActiveBrokers() ([]string, error)

	// GetListActiveBrokersWithContext returns the list of active brokers in the local cluster.
	GetListActiveBrokersWithContext(context.Context) ([]string, error)

	// GetActiveBrokers returns the list of active brokers in the cluster.
	GetActiveBrokers(cluster string) ([]string, error)

	// GetActiveBrokersWithContext returns the list of active brokers in the cluster.
	GetActiveBrokersWithContext(ctx context.Context, cluster string) ([]string, error)

	// GetDynamicConfigurationNames returns list of updatable configuration name
	GetDynamicConfigurationNames() ([]string, error)

	// GetDynamicConfigurationNamesWithContext returns list of updatable configuration name
	GetDynamicConfigurationNamesWithContext(context.Context) ([]string, error)

	// GetOwnedNamespaces returns the map of owned namespaces and their status from a single broker in the cluster
	GetOwnedNamespaces(cluster, brokerURL string) (map[string]utils.NamespaceOwnershipStatus, error)

	// GetOwnedNamespaces returns the map of owned namespaces and their status from a single broker in the cluster
	GetOwnedNamespacesWithContext(
		ctx context.Context,
		cluster,
		brokerURL string,
	) (map[string]utils.NamespaceOwnershipStatus, error)

	// UpdateDynamicConfiguration updates dynamic configuration value in to Zk that triggers watch on
	// brokers and all brokers can update {@link ServiceConfiguration} value locally
	UpdateDynamicConfiguration(configName, configValue string) error

	// UpdateDynamicConfigurationWithContext updates dynamic configuration value in to Zk that triggers watch on
	// brokers and all brokers can update {@link ServiceConfiguration} value locally
	UpdateDynamicConfigurationWithContext(ctx context.Context, configName, configValue string) error

	// DeleteDynamicConfiguration deletes dynamic configuration value in to Zk. It will not impact current value
	// in broker but next time when broker restarts, it applies value from configuration file only.
	DeleteDynamicConfiguration(configName string) error

	// DeleteDynamicConfigurationWithContext deletes dynamic configuration value in to Zk. It will not impact current value
	// in broker but next time when broker restarts, it applies value from configuration file only.
	DeleteDynamicConfigurationWithContext(ctx context.Context, configName string) error

	// GetRuntimeConfigurations returns values of runtime configuration
	GetRuntimeConfigurations() (map[string]string, error)

	// GetRuntimeConfigurationsWithContext returns values of runtime configuration
	GetRuntimeConfigurationsWithContext(context.Context) (map[string]string, error)

	// GetInternalConfigurationData returns the internal configuration data
	GetInternalConfigurationData() (*utils.InternalConfigurationData, error)

	// GetInternalConfigurationDataWithContext returns the internal configuration data
	GetInternalConfigurationDataWithContext(context.Context) (*utils.InternalConfigurationData, error)

	// GetAllDynamicConfigurations returns values of all overridden dynamic-configs
	GetAllDynamicConfigurations() (map[string]string, error)

	// GetAllDynamicConfigurationsWithContext returns values of all overridden dynamic-configs
	GetAllDynamicConfigurationsWithContext(context.Context) (map[string]string, error)

	// Deprecated: Use HealthCheckWithTopicVersion instead
	HealthCheck() error

	// Deprecated: Use HealthCheckWithTopicVersionWithContext instead
	HealthCheckWithContext(context.Context) error

	// HealthCheckWithTopicVersion runs a health check on the broker
	HealthCheckWithTopicVersion(utils.TopicVersion) error

	// HealthCheckWithTopicVersionWithContext runs a health check on the broker
	HealthCheckWithTopicVersionWithContext(context.Context, utils.TopicVersion) error

	// GetLeaderBroker get the information of the leader broker.
	GetLeaderBroker() (utils.BrokerInfo, error)

	// GetLeaderBrokerWithContext returns the information of the leader broker.
	GetLeaderBrokerWithContext(context.Context) (utils.BrokerInfo, error)
}

Brokers is admin interface for brokers management

type Client

type Client interface {
	Clusters() Clusters
	Functions() Functions
	Tenants() Tenants
	Topics() Topics
	Subscriptions() Subscriptions
	Sources() Sources
	Sinks() Sinks
	Namespaces() Namespaces
	Schemas() Schema
	NsIsolationPolicy() NsIsolationPolicy
	Brokers() Brokers
	BrokerStats() BrokerStats
	ResourceQuotas() ResourceQuotas
	FunctionsWorker() FunctionsWorker
	Packages() Packages
}

Client provides a client to the Pulsar Restful API

func New

func New(config *config.Config) (Client, error)

New returns a new client

func NewPulsarClientWithAuthProvider

func NewPulsarClientWithAuthProvider(config *config.Config, authProvider auth.Provider) (Client, error)

NewPulsarClientWithAuthProvider create a client with auth provider.

func NewWithAuthProvider

func NewWithAuthProvider(config *config.Config, authProvider auth.Provider) Client

NewWithAuthProvider creates a client with auth provider. Deprecated: Use NewPulsarClientWithAuthProvider instead.

type Clusters

type Clusters interface {
	// List returns the list of clusters
	List() ([]string, error)

	// ListWithContext returns the list of clusters
	ListWithContext(context.Context) ([]string, error)

	// Get the configuration data for the specified cluster
	Get(string) (utils.ClusterData, error)

	// GetWithContext returns the configuration data for the specified cluster
	GetWithContext(context.Context, string) (utils.ClusterData, error)

	// Create a new cluster
	Create(utils.ClusterData) error

	// CreateWithContext creates a new cluster
	CreateWithContext(context.Context, utils.ClusterData) error

	// Delete an existing cluster
	Delete(string) error

	// DeleteWithContext deletes an existing cluster
	DeleteWithContext(context.Context, string) error

	// Update the configuration for a cluster
	Update(utils.ClusterData) error

	// UpdateWithContext updates the configuration for a cluster
	UpdateWithContext(context.Context, utils.ClusterData) error

	// UpdatePeerClusters updates peer cluster names.
	UpdatePeerClusters(string, []string) error

	// UpdatePeerClustersWithContext updates peer cluster names.
	UpdatePeerClustersWithContext(context.Context, string, []string) error

	// GetPeerClusters returns peer-cluster names
	GetPeerClusters(string) ([]string, error)

	// GetPeerClusters returns peer-cluster names
	GetPeerClustersWithContext(context.Context, string) ([]string, error)

	// CreateFailureDomain creates a domain into cluster
	CreateFailureDomain(utils.FailureDomainData) error

	// CreateFailureDomain creates a domain into cluster
	CreateFailureDomainWithContext(context.Context, utils.FailureDomainData) error

	// GetFailureDomain returns the domain registered into a cluster
	GetFailureDomain(clusterName, domainName string) (utils.FailureDomainData, error)

	// GetFailureDomain returns the domain registered into a cluster
	GetFailureDomainWithContext(ctx context.Context, clusterName, domainName string) (utils.FailureDomainData, error)

	// ListFailureDomains returns all registered domains in cluster
	ListFailureDomains(string) (utils.FailureDomainMap, error)

	// ListFailureDomains returns all registered domains in cluster
	ListFailureDomainsWithContext(context.Context, string) (utils.FailureDomainMap, error)

	// DeleteFailureDomain deletes a domain in cluster
	DeleteFailureDomain(utils.FailureDomainData) error

	// DeleteFailureDomain deletes a domain in cluster
	DeleteFailureDomainWithContext(context.Context, utils.FailureDomainData) error

	// UpdateFailureDomain updates a domain into cluster
	UpdateFailureDomain(utils.FailureDomainData) error

	// UpdateFailureDomain updates a domain into cluster
	UpdateFailureDomainWithContext(context.Context, utils.FailureDomainData) error
}

Clusters is admin interface for clusters management

type Functions

type Functions interface {
	// CreateFunc create a new function.
	CreateFunc(data *utils.FunctionConfig, fileName string) error

	// CreateFuncWithContext create a new function.
	CreateFuncWithContext(ctx context.Context, data *utils.FunctionConfig, fileName string) error

	// CreateFuncWithURL creates a new function by providing url from which fun-pkg can be downloaded.
	// Supported url: http/file
	// eg:
	//  File: file:/dir/fileName.jar
	//  Http: http://www.repo.com/fileName.jar
	//
	// @param functionConfig
	//      the function configuration object
	// @param pkgURL
	//      url from which pkg can be downloaded
	CreateFuncWithURL(data *utils.FunctionConfig, pkgURL string) error

	// CreateFuncWithURLWithContext creates a new function by providing url from which fun-pkg can be downloaded.
	// Supported url: http/file
	// eg:
	//  File: file:/dir/fileName.jar
	//  Http: http://www.repo.com/fileName.jar
	//
	// @param ctx
	//        context used for the request
	// @param functionConfig
	//      the function configuration object
	// @param pkgURL
	//      url from which pkg can be downloaded
	CreateFuncWithURLWithContext(ctx context.Context, data *utils.FunctionConfig, pkgURL string) error

	// StopFunction stops all function instances
	StopFunction(tenant, namespace, name string) error

	// StopFunctionWithContext stops all function instances
	StopFunctionWithContext(ctx context.Context, tenant, namespace, name string) error

	// StopFunctionWithID stops function instance
	StopFunctionWithID(tenant, namespace, name string, instanceID int) error

	// StopFunctionWithIDWithContext stops function instance
	StopFunctionWithIDWithContext(ctx context.Context, tenant, namespace, name string, instanceID int) error

	// DeleteFunction deletes an existing function
	DeleteFunction(tenant, namespace, name string) error

	// DeleteFunctionWithContext deletes an existing function
	DeleteFunctionWithContext(ctx context.Context, tenant, namespace, name string) error

	// Download Function Code
	// @param destinationFile
	//        file where data should be downloaded to
	// @param path
	//        Path where data is located
	DownloadFunction(path, destinationFile string) error

	// Download Function Code
	// @param ctx
	//        context used for the request
	// @param destinationFile
	//        file where data should be downloaded to
	// @param path
	//        Path where data is located
	DownloadFunctionWithContext(ctx context.Context, path, destinationFile string) error

	// Download Function Code
	// @param destinationFile
	//        file where data should be downloaded to
	// @param tenant
	//        Tenant name
	// @param namespace
	//        Namespace name
	// @param function
	//        Function name
	DownloadFunctionByNs(destinationFile, tenant, namespace, function string) error

	// Download Function Code
	// @param ctx
	//        context used for the request
	// @param destinationFile
	//        file where data should be downloaded to
	// @param tenant
	//        Tenant name
	// @param namespace
	//        Namespace name
	// @param function
	//        Function name
	DownloadFunctionByNsWithContext(ctx context.Context, destinationFile, tenant, namespace, function string) error

	// StartFunction starts all function instances
	StartFunction(tenant, namespace, name string) error

	// StartFunctionWithContext starts all function instances
	StartFunctionWithContext(ctx context.Context, tenant, namespace, name string) error

	// StartFunctionWithID starts function instance
	StartFunctionWithID(tenant, namespace, name string, instanceID int) error

	// StartFunctionWithIDWithContext starts function instance
	StartFunctionWithIDWithContext(ctx context.Context, tenant, namespace, name string, instanceID int) error

	// RestartFunction restart all function instances
	RestartFunction(tenant, namespace, name string) error

	// RestartFunctionWithContext restart all function instances
	RestartFunctionWithContext(ctx context.Context, tenant, namespace, name string) error

	// RestartFunctionWithID restart function instance
	RestartFunctionWithID(tenant, namespace, name string, instanceID int) error

	// RestartFunctionWithIDWithContext restart function instance
	RestartFunctionWithIDWithContext(ctx context.Context, tenant, namespace, name string, instanceID int) error

	// GetFunctions returns the list of functions
	GetFunctions(tenant, namespace string) ([]string, error)

	// GetFunctionsWithContext returns the list of functions
	GetFunctionsWithContext(ctx context.Context, tenant, namespace string) ([]string, error)

	// GetFunction returns the configuration for the specified function
	GetFunction(tenant, namespace, name string) (utils.FunctionConfig, error)

	// GetFunctionWithContext returns the configuration for the specified function
	GetFunctionWithContext(ctx context.Context, tenant, namespace, name string) (utils.FunctionConfig, error)

	// GetFunctionStatus returns the current status of a function
	GetFunctionStatus(tenant, namespace, name string) (utils.FunctionStatus, error)

	// GetFunctionStatusWithContext returns the current status of a function
	GetFunctionStatusWithContext(ctx context.Context, tenant, namespace, name string) (utils.FunctionStatus, error)

	// GetFunctionStatusWithInstanceID returns the current status of a function instance
	GetFunctionStatusWithInstanceID(tenant, namespace, name string, instanceID int) (
		utils.FunctionInstanceStatusData, error)

	// GetFunctionStatusWithInstanceIDWithContext returns the current status of a function instance
	GetFunctionStatusWithInstanceIDWithContext(ctx context.Context, tenant, namespace, name string, instanceID int) (
		utils.FunctionInstanceStatusData, error)

	// GetFunctionStats returns the current stats of a function
	GetFunctionStats(tenant, namespace, name string) (utils.FunctionStats, error)

	// GetFunctionStatsWithContext returns the current stats of a function
	GetFunctionStatsWithContext(ctx context.Context, tenant, namespace, name string) (utils.FunctionStats, error)

	// GetFunctionStatsWithInstanceID gets the current stats of a function instance
	GetFunctionStatsWithInstanceID(tenant, namespace, name string, instanceID int) (utils.FunctionInstanceStatsData, error)

	// GetFunctionStatsWithInstanceIDWithContext gets the current stats of a function instance
	GetFunctionStatsWithInstanceIDWithContext(
		ctx context.Context,
		tenant,
		namespace,
		name string,
		instanceID int,
	) (utils.FunctionInstanceStatsData, error)

	// GetFunctionState fetches the current state associated with a Pulsar Function
	//
	// Response Example:
	// 		{ "value : 12, version : 2"}
	GetFunctionState(tenant, namespace, name, key string) (utils.FunctionState, error)

	// GetFunctionStateWithContext fetches the current state associated with a Pulsar Function
	//
	// Response Example:
	// 		{ "value : 12, version : 2"}
	GetFunctionStateWithContext(ctx context.Context, tenant, namespace, name, key string) (utils.FunctionState, error)

	// PutFunctionState puts the given state associated with a Pulsar Function
	PutFunctionState(tenant, namespace, name string, state utils.FunctionState) error

	// PutFunctionStateWithContext puts the given state associated with a Pulsar Function
	PutFunctionStateWithContext(ctx context.Context, tenant, namespace, name string, state utils.FunctionState) error

	// TriggerFunction triggers the function by writing to the input topic
	TriggerFunction(tenant, namespace, name, topic, triggerValue, triggerFile string) (string, error)

	// TriggerFunctionWithContext triggers the function by writing to the input topic
	TriggerFunctionWithContext(
		ctx context.Context,
		tenant,
		namespace,
		name,
		topic,
		triggerValue,
		triggerFile string,
	) (string, error)

	// UpdateFunction updates the configuration for a function.
	UpdateFunction(functionConfig *utils.FunctionConfig, fileName string, updateOptions *utils.UpdateOptions) error

	// UpdateFunctionWithContext updates the configuration for a function.
	UpdateFunctionWithContext(
		ctx context.Context,
		functionConfig *utils.FunctionConfig,
		fileName string,
		updateOptions *utils.UpdateOptions,
	) error

	// UpdateFunctionWithURL updates the configuration for a function.
	//
	// Update a function by providing url from which fun-pkg can be downloaded. supported url: http/file
	// eg:
	// File: file:/dir/fileName.jar
	// Http: http://www.repo.com/fileName.jar
	UpdateFunctionWithURL(functionConfig *utils.FunctionConfig, pkgURL string, updateOptions *utils.UpdateOptions) error

	// UpdateFunctionWithURLWithContext updates the configuration for a function.
	//
	// Update a function by providing url from which fun-pkg can be downloaded. supported url: http/file
	// eg:
	// File: file:/dir/fileName.jar
	// Http: http://www.repo.com/fileName.jar
	UpdateFunctionWithURLWithContext(
		ctx context.Context,
		functionConfig *utils.FunctionConfig,
		pkgURL string,
		updateOptions *utils.UpdateOptions,
	) error

	// Upload function to Pulsar
	Upload(sourceFile, path string) error

	// UploadWithContext function to Pulsar
	UploadWithContext(ctx context.Context, sourceFile, path string) error
}

Functions is admin interface for functions management

type FunctionsWorker

type FunctionsWorker interface {
	// GetFunctionsStats returns all functions stats on a worker
	GetFunctionsStats() ([]*utils.WorkerFunctionInstanceStats, error)

	// GetFunctionsStatsWithContext returns all functions stats on a worker
	GetFunctionsStatsWithContext(context.Context) ([]*utils.WorkerFunctionInstanceStats, error)

	// GetMetrics returns worker metrics
	GetMetrics() ([]*utils.Metrics, error)

	// GetMetricsWithContext returns worker metrics
	GetMetricsWithContext(context.Context) ([]*utils.Metrics, error)

	// GetCluster returns all workers belonging to this cluster
	GetCluster() ([]*utils.WorkerInfo, error)

	// GetClusterWithContext returns all workers belonging to this cluster
	GetClusterWithContext(context.Context) ([]*utils.WorkerInfo, error)

	// GetClusterLeader returns the leader worker of the cluster
	GetClusterLeader() (*utils.WorkerInfo, error)

	// GetClusterLeaderWithContext returns the leader worker of the cluster
	GetClusterLeaderWithContext(context.Context) (*utils.WorkerInfo, error)

	// GetAssignments returns the cluster assignments
	GetAssignments() (map[string][]string, error)

	// GetAssignmentsWithContext returns the cluster assignments
	GetAssignmentsWithContext(context.Context) (map[string][]string, error)
}

type Namespaces

type Namespaces interface {
	// GetNamespaces returns the list of all the namespaces for a certain tenant
	GetNamespaces(tenant string) ([]string, error)

	// GetNamespacesWithContext returns the list of all the namespaces for a certain tenant
	GetNamespacesWithContext(ctx context.Context, tenant string) ([]string, error)

	// GetTopics returns the list of all the topics under a certain namespace
	GetTopics(namespace string) ([]string, error)

	// GetTopicsWithContext returns the list of all the topics under a certain namespace
	GetTopicsWithContext(ctx context.Context, namespace string) ([]string, error)

	// GetPolicies returns the dump all the policies specified for a namespace
	GetPolicies(namespace string) (*utils.Policies, error)

	// GetPoliciesWithContext returns the dump all the policies specified for a namespace
	GetPoliciesWithContext(ctx context.Context, namespace string) (*utils.Policies, error)

	// CreateNamespace creates a new empty namespace with no policies attached
	CreateNamespace(namespace string) error

	// CreateNamespaceWithContext creates a new empty namespace with no policies attached
	CreateNamespaceWithContext(ctx context.Context, namespace string) error

	// CreateNsWithNumBundles creates a new empty namespace with no policies attached
	CreateNsWithNumBundles(namespace string, numBundles int) error

	// CreateNsWithNumBundlesWithContext creates a new empty namespace with no policies attached
	CreateNsWithNumBundlesWithContext(ctx context.Context, namespace string, numBundles int) error

	// CreateNsWithPolices creates a new namespace with the specified policies
	CreateNsWithPolices(namespace string, polices utils.Policies) error

	// CreateNsWithPolicesWithContext creates a new namespace with the specified policies
	CreateNsWithPolicesWithContext(ctx context.Context, namespace string, polices utils.Policies) error

	// CreateNsWithBundlesData creates a new empty namespace with no policies attached
	CreateNsWithBundlesData(namespace string, bundleData *utils.BundlesData) error

	// CreateNsWithBundlesDataWithContext creates a new empty namespace with no policies attached
	CreateNsWithBundlesDataWithContext(ctx context.Context, namespace string, bundleData *utils.BundlesData) error

	// DeleteNamespace deletes an existing namespace
	DeleteNamespace(namespace string) error

	// DeleteNamespaceWithContext deletes an existing namespace
	DeleteNamespaceWithContext(ctx context.Context, namespace string) error

	// DeleteNamespaceBundle deletes an existing bundle in a namespace
	DeleteNamespaceBundle(namespace string, bundleRange string) error

	// DeleteNamespaceBundleWithContext deletes an existing bundle in a namespace
	DeleteNamespaceBundleWithContext(ctx context.Context, namespace string, bundleRange string) error

	// SetNamespaceMessageTTL sets the messages Time to Live for all the topics within a namespace
	SetNamespaceMessageTTL(namespace string, ttlInSeconds int) error

	// SetNamespaceMessageTTLWithContext sets the messages Time to Live for all the topics within a namespace
	SetNamespaceMessageTTLWithContext(ctx context.Context, namespace string, ttlInSeconds int) error

	// GetNamespaceMessageTTL returns the message TTL for a namespace
	GetNamespaceMessageTTL(namespace string) (int, error)

	// GetNamespaceMessageTTLWithContext returns the message TTL for a namespace
	GetNamespaceMessageTTLWithContext(ctx context.Context, namespace string) (int, error)

	// GetRetention returns the retention configuration for a namespace
	GetRetention(namespace string) (*utils.RetentionPolicies, error)

	// GetRetentionWithContext returns the retention configuration for a namespace
	GetRetentionWithContext(ctx context.Context, namespace string) (*utils.RetentionPolicies, error)

	// SetRetention sets the retention configuration for all the topics on a namespace
	SetRetention(namespace string, policy utils.RetentionPolicies) error

	// SetRetentionWithContext sets the retention configuration for all the topics on a namespace
	SetRetentionWithContext(ctx context.Context, namespace string, policy utils.RetentionPolicies) error

	// GetBacklogQuotaMap returns backlog quota map on a namespace
	GetBacklogQuotaMap(namespace string) (map[utils.BacklogQuotaType]utils.BacklogQuota, error)

	// GetBacklogQuotaMapWithContext returns backlog quota map on a namespace
	GetBacklogQuotaMapWithContext(
		ctx context.Context,
		namespace string,
	) (map[utils.BacklogQuotaType]utils.BacklogQuota, error)

	// SetBacklogQuota sets a backlog quota for all the topics on a namespace
	SetBacklogQuota(namespace string, backlogQuota utils.BacklogQuota, backlogQuotaType utils.BacklogQuotaType) error

	// SetBacklogQuotaWithContext sets a backlog quota for all the topics on a namespace
	SetBacklogQuotaWithContext(
		ctx context.Context,
		namespace string,
		backlogQuota utils.BacklogQuota,
		backlogQuotaType utils.BacklogQuotaType,
	) error

	// RemoveBacklogQuota removes a backlog quota policy from a namespace
	RemoveBacklogQuota(namespace string) error

	// RemoveBacklogQuotaWithContext removes a backlog quota policy from a namespace
	RemoveBacklogQuotaWithContext(ctx context.Context, namespace string) error

	// GetTopicAutoCreation returns the topic auto-creation config for a namespace
	GetTopicAutoCreation(namespace utils.NameSpaceName) (*utils.TopicAutoCreationConfig, error)

	// GetTopicAutoCreationWithContext returns the topic auto-creation config for a namespace
	GetTopicAutoCreationWithContext(
		ctx context.Context,
		namespace utils.NameSpaceName,
	) (*utils.TopicAutoCreationConfig, error)

	// SetTopicAutoCreation sets topic auto-creation config for a namespace, overriding broker settings
	SetTopicAutoCreation(namespace utils.NameSpaceName, config utils.TopicAutoCreationConfig) error

	// SetTopicAutoCreationWithContext sets topic auto-creation config for a namespace, overriding broker settings
	SetTopicAutoCreationWithContext(
		ctx context.Context,
		namespace utils.NameSpaceName,
		config utils.TopicAutoCreationConfig,
	) error

	// RemoveTopicAutoCreation removes topic auto-creation config for a namespace, defaulting to broker settings
	RemoveTopicAutoCreation(namespace utils.NameSpaceName) error

	// RemoveTopicAutoCreationWithContext removes topic auto-creation config for a namespace, defaulting to broker settings
	RemoveTopicAutoCreationWithContext(ctx context.Context, namespace utils.NameSpaceName) error

	// SetSchemaValidationEnforced sets schema validation enforced for namespace
	SetSchemaValidationEnforced(namespace utils.NameSpaceName, schemaValidationEnforced bool) error

	// SetSchemaValidationEnforcedWithContext sets schema validation enforced for namespace
	SetSchemaValidationEnforcedWithContext(
		ctx context.Context,
		namespace utils.NameSpaceName,
		schemaValidationEnforced bool,
	) error

	// GetSchemaValidationEnforced returns schema validation enforced for namespace
	GetSchemaValidationEnforced(namespace utils.NameSpaceName) (bool, error)

	// GetSchemaValidationEnforcedWithContext returns schema validation enforced for namespace
	GetSchemaValidationEnforcedWithContext(ctx context.Context, namespace utils.NameSpaceName) (bool, error)

	// SetSchemaAutoUpdateCompatibilityStrategy sets the strategy used to check the new schema provided
	// by a producer is compatible with the current schema before it is installed
	SetSchemaAutoUpdateCompatibilityStrategy(namespace utils.NameSpaceName,
		strategy utils.SchemaAutoUpdateCompatibilityStrategy) error

	// SetSchemaAutoUpdateCompatibilityStrategyWithContext sets the strategy used to check the new schema provided
	// by a producer is compatible with the current schema before it is installed
	SetSchemaAutoUpdateCompatibilityStrategyWithContext(ctx context.Context, namespace utils.NameSpaceName,
		strategy utils.SchemaAutoUpdateCompatibilityStrategy) error

	// GetSchemaAutoUpdateCompatibilityStrategy returns the strategy used to check the new schema provided
	// by a producer is compatible with the current schema before it is installed
	GetSchemaAutoUpdateCompatibilityStrategy(namespace utils.NameSpaceName) (
		utils.SchemaAutoUpdateCompatibilityStrategy, error)

	// GetSchemaAutoUpdateCompatibilityStrategyWithContext returns the strategy used to check the new schema provided
	// by a producer is compatible with the current schema before it is installed
	GetSchemaAutoUpdateCompatibilityStrategyWithContext(ctx context.Context, namespace utils.NameSpaceName) (
		utils.SchemaAutoUpdateCompatibilityStrategy, error)

	// SetSchemaCompatibilityStrategy sets the strategy used to check the new schema provided
	// by a producer is compatible with the current schema before it is installed
	SetSchemaCompatibilityStrategy(namespace utils.NameSpaceName,
		strategy utils.SchemaCompatibilityStrategy) error

	// SetSchemaCompatibilityStrategyWithContext sets the strategy used to check the new schema provided
	// by a producer is compatible with the current schema before it is installed
	SetSchemaCompatibilityStrategyWithContext(ctx context.Context, namespace utils.NameSpaceName,
		strategy utils.SchemaCompatibilityStrategy) error

	// GetSchemaCompatibilityStrategy returns the strategy used to check the new schema provided
	// by a producer is compatible with the current schema before it is installed
	GetSchemaCompatibilityStrategy(namespace utils.NameSpaceName) (utils.SchemaCompatibilityStrategy, error)

	// GetSchemaCompatibilityStrategyWithContext returns the strategy used to check the new schema provided
	// by a producer is compatible with the current schema before it is installed
	GetSchemaCompatibilityStrategyWithContext(
		ctx context.Context,
		namespace utils.NameSpaceName,
	) (utils.SchemaCompatibilityStrategy, error)

	// ClearOffloadDeleteLag clears the offload deletion lag for a namespace.
	ClearOffloadDeleteLag(namespace utils.NameSpaceName) error

	// ClearOffloadDeleteLagWithContext clears the offload deletion lag for a namespace.
	ClearOffloadDeleteLagWithContext(ctx context.Context, namespace utils.NameSpaceName) error

	// SetOffloadDeleteLag sets the offload deletion lag for a namespace
	SetOffloadDeleteLag(namespace utils.NameSpaceName, timeMs int64) error

	// SetOffloadDeleteLagWithContext sets the offload deletion lag for a namespace
	SetOffloadDeleteLagWithContext(ctx context.Context, namespace utils.NameSpaceName, timeMs int64) error

	// GetOffloadDeleteLag returns the offload deletion lag for a namespace, in milliseconds
	GetOffloadDeleteLag(namespace utils.NameSpaceName) (int64, error)

	// GetOffloadDeleteLagWithContext returns the offload deletion lag for a namespace, in milliseconds
	GetOffloadDeleteLagWithContext(ctx context.Context, namespace utils.NameSpaceName) (int64, error)

	// SetOffloadThreshold sets the offloadThreshold for a namespace
	SetOffloadThreshold(namespace utils.NameSpaceName, threshold int64) error

	// SetOffloadThresholdWithContext sets the offloadThreshold for a namespace
	SetOffloadThresholdWithContext(ctx context.Context, namespace utils.NameSpaceName, threshold int64) error

	// GetOffloadThreshold returns the offloadThreshold for a namespace
	GetOffloadThreshold(namespace utils.NameSpaceName) (int64, error)

	// GetOffloadThresholdWithContext returns the offloadThreshold for a namespace
	GetOffloadThresholdWithContext(ctx context.Context, namespace utils.NameSpaceName) (int64, error)

	// SetOffloadThresholdInSeconds sets the offloadThresholdInSeconds for a namespace
	SetOffloadThresholdInSeconds(namespace utils.NameSpaceName, threshold int64) error

	// SetOffloadThresholdInSecondsWithContext sets the offloadThresholdInSeconds for a namespace
	SetOffloadThresholdInSecondsWithContext(ctx context.Context, namespace utils.NameSpaceName, threshold int64) error

	// GetOffloadThresholdInSeconds returns the offloadThresholdInSeconds for a namespace
	GetOffloadThresholdInSeconds(namespace utils.NameSpaceName) (int64, error)

	// GetOffloadThresholdInSecondsWithContext returns the offloadThresholdInSeconds for a namespace
	GetOffloadThresholdInSecondsWithContext(ctx context.Context, namespace utils.NameSpaceName) (int64, error)

	// SetCompactionThreshold sets the compactionThreshold for a namespace
	SetCompactionThreshold(namespace utils.NameSpaceName, threshold int64) error

	// SetCompactionThresholdWithContext sets the compactionThreshold for a namespace
	SetCompactionThresholdWithContext(ctx context.Context, namespace utils.NameSpaceName, threshold int64) error

	// GetCompactionThreshold returns the compactionThreshold for a namespace
	GetCompactionThreshold(namespace utils.NameSpaceName) (int64, error)

	// GetCompactionThresholdWithContext returns the compactionThreshold for a namespace
	GetCompactionThresholdWithContext(ctx context.Context, namespace utils.NameSpaceName) (int64, error)

	// SetMaxConsumersPerSubscription sets maxConsumersPerSubscription for a namespace.
	//nolint: revive // It's ok here to use a built-in function name (max)
	SetMaxConsumersPerSubscription(namespace utils.NameSpaceName, max int) error

	// SetMaxConsumersPerSubscriptionWithContext sets maxConsumersPerSubscription for a namespace.
	//nolint: revive // It's ok here to use a built-in function name (max)
	SetMaxConsumersPerSubscriptionWithContext(ctx context.Context, namespace utils.NameSpaceName, max int) error

	// GetMaxConsumersPerSubscription returns the maxConsumersPerSubscription for a namespace.
	GetMaxConsumersPerSubscription(namespace utils.NameSpaceName) (int, error)

	// GetMaxConsumersPerSubscriptionWithContext returns the maxConsumersPerSubscription for a namespace.
	GetMaxConsumersPerSubscriptionWithContext(ctx context.Context, namespace utils.NameSpaceName) (int, error)

	// SetMaxConsumersPerTopic sets maxConsumersPerTopic for a namespace.
	//nolint: revive // It's ok here to use a built-in function name (max)
	SetMaxConsumersPerTopic(namespace utils.NameSpaceName, max int) error

	// SetMaxConsumersPerTopicWithContext sets maxConsumersPerTopic for a namespace.
	//nolint: revive // It's ok here to use a built-in function name (max)
	SetMaxConsumersPerTopicWithContext(ctx context.Context, namespace utils.NameSpaceName, max int) error

	// GetMaxConsumersPerTopic returns the maxProducersPerTopic for a namespace.
	GetMaxConsumersPerTopic(namespace utils.NameSpaceName) (int, error)

	// GetMaxConsumersPerTopicWithContext returns the maxProducersPerTopic for a namespace.
	GetMaxConsumersPerTopicWithContext(ctx context.Context, namespace utils.NameSpaceName) (int, error)

	// SetMaxProducersPerTopic sets maxProducersPerTopic for a namespace.
	//nolint: revive // It's ok here to use a built-in function name (max)
	SetMaxProducersPerTopic(namespace utils.NameSpaceName, max int) error

	// SetMaxProducersPerTopicWithContext sets maxProducersPerTopic for a namespace.
	//nolint: revive // It's ok here to use a built-in function name (max)
	SetMaxProducersPerTopicWithContext(ctx context.Context, namespace utils.NameSpaceName, max int) error

	// GetMaxProducersPerTopic returns the maxProducersPerTopic for a namespace.
	GetMaxProducersPerTopic(namespace utils.NameSpaceName) (int, error)

	// GetMaxProducersPerTopicWithContext returns the maxProducersPerTopic for a namespace.
	GetMaxProducersPerTopicWithContext(ctx context.Context, namespace utils.NameSpaceName) (int, error)

	// SetMaxTopicsPerNamespace sets maxTopicsPerNamespace for a namespace.
	//nolint: revive // It's ok here to use a built-in function name (max)
	SetMaxTopicsPerNamespace(namespace utils.NameSpaceName, max int) error

	// SetMaxTopicsPerNamespaceWithContext sets maxTopicsPerNamespace for a namespace.
	//nolint: revive // It's ok here to use a built-in function name (max)
	SetMaxTopicsPerNamespaceWithContext(ctx context.Context, namespace utils.NameSpaceName, max int) error

	// GetMaxTopicsPerNamespace returns the maxTopicsPerNamespace for a namespace.
	GetMaxTopicsPerNamespace(namespace utils.NameSpaceName) (int, error)

	// GetMaxTopicsPerNamespaceWithContext returns the maxTopicsPerNamespace for a namespace.
	GetMaxTopicsPerNamespaceWithContext(ctx context.Context, namespace utils.NameSpaceName) (int, error)

	// RemoveMaxTopicsPerNamespace removes maxTopicsPerNamespace configuration for a namespace,
	// defaulting to broker settings
	RemoveMaxTopicsPerNamespace(namespace utils.NameSpaceName) error

	// RemoveMaxTopicsPerNamespaceWithContext removes maxTopicsPerNamespace configuration for a namespace,
	// defaulting to broker settings
	RemoveMaxTopicsPerNamespaceWithContext(ctx context.Context, namespace utils.NameSpaceName) error

	// GetNamespaceReplicationClusters returns the replication clusters for a namespace
	GetNamespaceReplicationClusters(namespace string) ([]string, error)

	// GetNamespaceReplicationClustersWithContext returns the replication clusters for a namespace
	GetNamespaceReplicationClustersWithContext(ctx context.Context, namespace string) ([]string, error)

	// SetNamespaceReplicationClusters returns the replication clusters for a namespace
	SetNamespaceReplicationClusters(namespace string, clusterIDs []string) error

	// SetNamespaceReplicationClustersWithContext returns the replication clusters for a namespace
	SetNamespaceReplicationClustersWithContext(ctx context.Context, namespace string, clusterIDs []string) error

	// SetNamespaceAntiAffinityGroup sets anti-affinity group name for a namespace
	SetNamespaceAntiAffinityGroup(namespace string, namespaceAntiAffinityGroup string) error

	// SetNamespaceAntiAffinityGroupWithContext sets anti-affinity group name for a namespace
	SetNamespaceAntiAffinityGroupWithContext(
		ctx context.Context,
		namespace string,
		namespaceAntiAffinityGroup string,
	) error

	// GetAntiAffinityNamespaces returns all namespaces that grouped with given anti-affinity group
	GetAntiAffinityNamespaces(tenant, cluster, namespaceAntiAffinityGroup string) ([]string, error)

	// GetAntiAffinityNamespacesWithContext returns all namespaces that grouped with given anti-affinity group
	GetAntiAffinityNamespacesWithContext(
		ctx context.Context,
		tenant, cluster,
		namespaceAntiAffinityGroup string,
	) ([]string, error)

	// GetNamespaceAntiAffinityGroup returns anti-affinity group name for a namespace
	GetNamespaceAntiAffinityGroup(namespace string) (string, error)

	// GetNamespaceAntiAffinityGroupWithContext returns anti-affinity group name for a namespace
	GetNamespaceAntiAffinityGroupWithContext(ctx context.Context, namespace string) (string, error)

	// DeleteNamespaceAntiAffinityGroup deletes anti-affinity group name for a namespace
	DeleteNamespaceAntiAffinityGroup(namespace string) error

	// DeleteNamespaceAntiAffinityGroupWithContext deletes anti-affinity group name for a namespace
	DeleteNamespaceAntiAffinityGroupWithContext(ctx context.Context, namespace string) error

	// SetDeduplicationStatus sets the deduplication status for all topics within a namespace
	// When deduplication is enabled, the broker will prevent to store the same Message multiple times
	SetDeduplicationStatus(namespace string, enableDeduplication bool) error

	// SetDeduplicationStatusWithContext sets the deduplication status for all topics within a namespace
	// When deduplication is enabled, the broker will prevent to store the same Message multiple times
	SetDeduplicationStatusWithContext(ctx context.Context, namespace string, enableDeduplication bool) error

	// SetPersistence sets the persistence configuration for all the topics on a namespace
	SetPersistence(namespace string, persistence utils.PersistencePolicies) error

	// SetPersistenceWithContext sets the persistence configuration for all the topics on a namespace
	SetPersistenceWithContext(ctx context.Context, namespace string, persistence utils.PersistencePolicies) error

	// GetPersistence returns the persistence configuration for a namespace
	GetPersistence(namespace string) (*utils.PersistencePolicies, error)

	// GetPersistenceWithContext returns the persistence configuration for a namespace
	GetPersistenceWithContext(ctx context.Context, namespace string) (*utils.PersistencePolicies, error)

	// SetBookieAffinityGroup sets bookie affinity group for a namespace to isolate namespace write to bookies that are
	// part of given affinity group
	SetBookieAffinityGroup(namespace string, bookieAffinityGroup utils.BookieAffinityGroupData) error

	// SetBookieAffinityGroupWithContext sets bookie affinity group for a namespace
	// to isolate namespace write to bookies that are part of given affinity group
	SetBookieAffinityGroupWithContext(
		ctx context.Context,
		namespace string,
		bookieAffinityGroup utils.BookieAffinityGroupData,
	) error

	// DeleteBookieAffinityGroup deletes bookie affinity group configured for a namespace
	DeleteBookieAffinityGroup(namespace string) error

	// DeleteBookieAffinityGroupWithContext deletes bookie affinity group configured for a namespace
	DeleteBookieAffinityGroupWithContext(ctx context.Context, namespace string) error

	// GetBookieAffinityGroup returns bookie affinity group configured for a namespace
	GetBookieAffinityGroup(namespace string) (*utils.BookieAffinityGroupData, error)

	// GetBookieAffinityGroupWithContext returns bookie affinity group configured for a namespace
	GetBookieAffinityGroupWithContext(ctx context.Context, namespace string) (*utils.BookieAffinityGroupData, error)

	// Unload a namespace from the current serving broker
	Unload(namespace string) error

	// UnloadWithContext a namespace from the current serving broker
	UnloadWithContext(ctx context.Context, namespace string) error

	// UnloadNamespaceBundle unloads namespace bundle
	UnloadNamespaceBundle(namespace, bundle string) error

	// UnloadNamespaceBundleWithContext unloads namespace bundle
	UnloadNamespaceBundleWithContext(ctx context.Context, namespace, bundle string) error

	// SplitNamespaceBundle splits namespace bundle
	SplitNamespaceBundle(namespace, bundle string, unloadSplitBundles bool) error

	// SplitNamespaceBundleWithContext splits namespace bundle
	SplitNamespaceBundleWithContext(ctx context.Context, namespace, bundle string, unloadSplitBundles bool) error

	// GetNamespacePermissions returns permissions on a namespace
	GetNamespacePermissions(namespace utils.NameSpaceName) (map[string][]utils.AuthAction, error)

	// GetNamespacePermissionsWithContext returns permissions on a namespace
	GetNamespacePermissionsWithContext(
		ctx context.Context,
		namespace utils.NameSpaceName,
	) (map[string][]utils.AuthAction, error)

	// GrantNamespacePermission grants permission on a namespace.
	GrantNamespacePermission(namespace utils.NameSpaceName, role string, action []utils.AuthAction) error

	// GrantNamespacePermissionWithContext grants permission on a namespace.
	GrantNamespacePermissionWithContext(
		ctx context.Context,
		namespace utils.NameSpaceName,
		role string,
		action []utils.AuthAction,
	) error

	// RevokeNamespacePermission revokes permissions on a namespace.
	RevokeNamespacePermission(namespace utils.NameSpaceName, role string) error

	// RevokeNamespacePermissionWithContext revokes permissions on a namespace.
	RevokeNamespacePermissionWithContext(ctx context.Context, namespace utils.NameSpaceName, role string) error

	// GrantSubPermission grants permission to role to access subscription's admin-api
	GrantSubPermission(namespace utils.NameSpaceName, sName string, roles []string) error

	// GrantSubPermissionWithContext grants permission to role to access subscription's admin-api
	GrantSubPermissionWithContext(ctx context.Context, namespace utils.NameSpaceName, sName string, roles []string) error

	// RevokeSubPermission revoke permissions on a subscription's admin-api access
	RevokeSubPermission(namespace utils.NameSpaceName, sName, role string) error

	// RevokeSubPermissionWithContext revoke permissions on a subscription's admin-api access
	RevokeSubPermissionWithContext(ctx context.Context, namespace utils.NameSpaceName, sName, role string) error

	// GetSubPermissions returns subscription permissions on a namespace
	GetSubPermissions(namespace utils.NameSpaceName) (map[string][]string, error)

	// GetSubPermissionsWithContext returns subscription permissions on a namespace
	GetSubPermissionsWithContext(ctx context.Context, namespace utils.NameSpaceName) (map[string][]string, error)

	// SetSubscriptionAuthMode sets the given subscription auth mode on all topics on a namespace
	SetSubscriptionAuthMode(namespace utils.NameSpaceName, mode utils.SubscriptionAuthMode) error

	// SetSubscriptionAuthModeWithContext sets the given subscription auth mode on all topics on a namespace
	SetSubscriptionAuthModeWithContext(
		ctx context.Context,
		namespace utils.NameSpaceName,
		mode utils.SubscriptionAuthMode,
	) error

	// SetEncryptionRequiredStatus sets the encryption required status for all topics within a namespace
	SetEncryptionRequiredStatus(namespace utils.NameSpaceName, encrypt bool) error

	// SetEncryptionRequiredStatusWithContext sets the encryption required status for all topics within a namespace
	SetEncryptionRequiredStatusWithContext(ctx context.Context, namespace utils.NameSpaceName, encrypt bool) error

	// UnsubscribeNamespace unsubscribe the given subscription on all topics on a namespace
	UnsubscribeNamespace(namespace utils.NameSpaceName, sName string) error

	// UnsubscribeNamespaceWithContext unsubscribe the given subscription on all topics on a namespace
	UnsubscribeNamespaceWithContext(ctx context.Context, namespace utils.NameSpaceName, sName string) error

	// UnsubscribeNamespaceBundle unsubscribe the given subscription on all topics on a namespace bundle
	UnsubscribeNamespaceBundle(namespace utils.NameSpaceName, bundle, sName string) error

	// UnsubscribeNamespaceBundleWithContext unsubscribe the given subscription on all topics on a namespace bundle
	UnsubscribeNamespaceBundleWithContext(ctx context.Context, namespace utils.NameSpaceName, bundle, sName string) error

	// ClearNamespaceBundleBacklogForSubscription clears backlog for a given subscription on all
	// topics on a namespace bundle
	ClearNamespaceBundleBacklogForSubscription(namespace utils.NameSpaceName, bundle, sName string) error

	// ClearNamespaceBundleBacklogForSubscriptionWithContext clears backlog for a given subscription on all
	// topics on a namespace bundle
	ClearNamespaceBundleBacklogForSubscriptionWithContext(
		ctx context.Context,
		namespace utils.NameSpaceName,
		bundle,
		sName string,
	) error

	// ClearNamespaceBundleBacklog clears backlog for all topics on a namespace bundle
	ClearNamespaceBundleBacklog(namespace utils.NameSpaceName, bundle string) error

	// ClearNamespaceBundleBacklogWithContext clears backlog for all topics on a namespace bundle
	ClearNamespaceBundleBacklogWithContext(ctx context.Context, namespace utils.NameSpaceName, bundle string) error

	// ClearNamespaceBacklogForSubscription clears backlog for a given subscription on all topics on a namespace
	ClearNamespaceBacklogForSubscription(namespace utils.NameSpaceName, sName string) error

	// ClearNamespaceBacklogForSubscriptionWithContext clears backlog for a given subscription on all topics on a namespace
	ClearNamespaceBacklogForSubscriptionWithContext(ctx context.Context, namespace utils.NameSpaceName, sName string) error

	// ClearNamespaceBacklog clears backlog for all topics on a namespace
	ClearNamespaceBacklog(namespace utils.NameSpaceName) error

	// ClearNamespaceBacklogWithContext clears backlog for all topics on a namespace
	ClearNamespaceBacklogWithContext(ctx context.Context, namespace utils.NameSpaceName) error

	// SetReplicatorDispatchRate sets replicator-Message-dispatch-rate (Replicators under this namespace
	// can dispatch this many messages per second)
	SetReplicatorDispatchRate(namespace utils.NameSpaceName, rate utils.DispatchRate) error

	// SetReplicatorDispatchRateWithContext sets replicator-Message-dispatch-rate (Replicators under this namespace
	// can dispatch this many messages per second)
	SetReplicatorDispatchRateWithContext(ctx context.Context, namespace utils.NameSpaceName, rate utils.DispatchRate) error

	// GetReplicatorDispatchRate returns replicator-Message-dispatch-rate (Replicators under this namespace
	// can dispatch this many messages per second)
	GetReplicatorDispatchRate(namespace utils.NameSpaceName) (utils.DispatchRate, error)

	// GetReplicatorDispatchRateWithContext returns replicator-Message-dispatch-rate (Replicators under this namespace
	// can dispatch this many messages per second)
	GetReplicatorDispatchRateWithContext(ctx context.Context, namespace utils.NameSpaceName) (utils.DispatchRate, error)

	// SetSubscriptionDispatchRate sets subscription-Message-dispatch-rate (subscriptions under this namespace
	// can dispatch this many messages per second)
	SetSubscriptionDispatchRate(namespace utils.NameSpaceName, rate utils.DispatchRate) error

	// SetSubscriptionDispatchRateWithContext sets subscription-Message-dispatch-rate (subscriptions under this namespace
	// can dispatch this many messages per second)
	SetSubscriptionDispatchRateWithContext(
		ctx context.Context,
		namespace utils.NameSpaceName,
		rate utils.DispatchRate,
	) error

	// GetSubscriptionDispatchRate returns subscription-Message-dispatch-rate (subscriptions under this namespace
	// can dispatch this many messages per second)
	GetSubscriptionDispatchRate(namespace utils.NameSpaceName) (utils.DispatchRate, error)

	// GetSubscriptionDispatchRateWithContext returns subscription-Message-dispatch-rate
	// (subscriptions under this namespace can dispatch this many messages per second)
	GetSubscriptionDispatchRateWithContext(
		ctx context.Context,
		namespace utils.NameSpaceName,
	) (utils.DispatchRate, error)

	// SetSubscribeRate sets namespace-subscribe-rate (topics under this namespace will limit by subscribeRate)
	SetSubscribeRate(namespace utils.NameSpaceName, rate utils.SubscribeRate) error

	// SetSubscribeRateWithContext sets namespace-subscribe-rate (topics under this namespace will limit by subscribeRate)
	SetSubscribeRateWithContext(ctx context.Context, namespace utils.NameSpaceName, rate utils.SubscribeRate) error

	// GetSubscribeRate returns namespace-subscribe-rate (topics under this namespace allow subscribe
	// times per consumer in a period)
	GetSubscribeRate(namespace utils.NameSpaceName) (utils.SubscribeRate, error)

	// GetSubscribeRateWithContext returns namespace-subscribe-rate (topics under this namespace allow subscribe
	// times per consumer in a period)
	GetSubscribeRateWithContext(ctx context.Context, namespace utils.NameSpaceName) (utils.SubscribeRate, error)

	// SetDispatchRate sets Message-dispatch-rate (topics under this namespace can dispatch
	// this many messages per second)
	SetDispatchRate(namespace utils.NameSpaceName, rate utils.DispatchRate) error

	// SetDispatchRateWithContext sets Message-dispatch-rate (topics under this namespace can dispatch
	// this many messages per second)
	SetDispatchRateWithContext(ctx context.Context, namespace utils.NameSpaceName, rate utils.DispatchRate) error

	// GetDispatchRate returns Message-dispatch-rate (topics under this namespace can dispatch
	// this many messages per second)
	GetDispatchRate(namespace utils.NameSpaceName) (utils.DispatchRate, error)

	// GetDispatchRateWithContext returns Message-dispatch-rate (topics under this namespace can dispatch
	// this many messages per second)
	GetDispatchRateWithContext(ctx context.Context, namespace utils.NameSpaceName) (utils.DispatchRate, error)

	// SetPublishRate sets the maximum rate or number of messages that producers can publish to topics in this namespace
	SetPublishRate(namespace utils.NameSpaceName, pubRate utils.PublishRate) error

	// SetPublishRateWithContext sets the maximum rate
	// or number of messages that producers can publish to topics in this namespace
	SetPublishRateWithContext(ctx context.Context, namespace utils.NameSpaceName, pubRate utils.PublishRate) error

	// GetPublishRate gets the maximum rate or number of messages that producer can publish to topics in the namespace
	GetPublishRate(namespace utils.NameSpaceName) (utils.PublishRate, error)

	// GetPublishRateWithContext gets the maximum rate
	// or number of messages that producer can publish to topics in the namespace
	GetPublishRateWithContext(ctx context.Context, namespace utils.NameSpaceName) (utils.PublishRate, error)

	// SetIsAllowAutoUpdateSchema sets whether to allow auto update schema on a namespace
	SetIsAllowAutoUpdateSchema(namespace utils.NameSpaceName, isAllowAutoUpdateSchema bool) error

	// SetIsAllowAutoUpdateSchemaWithContext sets whether to allow auto update schema on a namespace
	SetIsAllowAutoUpdateSchemaWithContext(
		ctx context.Context,
		namespace utils.NameSpaceName,
		isAllowAutoUpdateSchema bool,
	) error

	// GetIsAllowAutoUpdateSchema gets whether to allow auto update schema on a namespace
	GetIsAllowAutoUpdateSchema(namespace utils.NameSpaceName) (bool, error)

	// GetIsAllowAutoUpdateSchemaWithContext gets whether to allow auto update schema on a namespace
	GetIsAllowAutoUpdateSchemaWithContext(ctx context.Context, namespace utils.NameSpaceName) (bool, error)

	// GetInactiveTopicPolicies gets the inactive topic policies on a namespace
	GetInactiveTopicPolicies(namespace utils.NameSpaceName) (utils.InactiveTopicPolicies, error)

	// GetInactiveTopicPoliciesWithContext gets the inactive topic policies on a namespace
	GetInactiveTopicPoliciesWithContext(
		ctx context.Context,
		namespace utils.NameSpaceName,
	) (utils.InactiveTopicPolicies, error)

	// RemoveInactiveTopicPolicies removes inactive topic policies from a namespace
	RemoveInactiveTopicPolicies(namespace utils.NameSpaceName) error

	// RemoveInactiveTopicPoliciesWithContext removes inactive topic policies from a namespace
	RemoveInactiveTopicPoliciesWithContext(ctx context.Context, namespace utils.NameSpaceName) error

	// SetInactiveTopicPolicies sets the inactive topic policies on a namespace
	SetInactiveTopicPolicies(namespace utils.NameSpaceName, data utils.InactiveTopicPolicies) error

	// SetInactiveTopicPoliciesWithContext sets the inactive topic policies on a namespace
	SetInactiveTopicPoliciesWithContext(
		ctx context.Context,
		namespace utils.NameSpaceName,
		data utils.InactiveTopicPolicies,
	) error

	// GetSubscriptionExpirationTime gets the subscription expiration time on a namespace. Returns -1 if not set
	GetSubscriptionExpirationTime(namespace utils.NameSpaceName) (int, error)

	// GetSubscriptionExpirationTimeWithContext gets the subscription expiration time on a namespace. Returns -1 if not set
	GetSubscriptionExpirationTimeWithContext(ctx context.Context, namespace utils.NameSpaceName) (int, error)

	// SetSubscriptionExpirationTime sets the subscription expiration time on a namespace
	SetSubscriptionExpirationTime(namespace utils.NameSpaceName, expirationTimeInMinutes int) error

	// SetSubscriptionExpirationTimeWithContext sets the subscription expiration time on a namespace
	SetSubscriptionExpirationTimeWithContext(
		ctx context.Context,
		namespace utils.NameSpaceName,
		expirationTimeInMinutes int,
	) error

	// RemoveSubscriptionExpirationTime removes subscription expiration time from a namespace,
	// defaulting to broker settings
	RemoveSubscriptionExpirationTime(namespace utils.NameSpaceName) error

	// RemoveSubscriptionExpirationTimeWithContext removes subscription expiration time from a namespace,
	// defaulting to broker settings
	RemoveSubscriptionExpirationTimeWithContext(ctx context.Context, namespace utils.NameSpaceName) error

	// UpdateProperties updates the properties of a namespace
	UpdateProperties(namespace utils.NameSpaceName, properties map[string]string) error

	// UpdatePropertiesWithContext updates the properties of a namespace
	UpdatePropertiesWithContext(ctx context.Context, namespace utils.NameSpaceName, properties map[string]string) error

	// GetProperties returns the properties of a namespace
	GetProperties(namespace utils.NameSpaceName) (map[string]string, error)

	// GetPropertiesWithContext returns the properties of a namespace
	GetPropertiesWithContext(ctx context.Context, namespace utils.NameSpaceName) (map[string]string, error)

	// RemoveProperties clears the properties of a namespace
	RemoveProperties(namespace utils.NameSpaceName) error

	// RemovePropertiesWithContext clears the properties of a namespace
	RemovePropertiesWithContext(ctx context.Context, namespace utils.NameSpaceName) error
}

Namespaces is admin interface for namespaces management

type NsIsolationPolicy

type NsIsolationPolicy interface {
	// CreateNamespaceIsolationPolicy creates a namespace isolation policy for a cluster
	CreateNamespaceIsolationPolicy(cluster, policyName string, namespaceIsolationData utils.NamespaceIsolationData) error

	// CreateNamespaceIsolationPolicyWithContext creates a namespace isolation policy for a cluster
	CreateNamespaceIsolationPolicyWithContext(
		ctx context.Context,
		cluster,
		policyName string,
		namespaceIsolationData utils.NamespaceIsolationData,
	) error

	// DeleteNamespaceIsolationPolicy deletes a namespace isolation policy for a cluster
	DeleteNamespaceIsolationPolicy(cluster, policyName string) error

	// DeleteNamespaceIsolationPolicyWithContext deletes a namespace isolation policy for a cluster
	DeleteNamespaceIsolationPolicyWithContext(ctx context.Context, cluster, policyName string) error

	// GetNamespaceIsolationPolicy returns a single namespace isolation policy for a cluster
	GetNamespaceIsolationPolicy(cluster, policyName string) (*utils.NamespaceIsolationData, error)

	// GetNamespaceIsolationPolicyWithContext returns a single namespace isolation policy for a cluster
	GetNamespaceIsolationPolicyWithContext(
		ctx context.Context,
		cluster,
		policyName string,
	) (*utils.NamespaceIsolationData, error)

	// GetNamespaceIsolationPolicies returns the namespace isolation policies of a cluster
	GetNamespaceIsolationPolicies(cluster string) (map[string]utils.NamespaceIsolationData, error)

	// GetNamespaceIsolationPoliciesWithContext returns the namespace isolation policies of a cluster
	GetNamespaceIsolationPoliciesWithContext(
		ctx context.Context,
		cluster string,
	) (map[string]utils.NamespaceIsolationData, error)

	// GetBrokersWithNamespaceIsolationPolicy returns list of active brokers
	// with namespace-isolation policies attached to it.
	GetBrokersWithNamespaceIsolationPolicy(cluster string) ([]utils.BrokerNamespaceIsolationData, error)

	// GetBrokersWithNamespaceIsolationPolicyWithContext returns list of active brokers
	// with namespace-isolation policies attached to it.
	GetBrokersWithNamespaceIsolationPolicyWithContext(
		ctx context.Context,
		cluster string,
	) ([]utils.BrokerNamespaceIsolationData, error)

	// GetBrokerWithNamespaceIsolationPolicy returns active broker with namespace-isolation policies attached to it.
	GetBrokerWithNamespaceIsolationPolicy(cluster, broker string) (*utils.BrokerNamespaceIsolationData, error)

	// GetBrokerWithNamespaceIsolationPolicyWithContext returns active broker
	// with namespace-isolation policies attached to it.
	GetBrokerWithNamespaceIsolationPolicyWithContext(
		ctx context.Context,
		cluster,
		broker string,
	) (*utils.BrokerNamespaceIsolationData, error)
}

type Packages

type Packages interface {
	// Download downloads Function/Connector Package
	// @param destinationFile
	//        file where data should be downloaded to
	// @param packageURL
	//        the package URL
	Download(packageURL, destinationFile string) error

	// DownloadWithContext downloads Function/Connector Package
	// @param ctx
	//        context used for the request
	// @param destinationFile
	//        file where data should be downloaded to
	// @param packageURL
	//        the package URL
	DownloadWithContext(ctx context.Context, packageURL, destinationFile string) error

	// Upload uploads Function/Connector Package
	// @param filePath
	//        file where data should be uploaded to
	// @param packageURL
	//        type://tenant/namespace/packageName@version
	// @param description
	//        descriptions of a package
	// @param contact
	//        contact information of a package
	// @param properties
	// 		  external informations of a package
	Upload(packageURL, filePath, description, contact string, properties map[string]string) error

	// UploadWithContext uploads Function/Connector Package
	// @param ctx
	//        context used for the request
	// @param filePath
	//        file where data should be uploaded to
	// @param packageURL
	//        type://tenant/namespace/packageName@version
	// @param description
	//        descriptions of a package
	// @param contact
	//        contact information of a package
	// @param properties
	// 		  external informations of a package
	UploadWithContext(
		ctx context.Context,
		packageURL,
		filePath,
		description,
		contact string,
		properties map[string]string,
	) error

	// List lists all the packages with the given type in a namespace
	List(typeName, namespace string) ([]string, error)

	// ListWithContext lists all the packages with the given type in a namespace
	ListWithContext(ctx context.Context, typeName, namespace string) ([]string, error)

	// ListVersions lists all the versions of a package
	ListVersions(packageURL string) ([]string, error)

	// ListVersionsWithContext lists all the versions of a package
	ListVersionsWithContext(ctx context.Context, packageURL string) ([]string, error)

	// Delete deletes the specified package
	Delete(packageURL string) error

	// DeleteWithContext deletes the specified package
	DeleteWithContext(ctx context.Context, packageURL string) error

	// GetMetadata returns a package metadata information
	GetMetadata(packageURL string) (utils.PackageMetadata, error)

	// GetMetadataWithContext returns a package metadata information
	GetMetadataWithContext(ctx context.Context, packageURL string) (utils.PackageMetadata, error)

	// UpdateMetadata updates a package metadata information
	UpdateMetadata(packageURL, description, contact string, properties map[string]string) error

	// UpdateMetadataWithContext updates a package metadata information
	UpdateMetadataWithContext(
		ctx context.Context,
		packageURL,
		description,
		contact string,
		properties map[string]string,
	) error
}

Packages is admin interface for functions management

type ResourceQuotas

type ResourceQuotas interface {
	// GetDefaultResourceQuota returns default resource quota for new resource bundles.
	GetDefaultResourceQuota() (*utils.ResourceQuota, error)

	// GetDefaultResourceQuotaWithContext returns default resource quota for new resource bundles.
	GetDefaultResourceQuotaWithContext(ctx context.Context) (*utils.ResourceQuota, error)

	// SetDefaultResourceQuota sets default resource quota for new namespace bundles.
	SetDefaultResourceQuota(quota utils.ResourceQuota) error

	// SetDefaultResourceQuotaWithContext sets default resource quota for new namespace bundles.
	SetDefaultResourceQuotaWithContext(ctx context.Context, quota utils.ResourceQuota) error

	// GetNamespaceBundleResourceQuota returns resource quota of a namespace bundle.
	GetNamespaceBundleResourceQuota(namespace, bundle string) (*utils.ResourceQuota, error)

	// GetNamespaceBundleResourceQuotaWithContext returns resource quota of a namespace bundle.
	GetNamespaceBundleResourceQuotaWithContext(ctx context.Context, namespace, bundle string) (*utils.ResourceQuota, error)

	// SetNamespaceBundleResourceQuota sets resource quota for a namespace bundle.
	SetNamespaceBundleResourceQuota(namespace, bundle string, quota utils.ResourceQuota) error

	// SetNamespaceBundleResourceQuotaWithContext sets resource quota for a namespace bundle.
	SetNamespaceBundleResourceQuotaWithContext(
		ctx context.Context,
		namespace,
		bundle string,
		quota utils.ResourceQuota,
	) error

	// ResetNamespaceBundleResourceQuota resets resource quota for a namespace bundle to default value.
	ResetNamespaceBundleResourceQuota(namespace, bundle string) error

	// ResetNamespaceBundleResourceQuotaWithContext resets resource quota for a namespace bundle to default value.
	ResetNamespaceBundleResourceQuotaWithContext(ctx context.Context, namespace, bundle string) error
}

type Schema

type Schema interface {
	// GetSchemaInfo retrieves the latest schema of a topic
	GetSchemaInfo(topic string) (*utils.SchemaInfo, error)

	// GetSchemaInfoWithVersion retrieves the latest schema with version of a topic
	GetSchemaInfoWithVersion(topic string) (*utils.SchemaInfoWithVersion, error)

	// GetSchemaInfoByVersion retrieves the schema of a topic at a given <tt>version</tt>
	GetSchemaInfoByVersion(topic string, version int64) (*utils.SchemaInfo, error)

	// GetAllSchemas retrieves all schemas of a topic
	GetAllSchemas(topic string) ([]*utils.SchemaInfoWithVersion, error)

	// DeleteSchema deletes the schema associated with a given <tt>topic</tt>
	DeleteSchema(topic string) error

	// ForceDeleteSchema force deletes the schema associated with a given <tt>topic</tt>
	ForceDeleteSchema(topic string) error

	// CreateSchemaByPayload creates a schema for a given <tt>topic</tt>
	CreateSchemaByPayload(topic string, schemaPayload utils.PostSchemaPayload) error

	// CreateSchemaBySchemaInfo creates a schema for a given <tt>topic</tt>
	CreateSchemaBySchemaInfo(topic string, schemaInfo utils.SchemaInfo) error

	// GetVersionBySchemaInfo gets the version of a schema
	GetVersionBySchemaInfo(topic string, schemaInfo utils.SchemaInfo) (int64, error)

	// GetVersionByPayload gets the version of a schema
	GetVersionByPayload(topic string, schemaPayload utils.PostSchemaPayload) (int64, error)

	// TestCompatibilityWithSchemaInfo tests compatibility with a schema
	TestCompatibilityWithSchemaInfo(topic string, schemaInfo utils.SchemaInfo) (*utils.IsCompatibility, error)

	// TestCompatibilityWithPostSchemaPayload tests compatibility with a schema
	TestCompatibilityWithPostSchemaPayload(topic string,
		schemaPayload utils.PostSchemaPayload) (*utils.IsCompatibility, error)
}

Schema is admin interface for schema management

type Sinks

type Sinks interface {
	// ListSinks returns the list of all the Pulsar Sinks.
	ListSinks(tenant, namespace string) ([]string, error)

	// ListSinksWithContext returns the list of all the Pulsar Sinks.
	ListSinksWithContext(ctx context.Context, tenant, namespace string) ([]string, error)

	// GetSink returns the configuration for the specified sink
	GetSink(tenant, namespace, Sink string) (utils.SinkConfig, error)

	// GetSinkWithContext returns the configuration for the specified sink
	GetSinkWithContext(ctx context.Context, tenant, namespace, Sink string) (utils.SinkConfig, error)

	// CreateSink creates a new sink
	CreateSink(config *utils.SinkConfig, fileName string) error

	// CreateSinkWithContext creates a new sink
	CreateSinkWithContext(ctx context.Context, config *utils.SinkConfig, fileName string) error

	// CreateSinkWithURL creates a new sink by providing url from which fun-pkg can be downloaded. supported url: http/file
	CreateSinkWithURL(config *utils.SinkConfig, pkgURL string) error

	// CreateSinkWithURLWithContext creates a new sink by providing url from which fun-pkg can be downloaded.
	// Supported url: http/file
	CreateSinkWithURLWithContext(ctx context.Context, config *utils.SinkConfig, pkgURL string) error

	// UpdateSink updates the configuration for a sink.
	UpdateSink(config *utils.SinkConfig, fileName string, options *utils.UpdateOptions) error

	// UpdateSinkWithContext updates the configuration for a sink.
	UpdateSinkWithContext(
		ctx context.Context,
		config *utils.SinkConfig,
		fileName string,
		options *utils.UpdateOptions,
	) error

	// UpdateSinkWithURL updates a sink by providing url from which fun-pkg can be downloaded.
	// Supported url: http/file
	UpdateSinkWithURL(config *utils.SinkConfig, pkgURL string, options *utils.UpdateOptions) error

	// UpdateSinkWithURLWithContext updates a sink by providing url from which fun-pkg can be downloaded.
	// Supported url: http/file
	UpdateSinkWithURLWithContext(
		ctx context.Context,
		config *utils.SinkConfig,
		pkgURL string,
		options *utils.UpdateOptions,
	) error

	// DeleteSink deletes an existing sink
	DeleteSink(tenant, namespace, Sink string) error

	// DeleteSinkWithContext deletes an existing sink
	DeleteSinkWithContext(ctx context.Context, tenant, namespace, Sink string) error

	// GetSinkStatus returns the current status of a sink.
	GetSinkStatus(tenant, namespace, Sink string) (utils.SinkStatus, error)

	// GetSinkStatusWithContext returns the current status of a sink.
	GetSinkStatusWithContext(ctx context.Context, tenant, namespace, Sink string) (utils.SinkStatus, error)

	// GetSinkStatusWithID returns the current status of a sink instance.
	GetSinkStatusWithID(tenant, namespace, Sink string, id int) (utils.SinkInstanceStatusData, error)

	// GetSinkStatusWithIDWithContext returns the current status of a sink instance.
	GetSinkStatusWithIDWithContext(
		ctx context.Context,
		tenant,
		namespace,
		Sink string,
		id int,
	) (utils.SinkInstanceStatusData, error)

	// RestartSink restarts all sink instances
	RestartSink(tenant, namespace, Sink string) error

	// RestartSinkWithContext restarts all sink instances
	RestartSinkWithContext(ctx context.Context, tenant, namespace, Sink string) error

	// RestartSinkWithID restarts sink instance
	RestartSinkWithID(tenant, namespace, Sink string, id int) error

	// RestartSinkWithIDWithContext restarts sink instance
	RestartSinkWithIDWithContext(ctx context.Context, tenant, namespace, Sink string, id int) error

	// StopSink stops all sink instances
	StopSink(tenant, namespace, Sink string) error

	// StopSinkWithContext stops all sink instances
	StopSinkWithContext(ctx context.Context, tenant, namespace, Sink string) error

	// StopSinkWithID stops sink instance
	StopSinkWithID(tenant, namespace, Sink string, id int) error

	// StopSinkWithIDWithContext stops sink instance
	StopSinkWithIDWithContext(ctx context.Context, tenant, namespace, Sink string, id int) error

	// StartSink starts all sink instances
	StartSink(tenant, namespace, Sink string) error

	// StartSinkWithContext starts all sink instances
	StartSinkWithContext(ctx context.Context, tenant, namespace, Sink string) error

	// StartSinkWithID starts sink instance
	StartSinkWithID(tenant, namespace, Sink string, id int) error

	// StartSinkWithIDWithContext starts sink instance
	StartSinkWithIDWithContext(ctx context.Context, tenant, namespace, Sink string, id int) error

	// GetBuiltInSinks fetches a list of supported Pulsar IO sinks currently running in cluster mode
	GetBuiltInSinks() ([]*utils.ConnectorDefinition, error)

	// GetBuiltInSinksWithContext fetches a list of supported Pulsar IO sinks currently running in cluster mode
	GetBuiltInSinksWithContext(ctx context.Context) ([]*utils.ConnectorDefinition, error)

	// ReloadBuiltInSinks reloads the available built-in connectors, include Source and Sink
	ReloadBuiltInSinks() error

	// ReloadBuiltInSinksWithContext reloads the available built-in connectors, include Source and Sink
	ReloadBuiltInSinksWithContext(ctx context.Context) error
}

Sinks is admin interface for sinks management

type Sources

type Sources interface {
	// ListSources returns the list of all the Pulsar Sources.
	ListSources(tenant, namespace string) ([]string, error)

	// ListSources returns the list of all the Pulsar Sources.
	ListSourcesWithContext(ctx context.Context, tenant, namespace string) ([]string, error)

	// GetSource return the configuration for the specified source
	GetSource(tenant, namespace, source string) (utils.SourceConfig, error)

	// GetSource return the configuration for the specified source
	GetSourceWithContext(ctx context.Context, tenant, namespace, source string) (utils.SourceConfig, error)

	// CreateSource creates a new source
	CreateSource(config *utils.SourceConfig, fileName string) error

	// CreateSource creates a new source
	CreateSourceWithContext(ctx context.Context, config *utils.SourceConfig, fileName string) error

	// CreateSourceWithURL creates a new source by providing url from which fun-pkg can be downloaded.
	// Supported url: http/file
	CreateSourceWithURL(config *utils.SourceConfig, pkgURL string) error

	// CreateSourceWithURL creates a new source by providing url from which fun-pkg can be downloaded.
	// Supported url: http/file
	CreateSourceWithURLWithContext(ctx context.Context, config *utils.SourceConfig, pkgURL string) error

	// UpdateSource updates the configuration for a source.
	UpdateSource(config *utils.SourceConfig, fileName string, options *utils.UpdateOptions) error

	// UpdateSource updates the configuration for a source.
	UpdateSourceWithContext(
		ctx context.Context,
		config *utils.SourceConfig,
		fileName string,
		options *utils.UpdateOptions,
	) error

	// UpdateSourceWithURL updates a source by providing url from which fun-pkg can be downloaded. supported url: http/file
	UpdateSourceWithURL(config *utils.SourceConfig, pkgURL string, options *utils.UpdateOptions) error

	// UpdateSourceWithURL updates a source by providing url from which fun-pkg can be downloaded. supported url: http/file
	UpdateSourceWithURLWithContext(
		ctx context.Context,
		config *utils.SourceConfig,
		pkgURL string,
		options *utils.UpdateOptions,
	) error

	// DeleteSource deletes an existing source
	DeleteSource(tenant, namespace, source string) error

	// DeleteSource deletes an existing source
	DeleteSourceWithContext(ctx context.Context, tenant, namespace, source string) error

	// GetSourceStatus returns the current status of a source.
	GetSourceStatus(tenant, namespace, source string) (utils.SourceStatus, error)

	// GetSourceStatus returns the current status of a source.
	GetSourceStatusWithContext(ctx context.Context, tenant, namespace, source string) (utils.SourceStatus, error)

	// GetSourceStatusWithID returns the current status of a source instance.
	GetSourceStatusWithID(tenant, namespace, source string, id int) (utils.SourceInstanceStatusData, error)

	// GetSourceStatusWithID returns the current status of a source instance.
	GetSourceStatusWithIDWithContext(
		ctx context.Context,
		tenant,
		namespace,
		source string,
		id int,
	) (utils.SourceInstanceStatusData, error)

	// RestartSource restarts all source instances
	RestartSource(tenant, namespace, source string) error

	// RestartSource restarts all source instances
	RestartSourceWithContext(ctx context.Context, tenant, namespace, source string) error

	// RestartSourceWithID restarts source instance
	RestartSourceWithID(tenant, namespace, source string, id int) error

	// RestartSourceWithID restarts source instance
	RestartSourceWithIDWithContext(ctx context.Context, tenant, namespace, source string, id int) error

	// StopSource stops all source instances
	StopSource(tenant, namespace, source string) error

	// StopSource stops all source instances
	StopSourceWithContext(ctx context.Context, tenant, namespace, source string) error

	// StopSourceWithID stops source instance
	StopSourceWithID(tenant, namespace, source string, id int) error

	// StopSourceWithID stops source instance
	StopSourceWithIDWithContext(ctx context.Context, tenant, namespace, source string, id int) error

	// StartSource starts all source instances
	StartSource(tenant, namespace, source string) error

	// StartSource starts all source instances
	StartSourceWithContext(ctx context.Context, tenant, namespace, source string) error

	// StartSourceWithID starts source instance
	StartSourceWithID(tenant, namespace, source string, id int) error

	// StartSourceWithID starts source instance
	StartSourceWithIDWithContext(ctx context.Context, tenant, namespace, source string, id int) error

	// GetBuiltInSources fetches a list of supported Pulsar IO sources currently running in cluster mode
	GetBuiltInSources() ([]*utils.ConnectorDefinition, error)

	// GetBuiltInSources fetches a list of supported Pulsar IO sources currently running in cluster mode
	GetBuiltInSourcesWithContext(ctx context.Context) ([]*utils.ConnectorDefinition, error)

	// ReloadBuiltInSources reloads the available built-in connectors, include Source and Sink
	ReloadBuiltInSources() error

	// ReloadBuiltInSources reloads the available built-in connectors, include Source and Sink
	ReloadBuiltInSourcesWithContext(ctx context.Context) error
}

Sources is admin interface for sources management

type Subscriptions

type Subscriptions interface {
	// Create creates a new subscription on a topic
	Create(utils.TopicName, string, utils.MessageID) error

	// CreateWithContext creates a new subscription on a topic
	CreateWithContext(context.Context, utils.TopicName, string, utils.MessageID) error

	// Delete deletes a persistent subscription from a topic. There should not be any active consumers on the subscription
	Delete(utils.TopicName, string) error

	// DeleteWithContext deletes a persistent subscription from a topic.
	// There should not be any active consumers on the subscription
	DeleteWithContext(context.Context, utils.TopicName, string) error

	// ForceDelete deletes a subscription forcefully
	ForceDelete(utils.TopicName, string) error

	// ForceDeleteWithContext deletes a subscription forcefully
	ForceDeleteWithContext(context.Context, utils.TopicName, string) error

	// List returns the list of subscriptions
	List(utils.TopicName) ([]string, error)

	// ListWithContext returns the list of subscriptions
	ListWithContext(context.Context, utils.TopicName) ([]string, error)

	// ResetCursorToMessageID resets cursor position on a topic subscription
	// @param
	// messageID reset subscription to messageId (or previous nearest messageId if given messageId is not valid)
	ResetCursorToMessageID(utils.TopicName, string, utils.MessageID) error

	// ResetCursorToMessageIDWithContext resets cursor position on a topic subscription
	// @param
	// messageID reset subscription to messageId (or previous nearest messageId if given messageId is not valid)
	ResetCursorToMessageIDWithContext(context.Context, utils.TopicName, string, utils.MessageID) error

	// ResetCursorToTimestamp resets cursor position on a topic subscription
	// @param
	// time reset subscription to position closest to time in ms since epoch
	ResetCursorToTimestamp(utils.TopicName, string, int64) error

	// ResetCursorToTimestampWithContext resets cursor position on a topic subscription
	// @param
	// time reset subscription to position closest to time in ms since epoch
	ResetCursorToTimestampWithContext(context.Context, utils.TopicName, string, int64) error

	// ClearBacklog skips all messages on a topic subscription
	ClearBacklog(utils.TopicName, string) error

	// ClearBacklogWithContext skips all messages on a topic subscription
	ClearBacklogWithContext(context.Context, utils.TopicName, string) error

	// SkipMessages skips messages on a topic subscription
	SkipMessages(utils.TopicName, string, int64) error

	// SkipMessagesWithContext skips messages on a topic subscription
	SkipMessagesWithContext(context.Context, utils.TopicName, string, int64) error

	// ExpireMessages expires all messages older than given N (expireTimeInSeconds) seconds for a given subscription
	ExpireMessages(utils.TopicName, string, int64) error

	// ExpireMessagesWithContext expires all messages older than given N (expireTimeInSeconds) seconds
	// for a given subscription
	ExpireMessagesWithContext(context.Context, utils.TopicName, string, int64) error

	// ExpireAllMessages expires all messages older than given N (expireTimeInSeconds) seconds for all
	// subscriptions of the persistent-topic
	ExpireAllMessages(utils.TopicName, int64) error

	// ExpireAllMessagesWithContext expires all messages older than given N (expireTimeInSeconds) seconds for all
	// subscriptions of the persistent-topic
	ExpireAllMessagesWithContext(context.Context, utils.TopicName, int64) error

	// PeekMessages peeks messages from a topic subscription
	PeekMessages(utils.TopicName, string, int) ([]*utils.Message, error)

	// PeekMessagesWithContext peeks messages from a topic subscription
	PeekMessagesWithContext(context.Context, utils.TopicName, string, int) ([]*utils.Message, error)

	// Deprecated: Use GetMessagesByID() instead
	GetMessageByID(topic utils.TopicName, ledgerID, entryID int64) (*utils.Message, error)

	// Deprecated: Use GetMessagesByIDWithContext() instead
	GetMessageByIDWithContext(ctx context.Context, topic utils.TopicName, ledgerID, entryID int64) (*utils.Message, error)

	// GetMessagesByID gets messages by its ledgerID and entryID
	GetMessagesByID(topic utils.TopicName, ledgerID, entryID int64) ([]*utils.Message, error)

	// GetMessagesByIDWithContext gets messages by its ledgerID and entryID
	GetMessagesByIDWithContext(
		ctx context.Context,
		topic utils.TopicName,
		ledgerID,
		entryID int64,
	) ([]*utils.Message, error)
}

Subscriptions is admin interface for subscriptions management

type TLSOptions

type TLSOptions struct {
	TrustCertsFilePath      string
	AllowInsecureConnection bool
}

type Tenants

type Tenants interface {
	// Create creates a new tenant
	Create(utils.TenantData) error

	// CreateWithContext creates a new tenant
	CreateWithContext(context.Context, utils.TenantData) error

	// Delete deletes an existing tenant
	Delete(string) error

	// DeleteWithContext deletes an existing tenant
	DeleteWithContext(context.Context, string) error

	// Update updates the admins for a tenant
	Update(utils.TenantData) error

	// UpdateWithContext updates the admins for a tenant
	UpdateWithContext(context.Context, utils.TenantData) error

	// List returns the list of tenants
	List() ([]string, error)

	// ListWithContext returns the list of tenants
	ListWithContext(context.Context) ([]string, error)

	// Get returns the config of the tenant.
	Get(string) (utils.TenantData, error)

	// GetWithContext returns the config of the tenant.
	GetWithContext(context.Context, string) (utils.TenantData, error)
}

Tenants is admin interface for tenants management

type Topics

type Topics interface {
	// Create creates a partitioned or non-partitioned topic
	//
	// @param topic
	//        topicName struct
	// @param partitions
	//        number of topic partitions,
	//        when setting to 0, it will create a non-partitioned topic
	Create(topic utils.TopicName, partitions int) error

	// CreateWithContext creates a partitioned or non-partitioned topic
	//
	// @param ctx
	//        context used for the request
	// @param topic
	//        topicName struct
	// @param partitions
	//        number of topic partitions,
	//        when setting to 0, it will create a non-partitioned topic
	CreateWithContext(ctx context.Context, topic utils.TopicName, partitions int) error

	// CreateWithProperties creates a partitioned or non-partitioned topic with specific properties
	//
	// @param topic
	//        topicName struct
	// @param partitions
	//        number of topic partitions,
	//        when setting to 0, it will create a non-partitioned topic
	// @param meta
	//        topic properties
	CreateWithProperties(topic utils.TopicName, partitions int, meta map[string]string) error

	// CreateWithPropertiesWithContext creates a partitioned or non-partitioned topic with specific properties
	//
	// @param ctx
	//        context used for the request
	// @param topic
	//        topicName struct
	// @param partitions
	//        number of topic partitions,
	//        when setting to 0, it will create a non-partitioned topic
	// @param meta
	//        topic properties
	CreateWithPropertiesWithContext(
		ctx context.Context,
		topic utils.TopicName,
		partitions int,
		meta map[string]string,
	) error

	// GetProperties returns the properties of a topic
	GetProperties(topic utils.TopicName) (map[string]string, error)

	// GetPropertiesWithContext returns the properties of a topic
	GetPropertiesWithContext(ctx context.Context, topic utils.TopicName) (map[string]string, error)

	// UpdateProperties updates the properties of a topic
	UpdateProperties(topic utils.TopicName, properties map[string]string) error

	// UpdatePropertiesWithContext updates the properties of a topic
	UpdatePropertiesWithContext(ctx context.Context, topic utils.TopicName, properties map[string]string) error

	// RemoveProperty removes a property with the given key of a topic
	RemoveProperty(topic utils.TopicName, key string) error

	// RemovePropertyWithContext removes a property with the given key of a topic
	RemovePropertyWithContext(ctx context.Context, topic utils.TopicName, key string) error

	// Delete deletes a topic, this function can delete both partitioned or non-partitioned topic
	//
	// @param topic
	//        topicName struct
	// @param force
	//        delete topic forcefully
	// @param nonPartitioned
	//        when set to true, topic will be treated as a non-partitioned topic
	//        Otherwise it will be treated as a partitioned topic
	Delete(topic utils.TopicName, force bool, nonPartitioned bool) error

	// DeleteWithContext deletes a topic, this function can delete both partitioned or non-partitioned topic
	//
	// @param ctx
	//        context used for the request
	// @param topic
	//        topicName struct
	// @param force
	//        delete topic forcefully
	// @param nonPartitioned
	//        when set to true, topic will be treated as a non-partitioned topic
	//        Otherwise it will be treated as a partitioned topic
	DeleteWithContext(ctx context.Context, topic utils.TopicName, force bool, nonPartitioned bool) error

	// Update updates number of partitions of a non-global partitioned topic
	// It requires partitioned-topic to be already exist and number of new partitions must be greater than existing
	// number of partitions. Decrementing number of partitions requires deletion of topic which is not supported.
	//
	// @param topic
	//        topicName struct
	// @param partitions
	//        number of new partitions of already exist partitioned-topic
	Update(topic utils.TopicName, partitions int) error

	// UpdateWithContext updates number of partitions of a non-global partitioned topic
	// It requires partitioned-topic to be already exist and number of new partitions must be greater than existing
	// number of partitions. Decrementing number of partitions requires deletion of topic which is not supported.
	//
	// @param ctx
	//        context used for the request
	// @param topic
	//        topicName struct
	// @param partitions
	//        number of new partitions of already exist partitioned-topic
	UpdateWithContext(ctx context.Context, topic utils.TopicName, partitions int) error

	// GetMetadata returns metadata of a partitioned topic
	GetMetadata(utils.TopicName) (utils.PartitionedTopicMetadata, error)

	// GetMetadataWithContext returns metadata of a partitioned topic
	GetMetadataWithContext(context.Context, utils.TopicName) (utils.PartitionedTopicMetadata, error)

	// List returns the list of topics under a namespace
	List(utils.NameSpaceName) ([]string, []string, error)

	// ListWithContext returns the list of topics under a namespace
	ListWithContext(context.Context, utils.NameSpaceName) ([]string, []string, error)

	// GetInternalInfo returns the internal metadata info for the topic
	GetInternalInfo(utils.TopicName) (utils.ManagedLedgerInfo, error)

	// GetInternalInfoWithContext returns the internal metadata info for the topic
	GetInternalInfoWithContext(context.Context, utils.TopicName) (utils.ManagedLedgerInfo, error)

	// GetPermissions returns permissions on a topic
	// Retrieve the effective permissions for a topic. These permissions are defined by the permissions set at the
	// namespace level combined (union) with any eventual specific permission set on the topic.
	GetPermissions(utils.TopicName) (map[string][]utils.AuthAction, error)

	// GetPermissionsWithContext returns permissions on a topic
	// Retrieve the effective permissions for a topic. These permissions are defined by the permissions set at the
	// namespace level combined (union) with any eventual specific permission set on the topic.
	GetPermissionsWithContext(context.Context, utils.TopicName) (map[string][]utils.AuthAction, error)

	// GrantPermission grants a new permission to a client role on a single topic
	//
	// @param topic
	//        topicName struct
	// @param role
	//        client role to which grant permission
	// @param action
	//        auth actions (e.g. produce and consume)
	GrantPermission(topic utils.TopicName, role string, action []utils.AuthAction) error

	// GrantPermissionWithContext grants a new permission to a client role on a single topic
	//
	// @param ctx
	//        context used for the request
	// @param topic
	//        topicName struct
	// @param role
	//        client role to which grant permission
	// @param action
	//        auth actions (e.g. produce and consume)
	GrantPermissionWithContext(ctx context.Context, topic utils.TopicName, role string, action []utils.AuthAction) error

	// RevokePermission revokes permissions to a client role on a single topic. If the permission
	// was not set at the topic level, but rather at the namespace level, this operation will
	// return an error (HTTP status code 412).
	//
	// @param topic
	//        topicName struct
	// @param role
	//        client role to which remove permissions
	RevokePermission(topic utils.TopicName, role string) error

	// RevokePermissionWithContext revokes permissions to a client role on a single topic. If the permission
	// was not set at the topic level, but rather at the namespace level, this operation will
	// return an error (HTTP status code 412).
	//
	// @param ctx
	//        context used for the request
	// @param topic
	//        topicName struct
	// @param role
	//        client role to which remove permissions
	RevokePermissionWithContext(ctx context.Context, topic utils.TopicName, role string) error

	// Lookup returns the broker URL that serves the topic
	Lookup(utils.TopicName) (utils.LookupData, error)

	// LookupWithContext returns the broker URL that serves the topic
	LookupWithContext(context.Context, utils.TopicName) (utils.LookupData, error)

	// GetBundleRange returns a bundle range of a topic
	GetBundleRange(utils.TopicName) (string, error)

	// GetBundleRangeWithContext returns a bundle range of a topic
	GetBundleRangeWithContext(context.Context, utils.TopicName) (string, error)

	// GetLastMessageID returns the last commit message Id of a topic
	GetLastMessageID(utils.TopicName) (utils.MessageID, error)

	// GetLastMessageIDWithContext returns the last commit message Id of a topic
	GetLastMessageIDWithContext(context.Context, utils.TopicName) (utils.MessageID, error)

	// GetMessageID returns the message Id by timestamp(ms) of a topic
	//
	// @param topic
	//        topicName struct
	// @param timestamp
	//        absolute timestamp (in ms)
	GetMessageID(topic utils.TopicName, timestamp int64) (utils.MessageID, error)

	// GetMessageIDWithContext returns the message Id by timestamp(ms) of a topic
	//
	// @param ctx
	//        context used for the request
	// @param topic
	//        topicName struct
	// @param timestamp
	//        absolute timestamp (in ms)
	GetMessageIDWithContext(ctx context.Context, topic utils.TopicName, timestamp int64) (utils.MessageID, error)

	// GetStats returns the stats for the topic.
	//
	// All the rates are computed over a 1-minute window and are relative the last completed 1-minute period
	GetStats(utils.TopicName) (utils.TopicStats, error)

	// GetStatsWithContext returns the stats for the topic.
	//
	// All the rates are computed over a 1-minute window and are relative the last completed 1-minute period
	GetStatsWithContext(context.Context, utils.TopicName) (utils.TopicStats, error)

	// GetStatsWithOption returns the stats for the topic
	//
	// All the rates are computed over a 1-minute window and are relative the last completed 1-minute period
	//
	// @param topic
	//        topicName struct
	// @param option
	//        request option, e.g. get_precise_backlog or subscription_backlog_size
	GetStatsWithOption(topic utils.TopicName, option utils.GetStatsOptions) (utils.TopicStats, error)

	// GetStatsWithOptionWithContext returns the stats for the topic
	//
	// All the rates are computed over a 1-minute window and are relative the last completed 1-minute period
	//
	// @param ctx
	//        context used for the request
	// @param topic
	//        topicName struct
	// @param option
	//        request option, e.g. get_precise_backlog or subscription_backlog_size
	GetStatsWithOptionWithContext(
		ctx context.Context,
		topic utils.TopicName,
		option utils.GetStatsOptions,
	) (utils.TopicStats, error)

	// GetInternalStats returns the internal stats for the topic.
	GetInternalStats(utils.TopicName) (utils.PersistentTopicInternalStats, error)

	// GetInternalStatsWithContext returns the internal stats for the topic.
	GetInternalStatsWithContext(context.Context, utils.TopicName) (utils.PersistentTopicInternalStats, error)

	// GetPartitionedStats returns the stats for the partitioned topic
	//
	// All the rates are computed over a 1-minute window and are relative the last completed 1-minute period
	//
	// @param topic
	//        topicName struct
	// @param perPartition
	//        flag to get stats per partition
	GetPartitionedStats(topic utils.TopicName, perPartition bool) (utils.PartitionedTopicStats, error)

	// GetPartitionedStatsWithContext returns the stats for the partitioned topic
	//
	// All the rates are computed over a 1-minute window and are relative the last completed 1-minute period
	//
	// @param ctx
	//        context used for the request
	// @param topic
	//        topicName struct
	// @param perPartition
	//        flag to get stats per partition
	GetPartitionedStatsWithContext(
		ctx context.Context,
		topic utils.TopicName,
		perPartition bool,
	) (utils.PartitionedTopicStats, error)

	// GetPartitionedStatsWithOption returns the stats for the partitioned topic
	//
	// All the rates are computed over a 1-minute window and are relative the last completed 1-minute period
	//
	// @param topic
	//        topicName struct
	// @param perPartition
	//        flag to get stats per partition
	// @param option
	//        request option, e.g. get_precise_backlog or subscription_backlog_size
	GetPartitionedStatsWithOption(
		topic utils.TopicName,
		perPartition bool,
		option utils.GetStatsOptions,
	) (utils.PartitionedTopicStats, error)

	// GetPartitionedStatsWithOptionWithContext returns the stats for the partitioned topic
	//
	// All the rates are computed over a 1-minute window and are relative the last completed 1-minute period
	//
	// @param ctx
	//        context used for the request
	// @param topic
	//        topicName struct
	// @param perPartition
	//        flag to get stats per partition
	// @param option
	//        request option, e.g. get_precise_backlog or subscription_backlog_size
	GetPartitionedStatsWithOptionWithContext(ctx context.Context,
		topic utils.TopicName,
		perPartition bool,
		option utils.GetStatsOptions,
	) (utils.PartitionedTopicStats, error)

	// Terminate terminates the topic and prevent any more messages being published on it
	Terminate(utils.TopicName) (utils.MessageID, error)

	// TerminateWithContext terminates the topic and prevent any more messages being published on it
	TerminateWithContext(context.Context, utils.TopicName) (utils.MessageID, error)

	// Offload triggers offloading messages in topic to longterm storage
	Offload(utils.TopicName, utils.MessageID) error

	// OffloadWithContext triggers offloading messages in topic to longterm storage
	OffloadWithContext(context.Context, utils.TopicName, utils.MessageID) error

	// OffloadStatus checks the status of an ongoing offloading operation for a topic
	OffloadStatus(utils.TopicName) (utils.OffloadProcessStatus, error)

	// OffloadStatusWithContext checks the status of an ongoing offloading operation for a topic
	OffloadStatusWithContext(context.Context, utils.TopicName) (utils.OffloadProcessStatus, error)

	// Unload a topic
	Unload(utils.TopicName) error

	// UnloadWithContext a topic
	UnloadWithContext(context.Context, utils.TopicName) error

	// Compact triggers compaction to run for a topic. A single topic can only have one instance of compaction
	// running at any time. Any attempt to trigger another will be met with a ConflictException.
	Compact(utils.TopicName) error

	// CompactWithContext triggers compaction to run for a topic. A single topic can only have one instance of compaction
	// running at any time. Any attempt to trigger another will be met with a ConflictException.
	CompactWithContext(context.Context, utils.TopicName) error

	// CompactStatus checks the status of an ongoing compaction for a topic
	CompactStatus(utils.TopicName) (utils.LongRunningProcessStatus, error)

	// CompactStatusWithContext checks the status of an ongoing compaction for a topic
	CompactStatusWithContext(context.Context, utils.TopicName) (utils.LongRunningProcessStatus, error)

	// GetMessageTTL returns the message TTL for a topic
	GetMessageTTL(utils.TopicName) (int, error)

	// GetMessageTTLWithContext returns the message TTL for a topic
	GetMessageTTLWithContext(context.Context, utils.TopicName) (int, error)

	// SetMessageTTL sets the message TTL for a topic
	//
	// @param topic
	//        topicName struct
	// @param messageTTL
	//        Message TTL in second
	SetMessageTTL(topic utils.TopicName, messageTTL int) error

	// SetMessageTTLWithContext sets the message TTL for a topic
	//
	// @param ctx
	//        context used for the request
	// @param topic
	//        topicName struct
	// @param messageTTL
	//        Message TTL in second
	SetMessageTTLWithContext(ctx context.Context, topic utils.TopicName, messageTTL int) error

	// RemoveMessageTTL removes the message TTL for a topic
	RemoveMessageTTL(utils.TopicName) error

	// RemoveMessageTTLWithContext removes the message TTL for a topic
	RemoveMessageTTLWithContext(context.Context, utils.TopicName) error

	// GetMaxProducers Get max number of producers for a topic
	GetMaxProducers(utils.TopicName) (int, error)

	// GetMaxProducersWithContext Get max number of producers for a topic
	GetMaxProducersWithContext(context.Context, utils.TopicName) (int, error)

	// SetMaxProducers sets max number of producers for a topic
	//
	// @param topic
	//        topicName struct
	// @param maxProducers
	//        max number of producer
	SetMaxProducers(topic utils.TopicName, maxProducers int) error

	// SetMaxProducersWithContext sets max number of producers for a topic
	//
	// @param ctx
	//        context used for the request
	// @param topic
	//        topicName struct
	// @param maxProducers
	//        max number of producer
	SetMaxProducersWithContext(ctx context.Context, topic utils.TopicName, maxProducers int) error

	// RemoveMaxProducers removes max number of producers for a topic
	RemoveMaxProducers(utils.TopicName) error

	// RemoveMaxProducersWithContext removes max number of producers for a topic
	RemoveMaxProducersWithContext(context.Context, utils.TopicName) error

	// GetMaxConsumers returns max number of consumers for a topic
	GetMaxConsumers(utils.TopicName) (int, error)

	// GetMaxConsumersWithContext returns max number of consumers for a topic
	GetMaxConsumersWithContext(context.Context, utils.TopicName) (int, error)

	// SetMaxConsumers sets max number of consumers for a topic
	//
	// @param topic
	//        topicName struct
	// @param maxConsumers
	//        max number of consumer
	SetMaxConsumers(topic utils.TopicName, maxConsumers int) error

	// SetMaxConsumersWithContext sets max number of consumers for a topic
	//
	// @param ctx
	//        context used for the request
	// @param topic
	//        topicName struct
	// @param maxConsumers
	//        max number of consumer
	SetMaxConsumersWithContext(ctx context.Context, topic utils.TopicName, maxConsumers int) error

	// RemoveMaxConsumers removes max number of consumers for a topic
	RemoveMaxConsumers(utils.TopicName) error

	// RemoveMaxConsumersWithContext removes max number of consumers for a topic
	RemoveMaxConsumersWithContext(context.Context, utils.TopicName) error

	// GetMaxUnackMessagesPerConsumer returns max unacked messages policy on consumer for a topic
	GetMaxUnackMessagesPerConsumer(utils.TopicName) (int, error)

	// GetMaxUnackMessagesPerConsumerWithContext returns max unacked messages policy on consumer for a topic
	GetMaxUnackMessagesPerConsumerWithContext(context.Context, utils.TopicName) (int, error)

	// SetMaxUnackMessagesPerConsumer sets max unacked messages policy on consumer for a topic
	//
	// @param topic
	//        topicName struct
	// @param maxUnackedNum
	//        max unAcked messages on each consumer
	SetMaxUnackMessagesPerConsumer(topic utils.TopicName, maxUnackedNum int) error

	// SetMaxUnackMessagesPerConsumerWithContext sets max unacked messages policy on consumer for a topic
	//
	// @param ctx
	//        context used for the request
	// @param topic
	//        topicName struct
	// @param maxUnackedNum
	//        max unAcked messages on each consumer
	SetMaxUnackMessagesPerConsumerWithContext(ctx context.Context, topic utils.TopicName, maxUnackedNum int) error

	// RemoveMaxUnackMessagesPerConsumer removes max unacked messages policy on consumer for a topic
	RemoveMaxUnackMessagesPerConsumer(utils.TopicName) error

	// RemoveMaxUnackMessagesPerConsumerWithContext removes max unacked messages policy on consumer for a topic
	RemoveMaxUnackMessagesPerConsumerWithContext(context.Context, utils.TopicName) error

	// GetMaxUnackMessagesPerSubscription returns max unacked messages policy on subscription for a topic
	GetMaxUnackMessagesPerSubscription(utils.TopicName) (int, error)

	// GetMaxUnackMessagesPerSubscriptionWithContext returns max unacked messages policy on subscription for a topic
	GetMaxUnackMessagesPerSubscriptionWithContext(context.Context, utils.TopicName) (int, error)

	// SetMaxUnackMessagesPerSubscription sets max unacked messages policy on subscription for a topic
	//
	// @param topic
	//        topicName struct
	// @param maxUnackedNum
	//        max unAcked messages on subscription of a topic
	SetMaxUnackMessagesPerSubscription(topic utils.TopicName, maxUnackedNum int) error

	// SetMaxUnackMessagesPerSubscriptionWithContext sets max unacked messages policy on subscription for a topic
	//
	// @param ctx
	//        context used for the request
	// @param topic
	//        topicName struct
	// @param maxUnackedNum
	//        max unAcked messages on subscription of a topic
	SetMaxUnackMessagesPerSubscriptionWithContext(ctx context.Context, topic utils.TopicName, maxUnackedNum int) error

	// RemoveMaxUnackMessagesPerSubscription removes max unacked messages policy on subscription for a topic
	RemoveMaxUnackMessagesPerSubscription(utils.TopicName) error

	// RemoveMaxUnackMessagesPerSubscriptionWithContext removes max unacked messages policy on subscription for a topic
	RemoveMaxUnackMessagesPerSubscriptionWithContext(context.Context, utils.TopicName) error

	// GetPersistence returns the persistence policies for a topic
	GetPersistence(utils.TopicName) (*utils.PersistenceData, error)

	// GetPersistenceWithContext returns the persistence policies for a topic
	GetPersistenceWithContext(context.Context, utils.TopicName) (*utils.PersistenceData, error)

	// SetPersistence sets the persistence policies for a topic
	SetPersistence(utils.TopicName, utils.PersistenceData) error

	// SetPersistenceWithContext sets the persistence policies for a topic
	SetPersistenceWithContext(context.Context, utils.TopicName, utils.PersistenceData) error

	// RemovePersistence removes the persistence policies for a topic
	RemovePersistence(utils.TopicName) error

	// RemovePersistenceWithContext removes the persistence policies for a topic
	RemovePersistenceWithContext(context.Context, utils.TopicName) error

	// GetDelayedDelivery returns the delayed delivery policy for a topic
	GetDelayedDelivery(utils.TopicName) (*utils.DelayedDeliveryData, error)

	// GetDelayedDeliveryWithContext returns the delayed delivery policy for a topic
	GetDelayedDeliveryWithContext(context.Context, utils.TopicName) (*utils.DelayedDeliveryData, error)

	// SetDelayedDelivery sets the delayed delivery policy on a topic
	SetDelayedDelivery(utils.TopicName, utils.DelayedDeliveryData) error

	// SetDelayedDeliveryWithContext sets the delayed delivery policy on a topic
	SetDelayedDeliveryWithContext(context.Context, utils.TopicName, utils.DelayedDeliveryData) error

	// RemoveDelayedDelivery removes the delayed delivery policy on a topic
	RemoveDelayedDelivery(utils.TopicName) error

	// RemoveDelayedDeliveryWithContext removes the delayed delivery policy on a topic
	RemoveDelayedDeliveryWithContext(context.Context, utils.TopicName) error

	// GetDispatchRate returns message dispatch rate for a topic
	GetDispatchRate(utils.TopicName) (*utils.DispatchRateData, error)

	// GetDispatchRateWithContext returns message dispatch rate for a topic
	GetDispatchRateWithContext(context.Context, utils.TopicName) (*utils.DispatchRateData, error)

	// SetDispatchRate sets message dispatch rate for a topic
	SetDispatchRate(utils.TopicName, utils.DispatchRateData) error

	// SetDispatchRateWithContext sets message dispatch rate for a topic
	SetDispatchRateWithContext(context.Context, utils.TopicName, utils.DispatchRateData) error

	// RemoveDispatchRate removes message dispatch rate for a topic
	RemoveDispatchRate(utils.TopicName) error

	// RemoveDispatchRateWithContext removes message dispatch rate for a topic
	RemoveDispatchRateWithContext(context.Context, utils.TopicName) error

	// GetPublishRate returns message publish rate for a topic
	GetPublishRate(utils.TopicName) (*utils.PublishRateData, error)

	// GetPublishRateWithContext returns message publish rate for a topic
	GetPublishRateWithContext(context.Context, utils.TopicName) (*utils.PublishRateData, error)

	// SetPublishRate sets message publish rate for a topic
	SetPublishRate(utils.TopicName, utils.PublishRateData) error

	// SetPublishRateWithContext sets message publish rate for a topic
	SetPublishRateWithContext(context.Context, utils.TopicName, utils.PublishRateData) error

	// RemovePublishRate removes message publish rate for a topic
	RemovePublishRate(utils.TopicName) error

	// RemovePublishRateWithContext removes message publish rate for a topic
	RemovePublishRateWithContext(context.Context, utils.TopicName) error

	// GetDeduplicationStatus returns the deduplication policy for a topic
	GetDeduplicationStatus(utils.TopicName) (bool, error)

	// GetDeduplicationStatusWithContext returns the deduplication policy for a topic
	GetDeduplicationStatusWithContext(context.Context, utils.TopicName) (bool, error)

	// SetDeduplicationStatus sets the deduplication policy for a topic
	//
	// @param topic
	//        topicName struct
	// @param enabled
	//        set enable or disable deduplication of the topic
	SetDeduplicationStatus(topic utils.TopicName, enabled bool) error

	// SetDeduplicationStatusWithContext sets the deduplication policy for a topic
	//
	// @param ctx
	//        context used for the request
	// @param topic
	//        topicName struct
	// @param enabled
	//        set enable or disable deduplication of the topic
	SetDeduplicationStatusWithContext(ctx context.Context, topic utils.TopicName, enabled bool) error

	// RemoveDeduplicationStatus removes the deduplication policy for a topic
	RemoveDeduplicationStatus(utils.TopicName) error

	// RemoveDeduplicationStatusWithContext removes the deduplication policy for a topic
	RemoveDeduplicationStatusWithContext(context.Context, utils.TopicName) error

	// GetRetention returns the retention configuration for a topic
	//
	// @param topic
	//        topicName struct
	// @param applied
	//        when set to true, function will try to find policy applied to this topic
	//        in namespace or broker level, if no policy set in topic level
	GetRetention(topic utils.TopicName, applied bool) (*utils.RetentionPolicies, error)

	// GetRetentionWithContext returns the retention configuration for a topic
	//
	// @param ctx
	//        context used for the request
	// @param topic
	//        topicName struct
	// @param applied
	//        when set to true, function will try to find policy applied to this topic
	//        in namespace or broker level, if no policy set in topic level
	GetRetentionWithContext(ctx context.Context, topic utils.TopicName, applied bool) (*utils.RetentionPolicies, error)

	// RemoveRetention removes the retention configuration on a topic
	RemoveRetention(utils.TopicName) error

	// RemoveRetentionWithContext removes the retention configuration on a topic
	RemoveRetentionWithContext(context.Context, utils.TopicName) error

	// SetRetention sets the retention policy for a topic
	SetRetention(utils.TopicName, utils.RetentionPolicies) error

	// SetRetentionWithContext sets the retention policy for a topic
	SetRetentionWithContext(context.Context, utils.TopicName, utils.RetentionPolicies) error

	// GetCompactionThreshold returns the compaction threshold for a topic.
	//
	// i.e. The maximum number of bytes can have before compaction is triggered.
	//
	// @param topic
	//        topicName struct
	// @param applied
	//        when set to true, function will try to find policy applied to this topic
	//        in namespace or broker level, if no policy set in topic level
	GetCompactionThreshold(topic utils.TopicName, applied bool) (int64, error)

	// GetCompactionThresholdWithContext returns the compaction threshold for a topic.
	//
	// i.e. The maximum number of bytes can have before compaction is triggered.
	//
	// @param ctx
	//        context used for the request
	// @param topic
	//        topicName struct
	// @param applied
	//        when set to true, function will try to find policy applied to this topic
	//        in namespace or broker level, if no policy set in topic level
	GetCompactionThresholdWithContext(ctx context.Context, topic utils.TopicName, applied bool) (int64, error)

	// SetCompactionThreshold sets the compaction threshold for a topic
	//
	// @param topic
	//        topicName struct
	// @param threshold
	//        maximum number of backlog bytes before compaction is triggered
	SetCompactionThreshold(topic utils.TopicName, threshold int64) error

	// SetCompactionThresholdWithContext sets the compaction threshold for a topic
	//
	// @param ctx
	//        context used for the request
	// @param topic
	//        topicName struct
	// @param threshold
	//        maximum number of backlog bytes before compaction is triggered
	SetCompactionThresholdWithContext(ctx context.Context, topic utils.TopicName, threshold int64) error

	// RemoveCompactionThreshold removes compaction threshold for a topic
	RemoveCompactionThreshold(utils.TopicName) error

	// RemoveCompactionThresholdWithContext removes compaction threshold for a topic
	RemoveCompactionThresholdWithContext(context.Context, utils.TopicName) error

	// GetBacklogQuotaMap returns backlog quota map for a topic
	//
	// @param topic
	//        topicName struct
	// @param applied
	//        when set to true, function will try to find policy applied to this topic
	//        in namespace or broker level, if no policy set in topic level
	GetBacklogQuotaMap(topic utils.TopicName, applied bool) (map[utils.BacklogQuotaType]utils.BacklogQuota, error)

	// GetBacklogQuotaMapWithContext returns backlog quota map for a topic
	//
	// @param ctx
	//        context used for the request
	// @param topic
	//        topicName struct
	// @param applied
	//        when set to true, function will try to find policy applied to this topic
	//        in namespace or broker level, if no policy set in topic level
	GetBacklogQuotaMapWithContext(
		ctx context.Context,
		topic utils.TopicName,
		applied bool,
	) (map[utils.BacklogQuotaType]utils.BacklogQuota, error)

	// SetBacklogQuota sets a backlog quota for a topic
	SetBacklogQuota(utils.TopicName, utils.BacklogQuota, utils.BacklogQuotaType) error

	// SetBacklogQuotaWithContext sets a backlog quota for a topic
	SetBacklogQuotaWithContext(context.Context, utils.TopicName, utils.BacklogQuota, utils.BacklogQuotaType) error

	// RemoveBacklogQuota removes a backlog quota policy from a topic
	RemoveBacklogQuota(utils.TopicName, utils.BacklogQuotaType) error

	// RemoveBacklogQuotaWithContext removes a backlog quota policy from a topic
	RemoveBacklogQuotaWithContext(context.Context, utils.TopicName, utils.BacklogQuotaType) error

	// GetInactiveTopicPolicies returns the inactive topic policies on a topic
	//
	// @param topic
	//        topicName struct
	// @param applied
	//        when set to true, function will try to find policy applied to this topic
	//        in namespace or broker level, if no policy set in topic level
	GetInactiveTopicPolicies(topic utils.TopicName, applied bool) (utils.InactiveTopicPolicies, error)

	// GetInactiveTopicPoliciesWithContext returns the inactive topic policies on a topic
	//
	// @param ctx
	//        context used for the request
	// @param topic
	//        topicName struct
	// @param applied
	//        when set to true, function will try to find policy applied to this topic
	//        in namespace or broker level, if no policy set in topic level
	GetInactiveTopicPoliciesWithContext(
		ctx context.Context,
		topic utils.TopicName,
		applied bool,
	) (utils.InactiveTopicPolicies, error)

	// RemoveInactiveTopicPolicies removes inactive topic policies from a topic
	RemoveInactiveTopicPolicies(utils.TopicName) error

	// RemoveInactiveTopicPoliciesWithContext removes inactive topic policies from a topic
	RemoveInactiveTopicPoliciesWithContext(context.Context, utils.TopicName) error

	// SetInactiveTopicPolicies sets the inactive topic policies on a topic
	SetInactiveTopicPolicies(topic utils.TopicName, data utils.InactiveTopicPolicies) error

	// SetInactiveTopicPoliciesWithContext sets the inactive topic policies on a topic
	SetInactiveTopicPoliciesWithContext(ctx context.Context, topic utils.TopicName, data utils.InactiveTopicPolicies) error

	// GetReplicationClusters returns the replication clusters of a topic
	GetReplicationClusters(topic utils.TopicName) ([]string, error)

	// GetReplicationClustersWithContext returns the replication clusters of a topic
	GetReplicationClustersWithContext(ctx context.Context, topic utils.TopicName) ([]string, error)

	// SetReplicationClusters sets the replication clusters on a topic
	//
	// @param topic
	//        topicName struct
	// @param data
	//        list of replication cluster id
	SetReplicationClusters(topic utils.TopicName, data []string) error

	// SetReplicationClustersWithContext sets the replication clusters on a topic
	//
	// @param ctx
	//        context used for the request
	// @param topic
	//        topicName struct
	// @param data
	//        list of replication cluster id
	SetReplicationClustersWithContext(ctx context.Context, topic utils.TopicName, data []string) error

	// GetSubscribeRate returns subscribe rate configuration for a topic
	GetSubscribeRate(utils.TopicName) (*utils.SubscribeRate, error)

	// GetSubscribeRateWithContext returns subscribe rate configuration for a topic
	GetSubscribeRateWithContext(context.Context, utils.TopicName) (*utils.SubscribeRate, error)

	// SetSubscribeRate sets subscribe rate configuration for a topic
	SetSubscribeRate(utils.TopicName, utils.SubscribeRate) error

	// SetSubscribeRateWithContext sets subscribe rate configuration for a topic
	SetSubscribeRateWithContext(context.Context, utils.TopicName, utils.SubscribeRate) error

	// RemoveSubscribeRate removes subscribe rate configuration for a topic
	RemoveSubscribeRate(utils.TopicName) error

	// RemoveSubscribeRateWithContext removes subscribe rate configuration for a topic
	RemoveSubscribeRateWithContext(context.Context, utils.TopicName) error

	// GetSubscriptionDispatchRate returns subscription dispatch rate for a topic
	GetSubscriptionDispatchRate(utils.TopicName) (*utils.DispatchRateData, error)

	// GetSubscriptionDispatchRateWithContext returns subscription dispatch rate for a topic
	GetSubscriptionDispatchRateWithContext(context.Context, utils.TopicName) (*utils.DispatchRateData, error)

	// SetSubscriptionDispatchRate sets subscription dispatch rate for a topic
	SetSubscriptionDispatchRate(utils.TopicName, utils.DispatchRateData) error

	// SetSubscriptionDispatchRateWithContext sets subscription dispatch rate for a topic
	SetSubscriptionDispatchRateWithContext(context.Context, utils.TopicName, utils.DispatchRateData) error

	// RemoveSubscriptionDispatchRate removes subscription dispatch rate for a topic
	RemoveSubscriptionDispatchRate(utils.TopicName) error

	// RemoveSubscriptionDispatchRateWithContext removes subscription dispatch rate for a topic
	RemoveSubscriptionDispatchRateWithContext(context.Context, utils.TopicName) error

	// GetMaxConsumersPerSubscription returns max consumers per subscription for a topic
	GetMaxConsumersPerSubscription(utils.TopicName) (int, error)

	// GetMaxConsumersPerSubscriptionWithContext returns max consumers per subscription for a topic
	GetMaxConsumersPerSubscriptionWithContext(context.Context, utils.TopicName) (int, error)

	// SetMaxConsumersPerSubscription sets max consumers per subscription for a topic
	SetMaxConsumersPerSubscription(utils.TopicName, int) error

	// SetMaxConsumersPerSubscriptionWithContext sets max consumers per subscription for a topic
	SetMaxConsumersPerSubscriptionWithContext(context.Context, utils.TopicName, int) error

	// RemoveMaxConsumersPerSubscription removes max consumers per subscription for a topic
	RemoveMaxConsumersPerSubscription(utils.TopicName) error

	// RemoveMaxConsumersPerSubscriptionWithContext removes max consumers per subscription for a topic
	RemoveMaxConsumersPerSubscriptionWithContext(context.Context, utils.TopicName) error

	// GetMaxMessageSize returns max message size for a topic
	GetMaxMessageSize(utils.TopicName) (int, error)

	// GetMaxMessageSizeWithContext returns max message size for a topic
	GetMaxMessageSizeWithContext(context.Context, utils.TopicName) (int, error)

	// SetMaxMessageSize sets max message size for a topic
	SetMaxMessageSize(utils.TopicName, int) error

	// SetMaxMessageSizeWithContext sets max message size for a topic
	SetMaxMessageSizeWithContext(context.Context, utils.TopicName, int) error

	// RemoveMaxMessageSize removes max message size for a topic
	RemoveMaxMessageSize(utils.TopicName) error

	// RemoveMaxMessageSizeWithContext removes max message size for a topic
	RemoveMaxMessageSizeWithContext(context.Context, utils.TopicName) error

	// GetMaxSubscriptionsPerTopic returns max subscriptions per topic
	GetMaxSubscriptionsPerTopic(utils.TopicName) (int, error)

	// GetMaxSubscriptionsPerTopicWithContext returns max subscriptions per topic
	GetMaxSubscriptionsPerTopicWithContext(context.Context, utils.TopicName) (int, error)

	// SetMaxSubscriptionsPerTopic sets max subscriptions per topic
	SetMaxSubscriptionsPerTopic(utils.TopicName, int) error

	// SetMaxSubscriptionsPerTopicWithContext sets max subscriptions per topic
	SetMaxSubscriptionsPerTopicWithContext(context.Context, utils.TopicName, int) error

	// RemoveMaxSubscriptionsPerTopic removes max subscriptions per topic
	RemoveMaxSubscriptionsPerTopic(utils.TopicName) error

	// RemoveMaxSubscriptionsPerTopicWithContext removes max subscriptions per topic
	RemoveMaxSubscriptionsPerTopicWithContext(context.Context, utils.TopicName) error

	// GetSchemaValidationEnforced returns schema validation enforced flag for a topic
	GetSchemaValidationEnforced(utils.TopicName) (bool, error)

	// GetSchemaValidationEnforcedWithContext returns schema validation enforced flag for a topic
	GetSchemaValidationEnforcedWithContext(context.Context, utils.TopicName) (bool, error)

	// SetSchemaValidationEnforced sets schema validation enforced flag for a topic
	SetSchemaValidationEnforced(utils.TopicName, bool) error

	// SetSchemaValidationEnforcedWithContext sets schema validation enforced flag for a topic
	SetSchemaValidationEnforcedWithContext(context.Context, utils.TopicName, bool) error

	// RemoveSchemaValidationEnforced removes schema validation enforced flag for a topic
	RemoveSchemaValidationEnforced(utils.TopicName) error

	// RemoveSchemaValidationEnforcedWithContext removes schema validation enforced flag for a topic
	RemoveSchemaValidationEnforcedWithContext(context.Context, utils.TopicName) error

	// GetDeduplicationSnapshotInterval returns deduplication snapshot interval for a topic
	GetDeduplicationSnapshotInterval(utils.TopicName) (int, error)

	// GetDeduplicationSnapshotIntervalWithContext returns deduplication snapshot interval for a topic
	GetDeduplicationSnapshotIntervalWithContext(context.Context, utils.TopicName) (int, error)

	// SetDeduplicationSnapshotInterval sets deduplication snapshot interval for a topic
	SetDeduplicationSnapshotInterval(utils.TopicName, int) error

	// SetDeduplicationSnapshotIntervalWithContext sets deduplication snapshot interval for a topic
	SetDeduplicationSnapshotIntervalWithContext(context.Context, utils.TopicName, int) error

	// RemoveDeduplicationSnapshotInterval removes deduplication snapshot interval for a topic
	RemoveDeduplicationSnapshotInterval(utils.TopicName) error

	// RemoveDeduplicationSnapshotIntervalWithContext removes deduplication snapshot interval for a topic
	RemoveDeduplicationSnapshotIntervalWithContext(context.Context, utils.TopicName) error

	// GetReplicatorDispatchRate returns replicator dispatch rate for a topic
	GetReplicatorDispatchRate(utils.TopicName) (*utils.DispatchRateData, error)

	// GetReplicatorDispatchRateWithContext returns replicator dispatch rate for a topic
	GetReplicatorDispatchRateWithContext(context.Context, utils.TopicName) (*utils.DispatchRateData, error)

	// SetReplicatorDispatchRate sets replicator dispatch rate for a topic
	SetReplicatorDispatchRate(utils.TopicName, utils.DispatchRateData) error

	// SetReplicatorDispatchRateWithContext sets replicator dispatch rate for a topic
	SetReplicatorDispatchRateWithContext(context.Context, utils.TopicName, utils.DispatchRateData) error

	// RemoveReplicatorDispatchRate removes replicator dispatch rate for a topic
	RemoveReplicatorDispatchRate(utils.TopicName) error

	// RemoveReplicatorDispatchRateWithContext removes replicator dispatch rate for a topic
	RemoveReplicatorDispatchRateWithContext(context.Context, utils.TopicName) error

	// GetOffloadPolicies returns offload policies for a topic
	GetOffloadPolicies(utils.TopicName) (*utils.OffloadPolicies, error)

	// GetOffloadPoliciesWithContext returns offload policies for a topic
	GetOffloadPoliciesWithContext(context.Context, utils.TopicName) (*utils.OffloadPolicies, error)

	// SetOffloadPolicies sets offload policies for a topic
	SetOffloadPolicies(utils.TopicName, utils.OffloadPolicies) error

	// SetOffloadPoliciesWithContext sets offload policies for a topic
	SetOffloadPoliciesWithContext(context.Context, utils.TopicName, utils.OffloadPolicies) error

	// RemoveOffloadPolicies removes offload policies for a topic
	RemoveOffloadPolicies(utils.TopicName) error

	// RemoveOffloadPoliciesWithContext removes offload policies for a topic
	RemoveOffloadPoliciesWithContext(context.Context, utils.TopicName) error

	// GetAutoSubscriptionCreation returns auto subscription creation override for a topic
	GetAutoSubscriptionCreation(utils.TopicName) (*utils.AutoSubscriptionCreationOverride, error)

	// GetAutoSubscriptionCreationWithContext returns auto subscription creation override for a topic
	GetAutoSubscriptionCreationWithContext(
		context.Context,
		utils.TopicName,
	) (*utils.AutoSubscriptionCreationOverride, error)

	// SetAutoSubscriptionCreation sets auto subscription creation override for a topic
	SetAutoSubscriptionCreation(utils.TopicName,
		utils.AutoSubscriptionCreationOverride) error

	// SetAutoSubscriptionCreationWithContext sets auto subscription creation override for a topic
	SetAutoSubscriptionCreationWithContext(context.Context, utils.TopicName,
		utils.AutoSubscriptionCreationOverride) error

	// RemoveAutoSubscriptionCreation Remove auto subscription creation override for a topic
	RemoveAutoSubscriptionCreation(utils.TopicName) error

	// RemoveAutoSubscriptionCreationWithContext Remove auto subscription creation override for a topic
	RemoveAutoSubscriptionCreationWithContext(context.Context, utils.TopicName) error

	// GetSchemaCompatibilityStrategy returns schema compatibility strategy for a topic
	GetSchemaCompatibilityStrategy(utils.TopicName) (utils.SchemaCompatibilityStrategy, error)

	// GetSchemaCompatibilityStrategyWithContext returns schema compatibility strategy for a topic
	GetSchemaCompatibilityStrategyWithContext(context.Context, utils.TopicName) (utils.SchemaCompatibilityStrategy, error)

	// SetSchemaCompatibilityStrategy sets schema compatibility strategy for a topic
	SetSchemaCompatibilityStrategy(utils.TopicName,
		utils.SchemaCompatibilityStrategy) error

	// SetSchemaCompatibilityStrategyWithContext sets schema compatibility strategy for a topic
	SetSchemaCompatibilityStrategyWithContext(context.Context, utils.TopicName,
		utils.SchemaCompatibilityStrategy) error

	// RemoveSchemaCompatibilityStrategy removes schema compatibility strategy for a topic
	RemoveSchemaCompatibilityStrategy(utils.TopicName) error

	// RemoveSchemaCompatibilityStrategyWithContext removes schema compatibility strategy for a topic
	RemoveSchemaCompatibilityStrategyWithContext(context.Context, utils.TopicName) error
}

Topics is admin interface for topics management

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL