package blueprintapi

// 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/blueprint/mgmt/2018-11-01-preview/blueprint"
)

// BlueprintsClientAPI contains the set of methods on the BlueprintsClient type.
type BlueprintsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceScope string, blueprintName string, blueprint blueprint.Model) (result blueprint.Model, err error)
	Delete(ctx context.Context, resourceScope string, blueprintName string) (result blueprint.Model, err error)
	Get(ctx context.Context, resourceScope string, blueprintName string) (result blueprint.Model, err error)
	List(ctx context.Context, resourceScope string) (result blueprint.ListPage, err error)
	ListComplete(ctx context.Context, resourceScope string) (result blueprint.ListIterator, err error)
}

var _ BlueprintsClientAPI = (*blueprint.BlueprintsClient)(nil)

// ArtifactsClientAPI contains the set of methods on the ArtifactsClient type.
type ArtifactsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceScope string, blueprintName string, artifactName string, artifact blueprint.BasicArtifact) (result blueprint.ArtifactModel, err error)
	Delete(ctx context.Context, resourceScope string, blueprintName string, artifactName string) (result blueprint.ArtifactModel, err error)
	Get(ctx context.Context, resourceScope string, blueprintName string, artifactName string) (result blueprint.ArtifactModel, err error)
	List(ctx context.Context, resourceScope string, blueprintName string) (result blueprint.ArtifactListPage, err error)
	ListComplete(ctx context.Context, resourceScope string, blueprintName string) (result blueprint.ArtifactListIterator, err error)
}

var _ ArtifactsClientAPI = (*blueprint.ArtifactsClient)(nil)

// PublishedBlueprintsClientAPI contains the set of methods on the PublishedBlueprintsClient type.
type PublishedBlueprintsClientAPI interface {
	Create(ctx context.Context, resourceScope string, blueprintName string, versionID string, publishedBlueprint *blueprint.PublishedBlueprint) (result blueprint.PublishedBlueprint, err error)
	Delete(ctx context.Context, resourceScope string, blueprintName string, versionID string) (result blueprint.PublishedBlueprint, err error)
	Get(ctx context.Context, resourceScope string, blueprintName string, versionID string) (result blueprint.PublishedBlueprint, err error)
	List(ctx context.Context, resourceScope string, blueprintName string) (result blueprint.PublishedBlueprintListPage, err error)
	ListComplete(ctx context.Context, resourceScope string, blueprintName string) (result blueprint.PublishedBlueprintListIterator, err error)
}

var _ PublishedBlueprintsClientAPI = (*blueprint.PublishedBlueprintsClient)(nil)

// PublishedArtifactsClientAPI contains the set of methods on the PublishedArtifactsClient type.
type PublishedArtifactsClientAPI interface {
	Get(ctx context.Context, resourceScope string, blueprintName string, versionID string, artifactName string) (result blueprint.ArtifactModel, err error)
	List(ctx context.Context, resourceScope string, blueprintName string, versionID string) (result blueprint.ArtifactListPage, err error)
	ListComplete(ctx context.Context, resourceScope string, blueprintName string, versionID string) (result blueprint.ArtifactListIterator, err error)
}

var _ PublishedArtifactsClientAPI = (*blueprint.PublishedArtifactsClient)(nil)

// AssignmentsClientAPI contains the set of methods on the AssignmentsClient type.
type AssignmentsClientAPI interface {
	CreateOrUpdate(ctx context.Context, resourceScope string, assignmentName string, assignment blueprint.Assignment) (result blueprint.Assignment, err error)
	Delete(ctx context.Context, resourceScope string, assignmentName string, deleteBehavior blueprint.AssignmentDeleteBehavior) (result blueprint.Assignment, err error)
	Get(ctx context.Context, resourceScope string, assignmentName string) (result blueprint.Assignment, err error)
	List(ctx context.Context, resourceScope string) (result blueprint.AssignmentListPage, err error)
	ListComplete(ctx context.Context, resourceScope string) (result blueprint.AssignmentListIterator, err error)
	WhoIsBlueprint(ctx context.Context, resourceScope string, assignmentName string) (result blueprint.WhoIsBlueprintContract, err error)
}

var _ AssignmentsClientAPI = (*blueprint.AssignmentsClient)(nil)

// AssignmentOperationsClientAPI contains the set of methods on the AssignmentOperationsClient type.
type AssignmentOperationsClientAPI interface {
	Get(ctx context.Context, resourceScope string, assignmentName string, assignmentOperationName string) (result blueprint.AssignmentOperation, err error)
	List(ctx context.Context, resourceScope string, assignmentName string) (result blueprint.AssignmentOperationListPage, err error)
	ListComplete(ctx context.Context, resourceScope string, assignmentName string) (result blueprint.AssignmentOperationListIterator, err error)
}

var _ AssignmentOperationsClientAPI = (*blueprint.AssignmentOperationsClient)(nil)
