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

// 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/databoxedge/mgmt/2020-12-01/databoxedge"
)

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

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

// AvailableSkusClientAPI contains the set of methods on the AvailableSkusClient type.
type AvailableSkusClientAPI interface {
	List(ctx context.Context) (result databoxedge.SkuListPage, err error)
	ListComplete(ctx context.Context) (result databoxedge.SkuListIterator, err error)
}

var _ AvailableSkusClientAPI = (*databoxedge.AvailableSkusClient)(nil)

// DevicesClientAPI contains the set of methods on the DevicesClient type.
type DevicesClientAPI interface {
	CreateOrUpdate(ctx context.Context, deviceName string, dataBoxEdgeDevice databoxedge.Device, resourceGroupName string) (result databoxedge.DevicesCreateOrUpdateFuture, err error)
	CreateOrUpdateSecuritySettings(ctx context.Context, deviceName string, securitySettings databoxedge.SecuritySettings, resourceGroupName string) (result databoxedge.DevicesCreateOrUpdateSecuritySettingsFuture, err error)
	Delete(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.DevicesDeleteFuture, err error)
	DownloadUpdates(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.DevicesDownloadUpdatesFuture, err error)
	GenerateCertificate(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.GenerateCertResponse, err error)
	Get(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.Device, err error)
	GetExtendedInformation(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.DeviceExtendedInfo, err error)
	GetNetworkSettings(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.NetworkSettings, err error)
	GetUpdateSummary(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.UpdateSummary, err error)
	InstallUpdates(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.DevicesInstallUpdatesFuture, err error)
	ListByResourceGroup(ctx context.Context, resourceGroupName string, expand string) (result databoxedge.DeviceListPage, err error)
	ListByResourceGroupComplete(ctx context.Context, resourceGroupName string, expand string) (result databoxedge.DeviceListIterator, err error)
	ListBySubscription(ctx context.Context, expand string) (result databoxedge.DeviceListPage, err error)
	ListBySubscriptionComplete(ctx context.Context, expand string) (result databoxedge.DeviceListIterator, err error)
	ScanForUpdates(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.DevicesScanForUpdatesFuture, err error)
	Update(ctx context.Context, deviceName string, parameters databoxedge.DevicePatch, resourceGroupName string) (result databoxedge.Device, err error)
	UpdateExtendedInformation(ctx context.Context, deviceName string, parameters databoxedge.DeviceExtendedInfoPatch, resourceGroupName string) (result databoxedge.DeviceExtendedInfo, err error)
	UploadCertificate(ctx context.Context, deviceName string, parameters databoxedge.UploadCertificateRequest, resourceGroupName string) (result databoxedge.UploadCertificateResponse, err error)
}

var _ DevicesClientAPI = (*databoxedge.DevicesClient)(nil)

// AlertsClientAPI contains the set of methods on the AlertsClient type.
type AlertsClientAPI interface {
	Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result databoxedge.Alert, err error)
	ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.AlertListPage, err error)
	ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.AlertListIterator, err error)
}

var _ AlertsClientAPI = (*databoxedge.AlertsClient)(nil)

// BandwidthSchedulesClientAPI contains the set of methods on the BandwidthSchedulesClient type.
type BandwidthSchedulesClientAPI interface {
	CreateOrUpdate(ctx context.Context, deviceName string, name string, parameters databoxedge.BandwidthSchedule, resourceGroupName string) (result databoxedge.BandwidthSchedulesCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, deviceName string, name string, resourceGroupName string) (result databoxedge.BandwidthSchedulesDeleteFuture, err error)
	Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result databoxedge.BandwidthSchedule, err error)
	ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.BandwidthSchedulesListPage, err error)
	ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.BandwidthSchedulesListIterator, err error)
}

var _ BandwidthSchedulesClientAPI = (*databoxedge.BandwidthSchedulesClient)(nil)

// JobsClientAPI contains the set of methods on the JobsClient type.
type JobsClientAPI interface {
	Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result databoxedge.Job, err error)
}

var _ JobsClientAPI = (*databoxedge.JobsClient)(nil)

// NodesClientAPI contains the set of methods on the NodesClient type.
type NodesClientAPI interface {
	ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.NodeListPage, err error)
	ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.NodeListIterator, err error)
}

var _ NodesClientAPI = (*databoxedge.NodesClient)(nil)

// OperationsStatusClientAPI contains the set of methods on the OperationsStatusClient type.
type OperationsStatusClientAPI interface {
	Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result databoxedge.Job, err error)
}

var _ OperationsStatusClientAPI = (*databoxedge.OperationsStatusClient)(nil)

// OrdersClientAPI contains the set of methods on the OrdersClient type.
type OrdersClientAPI interface {
	CreateOrUpdate(ctx context.Context, deviceName string, order databoxedge.Order, resourceGroupName string) (result databoxedge.OrdersCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.OrdersDeleteFuture, err error)
	Get(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.Order, err error)
	ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.OrderListPage, err error)
	ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.OrderListIterator, err error)
	ListDCAccessCode(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.DCAccessCode, err error)
}

var _ OrdersClientAPI = (*databoxedge.OrdersClient)(nil)

// RolesClientAPI contains the set of methods on the RolesClient type.
type RolesClientAPI interface {
	CreateOrUpdate(ctx context.Context, deviceName string, name string, role databoxedge.BasicRole, resourceGroupName string) (result databoxedge.RolesCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, deviceName string, name string, resourceGroupName string) (result databoxedge.RolesDeleteFuture, err error)
	Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result databoxedge.RoleModel, err error)
	ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.RoleListPage, err error)
	ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.RoleListIterator, err error)
}

var _ RolesClientAPI = (*databoxedge.RolesClient)(nil)

// AddonsClientAPI contains the set of methods on the AddonsClient type.
type AddonsClientAPI interface {
	CreateOrUpdate(ctx context.Context, deviceName string, roleName string, addonName string, addon databoxedge.BasicAddon, resourceGroupName string) (result databoxedge.AddonsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, deviceName string, roleName string, addonName string, resourceGroupName string) (result databoxedge.AddonsDeleteFuture, err error)
	Get(ctx context.Context, deviceName string, roleName string, addonName string, resourceGroupName string) (result databoxedge.AddonModel, err error)
	ListByRole(ctx context.Context, deviceName string, roleName string, resourceGroupName string) (result databoxedge.AddonListPage, err error)
	ListByRoleComplete(ctx context.Context, deviceName string, roleName string, resourceGroupName string) (result databoxedge.AddonListIterator, err error)
}

var _ AddonsClientAPI = (*databoxedge.AddonsClient)(nil)

// MonitoringConfigClientAPI contains the set of methods on the MonitoringConfigClient type.
type MonitoringConfigClientAPI interface {
	CreateOrUpdate(ctx context.Context, deviceName string, roleName string, monitoringMetricConfiguration databoxedge.MonitoringMetricConfiguration, resourceGroupName string) (result databoxedge.MonitoringConfigCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, deviceName string, roleName string, resourceGroupName string) (result databoxedge.MonitoringConfigDeleteFuture, err error)
	Get(ctx context.Context, deviceName string, roleName string, resourceGroupName string) (result databoxedge.MonitoringMetricConfiguration, err error)
	List(ctx context.Context, deviceName string, roleName string, resourceGroupName string) (result databoxedge.MonitoringMetricConfigurationListPage, err error)
	ListComplete(ctx context.Context, deviceName string, roleName string, resourceGroupName string) (result databoxedge.MonitoringMetricConfigurationListIterator, err error)
}

var _ MonitoringConfigClientAPI = (*databoxedge.MonitoringConfigClient)(nil)

// SharesClientAPI contains the set of methods on the SharesClient type.
type SharesClientAPI interface {
	CreateOrUpdate(ctx context.Context, deviceName string, name string, share databoxedge.Share, resourceGroupName string) (result databoxedge.SharesCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, deviceName string, name string, resourceGroupName string) (result databoxedge.SharesDeleteFuture, err error)
	Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result databoxedge.Share, err error)
	ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.ShareListPage, err error)
	ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.ShareListIterator, err error)
	Refresh(ctx context.Context, deviceName string, name string, resourceGroupName string) (result databoxedge.SharesRefreshFuture, err error)
}

var _ SharesClientAPI = (*databoxedge.SharesClient)(nil)

// StorageAccountCredentialsClientAPI contains the set of methods on the StorageAccountCredentialsClient type.
type StorageAccountCredentialsClientAPI interface {
	CreateOrUpdate(ctx context.Context, deviceName string, name string, storageAccountCredential databoxedge.StorageAccountCredential, resourceGroupName string) (result databoxedge.StorageAccountCredentialsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, deviceName string, name string, resourceGroupName string) (result databoxedge.StorageAccountCredentialsDeleteFuture, err error)
	Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result databoxedge.StorageAccountCredential, err error)
	ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.StorageAccountCredentialListPage, err error)
	ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.StorageAccountCredentialListIterator, err error)
}

var _ StorageAccountCredentialsClientAPI = (*databoxedge.StorageAccountCredentialsClient)(nil)

// StorageAccountsClientAPI contains the set of methods on the StorageAccountsClient type.
type StorageAccountsClientAPI interface {
	CreateOrUpdate(ctx context.Context, deviceName string, storageAccountName string, storageAccount databoxedge.StorageAccount, resourceGroupName string) (result databoxedge.StorageAccountsCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, deviceName string, storageAccountName string, resourceGroupName string) (result databoxedge.StorageAccountsDeleteFuture, err error)
	Get(ctx context.Context, deviceName string, storageAccountName string, resourceGroupName string) (result databoxedge.StorageAccount, err error)
	ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.StorageAccountListPage, err error)
	ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string) (result databoxedge.StorageAccountListIterator, err error)
}

var _ StorageAccountsClientAPI = (*databoxedge.StorageAccountsClient)(nil)

// ContainersClientAPI contains the set of methods on the ContainersClient type.
type ContainersClientAPI interface {
	CreateOrUpdate(ctx context.Context, deviceName string, storageAccountName string, containerName string, containerParameter databoxedge.Container, resourceGroupName string) (result databoxedge.ContainersCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, deviceName string, storageAccountName string, containerName string, resourceGroupName string) (result databoxedge.ContainersDeleteFuture, err error)
	Get(ctx context.Context, deviceName string, storageAccountName string, containerName string, resourceGroupName string) (result databoxedge.Container, err error)
	ListByStorageAccount(ctx context.Context, deviceName string, storageAccountName string, resourceGroupName string) (result databoxedge.ContainerListPage, err error)
	ListByStorageAccountComplete(ctx context.Context, deviceName string, storageAccountName string, resourceGroupName string) (result databoxedge.ContainerListIterator, err error)
	Refresh(ctx context.Context, deviceName string, storageAccountName string, containerName string, resourceGroupName string) (result databoxedge.ContainersRefreshFuture, err error)
}

var _ ContainersClientAPI = (*databoxedge.ContainersClient)(nil)

// TriggersClientAPI contains the set of methods on the TriggersClient type.
type TriggersClientAPI interface {
	CreateOrUpdate(ctx context.Context, deviceName string, name string, trigger databoxedge.BasicTrigger, resourceGroupName string) (result databoxedge.TriggersCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, deviceName string, name string, resourceGroupName string) (result databoxedge.TriggersDeleteFuture, err error)
	Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result databoxedge.TriggerModel, err error)
	ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string, filter string) (result databoxedge.TriggerListPage, err error)
	ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string, filter string) (result databoxedge.TriggerListIterator, err error)
}

var _ TriggersClientAPI = (*databoxedge.TriggersClient)(nil)

// UsersClientAPI contains the set of methods on the UsersClient type.
type UsersClientAPI interface {
	CreateOrUpdate(ctx context.Context, deviceName string, name string, userParameter databoxedge.User, resourceGroupName string) (result databoxedge.UsersCreateOrUpdateFuture, err error)
	Delete(ctx context.Context, deviceName string, name string, resourceGroupName string) (result databoxedge.UsersDeleteFuture, err error)
	Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result databoxedge.User, err error)
	ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string, filter string) (result databoxedge.UserListPage, err error)
	ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string, filter string) (result databoxedge.UserListIterator, err error)
}

var _ UsersClientAPI = (*databoxedge.UsersClient)(nil)
