// Deprecated: Please note, this package has been deprecated. A replacement package is available [github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/videoanalyzer/armvideoanalyzer](https://pkg.go.dev/github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/videoanalyzer/armvideoanalyzer). 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 videoanalyzerapi

// 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/videoanalyzer/mgmt/2021-11-01-preview/videoanalyzer"
	"github.com/Azure/go-autorest/autorest"
)

// EdgeModulesClientAPI contains the set of methods on the EdgeModulesClient type.
type EdgeModulesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, edgeModuleName string, parameters videoanalyzer.EdgeModuleEntity) (result videoanalyzer.EdgeModuleEntity, err error)
	Delete(ctx context.Context, resourceGroupName string, accountName string, edgeModuleName string) (result autorest.Response, err error)
	Get(ctx context.Context, resourceGroupName string, accountName string, edgeModuleName string) (result videoanalyzer.EdgeModuleEntity, err error)
	List(ctx context.Context, resourceGroupName string, accountName string, top *int32) (result videoanalyzer.EdgeModuleEntityCollectionPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, accountName string, top *int32) (result videoanalyzer.EdgeModuleEntityCollectionIterator, err error)
	ListProvisioningToken(ctx context.Context, resourceGroupName string, accountName string, edgeModuleName string, parameters videoanalyzer.ListProvisioningTokenInput) (result videoanalyzer.EdgeModuleProvisioningToken, err error)
}

var _ EdgeModulesClientAPI = (*videoanalyzer.EdgeModulesClient)(nil)

// PipelineTopologiesClientAPI contains the set of methods on the PipelineTopologiesClient type.
type PipelineTopologiesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, pipelineTopologyName string, parameters videoanalyzer.PipelineTopology) (result videoanalyzer.PipelineTopology, err error)
	Delete(ctx context.Context, resourceGroupName string, accountName string, pipelineTopologyName string) (result autorest.Response, err error)
	Get(ctx context.Context, resourceGroupName string, accountName string, pipelineTopologyName string) (result videoanalyzer.PipelineTopology, err error)
	List(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32) (result videoanalyzer.PipelineTopologyCollectionPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32) (result videoanalyzer.PipelineTopologyCollectionIterator, err error)
	Update(ctx context.Context, resourceGroupName string, accountName string, pipelineTopologyName string, parameters videoanalyzer.PipelineTopologyUpdate) (result videoanalyzer.PipelineTopology, err error)
}

var _ PipelineTopologiesClientAPI = (*videoanalyzer.PipelineTopologiesClient)(nil)

// LivePipelinesClientAPI contains the set of methods on the LivePipelinesClient type.
type LivePipelinesClientAPI interface {
	Activate(ctx context.Context, resourceGroupName string, accountName string, livePipelineName string) (result videoanalyzer.LivePipelinesActivateFuture, err error)
	CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, livePipelineName string, parameters videoanalyzer.LivePipeline) (result videoanalyzer.LivePipeline, err error)
	Deactivate(ctx context.Context, resourceGroupName string, accountName string, livePipelineName string) (result videoanalyzer.LivePipelinesDeactivateFuture, err error)
	Delete(ctx context.Context, resourceGroupName string, accountName string, livePipelineName string) (result autorest.Response, err error)
	Get(ctx context.Context, resourceGroupName string, accountName string, livePipelineName string) (result videoanalyzer.LivePipeline, err error)
	List(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32) (result videoanalyzer.LivePipelineCollectionPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32) (result videoanalyzer.LivePipelineCollectionIterator, err error)
	Update(ctx context.Context, resourceGroupName string, accountName string, livePipelineName string, parameters videoanalyzer.LivePipelineUpdate) (result videoanalyzer.LivePipeline, err error)
}

var _ LivePipelinesClientAPI = (*videoanalyzer.LivePipelinesClient)(nil)

// PipelineJobsClientAPI contains the set of methods on the PipelineJobsClient type.
type PipelineJobsClientAPI interface {
	Cancel(ctx context.Context, resourceGroupName string, accountName string, pipelineJobName string) (result videoanalyzer.PipelineJobsCancelFuture, err error)
	CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, pipelineJobName string, parameters videoanalyzer.PipelineJob) (result videoanalyzer.PipelineJob, err error)
	Delete(ctx context.Context, resourceGroupName string, accountName string, pipelineJobName string) (result autorest.Response, err error)
	Get(ctx context.Context, resourceGroupName string, accountName string, pipelineJobName string) (result videoanalyzer.PipelineJob, err error)
	List(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32) (result videoanalyzer.PipelineJobCollectionPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, accountName string, filter string, top *int32) (result videoanalyzer.PipelineJobCollectionIterator, err error)
	Update(ctx context.Context, resourceGroupName string, accountName string, pipelineJobName string, parameters videoanalyzer.PipelineJobUpdate) (result videoanalyzer.PipelineJob, err error)
}

var _ PipelineJobsClientAPI = (*videoanalyzer.PipelineJobsClient)(nil)

// LivePipelineOperationStatusesClientAPI contains the set of methods on the LivePipelineOperationStatusesClient type.
type LivePipelineOperationStatusesClientAPI interface {
	Get(ctx context.Context, resourceGroupName string, accountName string, livePipelineName string, operationID string) (result videoanalyzer.LivePipelineOperationStatus, err error)
}

var _ LivePipelineOperationStatusesClientAPI = (*videoanalyzer.LivePipelineOperationStatusesClient)(nil)

// PipelineJobOperationStatusesClientAPI contains the set of methods on the PipelineJobOperationStatusesClient type.
type PipelineJobOperationStatusesClientAPI interface {
	Get(ctx context.Context, resourceGroupName string, accountName string, pipelineJobName string, operationID string) (result videoanalyzer.PipelineJobOperationStatus, err error)
}

var _ PipelineJobOperationStatusesClientAPI = (*videoanalyzer.PipelineJobOperationStatusesClient)(nil)

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

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

// VideoAnalyzersClientAPI contains the set of methods on the VideoAnalyzersClient type.
type VideoAnalyzersClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, parameters videoanalyzer.Model) (result videoanalyzer.VideoAnalyzersCreateOrUpdateFutureType, err error)
	Delete(ctx context.Context, resourceGroupName string, accountName string) (result autorest.Response, err error)
	Get(ctx context.Context, resourceGroupName string, accountName string) (result videoanalyzer.Model, err error)
	List(ctx context.Context, resourceGroupName string) (result videoanalyzer.Collection, err error)
	ListBySubscription(ctx context.Context) (result videoanalyzer.Collection, err error)
	Update(ctx context.Context, resourceGroupName string, accountName string, parameters videoanalyzer.Update) (result videoanalyzer.VideoAnalyzersUpdateFutureType, err error)
}

var _ VideoAnalyzersClientAPI = (*videoanalyzer.VideoAnalyzersClient)(nil)

// PrivateLinkResourcesClientAPI contains the set of methods on the PrivateLinkResourcesClient type.
type PrivateLinkResourcesClientAPI interface {
	Get(ctx context.Context, resourceGroupName string, accountName string, name string) (result videoanalyzer.PrivateLinkResource, err error)
	List(ctx context.Context, resourceGroupName string, accountName string) (result videoanalyzer.PrivateLinkResourceListResult, err error)
}

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

// PrivateEndpointConnectionsClientAPI contains the set of methods on the PrivateEndpointConnectionsClient type.
type PrivateEndpointConnectionsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, name string, parameters videoanalyzer.PrivateEndpointConnection) (result videoanalyzer.PrivateEndpointConnection, err error)
	Delete(ctx context.Context, resourceGroupName string, accountName string, name string) (result autorest.Response, err error)
	Get(ctx context.Context, resourceGroupName string, accountName string, name string) (result videoanalyzer.PrivateEndpointConnection, err error)
	List(ctx context.Context, resourceGroupName string, accountName string) (result videoanalyzer.PrivateEndpointConnectionListResult, err error)
}

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

// OperationStatusesClientAPI contains the set of methods on the OperationStatusesClient type.
type OperationStatusesClientAPI interface {
	Get(ctx context.Context, resourceGroupName string, accountName string, name string, operationID string) (result videoanalyzer.PrivateEndpointConnectionOperationStatus, err error)
}

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

// OperationResultsClientAPI contains the set of methods on the OperationResultsClient type.
type OperationResultsClientAPI interface {
	Get(ctx context.Context, resourceGroupName string, accountName string, name string, operationID string) (result videoanalyzer.PrivateEndpointConnection, err error)
}

var _ OperationResultsClientAPI = (*videoanalyzer.OperationResultsClient)(nil)

// OperationStatusesGroupClientAPI contains the set of methods on the OperationStatusesGroupClient type.
type OperationStatusesGroupClientAPI interface {
	Get(ctx context.Context, locationName string, operationID string) (result videoanalyzer.OperationStatus, err error)
}

var _ OperationStatusesGroupClientAPI = (*videoanalyzer.OperationStatusesGroupClient)(nil)

// OperationResultsGroupClientAPI contains the set of methods on the OperationResultsGroupClient type.
type OperationResultsGroupClientAPI interface {
	Get(ctx context.Context, locationName string, operationID string) (result videoanalyzer.Model, err error)
}

var _ OperationResultsGroupClientAPI = (*videoanalyzer.OperationResultsGroupClient)(nil)

// LocationsClientAPI contains the set of methods on the LocationsClient type.
type LocationsClientAPI interface {
	CheckNameAvailability(ctx context.Context, locationName string, parameters videoanalyzer.CheckNameAvailabilityRequest) (result videoanalyzer.CheckNameAvailabilityResponse, err error)
}

var _ LocationsClientAPI = (*videoanalyzer.LocationsClient)(nil)

// VideosClientAPI contains the set of methods on the VideosClient type.
type VideosClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, videoName string, parameters videoanalyzer.VideoEntity) (result videoanalyzer.VideoEntity, err error)
	Delete(ctx context.Context, resourceGroupName string, accountName string, videoName string) (result autorest.Response, err error)
	Get(ctx context.Context, resourceGroupName string, accountName string, videoName string) (result videoanalyzer.VideoEntity, err error)
	List(ctx context.Context, resourceGroupName string, accountName string, top *int32) (result videoanalyzer.VideoEntityCollectionPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, accountName string, top *int32) (result videoanalyzer.VideoEntityCollectionIterator, err error)
	ListContentToken(ctx context.Context, resourceGroupName string, accountName string, videoName string) (result videoanalyzer.VideoContentToken, err error)
	Update(ctx context.Context, resourceGroupName string, accountName string, videoName string, parameters videoanalyzer.VideoEntity) (result videoanalyzer.VideoEntity, err error)
}

var _ VideosClientAPI = (*videoanalyzer.VideosClient)(nil)

// AccessPoliciesClientAPI contains the set of methods on the AccessPoliciesClient type.
type AccessPoliciesClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceGroupName string, accountName string, accessPolicyName string, parameters videoanalyzer.AccessPolicyEntity) (result videoanalyzer.AccessPolicyEntity, err error)
	Delete(ctx context.Context, resourceGroupName string, accountName string, accessPolicyName string) (result autorest.Response, err error)
	Get(ctx context.Context, resourceGroupName string, accountName string, accessPolicyName string) (result videoanalyzer.AccessPolicyEntity, err error)
	List(ctx context.Context, resourceGroupName string, accountName string, top *int32) (result videoanalyzer.AccessPolicyEntityCollectionPage, err error)
	ListComplete(ctx context.Context, resourceGroupName string, accountName string, top *int32) (result videoanalyzer.AccessPolicyEntityCollectionIterator, err error)
	Update(ctx context.Context, resourceGroupName string, accountName string, accessPolicyName string, parameters videoanalyzer.AccessPolicyEntity) (result videoanalyzer.AccessPolicyEntity, err error)
}

var _ AccessPoliciesClientAPI = (*videoanalyzer.AccessPoliciesClient)(nil)
