package advisorapi

// 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/advisor/mgmt/2016-07-12-preview/advisor"
	"github.com/Azure/go-autorest/autorest"
	"github.com/gofrs/uuid"
)

// RecommendationsClientAPI contains the set of methods on the RecommendationsClient type.
type RecommendationsClientAPI interface {
	Generate(ctx context.Context) (result autorest.Response, err error)
	Get(ctx context.Context, resourceURI string, recommendationID string) (result advisor.ResourceRecommendationBase, err error)
	GetGenerateRecommendationsStatus(ctx context.Context, operationID uuid.UUID) (result autorest.Response, err error)
	List(ctx context.Context, filter string, top *int32, skipToken string) (result advisor.ResourceRecommendationBaseListResultPage, err error)
	ListComplete(ctx context.Context, filter string, top *int32, skipToken string) (result advisor.ResourceRecommendationBaseListResultIterator, err error)
}

var _ RecommendationsClientAPI = (*advisor.RecommendationsClient)(nil)

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

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

// SuppressionsClientAPI contains the set of methods on the SuppressionsClient type.
type SuppressionsClientAPI interface {
	Create(ctx context.Context, resourceURI string, recommendationID string, name string, suppressionContract advisor.SuppressionContract) (result advisor.SuppressionContract, err error)
	Delete(ctx context.Context, resourceURI string, recommendationID string, name string) (result autorest.Response, err error)
	Get(ctx context.Context, resourceURI string, recommendationID string, name string) (result advisor.SuppressionContract, err error)
	List(ctx context.Context) (result advisor.ListSuppressionContract, err error)
}

var _ SuppressionsClientAPI = (*advisor.SuppressionsClient)(nil)
