package servicebusapi

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
//
// Code generated by Microsoft (R) AutoRest Code Generator.
// Changes may cause incorrect behavior and will be lost if the code is regenerated.

import (
	"context"
	"github.com/Azure/azure-sdk-for-go/services/servicebus/mgmt/2015-08-01/servicebus"
	"github.com/Azure/go-autorest/autorest"
)

// OperationsClientAPI contains the set of methods on the OperationsClient type.
type OperationsClientAPI interface {
	List(ctx context.Context) (result servicebus.OperationListResultPage, err error)
	ListComplete(ctx context.Context) (result servicebus.OperationListResultIterator, err error)
}

var _ OperationsClientAPI = (*servicebus.OperationsClient)(nil)

// NamespacesClientAPI contains the set of methods on the NamespacesClient type.
type NamespacesClientAPI interface {
	CheckNameAvailabilityMethod(ctx context.Context, parameters servicebus.CheckNameAvailability) (result servicebus.CheckNameAvailabilityResult, err error)
	CreateOrUpdate(ctx context.Context, resourceGroupName string, namespaceName string, parameters servicebus.NamespaceCreateOrUpdateParameters) (result servicebus.NamespacesCreateOrUpdateFuture, err error)
	CreateOrUpdateAuthorizationRule(ctx context.Context, resourceGroupName string, namespaceName string, authorizationRuleName string, parameters servicebus.SharedAccessAuthorizationRuleCreateOrUpdateParameters) (result servicebus.SharedAccessAuthorizationRuleResource, err error)
	Delete(ctx context.Context, resourceGroupName string, namespaceName string) (result servicebus.NamespacesDeleteFuture, err error)
	DeleteAuthorizationRule(ctx context.Context, resourceGroupName string, namespaceName string, authorizationRuleName string) (result autorest.Response, err error)
	Get(ctx context.Context, resourceGroupName string, namespaceName string) (result servicebus.NamespaceResource, err error)
	GetAuthorizationRule(ctx context.Context, resourceGroupName string, namespaceName string, authorizationRuleName string) (result servicebus.SharedAccessAuthorizationRuleResource, err error)
	ListAuthorizationRules(ctx context.Context, resourceGroupName string, namespaceName string) (result servicebus.SharedAccessAuthorizationRuleListResultPage, err error)
	ListAuthorizationRulesComplete(ctx context.Context, resourceGroupName string, namespaceName string) (result servicebus.SharedAccessAuthorizationRuleListResultIterator, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string) (result servicebus.NamespaceListResultPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result servicebus.NamespaceListResultIterator, err error)
	ListBySubscription(ctx context.Context) (result servicebus.NamespaceListResultPage, err error)
	ListBySubscriptionComplete(ctx context.Context) (result servicebus.NamespaceListResultIterator, err error)
	ListKeys(ctx context.Context, resourceGroupName string, namespaceName string, authorizationRuleName string) (result servicebus.ResourceListKeys, err error)
	RegenerateKeys(ctx context.Context, resourceGroupName string, namespaceName string, authorizationRuleName string, parameters servicebus.RegenerateKeysParameters) (result servicebus.ResourceListKeys, err error)
	Update(ctx context.Context, resourceGroupName string, namespaceName string, parameters servicebus.NamespaceUpdateParameters) (result servicebus.NamespaceResource, err error)
}

var _ NamespacesClientAPI = (*servicebus.NamespacesClient)(nil)

// QueuesClientAPI contains the set of methods on the QueuesClient type.
type QueuesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, namespaceName string, queueName string, parameters servicebus.QueueCreateOrUpdateParameters) (result servicebus.QueueResource, err error)
	CreateOrUpdateAuthorizationRule(ctx context.Context, resourceGroupName string, namespaceName string, queueName string, authorizationRuleName string, parameters servicebus.SharedAccessAuthorizationRuleCreateOrUpdateParameters) (result servicebus.SharedAccessAuthorizationRuleResource, err error)
	Delete(ctx context.Context, resourceGroupName string, namespaceName string, queueName string) (result autorest.Response, err error)
	DeleteAuthorizationRule(ctx context.Context, resourceGroupName string, namespaceName string, queueName string, authorizationRuleName string) (result autorest.Response, err error)
	Get(ctx context.Context, resourceGroupName string, namespaceName string, queueName string) (result servicebus.QueueResource, err error)
	GetAuthorizationRule(ctx context.Context, resourceGroupName string, namespaceName string, queueName string, authorizationRuleName string) (result servicebus.SharedAccessAuthorizationRuleResource, err error)
	ListAll(ctx context.Context, resourceGroupName string, namespaceName string) (result servicebus.QueueListResultPage, err error)
	ListAllComplete(ctx context.Context, resourceGroupName string, namespaceName string) (result servicebus.QueueListResultIterator, err error)
	ListAuthorizationRules(ctx context.Context, resourceGroupName string, namespaceName string, queueName string) (result servicebus.SharedAccessAuthorizationRuleListResultPage, err error)
	ListAuthorizationRulesComplete(ctx context.Context, resourceGroupName string, namespaceName string, queueName string) (result servicebus.SharedAccessAuthorizationRuleListResultIterator, err error)
	ListKeys(ctx context.Context, resourceGroupName string, namespaceName string, queueName string, authorizationRuleName string) (result servicebus.ResourceListKeys, err error)
	PostAuthorizationRule(ctx context.Context, resourceGroupName string, namespaceName string, queueName string, authorizationRuleName string) (result servicebus.SharedAccessAuthorizationRuleResource, err error)
	RegenerateKeys(ctx context.Context, resourceGroupName string, namespaceName string, queueName string, authorizationRuleName string, parameters servicebus.RegenerateKeysParameters) (result servicebus.ResourceListKeys, err error)
}

var _ QueuesClientAPI = (*servicebus.QueuesClient)(nil)

// TopicsClientAPI contains the set of methods on the TopicsClient type.
type TopicsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, namespaceName string, topicName string, parameters servicebus.TopicCreateOrUpdateParameters) (result servicebus.TopicResource, err error)
	CreateOrUpdateAuthorizationRule(ctx context.Context, resourceGroupName string, namespaceName string, topicName string, authorizationRuleName string, parameters servicebus.SharedAccessAuthorizationRuleCreateOrUpdateParameters) (result servicebus.SharedAccessAuthorizationRuleResource, err error)
	Delete(ctx context.Context, resourceGroupName string, namespaceName string, topicName string) (result autorest.Response, err error)
	DeleteAuthorizationRule(ctx context.Context, resourceGroupName string, namespaceName string, topicName string, authorizationRuleName string) (result autorest.Response, err error)
	Get(ctx context.Context, resourceGroupName string, namespaceName string, topicName string) (result servicebus.TopicResource, err error)
	GetAuthorizationRule(ctx context.Context, resourceGroupName string, namespaceName string, topicName string, authorizationRuleName string) (result servicebus.SharedAccessAuthorizationRuleResource, err error)
	ListAll(ctx context.Context, resourceGroupName string, namespaceName string) (result servicebus.TopicListResultPage, err error)
	ListAllComplete(ctx context.Context, resourceGroupName string, namespaceName string) (result servicebus.TopicListResultIterator, err error)
	ListAuthorizationRules(ctx context.Context, resourceGroupName string, namespaceName string, topicName string) (result servicebus.SharedAccessAuthorizationRuleListResultPage, err error)
	ListAuthorizationRulesComplete(ctx context.Context, resourceGroupName string, namespaceName string, topicName string) (result servicebus.SharedAccessAuthorizationRuleListResultIterator, err error)
	ListKeys(ctx context.Context, resourceGroupName string, namespaceName string, topicName string, authorizationRuleName string) (result servicebus.ResourceListKeys, err error)
	PostAuthorizationRule(ctx context.Context, resourceGroupName string, namespaceName string, topicName string, authorizationRuleName string) (result servicebus.SharedAccessAuthorizationRuleResource, err error)
	RegenerateKeys(ctx context.Context, resourceGroupName string, namespaceName string, topicName string, authorizationRuleName string, parameters servicebus.RegenerateKeysParameters) (result servicebus.ResourceListKeys, err error)
}

var _ TopicsClientAPI = (*servicebus.TopicsClient)(nil)

// SubscriptionsClientAPI contains the set of methods on the SubscriptionsClient type.
type SubscriptionsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, namespaceName string, topicName string, subscriptionName string, parameters servicebus.SubscriptionCreateOrUpdateParameters) (result servicebus.SubscriptionResource, err error)
	Delete(ctx context.Context, resourceGroupName string, namespaceName string, topicName string, subscriptionName string) (result autorest.Response, err error)
	Get(ctx context.Context, resourceGroupName string, namespaceName string, topicName string, subscriptionName string) (result servicebus.SubscriptionResource, err error)
	ListAll(ctx context.Context, resourceGroupName string, namespaceName string, topicName string) (result servicebus.SubscriptionListResultPage, err error)
	ListAllComplete(ctx context.Context, resourceGroupName string, namespaceName string, topicName string) (result servicebus.SubscriptionListResultIterator, err error)
}

var _ SubscriptionsClientAPI = (*servicebus.SubscriptionsClient)(nil)
