// Deprecated: Please note, this package has been deprecated. A replacement package is available [github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/deviceupdate/armdeviceupdate](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/deviceupdate/armdeviceupdate). We strongly encourage you to upgrade to continue receiving updates. See [Migration Guide](https://aka.ms/azsdk/golang/t2/migration) for guidance on upgrading. Refer to our [deprecation policy](https://azure.github.io/azure-sdk/policies_support.html) for more details.
package deviceupdateapi

// 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/deviceupdate/mgmt/2020-03-01-preview/deviceupdate"
	"github.com/Azure/go-autorest/autorest"
)

// BaseClientAPI contains the set of methods on the BaseClient type.
type BaseClientAPI interface {
	CheckNameAvailability(ctx context.Context, request deviceupdate.CheckNameAvailabilityRequest) (result deviceupdate.CheckNameAvailabilityResponse, err error)
}

var _ BaseClientAPI = (*deviceupdate.BaseClient)(nil)

// AccountsClientAPI contains the set of methods on the AccountsClient type.
type AccountsClientAPI interface {
	Create(ctx context.Context, resourceGroupName string, accountName string, account deviceupdate.Account) (result deviceupdate.AccountsCreateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, accountName string) (result deviceupdate.AccountsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, accountName string) (result deviceupdate.Account, err error)
	Head(ctx context.Context, resourceGroupName string, accountName string) (result autorest.Response, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string) (result deviceupdate.AccountListPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string) (result deviceupdate.AccountListIterator, err error)
	ListBySubscription(ctx context.Context) (result deviceupdate.AccountListPage, err error)
	ListBySubscriptionComplete(ctx context.Context) (result deviceupdate.AccountListIterator, err error)
	Update(ctx context.Context, resourceGroupName string, accountName string, accountUpdatePayload deviceupdate.AccountUpdate) (result deviceupdate.AccountsUpdateFuture, err error)
}

var _ AccountsClientAPI = (*deviceupdate.AccountsClient)(nil)

// InstancesClientAPI contains the set of methods on the InstancesClient type.
type InstancesClientAPI interface {
	Create(ctx context.Context, resourceGroupName string, accountName string, instanceName string, instance deviceupdate.Instance) (result deviceupdate.InstancesCreateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, accountName string, instanceName string) (result deviceupdate.InstancesDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, accountName string, instanceName string) (result deviceupdate.Instance, err error)
	Head(ctx context.Context, resourceGroupName string, accountName string, instanceName string) (result autorest.Response, err error)
	ListByAccount(ctx context.Context, resourceGroupName string, accountName string) (result deviceupdate.InstanceListPage, err error)
	ListByAccountComplete(ctx context.Context, resourceGroupName string, accountName string) (result deviceupdate.InstanceListIterator, err error)
	Update(ctx context.Context, resourceGroupName string, accountName string, instanceName string, tagUpdatePayload deviceupdate.TagUpdate) (result deviceupdate.Instance, err error)
}

var _ InstancesClientAPI = (*deviceupdate.InstancesClient)(nil)

// PrivateEndpointConnectionsClientAPI contains the set of methods on the PrivateEndpointConnectionsClient type.
type PrivateEndpointConnectionsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, privateEndpointConnectionName string, privateEndpointConnection deviceupdate.PrivateEndpointConnection) (result deviceupdate.PrivateEndpointConnectionsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, accountName string, privateEndpointConnectionName string) (result deviceupdate.PrivateEndpointConnectionsDeleteFuture, err error)
	Get(ctx context.Context, resourceGroupName string, accountName string, privateEndpointConnectionName string) (result deviceupdate.PrivateEndpointConnection, err error)
	ListByAccount(ctx context.Context, resourceGroupName string, accountName string) (result deviceupdate.PrivateEndpointConnectionListResult, err error)
}

var _ PrivateEndpointConnectionsClientAPI = (*deviceupdate.PrivateEndpointConnectionsClient)(nil)

// PrivateLinkResourcesClientAPI contains the set of methods on the PrivateLinkResourcesClient type.
type PrivateLinkResourcesClientAPI interface {
	Get(ctx context.Context, resourceGroupName string, accountName string, groupID string) (result deviceupdate.GroupInformation, err error)
	ListByAccount(ctx context.Context, resourceGroupName string, accountName string) (result deviceupdate.PrivateLinkResourceListResult, err error)
}

var _ PrivateLinkResourcesClientAPI = (*deviceupdate.PrivateLinkResourcesClient)(nil)

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

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