package communicationapi

// 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/preview/communication/mgmt/2020-08-20-preview/communication"
)

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

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

// ServiceClientAPI contains the set of methods on the ServiceClient type.
type ServiceClientAPI interface {
	CheckNameAvailability(ctx context.Context, nameAvailabilityParameters *communication.NameAvailabilityParameters) (result communication.NameAvailability, err error)
	CreateOrUpdate(ctx context.Context, resourceGroupName string, communicationServiceName string, parameters *communication.ServiceResource) (result communication.ServiceCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, communicationServiceName string) (result communication.ServiceDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, communicationServiceName string) (result communication.ServiceResource, err error)
	LinkNotificationHub(ctx context.Context, resourceGroupName string, communicationServiceName string, linkNotificationHubParameters *communication.LinkNotificationHubParameters) (result communication.LinkedNotificationHub, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string) (result communication.ServiceResourceListPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result communication.ServiceResourceListIterator, err error)
	ListBySubscription(ctx context.Context) (result communication.ServiceResourceListPage, err error)
	ListBySubscriptionComplete(ctx context.Context) (result communication.ServiceResourceListIterator, err error)
	ListKeys(ctx context.Context, resourceGroupName string, communicationServiceName string) (result communication.ServiceKeys, err error)
	RegenerateKey(ctx context.Context, resourceGroupName string, communicationServiceName string, parameters *communication.RegenerateKeyParameters) (result communication.ServiceKeys, err error)
	Update(ctx context.Context, resourceGroupName string, communicationServiceName string, parameters *communication.TaggedResource) (result communication.ServiceResource, err error)
}

var _ ServiceClientAPI = (*communication.ServiceClient)(nil)

// OperationStatusesClientAPI contains the set of methods on the OperationStatusesClient type.
type OperationStatusesClientAPI interface {
	Get(ctx context.Context, location string, operationID string) (result communication.OperationStatus, err error)
}

var _ OperationStatusesClientAPI = (*communication.OperationStatusesClient)(nil)
