From b19836bff61915c19328639d4c73f5e70559c9fa Mon Sep 17 00:00:00 2001 From: Azure SDK for Python bot Date: Mon, 16 Sep 2019 10:56:41 +0000 Subject: [PATCH] Generated from 5927195a95dbda5a1729692d42a088b60c4a4a88 Adding new version of API --- .../mgmt/databoxedge/databoxedgeapi/models.go | 36 + .../databoxedge/mgmt/databoxedge/models.go | 786 +++ .../mgmt/databoxedge/databoxedgeapi/models.go | 36 + .../databoxedge/mgmt/databoxedge/models.go | 786 +++ .../mgmt/2019-03-01/databoxedge/alerts.go | 235 + .../databoxedge/bandwidthschedules.go | 407 ++ .../mgmt/2019-03-01/databoxedge/client.go | 51 + .../databoxedge/databoxedgeapi/interfaces.go | 143 + .../mgmt/2019-03-01/databoxedge/devices.go | 1229 ++++ .../mgmt/2019-03-01/databoxedge/jobs.go | 120 + .../mgmt/2019-03-01/databoxedge/models.go | 5072 ++++++++++++++++ .../mgmt/2019-03-01/databoxedge/operations.go | 147 + .../databoxedge/operationsstatus.go | 120 + .../mgmt/2019-03-01/databoxedge/orders.go | 410 ++ .../mgmt/2019-03-01/databoxedge/roles.go | 395 ++ .../mgmt/2019-03-01/databoxedge/shares.go | 485 ++ .../databoxedge/storageaccountcredentials.go | 406 ++ .../mgmt/2019-03-01/databoxedge/triggers.go | 399 ++ .../mgmt/2019-03-01/databoxedge/users.go | 405 ++ .../mgmt/2019-03-01/databoxedge/version.go | 30 + .../mgmt/2019-07-01/databoxedge/alerts.go | 235 + .../databoxedge/bandwidthschedules.go | 407 ++ .../mgmt/2019-07-01/databoxedge/client.go | 51 + .../databoxedge/databoxedgeapi/interfaces.go | 150 + .../mgmt/2019-07-01/databoxedge/devices.go | 1229 ++++ .../mgmt/2019-07-01/databoxedge/jobs.go | 120 + .../mgmt/2019-07-01/databoxedge/models.go | 5203 +++++++++++++++++ .../mgmt/2019-07-01/databoxedge/nodes.go | 118 + .../mgmt/2019-07-01/databoxedge/operations.go | 147 + .../databoxedge/operationsstatus.go | 120 + .../mgmt/2019-07-01/databoxedge/orders.go | 410 ++ .../mgmt/2019-07-01/databoxedge/roles.go | 395 ++ .../mgmt/2019-07-01/databoxedge/shares.go | 485 ++ .../databoxedge/storageaccountcredentials.go | 406 ++ .../mgmt/2019-07-01/databoxedge/triggers.go | 399 ++ .../mgmt/2019-07-01/databoxedge/users.go | 406 ++ .../mgmt/2019-07-01/databoxedge/version.go | 30 + 37 files changed, 22009 insertions(+) create mode 100644 profiles/latest/databoxedge/mgmt/databoxedge/databoxedgeapi/models.go create mode 100644 profiles/latest/databoxedge/mgmt/databoxedge/models.go create mode 100644 profiles/preview/databoxedge/mgmt/databoxedge/databoxedgeapi/models.go create mode 100644 profiles/preview/databoxedge/mgmt/databoxedge/models.go create mode 100644 services/databoxedge/mgmt/2019-03-01/databoxedge/alerts.go create mode 100644 services/databoxedge/mgmt/2019-03-01/databoxedge/bandwidthschedules.go create mode 100644 services/databoxedge/mgmt/2019-03-01/databoxedge/client.go create mode 100644 services/databoxedge/mgmt/2019-03-01/databoxedge/databoxedgeapi/interfaces.go create mode 100644 services/databoxedge/mgmt/2019-03-01/databoxedge/devices.go create mode 100644 services/databoxedge/mgmt/2019-03-01/databoxedge/jobs.go create mode 100644 services/databoxedge/mgmt/2019-03-01/databoxedge/models.go create mode 100644 services/databoxedge/mgmt/2019-03-01/databoxedge/operations.go create mode 100644 services/databoxedge/mgmt/2019-03-01/databoxedge/operationsstatus.go create mode 100644 services/databoxedge/mgmt/2019-03-01/databoxedge/orders.go create mode 100644 services/databoxedge/mgmt/2019-03-01/databoxedge/roles.go create mode 100644 services/databoxedge/mgmt/2019-03-01/databoxedge/shares.go create mode 100644 services/databoxedge/mgmt/2019-03-01/databoxedge/storageaccountcredentials.go create mode 100644 services/databoxedge/mgmt/2019-03-01/databoxedge/triggers.go create mode 100644 services/databoxedge/mgmt/2019-03-01/databoxedge/users.go create mode 100644 services/databoxedge/mgmt/2019-03-01/databoxedge/version.go create mode 100644 services/databoxedge/mgmt/2019-07-01/databoxedge/alerts.go create mode 100644 services/databoxedge/mgmt/2019-07-01/databoxedge/bandwidthschedules.go create mode 100644 services/databoxedge/mgmt/2019-07-01/databoxedge/client.go create mode 100644 services/databoxedge/mgmt/2019-07-01/databoxedge/databoxedgeapi/interfaces.go create mode 100644 services/databoxedge/mgmt/2019-07-01/databoxedge/devices.go create mode 100644 services/databoxedge/mgmt/2019-07-01/databoxedge/jobs.go create mode 100644 services/databoxedge/mgmt/2019-07-01/databoxedge/models.go create mode 100644 services/databoxedge/mgmt/2019-07-01/databoxedge/nodes.go create mode 100644 services/databoxedge/mgmt/2019-07-01/databoxedge/operations.go create mode 100644 services/databoxedge/mgmt/2019-07-01/databoxedge/operationsstatus.go create mode 100644 services/databoxedge/mgmt/2019-07-01/databoxedge/orders.go create mode 100644 services/databoxedge/mgmt/2019-07-01/databoxedge/roles.go create mode 100644 services/databoxedge/mgmt/2019-07-01/databoxedge/shares.go create mode 100644 services/databoxedge/mgmt/2019-07-01/databoxedge/storageaccountcredentials.go create mode 100644 services/databoxedge/mgmt/2019-07-01/databoxedge/triggers.go create mode 100644 services/databoxedge/mgmt/2019-07-01/databoxedge/users.go create mode 100644 services/databoxedge/mgmt/2019-07-01/databoxedge/version.go diff --git a/profiles/latest/databoxedge/mgmt/databoxedge/databoxedgeapi/models.go b/profiles/latest/databoxedge/mgmt/databoxedge/databoxedgeapi/models.go new file mode 100644 index 000000000000..fa769db5d05e --- /dev/null +++ b/profiles/latest/databoxedge/mgmt/databoxedge/databoxedgeapi/models.go @@ -0,0 +1,36 @@ +// +build go1.9 + +// Copyright 2019 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// This code was auto-generated by: +// github.com/Azure/azure-sdk-for-go/tools/profileBuilder + +package databoxedgeapi + +import original "github.com/Azure/azure-sdk-for-go/services/databoxedge/mgmt/2019-07-01/databoxedge/databoxedgeapi" + +type AlertsClientAPI = original.AlertsClientAPI +type BandwidthSchedulesClientAPI = original.BandwidthSchedulesClientAPI +type DevicesClientAPI = original.DevicesClientAPI +type JobsClientAPI = original.JobsClientAPI +type NodesClientAPI = original.NodesClientAPI +type OperationsClientAPI = original.OperationsClientAPI +type OperationsStatusClientAPI = original.OperationsStatusClientAPI +type OrdersClientAPI = original.OrdersClientAPI +type RolesClientAPI = original.RolesClientAPI +type SharesClientAPI = original.SharesClientAPI +type StorageAccountCredentialsClientAPI = original.StorageAccountCredentialsClientAPI +type TriggersClientAPI = original.TriggersClientAPI +type UsersClientAPI = original.UsersClientAPI diff --git a/profiles/latest/databoxedge/mgmt/databoxedge/models.go b/profiles/latest/databoxedge/mgmt/databoxedge/models.go new file mode 100644 index 000000000000..3f9c78273acc --- /dev/null +++ b/profiles/latest/databoxedge/mgmt/databoxedge/models.go @@ -0,0 +1,786 @@ +// +build go1.9 + +// Copyright 2019 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// This code was auto-generated by: +// github.com/Azure/azure-sdk-for-go/tools/profileBuilder + +package databoxedge + +import ( + "context" + + original "github.com/Azure/azure-sdk-for-go/services/databoxedge/mgmt/2019-07-01/databoxedge" +) + +const ( + DefaultBaseURI = original.DefaultBaseURI +) + +type AccountType = original.AccountType + +const ( + BlobStorage AccountType = original.BlobStorage + GeneralPurposeStorage AccountType = original.GeneralPurposeStorage +) + +type AlertSeverity = original.AlertSeverity + +const ( + Critical AlertSeverity = original.Critical + Informational AlertSeverity = original.Informational + Warning AlertSeverity = original.Warning +) + +type AuthenticationType = original.AuthenticationType + +const ( + AzureActiveDirectory AuthenticationType = original.AzureActiveDirectory + Invalid AuthenticationType = original.Invalid +) + +type AzureContainerDataFormat = original.AzureContainerDataFormat + +const ( + AzureFile AzureContainerDataFormat = original.AzureFile + BlockBlob AzureContainerDataFormat = original.BlockBlob + PageBlob AzureContainerDataFormat = original.PageBlob +) + +type ClientPermissionType = original.ClientPermissionType + +const ( + NoAccess ClientPermissionType = original.NoAccess + ReadOnly ClientPermissionType = original.ReadOnly + ReadWrite ClientPermissionType = original.ReadWrite +) + +type DataPolicy = original.DataPolicy + +const ( + Cloud DataPolicy = original.Cloud + Local DataPolicy = original.Local +) + +type DayOfWeek = original.DayOfWeek + +const ( + Friday DayOfWeek = original.Friday + Monday DayOfWeek = original.Monday + Saturday DayOfWeek = original.Saturday + Sunday DayOfWeek = original.Sunday + Thursday DayOfWeek = original.Thursday + Tuesday DayOfWeek = original.Tuesday + Wednesday DayOfWeek = original.Wednesday +) + +type DeviceStatus = original.DeviceStatus + +const ( + Disconnected DeviceStatus = original.Disconnected + Maintenance DeviceStatus = original.Maintenance + NeedsAttention DeviceStatus = original.NeedsAttention + Offline DeviceStatus = original.Offline + Online DeviceStatus = original.Online + PartiallyDisconnected DeviceStatus = original.PartiallyDisconnected + ReadyToSetup DeviceStatus = original.ReadyToSetup +) + +type DeviceType = original.DeviceType + +const ( + DataBoxEdgeDevice DeviceType = original.DataBoxEdgeDevice +) + +type DownloadPhase = original.DownloadPhase + +const ( + Downloading DownloadPhase = original.Downloading + Initializing DownloadPhase = original.Initializing + Unknown DownloadPhase = original.Unknown + Verifying DownloadPhase = original.Verifying +) + +type EncryptionAlgorithm = original.EncryptionAlgorithm + +const ( + AES256 EncryptionAlgorithm = original.AES256 + None EncryptionAlgorithm = original.None + RSAESPKCS1V15 EncryptionAlgorithm = original.RSAESPKCS1V15 +) + +type InstallRebootBehavior = original.InstallRebootBehavior + +const ( + NeverReboots InstallRebootBehavior = original.NeverReboots + RequestReboot InstallRebootBehavior = original.RequestReboot + RequiresReboot InstallRebootBehavior = original.RequiresReboot +) + +type JobStatus = original.JobStatus + +const ( + JobStatusCanceled JobStatus = original.JobStatusCanceled + JobStatusFailed JobStatus = original.JobStatusFailed + JobStatusInvalid JobStatus = original.JobStatusInvalid + JobStatusPaused JobStatus = original.JobStatusPaused + JobStatusRunning JobStatus = original.JobStatusRunning + JobStatusScheduled JobStatus = original.JobStatusScheduled + JobStatusSucceeded JobStatus = original.JobStatusSucceeded +) + +type JobType = original.JobType + +const ( + JobTypeDownloadUpdates JobType = original.JobTypeDownloadUpdates + JobTypeInstallUpdates JobType = original.JobTypeInstallUpdates + JobTypeInvalid JobType = original.JobTypeInvalid + JobTypeRefreshShare JobType = original.JobTypeRefreshShare + JobTypeScanForUpdates JobType = original.JobTypeScanForUpdates +) + +type Kind = original.Kind + +const ( + KindIOT Kind = original.KindIOT + KindRole Kind = original.KindRole +) + +type KindBasicTrigger = original.KindBasicTrigger + +const ( + KindFileEvent KindBasicTrigger = original.KindFileEvent + KindPeriodicTimerEvent KindBasicTrigger = original.KindPeriodicTimerEvent + KindTrigger KindBasicTrigger = original.KindTrigger +) + +type MetricAggregationType = original.MetricAggregationType + +const ( + MetricAggregationTypeAverage MetricAggregationType = original.MetricAggregationTypeAverage + MetricAggregationTypeCount MetricAggregationType = original.MetricAggregationTypeCount + MetricAggregationTypeMaximum MetricAggregationType = original.MetricAggregationTypeMaximum + MetricAggregationTypeMinimum MetricAggregationType = original.MetricAggregationTypeMinimum + MetricAggregationTypeNone MetricAggregationType = original.MetricAggregationTypeNone + MetricAggregationTypeNotSpecified MetricAggregationType = original.MetricAggregationTypeNotSpecified + MetricAggregationTypeTotal MetricAggregationType = original.MetricAggregationTypeTotal +) + +type MetricCategory = original.MetricCategory + +const ( + Capacity MetricCategory = original.Capacity + Transaction MetricCategory = original.Transaction +) + +type MetricUnit = original.MetricUnit + +const ( + Bytes MetricUnit = original.Bytes + BytesPerSecond MetricUnit = original.BytesPerSecond + Count MetricUnit = original.Count + CountPerSecond MetricUnit = original.CountPerSecond + Milliseconds MetricUnit = original.Milliseconds + NotSpecified MetricUnit = original.NotSpecified + Percent MetricUnit = original.Percent + Seconds MetricUnit = original.Seconds +) + +type MonitoringStatus = original.MonitoringStatus + +const ( + Disabled MonitoringStatus = original.Disabled + Enabled MonitoringStatus = original.Enabled +) + +type NetworkAdapterDHCPStatus = original.NetworkAdapterDHCPStatus + +const ( + NetworkAdapterDHCPStatusDisabled NetworkAdapterDHCPStatus = original.NetworkAdapterDHCPStatusDisabled + NetworkAdapterDHCPStatusEnabled NetworkAdapterDHCPStatus = original.NetworkAdapterDHCPStatusEnabled +) + +type NetworkAdapterRDMAStatus = original.NetworkAdapterRDMAStatus + +const ( + Capable NetworkAdapterRDMAStatus = original.Capable + Incapable NetworkAdapterRDMAStatus = original.Incapable +) + +type NetworkAdapterStatus = original.NetworkAdapterStatus + +const ( + Active NetworkAdapterStatus = original.Active + Inactive NetworkAdapterStatus = original.Inactive +) + +type NetworkGroup = original.NetworkGroup + +const ( + NetworkGroupNone NetworkGroup = original.NetworkGroupNone + NetworkGroupNonRDMA NetworkGroup = original.NetworkGroupNonRDMA + NetworkGroupRDMA NetworkGroup = original.NetworkGroupRDMA +) + +type NodeStatus = original.NodeStatus + +const ( + NodeStatusDown NodeStatus = original.NodeStatusDown + NodeStatusRebooting NodeStatus = original.NodeStatusRebooting + NodeStatusShuttingDown NodeStatus = original.NodeStatusShuttingDown + NodeStatusUnknown NodeStatus = original.NodeStatusUnknown + NodeStatusUp NodeStatus = original.NodeStatusUp +) + +type OrderState = original.OrderState + +const ( + Arriving OrderState = original.Arriving + AwaitingFulfilment OrderState = original.AwaitingFulfilment + AwaitingPreparation OrderState = original.AwaitingPreparation + AwaitingReturnShipment OrderState = original.AwaitingReturnShipment + AwaitingShipment OrderState = original.AwaitingShipment + CollectedAtMicrosoft OrderState = original.CollectedAtMicrosoft + Declined OrderState = original.Declined + Delivered OrderState = original.Delivered + LostDevice OrderState = original.LostDevice + ReplacementRequested OrderState = original.ReplacementRequested + ReturnInitiated OrderState = original.ReturnInitiated + Shipped OrderState = original.Shipped + ShippedBack OrderState = original.ShippedBack + Untracked OrderState = original.Untracked +) + +type PlatformType = original.PlatformType + +const ( + Linux PlatformType = original.Linux + Windows PlatformType = original.Windows +) + +type RoleStatus = original.RoleStatus + +const ( + RoleStatusDisabled RoleStatus = original.RoleStatusDisabled + RoleStatusEnabled RoleStatus = original.RoleStatusEnabled +) + +type RoleTypes = original.RoleTypes + +const ( + ASA RoleTypes = original.ASA + Cognitive RoleTypes = original.Cognitive + Functions RoleTypes = original.Functions + IOT RoleTypes = original.IOT +) + +type SSLStatus = original.SSLStatus + +const ( + SSLStatusDisabled SSLStatus = original.SSLStatusDisabled + SSLStatusEnabled SSLStatus = original.SSLStatusEnabled +) + +type ShareAccessProtocol = original.ShareAccessProtocol + +const ( + NFS ShareAccessProtocol = original.NFS + SMB ShareAccessProtocol = original.SMB +) + +type ShareAccessType = original.ShareAccessType + +const ( + Change ShareAccessType = original.Change + Custom ShareAccessType = original.Custom + Read ShareAccessType = original.Read +) + +type ShareStatus = original.ShareStatus + +const ( + ShareStatusNeedsAttention ShareStatus = original.ShareStatusNeedsAttention + ShareStatusOffline ShareStatus = original.ShareStatusOffline + ShareStatusOK ShareStatus = original.ShareStatusOK + ShareStatusUnknown ShareStatus = original.ShareStatusUnknown + ShareStatusUpdating ShareStatus = original.ShareStatusUpdating +) + +type SkuName = original.SkuName + +const ( + Edge SkuName = original.Edge + Gateway SkuName = original.Gateway +) + +type SkuTier = original.SkuTier + +const ( + Standard SkuTier = original.Standard +) + +type TimeGrain = original.TimeGrain + +const ( + PT12H TimeGrain = original.PT12H + PT15M TimeGrain = original.PT15M + PT1D TimeGrain = original.PT1D + PT1H TimeGrain = original.PT1H + PT1M TimeGrain = original.PT1M + PT30M TimeGrain = original.PT30M + PT5M TimeGrain = original.PT5M + PT6H TimeGrain = original.PT6H +) + +type UpdateOperation = original.UpdateOperation + +const ( + UpdateOperationDownload UpdateOperation = original.UpdateOperationDownload + UpdateOperationInstall UpdateOperation = original.UpdateOperationInstall + UpdateOperationNone UpdateOperation = original.UpdateOperationNone + UpdateOperationScan UpdateOperation = original.UpdateOperationScan +) + +type UpdateOperationStage = original.UpdateOperationStage + +const ( + UpdateOperationStageDownloadComplete UpdateOperationStage = original.UpdateOperationStageDownloadComplete + UpdateOperationStageDownloadFailed UpdateOperationStage = original.UpdateOperationStageDownloadFailed + UpdateOperationStageDownloadStarted UpdateOperationStage = original.UpdateOperationStageDownloadStarted + UpdateOperationStageFailure UpdateOperationStage = original.UpdateOperationStageFailure + UpdateOperationStageInitial UpdateOperationStage = original.UpdateOperationStageInitial + UpdateOperationStageInstallComplete UpdateOperationStage = original.UpdateOperationStageInstallComplete + UpdateOperationStageInstallFailed UpdateOperationStage = original.UpdateOperationStageInstallFailed + UpdateOperationStageInstallStarted UpdateOperationStage = original.UpdateOperationStageInstallStarted + UpdateOperationStageRebootInitiated UpdateOperationStage = original.UpdateOperationStageRebootInitiated + UpdateOperationStageRescanComplete UpdateOperationStage = original.UpdateOperationStageRescanComplete + UpdateOperationStageRescanFailed UpdateOperationStage = original.UpdateOperationStageRescanFailed + UpdateOperationStageRescanStarted UpdateOperationStage = original.UpdateOperationStageRescanStarted + UpdateOperationStageScanComplete UpdateOperationStage = original.UpdateOperationStageScanComplete + UpdateOperationStageScanFailed UpdateOperationStage = original.UpdateOperationStageScanFailed + UpdateOperationStageScanStarted UpdateOperationStage = original.UpdateOperationStageScanStarted + UpdateOperationStageSuccess UpdateOperationStage = original.UpdateOperationStageSuccess + UpdateOperationStageUnknown UpdateOperationStage = original.UpdateOperationStageUnknown +) + +type ARMBaseModel = original.ARMBaseModel +type Address = original.Address +type Alert = original.Alert +type AlertErrorDetails = original.AlertErrorDetails +type AlertList = original.AlertList +type AlertListIterator = original.AlertListIterator +type AlertListPage = original.AlertListPage +type AlertProperties = original.AlertProperties +type AlertsClient = original.AlertsClient +type AsymmetricEncryptedSecret = original.AsymmetricEncryptedSecret +type Authentication = original.Authentication +type AzureContainerInfo = original.AzureContainerInfo +type BandwidthSchedule = original.BandwidthSchedule +type BandwidthScheduleProperties = original.BandwidthScheduleProperties +type BandwidthSchedulesClient = original.BandwidthSchedulesClient +type BandwidthSchedulesCreateOrUpdateFuture = original.BandwidthSchedulesCreateOrUpdateFuture +type BandwidthSchedulesDeleteFuture = original.BandwidthSchedulesDeleteFuture +type BandwidthSchedulesList = original.BandwidthSchedulesList +type BandwidthSchedulesListIterator = original.BandwidthSchedulesListIterator +type BandwidthSchedulesListPage = original.BandwidthSchedulesListPage +type BaseClient = original.BaseClient +type BasicRole = original.BasicRole +type BasicTrigger = original.BasicTrigger +type ClientAccessRight = original.ClientAccessRight +type CloudError = original.CloudError +type CloudErrorBody = original.CloudErrorBody +type ContactDetails = original.ContactDetails +type Device = original.Device +type DeviceExtendedInfo = original.DeviceExtendedInfo +type DeviceExtendedInfoProperties = original.DeviceExtendedInfoProperties +type DeviceList = original.DeviceList +type DeviceListIterator = original.DeviceListIterator +type DeviceListPage = original.DeviceListPage +type DevicePatch = original.DevicePatch +type DeviceProperties = original.DeviceProperties +type DevicesClient = original.DevicesClient +type DevicesCreateOrUpdateFuture = original.DevicesCreateOrUpdateFuture +type DevicesCreateOrUpdateSecuritySettingsFuture = original.DevicesCreateOrUpdateSecuritySettingsFuture +type DevicesDeleteFuture = original.DevicesDeleteFuture +type DevicesDownloadUpdatesFuture = original.DevicesDownloadUpdatesFuture +type DevicesInstallUpdatesFuture = original.DevicesInstallUpdatesFuture +type DevicesScanForUpdatesFuture = original.DevicesScanForUpdatesFuture +type FileEventTrigger = original.FileEventTrigger +type FileSourceInfo = original.FileSourceInfo +type FileTriggerProperties = original.FileTriggerProperties +type IoTDeviceInfo = original.IoTDeviceInfo +type IoTRole = original.IoTRole +type IoTRoleProperties = original.IoTRoleProperties +type Ipv4Config = original.Ipv4Config +type Ipv6Config = original.Ipv6Config +type Job = original.Job +type JobErrorDetails = original.JobErrorDetails +type JobErrorItem = original.JobErrorItem +type JobProperties = original.JobProperties +type JobsClient = original.JobsClient +type MetricDimensionV1 = original.MetricDimensionV1 +type MetricSpecificationV1 = original.MetricSpecificationV1 +type MountPointMap = original.MountPointMap +type NetworkAdapter = original.NetworkAdapter +type NetworkAdapterPosition = original.NetworkAdapterPosition +type NetworkSettings = original.NetworkSettings +type NetworkSettingsProperties = original.NetworkSettingsProperties +type Node = original.Node +type NodeList = original.NodeList +type NodeProperties = original.NodeProperties +type NodesClient = original.NodesClient +type Operation = original.Operation +type OperationDisplay = original.OperationDisplay +type OperationProperties = original.OperationProperties +type OperationsClient = original.OperationsClient +type OperationsList = original.OperationsList +type OperationsListIterator = original.OperationsListIterator +type OperationsListPage = original.OperationsListPage +type OperationsStatusClient = original.OperationsStatusClient +type Order = original.Order +type OrderList = original.OrderList +type OrderListIterator = original.OrderListIterator +type OrderListPage = original.OrderListPage +type OrderProperties = original.OrderProperties +type OrderStatus = original.OrderStatus +type OrdersClient = original.OrdersClient +type OrdersCreateOrUpdateFuture = original.OrdersCreateOrUpdateFuture +type OrdersDeleteFuture = original.OrdersDeleteFuture +type PeriodicTimerEventTrigger = original.PeriodicTimerEventTrigger +type PeriodicTimerProperties = original.PeriodicTimerProperties +type PeriodicTimerSourceInfo = original.PeriodicTimerSourceInfo +type RawCertificateData = original.RawCertificateData +type RefreshDetails = original.RefreshDetails +type Role = original.Role +type RoleList = original.RoleList +type RoleListIterator = original.RoleListIterator +type RoleListPage = original.RoleListPage +type RoleModel = original.RoleModel +type RoleSinkInfo = original.RoleSinkInfo +type RolesClient = original.RolesClient +type RolesCreateOrUpdateFuture = original.RolesCreateOrUpdateFuture +type RolesDeleteFuture = original.RolesDeleteFuture +type SecuritySettings = original.SecuritySettings +type SecuritySettingsProperties = original.SecuritySettingsProperties +type ServiceSpecification = original.ServiceSpecification +type Share = original.Share +type ShareAccessRight = original.ShareAccessRight +type ShareList = original.ShareList +type ShareListIterator = original.ShareListIterator +type ShareListPage = original.ShareListPage +type ShareProperties = original.ShareProperties +type SharesClient = original.SharesClient +type SharesCreateOrUpdateFuture = original.SharesCreateOrUpdateFuture +type SharesDeleteFuture = original.SharesDeleteFuture +type SharesRefreshFuture = original.SharesRefreshFuture +type Sku = original.Sku +type StorageAccountCredential = original.StorageAccountCredential +type StorageAccountCredentialList = original.StorageAccountCredentialList +type StorageAccountCredentialListIterator = original.StorageAccountCredentialListIterator +type StorageAccountCredentialListPage = original.StorageAccountCredentialListPage +type StorageAccountCredentialProperties = original.StorageAccountCredentialProperties +type StorageAccountCredentialsClient = original.StorageAccountCredentialsClient +type StorageAccountCredentialsCreateOrUpdateFuture = original.StorageAccountCredentialsCreateOrUpdateFuture +type StorageAccountCredentialsDeleteFuture = original.StorageAccountCredentialsDeleteFuture +type SymmetricKey = original.SymmetricKey +type TrackingInfo = original.TrackingInfo +type Trigger = original.Trigger +type TriggerList = original.TriggerList +type TriggerListIterator = original.TriggerListIterator +type TriggerListPage = original.TriggerListPage +type TriggerModel = original.TriggerModel +type TriggersClient = original.TriggersClient +type TriggersCreateOrUpdateFuture = original.TriggersCreateOrUpdateFuture +type TriggersDeleteFuture = original.TriggersDeleteFuture +type UpdateDownloadProgress = original.UpdateDownloadProgress +type UpdateInstallProgress = original.UpdateInstallProgress +type UpdateSummary = original.UpdateSummary +type UpdateSummaryProperties = original.UpdateSummaryProperties +type UploadCertificateRequest = original.UploadCertificateRequest +type UploadCertificateResponse = original.UploadCertificateResponse +type User = original.User +type UserAccessRight = original.UserAccessRight +type UserList = original.UserList +type UserListIterator = original.UserListIterator +type UserListPage = original.UserListPage +type UserProperties = original.UserProperties +type UsersClient = original.UsersClient +type UsersCreateOrUpdateFuture = original.UsersCreateOrUpdateFuture +type UsersDeleteFuture = original.UsersDeleteFuture + +func New(subscriptionID string) BaseClient { + return original.New(subscriptionID) +} +func NewAlertListIterator(page AlertListPage) AlertListIterator { + return original.NewAlertListIterator(page) +} +func NewAlertListPage(getNextPage func(context.Context, AlertList) (AlertList, error)) AlertListPage { + return original.NewAlertListPage(getNextPage) +} +func NewAlertsClient(subscriptionID string) AlertsClient { + return original.NewAlertsClient(subscriptionID) +} +func NewAlertsClientWithBaseURI(baseURI string, subscriptionID string) AlertsClient { + return original.NewAlertsClientWithBaseURI(baseURI, subscriptionID) +} +func NewBandwidthSchedulesClient(subscriptionID string) BandwidthSchedulesClient { + return original.NewBandwidthSchedulesClient(subscriptionID) +} +func NewBandwidthSchedulesClientWithBaseURI(baseURI string, subscriptionID string) BandwidthSchedulesClient { + return original.NewBandwidthSchedulesClientWithBaseURI(baseURI, subscriptionID) +} +func NewBandwidthSchedulesListIterator(page BandwidthSchedulesListPage) BandwidthSchedulesListIterator { + return original.NewBandwidthSchedulesListIterator(page) +} +func NewBandwidthSchedulesListPage(getNextPage func(context.Context, BandwidthSchedulesList) (BandwidthSchedulesList, error)) BandwidthSchedulesListPage { + return original.NewBandwidthSchedulesListPage(getNextPage) +} +func NewDeviceListIterator(page DeviceListPage) DeviceListIterator { + return original.NewDeviceListIterator(page) +} +func NewDeviceListPage(getNextPage func(context.Context, DeviceList) (DeviceList, error)) DeviceListPage { + return original.NewDeviceListPage(getNextPage) +} +func NewDevicesClient(subscriptionID string) DevicesClient { + return original.NewDevicesClient(subscriptionID) +} +func NewDevicesClientWithBaseURI(baseURI string, subscriptionID string) DevicesClient { + return original.NewDevicesClientWithBaseURI(baseURI, subscriptionID) +} +func NewJobsClient(subscriptionID string) JobsClient { + return original.NewJobsClient(subscriptionID) +} +func NewJobsClientWithBaseURI(baseURI string, subscriptionID string) JobsClient { + return original.NewJobsClientWithBaseURI(baseURI, subscriptionID) +} +func NewNodesClient(subscriptionID string) NodesClient { + return original.NewNodesClient(subscriptionID) +} +func NewNodesClientWithBaseURI(baseURI string, subscriptionID string) NodesClient { + return original.NewNodesClientWithBaseURI(baseURI, subscriptionID) +} +func NewOperationsClient(subscriptionID string) OperationsClient { + return original.NewOperationsClient(subscriptionID) +} +func NewOperationsClientWithBaseURI(baseURI string, subscriptionID string) OperationsClient { + return original.NewOperationsClientWithBaseURI(baseURI, subscriptionID) +} +func NewOperationsListIterator(page OperationsListPage) OperationsListIterator { + return original.NewOperationsListIterator(page) +} +func NewOperationsListPage(getNextPage func(context.Context, OperationsList) (OperationsList, error)) OperationsListPage { + return original.NewOperationsListPage(getNextPage) +} +func NewOperationsStatusClient(subscriptionID string) OperationsStatusClient { + return original.NewOperationsStatusClient(subscriptionID) +} +func NewOperationsStatusClientWithBaseURI(baseURI string, subscriptionID string) OperationsStatusClient { + return original.NewOperationsStatusClientWithBaseURI(baseURI, subscriptionID) +} +func NewOrderListIterator(page OrderListPage) OrderListIterator { + return original.NewOrderListIterator(page) +} +func NewOrderListPage(getNextPage func(context.Context, OrderList) (OrderList, error)) OrderListPage { + return original.NewOrderListPage(getNextPage) +} +func NewOrdersClient(subscriptionID string) OrdersClient { + return original.NewOrdersClient(subscriptionID) +} +func NewOrdersClientWithBaseURI(baseURI string, subscriptionID string) OrdersClient { + return original.NewOrdersClientWithBaseURI(baseURI, subscriptionID) +} +func NewRoleListIterator(page RoleListPage) RoleListIterator { + return original.NewRoleListIterator(page) +} +func NewRoleListPage(getNextPage func(context.Context, RoleList) (RoleList, error)) RoleListPage { + return original.NewRoleListPage(getNextPage) +} +func NewRolesClient(subscriptionID string) RolesClient { + return original.NewRolesClient(subscriptionID) +} +func NewRolesClientWithBaseURI(baseURI string, subscriptionID string) RolesClient { + return original.NewRolesClientWithBaseURI(baseURI, subscriptionID) +} +func NewShareListIterator(page ShareListPage) ShareListIterator { + return original.NewShareListIterator(page) +} +func NewShareListPage(getNextPage func(context.Context, ShareList) (ShareList, error)) ShareListPage { + return original.NewShareListPage(getNextPage) +} +func NewSharesClient(subscriptionID string) SharesClient { + return original.NewSharesClient(subscriptionID) +} +func NewSharesClientWithBaseURI(baseURI string, subscriptionID string) SharesClient { + return original.NewSharesClientWithBaseURI(baseURI, subscriptionID) +} +func NewStorageAccountCredentialListIterator(page StorageAccountCredentialListPage) StorageAccountCredentialListIterator { + return original.NewStorageAccountCredentialListIterator(page) +} +func NewStorageAccountCredentialListPage(getNextPage func(context.Context, StorageAccountCredentialList) (StorageAccountCredentialList, error)) StorageAccountCredentialListPage { + return original.NewStorageAccountCredentialListPage(getNextPage) +} +func NewStorageAccountCredentialsClient(subscriptionID string) StorageAccountCredentialsClient { + return original.NewStorageAccountCredentialsClient(subscriptionID) +} +func NewStorageAccountCredentialsClientWithBaseURI(baseURI string, subscriptionID string) StorageAccountCredentialsClient { + return original.NewStorageAccountCredentialsClientWithBaseURI(baseURI, subscriptionID) +} +func NewTriggerListIterator(page TriggerListPage) TriggerListIterator { + return original.NewTriggerListIterator(page) +} +func NewTriggerListPage(getNextPage func(context.Context, TriggerList) (TriggerList, error)) TriggerListPage { + return original.NewTriggerListPage(getNextPage) +} +func NewTriggersClient(subscriptionID string) TriggersClient { + return original.NewTriggersClient(subscriptionID) +} +func NewTriggersClientWithBaseURI(baseURI string, subscriptionID string) TriggersClient { + return original.NewTriggersClientWithBaseURI(baseURI, subscriptionID) +} +func NewUserListIterator(page UserListPage) UserListIterator { + return original.NewUserListIterator(page) +} +func NewUserListPage(getNextPage func(context.Context, UserList) (UserList, error)) UserListPage { + return original.NewUserListPage(getNextPage) +} +func NewUsersClient(subscriptionID string) UsersClient { + return original.NewUsersClient(subscriptionID) +} +func NewUsersClientWithBaseURI(baseURI string, subscriptionID string) UsersClient { + return original.NewUsersClientWithBaseURI(baseURI, subscriptionID) +} +func NewWithBaseURI(baseURI string, subscriptionID string) BaseClient { + return original.NewWithBaseURI(baseURI, subscriptionID) +} +func PossibleAccountTypeValues() []AccountType { + return original.PossibleAccountTypeValues() +} +func PossibleAlertSeverityValues() []AlertSeverity { + return original.PossibleAlertSeverityValues() +} +func PossibleAuthenticationTypeValues() []AuthenticationType { + return original.PossibleAuthenticationTypeValues() +} +func PossibleAzureContainerDataFormatValues() []AzureContainerDataFormat { + return original.PossibleAzureContainerDataFormatValues() +} +func PossibleClientPermissionTypeValues() []ClientPermissionType { + return original.PossibleClientPermissionTypeValues() +} +func PossibleDataPolicyValues() []DataPolicy { + return original.PossibleDataPolicyValues() +} +func PossibleDayOfWeekValues() []DayOfWeek { + return original.PossibleDayOfWeekValues() +} +func PossibleDeviceStatusValues() []DeviceStatus { + return original.PossibleDeviceStatusValues() +} +func PossibleDeviceTypeValues() []DeviceType { + return original.PossibleDeviceTypeValues() +} +func PossibleDownloadPhaseValues() []DownloadPhase { + return original.PossibleDownloadPhaseValues() +} +func PossibleEncryptionAlgorithmValues() []EncryptionAlgorithm { + return original.PossibleEncryptionAlgorithmValues() +} +func PossibleInstallRebootBehaviorValues() []InstallRebootBehavior { + return original.PossibleInstallRebootBehaviorValues() +} +func PossibleJobStatusValues() []JobStatus { + return original.PossibleJobStatusValues() +} +func PossibleJobTypeValues() []JobType { + return original.PossibleJobTypeValues() +} +func PossibleKindBasicTriggerValues() []KindBasicTrigger { + return original.PossibleKindBasicTriggerValues() +} +func PossibleKindValues() []Kind { + return original.PossibleKindValues() +} +func PossibleMetricAggregationTypeValues() []MetricAggregationType { + return original.PossibleMetricAggregationTypeValues() +} +func PossibleMetricCategoryValues() []MetricCategory { + return original.PossibleMetricCategoryValues() +} +func PossibleMetricUnitValues() []MetricUnit { + return original.PossibleMetricUnitValues() +} +func PossibleMonitoringStatusValues() []MonitoringStatus { + return original.PossibleMonitoringStatusValues() +} +func PossibleNetworkAdapterDHCPStatusValues() []NetworkAdapterDHCPStatus { + return original.PossibleNetworkAdapterDHCPStatusValues() +} +func PossibleNetworkAdapterRDMAStatusValues() []NetworkAdapterRDMAStatus { + return original.PossibleNetworkAdapterRDMAStatusValues() +} +func PossibleNetworkAdapterStatusValues() []NetworkAdapterStatus { + return original.PossibleNetworkAdapterStatusValues() +} +func PossibleNetworkGroupValues() []NetworkGroup { + return original.PossibleNetworkGroupValues() +} +func PossibleNodeStatusValues() []NodeStatus { + return original.PossibleNodeStatusValues() +} +func PossibleOrderStateValues() []OrderState { + return original.PossibleOrderStateValues() +} +func PossiblePlatformTypeValues() []PlatformType { + return original.PossiblePlatformTypeValues() +} +func PossibleRoleStatusValues() []RoleStatus { + return original.PossibleRoleStatusValues() +} +func PossibleRoleTypesValues() []RoleTypes { + return original.PossibleRoleTypesValues() +} +func PossibleSSLStatusValues() []SSLStatus { + return original.PossibleSSLStatusValues() +} +func PossibleShareAccessProtocolValues() []ShareAccessProtocol { + return original.PossibleShareAccessProtocolValues() +} +func PossibleShareAccessTypeValues() []ShareAccessType { + return original.PossibleShareAccessTypeValues() +} +func PossibleShareStatusValues() []ShareStatus { + return original.PossibleShareStatusValues() +} +func PossibleSkuNameValues() []SkuName { + return original.PossibleSkuNameValues() +} +func PossibleSkuTierValues() []SkuTier { + return original.PossibleSkuTierValues() +} +func PossibleTimeGrainValues() []TimeGrain { + return original.PossibleTimeGrainValues() +} +func PossibleUpdateOperationStageValues() []UpdateOperationStage { + return original.PossibleUpdateOperationStageValues() +} +func PossibleUpdateOperationValues() []UpdateOperation { + return original.PossibleUpdateOperationValues() +} +func UserAgent() string { + return original.UserAgent() + " profiles/latest" +} +func Version() string { + return original.Version() +} diff --git a/profiles/preview/databoxedge/mgmt/databoxedge/databoxedgeapi/models.go b/profiles/preview/databoxedge/mgmt/databoxedge/databoxedgeapi/models.go new file mode 100644 index 000000000000..fa769db5d05e --- /dev/null +++ b/profiles/preview/databoxedge/mgmt/databoxedge/databoxedgeapi/models.go @@ -0,0 +1,36 @@ +// +build go1.9 + +// Copyright 2019 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// This code was auto-generated by: +// github.com/Azure/azure-sdk-for-go/tools/profileBuilder + +package databoxedgeapi + +import original "github.com/Azure/azure-sdk-for-go/services/databoxedge/mgmt/2019-07-01/databoxedge/databoxedgeapi" + +type AlertsClientAPI = original.AlertsClientAPI +type BandwidthSchedulesClientAPI = original.BandwidthSchedulesClientAPI +type DevicesClientAPI = original.DevicesClientAPI +type JobsClientAPI = original.JobsClientAPI +type NodesClientAPI = original.NodesClientAPI +type OperationsClientAPI = original.OperationsClientAPI +type OperationsStatusClientAPI = original.OperationsStatusClientAPI +type OrdersClientAPI = original.OrdersClientAPI +type RolesClientAPI = original.RolesClientAPI +type SharesClientAPI = original.SharesClientAPI +type StorageAccountCredentialsClientAPI = original.StorageAccountCredentialsClientAPI +type TriggersClientAPI = original.TriggersClientAPI +type UsersClientAPI = original.UsersClientAPI diff --git a/profiles/preview/databoxedge/mgmt/databoxedge/models.go b/profiles/preview/databoxedge/mgmt/databoxedge/models.go new file mode 100644 index 000000000000..873bd0836bb3 --- /dev/null +++ b/profiles/preview/databoxedge/mgmt/databoxedge/models.go @@ -0,0 +1,786 @@ +// +build go1.9 + +// Copyright 2019 Microsoft Corporation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// This code was auto-generated by: +// github.com/Azure/azure-sdk-for-go/tools/profileBuilder + +package databoxedge + +import ( + "context" + + original "github.com/Azure/azure-sdk-for-go/services/databoxedge/mgmt/2019-07-01/databoxedge" +) + +const ( + DefaultBaseURI = original.DefaultBaseURI +) + +type AccountType = original.AccountType + +const ( + BlobStorage AccountType = original.BlobStorage + GeneralPurposeStorage AccountType = original.GeneralPurposeStorage +) + +type AlertSeverity = original.AlertSeverity + +const ( + Critical AlertSeverity = original.Critical + Informational AlertSeverity = original.Informational + Warning AlertSeverity = original.Warning +) + +type AuthenticationType = original.AuthenticationType + +const ( + AzureActiveDirectory AuthenticationType = original.AzureActiveDirectory + Invalid AuthenticationType = original.Invalid +) + +type AzureContainerDataFormat = original.AzureContainerDataFormat + +const ( + AzureFile AzureContainerDataFormat = original.AzureFile + BlockBlob AzureContainerDataFormat = original.BlockBlob + PageBlob AzureContainerDataFormat = original.PageBlob +) + +type ClientPermissionType = original.ClientPermissionType + +const ( + NoAccess ClientPermissionType = original.NoAccess + ReadOnly ClientPermissionType = original.ReadOnly + ReadWrite ClientPermissionType = original.ReadWrite +) + +type DataPolicy = original.DataPolicy + +const ( + Cloud DataPolicy = original.Cloud + Local DataPolicy = original.Local +) + +type DayOfWeek = original.DayOfWeek + +const ( + Friday DayOfWeek = original.Friday + Monday DayOfWeek = original.Monday + Saturday DayOfWeek = original.Saturday + Sunday DayOfWeek = original.Sunday + Thursday DayOfWeek = original.Thursday + Tuesday DayOfWeek = original.Tuesday + Wednesday DayOfWeek = original.Wednesday +) + +type DeviceStatus = original.DeviceStatus + +const ( + Disconnected DeviceStatus = original.Disconnected + Maintenance DeviceStatus = original.Maintenance + NeedsAttention DeviceStatus = original.NeedsAttention + Offline DeviceStatus = original.Offline + Online DeviceStatus = original.Online + PartiallyDisconnected DeviceStatus = original.PartiallyDisconnected + ReadyToSetup DeviceStatus = original.ReadyToSetup +) + +type DeviceType = original.DeviceType + +const ( + DataBoxEdgeDevice DeviceType = original.DataBoxEdgeDevice +) + +type DownloadPhase = original.DownloadPhase + +const ( + Downloading DownloadPhase = original.Downloading + Initializing DownloadPhase = original.Initializing + Unknown DownloadPhase = original.Unknown + Verifying DownloadPhase = original.Verifying +) + +type EncryptionAlgorithm = original.EncryptionAlgorithm + +const ( + AES256 EncryptionAlgorithm = original.AES256 + None EncryptionAlgorithm = original.None + RSAESPKCS1V15 EncryptionAlgorithm = original.RSAESPKCS1V15 +) + +type InstallRebootBehavior = original.InstallRebootBehavior + +const ( + NeverReboots InstallRebootBehavior = original.NeverReboots + RequestReboot InstallRebootBehavior = original.RequestReboot + RequiresReboot InstallRebootBehavior = original.RequiresReboot +) + +type JobStatus = original.JobStatus + +const ( + JobStatusCanceled JobStatus = original.JobStatusCanceled + JobStatusFailed JobStatus = original.JobStatusFailed + JobStatusInvalid JobStatus = original.JobStatusInvalid + JobStatusPaused JobStatus = original.JobStatusPaused + JobStatusRunning JobStatus = original.JobStatusRunning + JobStatusScheduled JobStatus = original.JobStatusScheduled + JobStatusSucceeded JobStatus = original.JobStatusSucceeded +) + +type JobType = original.JobType + +const ( + JobTypeDownloadUpdates JobType = original.JobTypeDownloadUpdates + JobTypeInstallUpdates JobType = original.JobTypeInstallUpdates + JobTypeInvalid JobType = original.JobTypeInvalid + JobTypeRefreshShare JobType = original.JobTypeRefreshShare + JobTypeScanForUpdates JobType = original.JobTypeScanForUpdates +) + +type Kind = original.Kind + +const ( + KindIOT Kind = original.KindIOT + KindRole Kind = original.KindRole +) + +type KindBasicTrigger = original.KindBasicTrigger + +const ( + KindFileEvent KindBasicTrigger = original.KindFileEvent + KindPeriodicTimerEvent KindBasicTrigger = original.KindPeriodicTimerEvent + KindTrigger KindBasicTrigger = original.KindTrigger +) + +type MetricAggregationType = original.MetricAggregationType + +const ( + MetricAggregationTypeAverage MetricAggregationType = original.MetricAggregationTypeAverage + MetricAggregationTypeCount MetricAggregationType = original.MetricAggregationTypeCount + MetricAggregationTypeMaximum MetricAggregationType = original.MetricAggregationTypeMaximum + MetricAggregationTypeMinimum MetricAggregationType = original.MetricAggregationTypeMinimum + MetricAggregationTypeNone MetricAggregationType = original.MetricAggregationTypeNone + MetricAggregationTypeNotSpecified MetricAggregationType = original.MetricAggregationTypeNotSpecified + MetricAggregationTypeTotal MetricAggregationType = original.MetricAggregationTypeTotal +) + +type MetricCategory = original.MetricCategory + +const ( + Capacity MetricCategory = original.Capacity + Transaction MetricCategory = original.Transaction +) + +type MetricUnit = original.MetricUnit + +const ( + Bytes MetricUnit = original.Bytes + BytesPerSecond MetricUnit = original.BytesPerSecond + Count MetricUnit = original.Count + CountPerSecond MetricUnit = original.CountPerSecond + Milliseconds MetricUnit = original.Milliseconds + NotSpecified MetricUnit = original.NotSpecified + Percent MetricUnit = original.Percent + Seconds MetricUnit = original.Seconds +) + +type MonitoringStatus = original.MonitoringStatus + +const ( + Disabled MonitoringStatus = original.Disabled + Enabled MonitoringStatus = original.Enabled +) + +type NetworkAdapterDHCPStatus = original.NetworkAdapterDHCPStatus + +const ( + NetworkAdapterDHCPStatusDisabled NetworkAdapterDHCPStatus = original.NetworkAdapterDHCPStatusDisabled + NetworkAdapterDHCPStatusEnabled NetworkAdapterDHCPStatus = original.NetworkAdapterDHCPStatusEnabled +) + +type NetworkAdapterRDMAStatus = original.NetworkAdapterRDMAStatus + +const ( + Capable NetworkAdapterRDMAStatus = original.Capable + Incapable NetworkAdapterRDMAStatus = original.Incapable +) + +type NetworkAdapterStatus = original.NetworkAdapterStatus + +const ( + Active NetworkAdapterStatus = original.Active + Inactive NetworkAdapterStatus = original.Inactive +) + +type NetworkGroup = original.NetworkGroup + +const ( + NetworkGroupNone NetworkGroup = original.NetworkGroupNone + NetworkGroupNonRDMA NetworkGroup = original.NetworkGroupNonRDMA + NetworkGroupRDMA NetworkGroup = original.NetworkGroupRDMA +) + +type NodeStatus = original.NodeStatus + +const ( + NodeStatusDown NodeStatus = original.NodeStatusDown + NodeStatusRebooting NodeStatus = original.NodeStatusRebooting + NodeStatusShuttingDown NodeStatus = original.NodeStatusShuttingDown + NodeStatusUnknown NodeStatus = original.NodeStatusUnknown + NodeStatusUp NodeStatus = original.NodeStatusUp +) + +type OrderState = original.OrderState + +const ( + Arriving OrderState = original.Arriving + AwaitingFulfilment OrderState = original.AwaitingFulfilment + AwaitingPreparation OrderState = original.AwaitingPreparation + AwaitingReturnShipment OrderState = original.AwaitingReturnShipment + AwaitingShipment OrderState = original.AwaitingShipment + CollectedAtMicrosoft OrderState = original.CollectedAtMicrosoft + Declined OrderState = original.Declined + Delivered OrderState = original.Delivered + LostDevice OrderState = original.LostDevice + ReplacementRequested OrderState = original.ReplacementRequested + ReturnInitiated OrderState = original.ReturnInitiated + Shipped OrderState = original.Shipped + ShippedBack OrderState = original.ShippedBack + Untracked OrderState = original.Untracked +) + +type PlatformType = original.PlatformType + +const ( + Linux PlatformType = original.Linux + Windows PlatformType = original.Windows +) + +type RoleStatus = original.RoleStatus + +const ( + RoleStatusDisabled RoleStatus = original.RoleStatusDisabled + RoleStatusEnabled RoleStatus = original.RoleStatusEnabled +) + +type RoleTypes = original.RoleTypes + +const ( + ASA RoleTypes = original.ASA + Cognitive RoleTypes = original.Cognitive + Functions RoleTypes = original.Functions + IOT RoleTypes = original.IOT +) + +type SSLStatus = original.SSLStatus + +const ( + SSLStatusDisabled SSLStatus = original.SSLStatusDisabled + SSLStatusEnabled SSLStatus = original.SSLStatusEnabled +) + +type ShareAccessProtocol = original.ShareAccessProtocol + +const ( + NFS ShareAccessProtocol = original.NFS + SMB ShareAccessProtocol = original.SMB +) + +type ShareAccessType = original.ShareAccessType + +const ( + Change ShareAccessType = original.Change + Custom ShareAccessType = original.Custom + Read ShareAccessType = original.Read +) + +type ShareStatus = original.ShareStatus + +const ( + ShareStatusNeedsAttention ShareStatus = original.ShareStatusNeedsAttention + ShareStatusOffline ShareStatus = original.ShareStatusOffline + ShareStatusOK ShareStatus = original.ShareStatusOK + ShareStatusUnknown ShareStatus = original.ShareStatusUnknown + ShareStatusUpdating ShareStatus = original.ShareStatusUpdating +) + +type SkuName = original.SkuName + +const ( + Edge SkuName = original.Edge + Gateway SkuName = original.Gateway +) + +type SkuTier = original.SkuTier + +const ( + Standard SkuTier = original.Standard +) + +type TimeGrain = original.TimeGrain + +const ( + PT12H TimeGrain = original.PT12H + PT15M TimeGrain = original.PT15M + PT1D TimeGrain = original.PT1D + PT1H TimeGrain = original.PT1H + PT1M TimeGrain = original.PT1M + PT30M TimeGrain = original.PT30M + PT5M TimeGrain = original.PT5M + PT6H TimeGrain = original.PT6H +) + +type UpdateOperation = original.UpdateOperation + +const ( + UpdateOperationDownload UpdateOperation = original.UpdateOperationDownload + UpdateOperationInstall UpdateOperation = original.UpdateOperationInstall + UpdateOperationNone UpdateOperation = original.UpdateOperationNone + UpdateOperationScan UpdateOperation = original.UpdateOperationScan +) + +type UpdateOperationStage = original.UpdateOperationStage + +const ( + UpdateOperationStageDownloadComplete UpdateOperationStage = original.UpdateOperationStageDownloadComplete + UpdateOperationStageDownloadFailed UpdateOperationStage = original.UpdateOperationStageDownloadFailed + UpdateOperationStageDownloadStarted UpdateOperationStage = original.UpdateOperationStageDownloadStarted + UpdateOperationStageFailure UpdateOperationStage = original.UpdateOperationStageFailure + UpdateOperationStageInitial UpdateOperationStage = original.UpdateOperationStageInitial + UpdateOperationStageInstallComplete UpdateOperationStage = original.UpdateOperationStageInstallComplete + UpdateOperationStageInstallFailed UpdateOperationStage = original.UpdateOperationStageInstallFailed + UpdateOperationStageInstallStarted UpdateOperationStage = original.UpdateOperationStageInstallStarted + UpdateOperationStageRebootInitiated UpdateOperationStage = original.UpdateOperationStageRebootInitiated + UpdateOperationStageRescanComplete UpdateOperationStage = original.UpdateOperationStageRescanComplete + UpdateOperationStageRescanFailed UpdateOperationStage = original.UpdateOperationStageRescanFailed + UpdateOperationStageRescanStarted UpdateOperationStage = original.UpdateOperationStageRescanStarted + UpdateOperationStageScanComplete UpdateOperationStage = original.UpdateOperationStageScanComplete + UpdateOperationStageScanFailed UpdateOperationStage = original.UpdateOperationStageScanFailed + UpdateOperationStageScanStarted UpdateOperationStage = original.UpdateOperationStageScanStarted + UpdateOperationStageSuccess UpdateOperationStage = original.UpdateOperationStageSuccess + UpdateOperationStageUnknown UpdateOperationStage = original.UpdateOperationStageUnknown +) + +type ARMBaseModel = original.ARMBaseModel +type Address = original.Address +type Alert = original.Alert +type AlertErrorDetails = original.AlertErrorDetails +type AlertList = original.AlertList +type AlertListIterator = original.AlertListIterator +type AlertListPage = original.AlertListPage +type AlertProperties = original.AlertProperties +type AlertsClient = original.AlertsClient +type AsymmetricEncryptedSecret = original.AsymmetricEncryptedSecret +type Authentication = original.Authentication +type AzureContainerInfo = original.AzureContainerInfo +type BandwidthSchedule = original.BandwidthSchedule +type BandwidthScheduleProperties = original.BandwidthScheduleProperties +type BandwidthSchedulesClient = original.BandwidthSchedulesClient +type BandwidthSchedulesCreateOrUpdateFuture = original.BandwidthSchedulesCreateOrUpdateFuture +type BandwidthSchedulesDeleteFuture = original.BandwidthSchedulesDeleteFuture +type BandwidthSchedulesList = original.BandwidthSchedulesList +type BandwidthSchedulesListIterator = original.BandwidthSchedulesListIterator +type BandwidthSchedulesListPage = original.BandwidthSchedulesListPage +type BaseClient = original.BaseClient +type BasicRole = original.BasicRole +type BasicTrigger = original.BasicTrigger +type ClientAccessRight = original.ClientAccessRight +type CloudError = original.CloudError +type CloudErrorBody = original.CloudErrorBody +type ContactDetails = original.ContactDetails +type Device = original.Device +type DeviceExtendedInfo = original.DeviceExtendedInfo +type DeviceExtendedInfoProperties = original.DeviceExtendedInfoProperties +type DeviceList = original.DeviceList +type DeviceListIterator = original.DeviceListIterator +type DeviceListPage = original.DeviceListPage +type DevicePatch = original.DevicePatch +type DeviceProperties = original.DeviceProperties +type DevicesClient = original.DevicesClient +type DevicesCreateOrUpdateFuture = original.DevicesCreateOrUpdateFuture +type DevicesCreateOrUpdateSecuritySettingsFuture = original.DevicesCreateOrUpdateSecuritySettingsFuture +type DevicesDeleteFuture = original.DevicesDeleteFuture +type DevicesDownloadUpdatesFuture = original.DevicesDownloadUpdatesFuture +type DevicesInstallUpdatesFuture = original.DevicesInstallUpdatesFuture +type DevicesScanForUpdatesFuture = original.DevicesScanForUpdatesFuture +type FileEventTrigger = original.FileEventTrigger +type FileSourceInfo = original.FileSourceInfo +type FileTriggerProperties = original.FileTriggerProperties +type IoTDeviceInfo = original.IoTDeviceInfo +type IoTRole = original.IoTRole +type IoTRoleProperties = original.IoTRoleProperties +type Ipv4Config = original.Ipv4Config +type Ipv6Config = original.Ipv6Config +type Job = original.Job +type JobErrorDetails = original.JobErrorDetails +type JobErrorItem = original.JobErrorItem +type JobProperties = original.JobProperties +type JobsClient = original.JobsClient +type MetricDimensionV1 = original.MetricDimensionV1 +type MetricSpecificationV1 = original.MetricSpecificationV1 +type MountPointMap = original.MountPointMap +type NetworkAdapter = original.NetworkAdapter +type NetworkAdapterPosition = original.NetworkAdapterPosition +type NetworkSettings = original.NetworkSettings +type NetworkSettingsProperties = original.NetworkSettingsProperties +type Node = original.Node +type NodeList = original.NodeList +type NodeProperties = original.NodeProperties +type NodesClient = original.NodesClient +type Operation = original.Operation +type OperationDisplay = original.OperationDisplay +type OperationProperties = original.OperationProperties +type OperationsClient = original.OperationsClient +type OperationsList = original.OperationsList +type OperationsListIterator = original.OperationsListIterator +type OperationsListPage = original.OperationsListPage +type OperationsStatusClient = original.OperationsStatusClient +type Order = original.Order +type OrderList = original.OrderList +type OrderListIterator = original.OrderListIterator +type OrderListPage = original.OrderListPage +type OrderProperties = original.OrderProperties +type OrderStatus = original.OrderStatus +type OrdersClient = original.OrdersClient +type OrdersCreateOrUpdateFuture = original.OrdersCreateOrUpdateFuture +type OrdersDeleteFuture = original.OrdersDeleteFuture +type PeriodicTimerEventTrigger = original.PeriodicTimerEventTrigger +type PeriodicTimerProperties = original.PeriodicTimerProperties +type PeriodicTimerSourceInfo = original.PeriodicTimerSourceInfo +type RawCertificateData = original.RawCertificateData +type RefreshDetails = original.RefreshDetails +type Role = original.Role +type RoleList = original.RoleList +type RoleListIterator = original.RoleListIterator +type RoleListPage = original.RoleListPage +type RoleModel = original.RoleModel +type RoleSinkInfo = original.RoleSinkInfo +type RolesClient = original.RolesClient +type RolesCreateOrUpdateFuture = original.RolesCreateOrUpdateFuture +type RolesDeleteFuture = original.RolesDeleteFuture +type SecuritySettings = original.SecuritySettings +type SecuritySettingsProperties = original.SecuritySettingsProperties +type ServiceSpecification = original.ServiceSpecification +type Share = original.Share +type ShareAccessRight = original.ShareAccessRight +type ShareList = original.ShareList +type ShareListIterator = original.ShareListIterator +type ShareListPage = original.ShareListPage +type ShareProperties = original.ShareProperties +type SharesClient = original.SharesClient +type SharesCreateOrUpdateFuture = original.SharesCreateOrUpdateFuture +type SharesDeleteFuture = original.SharesDeleteFuture +type SharesRefreshFuture = original.SharesRefreshFuture +type Sku = original.Sku +type StorageAccountCredential = original.StorageAccountCredential +type StorageAccountCredentialList = original.StorageAccountCredentialList +type StorageAccountCredentialListIterator = original.StorageAccountCredentialListIterator +type StorageAccountCredentialListPage = original.StorageAccountCredentialListPage +type StorageAccountCredentialProperties = original.StorageAccountCredentialProperties +type StorageAccountCredentialsClient = original.StorageAccountCredentialsClient +type StorageAccountCredentialsCreateOrUpdateFuture = original.StorageAccountCredentialsCreateOrUpdateFuture +type StorageAccountCredentialsDeleteFuture = original.StorageAccountCredentialsDeleteFuture +type SymmetricKey = original.SymmetricKey +type TrackingInfo = original.TrackingInfo +type Trigger = original.Trigger +type TriggerList = original.TriggerList +type TriggerListIterator = original.TriggerListIterator +type TriggerListPage = original.TriggerListPage +type TriggerModel = original.TriggerModel +type TriggersClient = original.TriggersClient +type TriggersCreateOrUpdateFuture = original.TriggersCreateOrUpdateFuture +type TriggersDeleteFuture = original.TriggersDeleteFuture +type UpdateDownloadProgress = original.UpdateDownloadProgress +type UpdateInstallProgress = original.UpdateInstallProgress +type UpdateSummary = original.UpdateSummary +type UpdateSummaryProperties = original.UpdateSummaryProperties +type UploadCertificateRequest = original.UploadCertificateRequest +type UploadCertificateResponse = original.UploadCertificateResponse +type User = original.User +type UserAccessRight = original.UserAccessRight +type UserList = original.UserList +type UserListIterator = original.UserListIterator +type UserListPage = original.UserListPage +type UserProperties = original.UserProperties +type UsersClient = original.UsersClient +type UsersCreateOrUpdateFuture = original.UsersCreateOrUpdateFuture +type UsersDeleteFuture = original.UsersDeleteFuture + +func New(subscriptionID string) BaseClient { + return original.New(subscriptionID) +} +func NewAlertListIterator(page AlertListPage) AlertListIterator { + return original.NewAlertListIterator(page) +} +func NewAlertListPage(getNextPage func(context.Context, AlertList) (AlertList, error)) AlertListPage { + return original.NewAlertListPage(getNextPage) +} +func NewAlertsClient(subscriptionID string) AlertsClient { + return original.NewAlertsClient(subscriptionID) +} +func NewAlertsClientWithBaseURI(baseURI string, subscriptionID string) AlertsClient { + return original.NewAlertsClientWithBaseURI(baseURI, subscriptionID) +} +func NewBandwidthSchedulesClient(subscriptionID string) BandwidthSchedulesClient { + return original.NewBandwidthSchedulesClient(subscriptionID) +} +func NewBandwidthSchedulesClientWithBaseURI(baseURI string, subscriptionID string) BandwidthSchedulesClient { + return original.NewBandwidthSchedulesClientWithBaseURI(baseURI, subscriptionID) +} +func NewBandwidthSchedulesListIterator(page BandwidthSchedulesListPage) BandwidthSchedulesListIterator { + return original.NewBandwidthSchedulesListIterator(page) +} +func NewBandwidthSchedulesListPage(getNextPage func(context.Context, BandwidthSchedulesList) (BandwidthSchedulesList, error)) BandwidthSchedulesListPage { + return original.NewBandwidthSchedulesListPage(getNextPage) +} +func NewDeviceListIterator(page DeviceListPage) DeviceListIterator { + return original.NewDeviceListIterator(page) +} +func NewDeviceListPage(getNextPage func(context.Context, DeviceList) (DeviceList, error)) DeviceListPage { + return original.NewDeviceListPage(getNextPage) +} +func NewDevicesClient(subscriptionID string) DevicesClient { + return original.NewDevicesClient(subscriptionID) +} +func NewDevicesClientWithBaseURI(baseURI string, subscriptionID string) DevicesClient { + return original.NewDevicesClientWithBaseURI(baseURI, subscriptionID) +} +func NewJobsClient(subscriptionID string) JobsClient { + return original.NewJobsClient(subscriptionID) +} +func NewJobsClientWithBaseURI(baseURI string, subscriptionID string) JobsClient { + return original.NewJobsClientWithBaseURI(baseURI, subscriptionID) +} +func NewNodesClient(subscriptionID string) NodesClient { + return original.NewNodesClient(subscriptionID) +} +func NewNodesClientWithBaseURI(baseURI string, subscriptionID string) NodesClient { + return original.NewNodesClientWithBaseURI(baseURI, subscriptionID) +} +func NewOperationsClient(subscriptionID string) OperationsClient { + return original.NewOperationsClient(subscriptionID) +} +func NewOperationsClientWithBaseURI(baseURI string, subscriptionID string) OperationsClient { + return original.NewOperationsClientWithBaseURI(baseURI, subscriptionID) +} +func NewOperationsListIterator(page OperationsListPage) OperationsListIterator { + return original.NewOperationsListIterator(page) +} +func NewOperationsListPage(getNextPage func(context.Context, OperationsList) (OperationsList, error)) OperationsListPage { + return original.NewOperationsListPage(getNextPage) +} +func NewOperationsStatusClient(subscriptionID string) OperationsStatusClient { + return original.NewOperationsStatusClient(subscriptionID) +} +func NewOperationsStatusClientWithBaseURI(baseURI string, subscriptionID string) OperationsStatusClient { + return original.NewOperationsStatusClientWithBaseURI(baseURI, subscriptionID) +} +func NewOrderListIterator(page OrderListPage) OrderListIterator { + return original.NewOrderListIterator(page) +} +func NewOrderListPage(getNextPage func(context.Context, OrderList) (OrderList, error)) OrderListPage { + return original.NewOrderListPage(getNextPage) +} +func NewOrdersClient(subscriptionID string) OrdersClient { + return original.NewOrdersClient(subscriptionID) +} +func NewOrdersClientWithBaseURI(baseURI string, subscriptionID string) OrdersClient { + return original.NewOrdersClientWithBaseURI(baseURI, subscriptionID) +} +func NewRoleListIterator(page RoleListPage) RoleListIterator { + return original.NewRoleListIterator(page) +} +func NewRoleListPage(getNextPage func(context.Context, RoleList) (RoleList, error)) RoleListPage { + return original.NewRoleListPage(getNextPage) +} +func NewRolesClient(subscriptionID string) RolesClient { + return original.NewRolesClient(subscriptionID) +} +func NewRolesClientWithBaseURI(baseURI string, subscriptionID string) RolesClient { + return original.NewRolesClientWithBaseURI(baseURI, subscriptionID) +} +func NewShareListIterator(page ShareListPage) ShareListIterator { + return original.NewShareListIterator(page) +} +func NewShareListPage(getNextPage func(context.Context, ShareList) (ShareList, error)) ShareListPage { + return original.NewShareListPage(getNextPage) +} +func NewSharesClient(subscriptionID string) SharesClient { + return original.NewSharesClient(subscriptionID) +} +func NewSharesClientWithBaseURI(baseURI string, subscriptionID string) SharesClient { + return original.NewSharesClientWithBaseURI(baseURI, subscriptionID) +} +func NewStorageAccountCredentialListIterator(page StorageAccountCredentialListPage) StorageAccountCredentialListIterator { + return original.NewStorageAccountCredentialListIterator(page) +} +func NewStorageAccountCredentialListPage(getNextPage func(context.Context, StorageAccountCredentialList) (StorageAccountCredentialList, error)) StorageAccountCredentialListPage { + return original.NewStorageAccountCredentialListPage(getNextPage) +} +func NewStorageAccountCredentialsClient(subscriptionID string) StorageAccountCredentialsClient { + return original.NewStorageAccountCredentialsClient(subscriptionID) +} +func NewStorageAccountCredentialsClientWithBaseURI(baseURI string, subscriptionID string) StorageAccountCredentialsClient { + return original.NewStorageAccountCredentialsClientWithBaseURI(baseURI, subscriptionID) +} +func NewTriggerListIterator(page TriggerListPage) TriggerListIterator { + return original.NewTriggerListIterator(page) +} +func NewTriggerListPage(getNextPage func(context.Context, TriggerList) (TriggerList, error)) TriggerListPage { + return original.NewTriggerListPage(getNextPage) +} +func NewTriggersClient(subscriptionID string) TriggersClient { + return original.NewTriggersClient(subscriptionID) +} +func NewTriggersClientWithBaseURI(baseURI string, subscriptionID string) TriggersClient { + return original.NewTriggersClientWithBaseURI(baseURI, subscriptionID) +} +func NewUserListIterator(page UserListPage) UserListIterator { + return original.NewUserListIterator(page) +} +func NewUserListPage(getNextPage func(context.Context, UserList) (UserList, error)) UserListPage { + return original.NewUserListPage(getNextPage) +} +func NewUsersClient(subscriptionID string) UsersClient { + return original.NewUsersClient(subscriptionID) +} +func NewUsersClientWithBaseURI(baseURI string, subscriptionID string) UsersClient { + return original.NewUsersClientWithBaseURI(baseURI, subscriptionID) +} +func NewWithBaseURI(baseURI string, subscriptionID string) BaseClient { + return original.NewWithBaseURI(baseURI, subscriptionID) +} +func PossibleAccountTypeValues() []AccountType { + return original.PossibleAccountTypeValues() +} +func PossibleAlertSeverityValues() []AlertSeverity { + return original.PossibleAlertSeverityValues() +} +func PossibleAuthenticationTypeValues() []AuthenticationType { + return original.PossibleAuthenticationTypeValues() +} +func PossibleAzureContainerDataFormatValues() []AzureContainerDataFormat { + return original.PossibleAzureContainerDataFormatValues() +} +func PossibleClientPermissionTypeValues() []ClientPermissionType { + return original.PossibleClientPermissionTypeValues() +} +func PossibleDataPolicyValues() []DataPolicy { + return original.PossibleDataPolicyValues() +} +func PossibleDayOfWeekValues() []DayOfWeek { + return original.PossibleDayOfWeekValues() +} +func PossibleDeviceStatusValues() []DeviceStatus { + return original.PossibleDeviceStatusValues() +} +func PossibleDeviceTypeValues() []DeviceType { + return original.PossibleDeviceTypeValues() +} +func PossibleDownloadPhaseValues() []DownloadPhase { + return original.PossibleDownloadPhaseValues() +} +func PossibleEncryptionAlgorithmValues() []EncryptionAlgorithm { + return original.PossibleEncryptionAlgorithmValues() +} +func PossibleInstallRebootBehaviorValues() []InstallRebootBehavior { + return original.PossibleInstallRebootBehaviorValues() +} +func PossibleJobStatusValues() []JobStatus { + return original.PossibleJobStatusValues() +} +func PossibleJobTypeValues() []JobType { + return original.PossibleJobTypeValues() +} +func PossibleKindBasicTriggerValues() []KindBasicTrigger { + return original.PossibleKindBasicTriggerValues() +} +func PossibleKindValues() []Kind { + return original.PossibleKindValues() +} +func PossibleMetricAggregationTypeValues() []MetricAggregationType { + return original.PossibleMetricAggregationTypeValues() +} +func PossibleMetricCategoryValues() []MetricCategory { + return original.PossibleMetricCategoryValues() +} +func PossibleMetricUnitValues() []MetricUnit { + return original.PossibleMetricUnitValues() +} +func PossibleMonitoringStatusValues() []MonitoringStatus { + return original.PossibleMonitoringStatusValues() +} +func PossibleNetworkAdapterDHCPStatusValues() []NetworkAdapterDHCPStatus { + return original.PossibleNetworkAdapterDHCPStatusValues() +} +func PossibleNetworkAdapterRDMAStatusValues() []NetworkAdapterRDMAStatus { + return original.PossibleNetworkAdapterRDMAStatusValues() +} +func PossibleNetworkAdapterStatusValues() []NetworkAdapterStatus { + return original.PossibleNetworkAdapterStatusValues() +} +func PossibleNetworkGroupValues() []NetworkGroup { + return original.PossibleNetworkGroupValues() +} +func PossibleNodeStatusValues() []NodeStatus { + return original.PossibleNodeStatusValues() +} +func PossibleOrderStateValues() []OrderState { + return original.PossibleOrderStateValues() +} +func PossiblePlatformTypeValues() []PlatformType { + return original.PossiblePlatformTypeValues() +} +func PossibleRoleStatusValues() []RoleStatus { + return original.PossibleRoleStatusValues() +} +func PossibleRoleTypesValues() []RoleTypes { + return original.PossibleRoleTypesValues() +} +func PossibleSSLStatusValues() []SSLStatus { + return original.PossibleSSLStatusValues() +} +func PossibleShareAccessProtocolValues() []ShareAccessProtocol { + return original.PossibleShareAccessProtocolValues() +} +func PossibleShareAccessTypeValues() []ShareAccessType { + return original.PossibleShareAccessTypeValues() +} +func PossibleShareStatusValues() []ShareStatus { + return original.PossibleShareStatusValues() +} +func PossibleSkuNameValues() []SkuName { + return original.PossibleSkuNameValues() +} +func PossibleSkuTierValues() []SkuTier { + return original.PossibleSkuTierValues() +} +func PossibleTimeGrainValues() []TimeGrain { + return original.PossibleTimeGrainValues() +} +func PossibleUpdateOperationStageValues() []UpdateOperationStage { + return original.PossibleUpdateOperationStageValues() +} +func PossibleUpdateOperationValues() []UpdateOperation { + return original.PossibleUpdateOperationValues() +} +func UserAgent() string { + return original.UserAgent() + " profiles/preview" +} +func Version() string { + return original.Version() +} diff --git a/services/databoxedge/mgmt/2019-03-01/databoxedge/alerts.go b/services/databoxedge/mgmt/2019-03-01/databoxedge/alerts.go new file mode 100644 index 000000000000..60ac781dddaf --- /dev/null +++ b/services/databoxedge/mgmt/2019-03-01/databoxedge/alerts.go @@ -0,0 +1,235 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// AlertsClient is the client for the Alerts methods of the Databoxedge service. +type AlertsClient struct { + BaseClient +} + +// NewAlertsClient creates an instance of the AlertsClient client. +func NewAlertsClient(subscriptionID string) AlertsClient { + return NewAlertsClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewAlertsClientWithBaseURI creates an instance of the AlertsClient client. +func NewAlertsClientWithBaseURI(baseURI string, subscriptionID string) AlertsClient { + return AlertsClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// Get sends the get request. +// Parameters: +// deviceName - the device name. +// name - the alert name. +// resourceGroupName - the resource group name. +func (client AlertsClient) Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result Alert, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AlertsClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.AlertsClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.AlertsClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.AlertsClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client AlertsClient) GetPreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/alerts/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client AlertsClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client AlertsClient) GetResponder(resp *http.Response) (result Alert, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// ListByDataBoxEdgeDevice gets all the alerts for a data box edge/gateway device. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client AlertsClient) ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result AlertListPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AlertsClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.al.Response.Response != nil { + sc = result.al.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listByDataBoxEdgeDeviceNextResults + req, err := client.ListByDataBoxEdgeDevicePreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.AlertsClient", "ListByDataBoxEdgeDevice", nil, "Failure preparing request") + return + } + + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.al.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.AlertsClient", "ListByDataBoxEdgeDevice", resp, "Failure sending request") + return + } + + result.al, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.AlertsClient", "ListByDataBoxEdgeDevice", resp, "Failure responding to request") + } + + return +} + +// ListByDataBoxEdgeDevicePreparer prepares the ListByDataBoxEdgeDevice request. +func (client AlertsClient) ListByDataBoxEdgeDevicePreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/alerts", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByDataBoxEdgeDeviceSender sends the ListByDataBoxEdgeDevice request. The method will close the +// http.Response Body if it receives an error. +func (client AlertsClient) ListByDataBoxEdgeDeviceSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListByDataBoxEdgeDeviceResponder handles the response to the ListByDataBoxEdgeDevice request. The method always +// closes the http.Response Body. +func (client AlertsClient) ListByDataBoxEdgeDeviceResponder(resp *http.Response) (result AlertList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listByDataBoxEdgeDeviceNextResults retrieves the next set of results, if any. +func (client AlertsClient) listByDataBoxEdgeDeviceNextResults(ctx context.Context, lastResults AlertList) (result AlertList, err error) { + req, err := lastResults.alertListPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "databoxedge.AlertsClient", "listByDataBoxEdgeDeviceNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "databoxedge.AlertsClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure sending next results request") + } + result, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.AlertsClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListByDataBoxEdgeDeviceComplete enumerates all values, automatically crossing page boundaries as required. +func (client AlertsClient) ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string) (result AlertListIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AlertsClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListByDataBoxEdgeDevice(ctx, deviceName, resourceGroupName) + return +} diff --git a/services/databoxedge/mgmt/2019-03-01/databoxedge/bandwidthschedules.go b/services/databoxedge/mgmt/2019-03-01/databoxedge/bandwidthschedules.go new file mode 100644 index 000000000000..405205caa0d3 --- /dev/null +++ b/services/databoxedge/mgmt/2019-03-01/databoxedge/bandwidthschedules.go @@ -0,0 +1,407 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// BandwidthSchedulesClient is the client for the BandwidthSchedules methods of the Databoxedge service. +type BandwidthSchedulesClient struct { + BaseClient +} + +// NewBandwidthSchedulesClient creates an instance of the BandwidthSchedulesClient client. +func NewBandwidthSchedulesClient(subscriptionID string) BandwidthSchedulesClient { + return NewBandwidthSchedulesClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewBandwidthSchedulesClientWithBaseURI creates an instance of the BandwidthSchedulesClient client. +func NewBandwidthSchedulesClientWithBaseURI(baseURI string, subscriptionID string) BandwidthSchedulesClient { + return BandwidthSchedulesClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate creates or updates a bandwidth schedule. +// Parameters: +// deviceName - the device name. +// name - the bandwidth schedule name which needs to be added/updated. +// parameters - the bandwidth schedule to be added or updated. +// resourceGroupName - the resource group name. +func (client BandwidthSchedulesClient) CreateOrUpdate(ctx context.Context, deviceName string, name string, parameters BandwidthSchedule, resourceGroupName string) (result BandwidthSchedulesCreateOrUpdateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BandwidthSchedulesClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: parameters, + Constraints: []validation.Constraint{{Target: "parameters.BandwidthScheduleProperties", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "parameters.BandwidthScheduleProperties.Start", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.BandwidthScheduleProperties.Stop", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.BandwidthScheduleProperties.RateInMbps", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.BandwidthScheduleProperties.Days", Name: validation.Null, Rule: true, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("databoxedge.BandwidthSchedulesClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, deviceName, name, parameters, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + result, err = client.CreateOrUpdateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "CreateOrUpdate", result.Response(), "Failure sending request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client BandwidthSchedulesClient) CreateOrUpdatePreparer(ctx context.Context, deviceName string, name string, parameters BandwidthSchedule, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/bandwidthSchedules/{name}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client BandwidthSchedulesClient) CreateOrUpdateSender(req *http.Request) (future BandwidthSchedulesCreateOrUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client BandwidthSchedulesClient) CreateOrUpdateResponder(resp *http.Response) (result BandwidthSchedule, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes the specified bandwidth schedule. +// Parameters: +// deviceName - the device name. +// name - the bandwidth schedule name. +// resourceGroupName - the resource group name. +func (client BandwidthSchedulesClient) Delete(ctx context.Context, deviceName string, name string, resourceGroupName string) (result BandwidthSchedulesDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BandwidthSchedulesClient.Delete") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "Delete", result.Response(), "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client BandwidthSchedulesClient) DeletePreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/bandwidthSchedules/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client BandwidthSchedulesClient) DeleteSender(req *http.Request) (future BandwidthSchedulesDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client BandwidthSchedulesClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get gets the properties of the specified bandwidth schedule. +// Parameters: +// deviceName - the device name. +// name - the bandwidth schedule name. +// resourceGroupName - the resource group name. +func (client BandwidthSchedulesClient) Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result BandwidthSchedule, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BandwidthSchedulesClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client BandwidthSchedulesClient) GetPreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/bandwidthSchedules/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client BandwidthSchedulesClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client BandwidthSchedulesClient) GetResponder(resp *http.Response) (result BandwidthSchedule, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// ListByDataBoxEdgeDevice gets all the bandwidth schedules for a data box edge/gateway device. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client BandwidthSchedulesClient) ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result BandwidthSchedulesListPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BandwidthSchedulesClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.bsl.Response.Response != nil { + sc = result.bsl.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listByDataBoxEdgeDeviceNextResults + req, err := client.ListByDataBoxEdgeDevicePreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "ListByDataBoxEdgeDevice", nil, "Failure preparing request") + return + } + + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.bsl.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "ListByDataBoxEdgeDevice", resp, "Failure sending request") + return + } + + result.bsl, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "ListByDataBoxEdgeDevice", resp, "Failure responding to request") + } + + return +} + +// ListByDataBoxEdgeDevicePreparer prepares the ListByDataBoxEdgeDevice request. +func (client BandwidthSchedulesClient) ListByDataBoxEdgeDevicePreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/bandwidthSchedules", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByDataBoxEdgeDeviceSender sends the ListByDataBoxEdgeDevice request. The method will close the +// http.Response Body if it receives an error. +func (client BandwidthSchedulesClient) ListByDataBoxEdgeDeviceSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListByDataBoxEdgeDeviceResponder handles the response to the ListByDataBoxEdgeDevice request. The method always +// closes the http.Response Body. +func (client BandwidthSchedulesClient) ListByDataBoxEdgeDeviceResponder(resp *http.Response) (result BandwidthSchedulesList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listByDataBoxEdgeDeviceNextResults retrieves the next set of results, if any. +func (client BandwidthSchedulesClient) listByDataBoxEdgeDeviceNextResults(ctx context.Context, lastResults BandwidthSchedulesList) (result BandwidthSchedulesList, err error) { + req, err := lastResults.bandwidthSchedulesListPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "listByDataBoxEdgeDeviceNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure sending next results request") + } + result, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListByDataBoxEdgeDeviceComplete enumerates all values, automatically crossing page boundaries as required. +func (client BandwidthSchedulesClient) ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string) (result BandwidthSchedulesListIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BandwidthSchedulesClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListByDataBoxEdgeDevice(ctx, deviceName, resourceGroupName) + return +} diff --git a/services/databoxedge/mgmt/2019-03-01/databoxedge/client.go b/services/databoxedge/mgmt/2019-03-01/databoxedge/client.go new file mode 100644 index 000000000000..d47519ebaf3e --- /dev/null +++ b/services/databoxedge/mgmt/2019-03-01/databoxedge/client.go @@ -0,0 +1,51 @@ +// Package databoxedge implements the Azure ARM Databoxedge service API version 2019-03-01. +// +// +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "github.com/Azure/go-autorest/autorest" +) + +const ( + // DefaultBaseURI is the default URI used for the service Databoxedge + DefaultBaseURI = "https://management.azure.com" +) + +// BaseClient is the base client for Databoxedge. +type BaseClient struct { + autorest.Client + BaseURI string + SubscriptionID string +} + +// New creates an instance of the BaseClient client. +func New(subscriptionID string) BaseClient { + return NewWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewWithBaseURI creates an instance of the BaseClient client. +func NewWithBaseURI(baseURI string, subscriptionID string) BaseClient { + return BaseClient{ + Client: autorest.NewClientWithUserAgent(UserAgent()), + BaseURI: baseURI, + SubscriptionID: subscriptionID, + } +} diff --git a/services/databoxedge/mgmt/2019-03-01/databoxedge/databoxedgeapi/interfaces.go b/services/databoxedge/mgmt/2019-03-01/databoxedge/databoxedgeapi/interfaces.go new file mode 100644 index 000000000000..605c9c9e6904 --- /dev/null +++ b/services/databoxedge/mgmt/2019-03-01/databoxedge/databoxedgeapi/interfaces.go @@ -0,0 +1,143 @@ +package databoxedgeapi + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/2019-03-01/databoxedge" +) + +// OperationsClientAPI contains the set of methods on the OperationsClient type. +type OperationsClientAPI interface { + List(ctx context.Context) (result databoxedge.OperationsListPage, err error) +} + +var _ OperationsClientAPI = (*databoxedge.OperationsClient)(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) + 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) + ListBySubscription(ctx context.Context, expand string) (result databoxedge.DeviceListPage, 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) + 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) +} + +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) +} + +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) + +// 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) +} + +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) +} + +var _ RolesClientAPI = (*databoxedge.RolesClient)(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) + 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) +} + +var _ StorageAccountCredentialsClientAPI = (*databoxedge.StorageAccountCredentialsClient)(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, expand string) (result databoxedge.TriggerListPage, 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) (result databoxedge.UserListPage, err error) +} + +var _ UsersClientAPI = (*databoxedge.UsersClient)(nil) diff --git a/services/databoxedge/mgmt/2019-03-01/databoxedge/devices.go b/services/databoxedge/mgmt/2019-03-01/databoxedge/devices.go new file mode 100644 index 000000000000..3e688657b1d1 --- /dev/null +++ b/services/databoxedge/mgmt/2019-03-01/databoxedge/devices.go @@ -0,0 +1,1229 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// DevicesClient is the client for the Devices methods of the Databoxedge service. +type DevicesClient struct { + BaseClient +} + +// NewDevicesClient creates an instance of the DevicesClient client. +func NewDevicesClient(subscriptionID string) DevicesClient { + return NewDevicesClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewDevicesClientWithBaseURI creates an instance of the DevicesClient client. +func NewDevicesClientWithBaseURI(baseURI string, subscriptionID string) DevicesClient { + return DevicesClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate creates or updates a Data Box Edge/Gateway resource. +// Parameters: +// deviceName - the device name. +// dataBoxEdgeDevice - the resource object. +// resourceGroupName - the resource group name. +func (client DevicesClient) CreateOrUpdate(ctx context.Context, deviceName string, dataBoxEdgeDevice Device, resourceGroupName string) (result DevicesCreateOrUpdateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: dataBoxEdgeDevice, + Constraints: []validation.Constraint{{Target: "dataBoxEdgeDevice.Location", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("databoxedge.DevicesClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, deviceName, dataBoxEdgeDevice, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + result, err = client.CreateOrUpdateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "CreateOrUpdate", result.Response(), "Failure sending request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client DevicesClient) CreateOrUpdatePreparer(ctx context.Context, deviceName string, dataBoxEdgeDevice Device, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}", pathParameters), + autorest.WithJSON(dataBoxEdgeDevice), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) CreateOrUpdateSender(req *http.Request) (future DevicesCreateOrUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client DevicesClient) CreateOrUpdateResponder(resp *http.Response) (result Device, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// CreateOrUpdateSecuritySettings updates the security settings on a data box edge/gateway device. +// Parameters: +// deviceName - the device name. +// securitySettings - the security settings. +// resourceGroupName - the resource group name. +func (client DevicesClient) CreateOrUpdateSecuritySettings(ctx context.Context, deviceName string, securitySettings SecuritySettings, resourceGroupName string) (result DevicesCreateOrUpdateSecuritySettingsFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.CreateOrUpdateSecuritySettings") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: securitySettings, + Constraints: []validation.Constraint{{Target: "securitySettings.SecuritySettingsProperties", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "securitySettings.SecuritySettingsProperties.DeviceAdminPassword", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "securitySettings.SecuritySettingsProperties.DeviceAdminPassword.Value", Name: validation.Null, Rule: true, Chain: nil}}}, + }}}}}); err != nil { + return result, validation.NewError("databoxedge.DevicesClient", "CreateOrUpdateSecuritySettings", err.Error()) + } + + req, err := client.CreateOrUpdateSecuritySettingsPreparer(ctx, deviceName, securitySettings, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "CreateOrUpdateSecuritySettings", nil, "Failure preparing request") + return + } + + result, err = client.CreateOrUpdateSecuritySettingsSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "CreateOrUpdateSecuritySettings", result.Response(), "Failure sending request") + return + } + + return +} + +// CreateOrUpdateSecuritySettingsPreparer prepares the CreateOrUpdateSecuritySettings request. +func (client DevicesClient) CreateOrUpdateSecuritySettingsPreparer(ctx context.Context, deviceName string, securitySettings SecuritySettings, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/securitySettings/default/update", pathParameters), + autorest.WithJSON(securitySettings), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSecuritySettingsSender sends the CreateOrUpdateSecuritySettings request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) CreateOrUpdateSecuritySettingsSender(req *http.Request) (future DevicesCreateOrUpdateSecuritySettingsFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateOrUpdateSecuritySettingsResponder handles the response to the CreateOrUpdateSecuritySettings request. The method always +// closes the http.Response Body. +func (client DevicesClient) CreateOrUpdateSecuritySettingsResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Delete deletes the data box edge/gateway device. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client DevicesClient) Delete(ctx context.Context, deviceName string, resourceGroupName string) (result DevicesDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.Delete") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "Delete", result.Response(), "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client DevicesClient) DeletePreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) DeleteSender(req *http.Request) (future DevicesDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client DevicesClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// DownloadUpdates sends the download updates request. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client DevicesClient) DownloadUpdates(ctx context.Context, deviceName string, resourceGroupName string) (result DevicesDownloadUpdatesFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.DownloadUpdates") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DownloadUpdatesPreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "DownloadUpdates", nil, "Failure preparing request") + return + } + + result, err = client.DownloadUpdatesSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "DownloadUpdates", result.Response(), "Failure sending request") + return + } + + return +} + +// DownloadUpdatesPreparer prepares the DownloadUpdates request. +func (client DevicesClient) DownloadUpdatesPreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/downloadUpdates", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DownloadUpdatesSender sends the DownloadUpdates request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) DownloadUpdatesSender(req *http.Request) (future DevicesDownloadUpdatesFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// DownloadUpdatesResponder handles the response to the DownloadUpdates request. The method always +// closes the http.Response Body. +func (client DevicesClient) DownloadUpdatesResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get gets the properties of the data box edge/gateway device. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client DevicesClient) Get(ctx context.Context, deviceName string, resourceGroupName string) (result Device, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client DevicesClient) GetPreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client DevicesClient) GetResponder(resp *http.Response) (result Device, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetExtendedInformation gets additional information for the specified data box edge/gateway device. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client DevicesClient) GetExtendedInformation(ctx context.Context, deviceName string, resourceGroupName string) (result DeviceExtendedInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.GetExtendedInformation") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetExtendedInformationPreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "GetExtendedInformation", nil, "Failure preparing request") + return + } + + resp, err := client.GetExtendedInformationSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "GetExtendedInformation", resp, "Failure sending request") + return + } + + result, err = client.GetExtendedInformationResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "GetExtendedInformation", resp, "Failure responding to request") + } + + return +} + +// GetExtendedInformationPreparer prepares the GetExtendedInformation request. +func (client DevicesClient) GetExtendedInformationPreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/getExtendedInformation", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetExtendedInformationSender sends the GetExtendedInformation request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) GetExtendedInformationSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetExtendedInformationResponder handles the response to the GetExtendedInformation request. The method always +// closes the http.Response Body. +func (client DevicesClient) GetExtendedInformationResponder(resp *http.Response) (result DeviceExtendedInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetNetworkSettings gets the network settings of the specified data box edge/gateway device. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client DevicesClient) GetNetworkSettings(ctx context.Context, deviceName string, resourceGroupName string) (result NetworkSettings, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.GetNetworkSettings") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetNetworkSettingsPreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "GetNetworkSettings", nil, "Failure preparing request") + return + } + + resp, err := client.GetNetworkSettingsSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "GetNetworkSettings", resp, "Failure sending request") + return + } + + result, err = client.GetNetworkSettingsResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "GetNetworkSettings", resp, "Failure responding to request") + } + + return +} + +// GetNetworkSettingsPreparer prepares the GetNetworkSettings request. +func (client DevicesClient) GetNetworkSettingsPreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/networkSettings/default", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetNetworkSettingsSender sends the GetNetworkSettings request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) GetNetworkSettingsSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetNetworkSettingsResponder handles the response to the GetNetworkSettings request. The method always +// closes the http.Response Body. +func (client DevicesClient) GetNetworkSettingsResponder(resp *http.Response) (result NetworkSettings, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetUpdateSummary sends the get update summary request. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client DevicesClient) GetUpdateSummary(ctx context.Context, deviceName string, resourceGroupName string) (result UpdateSummary, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.GetUpdateSummary") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetUpdateSummaryPreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "GetUpdateSummary", nil, "Failure preparing request") + return + } + + resp, err := client.GetUpdateSummarySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "GetUpdateSummary", resp, "Failure sending request") + return + } + + result, err = client.GetUpdateSummaryResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "GetUpdateSummary", resp, "Failure responding to request") + } + + return +} + +// GetUpdateSummaryPreparer prepares the GetUpdateSummary request. +func (client DevicesClient) GetUpdateSummaryPreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/updateSummary/default", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetUpdateSummarySender sends the GetUpdateSummary request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) GetUpdateSummarySender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetUpdateSummaryResponder handles the response to the GetUpdateSummary request. The method always +// closes the http.Response Body. +func (client DevicesClient) GetUpdateSummaryResponder(resp *http.Response) (result UpdateSummary, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// InstallUpdates sends the install updates request. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client DevicesClient) InstallUpdates(ctx context.Context, deviceName string, resourceGroupName string) (result DevicesInstallUpdatesFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.InstallUpdates") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.InstallUpdatesPreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "InstallUpdates", nil, "Failure preparing request") + return + } + + result, err = client.InstallUpdatesSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "InstallUpdates", result.Response(), "Failure sending request") + return + } + + return +} + +// InstallUpdatesPreparer prepares the InstallUpdates request. +func (client DevicesClient) InstallUpdatesPreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/installUpdates", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// InstallUpdatesSender sends the InstallUpdates request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) InstallUpdatesSender(req *http.Request) (future DevicesInstallUpdatesFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// InstallUpdatesResponder handles the response to the InstallUpdates request. The method always +// closes the http.Response Body. +func (client DevicesClient) InstallUpdatesResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// ListByResourceGroup gets all the data box edge/gateway devices in a resource group. +// Parameters: +// resourceGroupName - the resource group name. +// expand - specify $expand=details to populate additional fields related to the resource or Specify +// $skipToken= to populate the next page in the list. +func (client DevicesClient) ListByResourceGroup(ctx context.Context, resourceGroupName string, expand string) (result DeviceListPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.ListByResourceGroup") + defer func() { + sc := -1 + if result.dl.Response.Response != nil { + sc = result.dl.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listByResourceGroupNextResults + req, err := client.ListByResourceGroupPreparer(ctx, resourceGroupName, expand) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "ListByResourceGroup", nil, "Failure preparing request") + return + } + + resp, err := client.ListByResourceGroupSender(req) + if err != nil { + result.dl.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "ListByResourceGroup", resp, "Failure sending request") + return + } + + result.dl, err = client.ListByResourceGroupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "ListByResourceGroup", resp, "Failure responding to request") + } + + return +} + +// ListByResourceGroupPreparer prepares the ListByResourceGroup request. +func (client DevicesClient) ListByResourceGroupPreparer(ctx context.Context, resourceGroupName string, expand string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(expand) > 0 { + queryParameters["$expand"] = autorest.Encode("query", expand) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByResourceGroupSender sends the ListByResourceGroup request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) ListByResourceGroupSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListByResourceGroupResponder handles the response to the ListByResourceGroup request. The method always +// closes the http.Response Body. +func (client DevicesClient) ListByResourceGroupResponder(resp *http.Response) (result DeviceList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listByResourceGroupNextResults retrieves the next set of results, if any. +func (client DevicesClient) listByResourceGroupNextResults(ctx context.Context, lastResults DeviceList) (result DeviceList, err error) { + req, err := lastResults.deviceListPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "listByResourceGroupNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListByResourceGroupSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "listByResourceGroupNextResults", resp, "Failure sending next results request") + } + result, err = client.ListByResourceGroupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "listByResourceGroupNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListByResourceGroupComplete enumerates all values, automatically crossing page boundaries as required. +func (client DevicesClient) ListByResourceGroupComplete(ctx context.Context, resourceGroupName string, expand string) (result DeviceListIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.ListByResourceGroup") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListByResourceGroup(ctx, resourceGroupName, expand) + return +} + +// ListBySubscription gets all the data box edge/gateway devices in a subscription. +// Parameters: +// expand - specify $expand=details to populate additional fields related to the resource or Specify +// $skipToken= to populate the next page in the list. +func (client DevicesClient) ListBySubscription(ctx context.Context, expand string) (result DeviceListPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.ListBySubscription") + defer func() { + sc := -1 + if result.dl.Response.Response != nil { + sc = result.dl.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listBySubscriptionNextResults + req, err := client.ListBySubscriptionPreparer(ctx, expand) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "ListBySubscription", nil, "Failure preparing request") + return + } + + resp, err := client.ListBySubscriptionSender(req) + if err != nil { + result.dl.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "ListBySubscription", resp, "Failure sending request") + return + } + + result.dl, err = client.ListBySubscriptionResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "ListBySubscription", resp, "Failure responding to request") + } + + return +} + +// ListBySubscriptionPreparer prepares the ListBySubscription request. +func (client DevicesClient) ListBySubscriptionPreparer(ctx context.Context, expand string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(expand) > 0 { + queryParameters["$expand"] = autorest.Encode("query", expand) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListBySubscriptionSender sends the ListBySubscription request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) ListBySubscriptionSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListBySubscriptionResponder handles the response to the ListBySubscription request. The method always +// closes the http.Response Body. +func (client DevicesClient) ListBySubscriptionResponder(resp *http.Response) (result DeviceList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listBySubscriptionNextResults retrieves the next set of results, if any. +func (client DevicesClient) listBySubscriptionNextResults(ctx context.Context, lastResults DeviceList) (result DeviceList, err error) { + req, err := lastResults.deviceListPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "listBySubscriptionNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListBySubscriptionSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "listBySubscriptionNextResults", resp, "Failure sending next results request") + } + result, err = client.ListBySubscriptionResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "listBySubscriptionNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListBySubscriptionComplete enumerates all values, automatically crossing page boundaries as required. +func (client DevicesClient) ListBySubscriptionComplete(ctx context.Context, expand string) (result DeviceListIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.ListBySubscription") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListBySubscription(ctx, expand) + return +} + +// ScanForUpdates sends the scan for updates request. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client DevicesClient) ScanForUpdates(ctx context.Context, deviceName string, resourceGroupName string) (result DevicesScanForUpdatesFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.ScanForUpdates") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ScanForUpdatesPreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "ScanForUpdates", nil, "Failure preparing request") + return + } + + result, err = client.ScanForUpdatesSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "ScanForUpdates", result.Response(), "Failure sending request") + return + } + + return +} + +// ScanForUpdatesPreparer prepares the ScanForUpdates request. +func (client DevicesClient) ScanForUpdatesPreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/scanForUpdates", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ScanForUpdatesSender sends the ScanForUpdates request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) ScanForUpdatesSender(req *http.Request) (future DevicesScanForUpdatesFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// ScanForUpdatesResponder handles the response to the ScanForUpdates request. The method always +// closes the http.Response Body. +func (client DevicesClient) ScanForUpdatesResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// Update modifies a Data Box Edge/Gateway resource. +// Parameters: +// deviceName - the device name. +// parameters - the resource parameters. +// resourceGroupName - the resource group name. +func (client DevicesClient) Update(ctx context.Context, deviceName string, parameters DevicePatch, resourceGroupName string) (result Device, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.Update") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.UpdatePreparer(ctx, deviceName, parameters, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "Update", nil, "Failure preparing request") + return + } + + resp, err := client.UpdateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "Update", resp, "Failure sending request") + return + } + + result, err = client.UpdateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "Update", resp, "Failure responding to request") + } + + return +} + +// UpdatePreparer prepares the Update request. +func (client DevicesClient) UpdatePreparer(ctx context.Context, deviceName string, parameters DevicePatch, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPatch(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateSender sends the Update request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) UpdateSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// UpdateResponder handles the response to the Update request. The method always +// closes the http.Response Body. +func (client DevicesClient) UpdateResponder(resp *http.Response) (result Device, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// UploadCertificate uploads registration certificate for the device. +// Parameters: +// deviceName - the device name. +// parameters - the upload certificate request. +// resourceGroupName - the resource group name. +func (client DevicesClient) UploadCertificate(ctx context.Context, deviceName string, parameters UploadCertificateRequest, resourceGroupName string) (result UploadCertificateResponse, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.UploadCertificate") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: parameters, + Constraints: []validation.Constraint{{Target: "parameters.RawCertificateData", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "parameters.RawCertificateData.Certificate", Name: validation.Null, Rule: true, Chain: nil}}}}}}); err != nil { + return result, validation.NewError("databoxedge.DevicesClient", "UploadCertificate", err.Error()) + } + + req, err := client.UploadCertificatePreparer(ctx, deviceName, parameters, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "UploadCertificate", nil, "Failure preparing request") + return + } + + resp, err := client.UploadCertificateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "UploadCertificate", resp, "Failure sending request") + return + } + + result, err = client.UploadCertificateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "UploadCertificate", resp, "Failure responding to request") + } + + return +} + +// UploadCertificatePreparer prepares the UploadCertificate request. +func (client DevicesClient) UploadCertificatePreparer(ctx context.Context, deviceName string, parameters UploadCertificateRequest, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/uploadCertificate", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UploadCertificateSender sends the UploadCertificate request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) UploadCertificateSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// UploadCertificateResponder handles the response to the UploadCertificate request. The method always +// closes the http.Response Body. +func (client DevicesClient) UploadCertificateResponder(resp *http.Response) (result UploadCertificateResponse, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/databoxedge/mgmt/2019-03-01/databoxedge/jobs.go b/services/databoxedge/mgmt/2019-03-01/databoxedge/jobs.go new file mode 100644 index 000000000000..793689c273b0 --- /dev/null +++ b/services/databoxedge/mgmt/2019-03-01/databoxedge/jobs.go @@ -0,0 +1,120 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// JobsClient is the client for the Jobs methods of the Databoxedge service. +type JobsClient struct { + BaseClient +} + +// NewJobsClient creates an instance of the JobsClient client. +func NewJobsClient(subscriptionID string) JobsClient { + return NewJobsClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewJobsClientWithBaseURI creates an instance of the JobsClient client. +func NewJobsClientWithBaseURI(baseURI string, subscriptionID string) JobsClient { + return JobsClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// Get sends the get request. +// Parameters: +// deviceName - the device name. +// name - the job name. +// resourceGroupName - the resource group name. +func (client JobsClient) Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result Job, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/JobsClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.JobsClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.JobsClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.JobsClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client JobsClient) GetPreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/jobs/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client JobsClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client JobsClient) GetResponder(resp *http.Response) (result Job, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/databoxedge/mgmt/2019-03-01/databoxedge/models.go b/services/databoxedge/mgmt/2019-03-01/databoxedge/models.go new file mode 100644 index 000000000000..91483cbbc9c1 --- /dev/null +++ b/services/databoxedge/mgmt/2019-03-01/databoxedge/models.go @@ -0,0 +1,5072 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "encoding/json" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/date" + "github.com/Azure/go-autorest/autorest/to" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// The package's fully qualified name. +const fqdn = "github.com/Azure/azure-sdk-for-go/services/databoxedge/mgmt/2019-03-01/databoxedge" + +// AccountType enumerates the values for account type. +type AccountType string + +const ( + // BlobStorage ... + BlobStorage AccountType = "BlobStorage" + // GeneralPurposeStorage ... + GeneralPurposeStorage AccountType = "GeneralPurposeStorage" +) + +// PossibleAccountTypeValues returns an array of possible values for the AccountType const type. +func PossibleAccountTypeValues() []AccountType { + return []AccountType{BlobStorage, GeneralPurposeStorage} +} + +// AlertSeverity enumerates the values for alert severity. +type AlertSeverity string + +const ( + // Critical ... + Critical AlertSeverity = "Critical" + // Informational ... + Informational AlertSeverity = "Informational" + // Warning ... + Warning AlertSeverity = "Warning" +) + +// PossibleAlertSeverityValues returns an array of possible values for the AlertSeverity const type. +func PossibleAlertSeverityValues() []AlertSeverity { + return []AlertSeverity{Critical, Informational, Warning} +} + +// AuthenticationType enumerates the values for authentication type. +type AuthenticationType string + +const ( + // AzureActiveDirectory ... + AzureActiveDirectory AuthenticationType = "AzureActiveDirectory" + // Invalid ... + Invalid AuthenticationType = "Invalid" +) + +// PossibleAuthenticationTypeValues returns an array of possible values for the AuthenticationType const type. +func PossibleAuthenticationTypeValues() []AuthenticationType { + return []AuthenticationType{AzureActiveDirectory, Invalid} +} + +// AzureContainerDataFormat enumerates the values for azure container data format. +type AzureContainerDataFormat string + +const ( + // AzureFile ... + AzureFile AzureContainerDataFormat = "AzureFile" + // BlockBlob ... + BlockBlob AzureContainerDataFormat = "BlockBlob" + // PageBlob ... + PageBlob AzureContainerDataFormat = "PageBlob" +) + +// PossibleAzureContainerDataFormatValues returns an array of possible values for the AzureContainerDataFormat const type. +func PossibleAzureContainerDataFormatValues() []AzureContainerDataFormat { + return []AzureContainerDataFormat{AzureFile, BlockBlob, PageBlob} +} + +// ClientPermissionType enumerates the values for client permission type. +type ClientPermissionType string + +const ( + // NoAccess ... + NoAccess ClientPermissionType = "NoAccess" + // ReadOnly ... + ReadOnly ClientPermissionType = "ReadOnly" + // ReadWrite ... + ReadWrite ClientPermissionType = "ReadWrite" +) + +// PossibleClientPermissionTypeValues returns an array of possible values for the ClientPermissionType const type. +func PossibleClientPermissionTypeValues() []ClientPermissionType { + return []ClientPermissionType{NoAccess, ReadOnly, ReadWrite} +} + +// DataPolicy enumerates the values for data policy. +type DataPolicy string + +const ( + // Cloud ... + Cloud DataPolicy = "Cloud" + // Local ... + Local DataPolicy = "Local" +) + +// PossibleDataPolicyValues returns an array of possible values for the DataPolicy const type. +func PossibleDataPolicyValues() []DataPolicy { + return []DataPolicy{Cloud, Local} +} + +// DayOfWeek enumerates the values for day of week. +type DayOfWeek string + +const ( + // Friday ... + Friday DayOfWeek = "Friday" + // Monday ... + Monday DayOfWeek = "Monday" + // Saturday ... + Saturday DayOfWeek = "Saturday" + // Sunday ... + Sunday DayOfWeek = "Sunday" + // Thursday ... + Thursday DayOfWeek = "Thursday" + // Tuesday ... + Tuesday DayOfWeek = "Tuesday" + // Wednesday ... + Wednesday DayOfWeek = "Wednesday" +) + +// PossibleDayOfWeekValues returns an array of possible values for the DayOfWeek const type. +func PossibleDayOfWeekValues() []DayOfWeek { + return []DayOfWeek{Friday, Monday, Saturday, Sunday, Thursday, Tuesday, Wednesday} +} + +// DeviceStatus enumerates the values for device status. +type DeviceStatus string + +const ( + // Disconnected ... + Disconnected DeviceStatus = "Disconnected" + // NeedsAttention ... + NeedsAttention DeviceStatus = "NeedsAttention" + // Offline ... + Offline DeviceStatus = "Offline" + // Online ... + Online DeviceStatus = "Online" + // PartiallyDisconnected ... + PartiallyDisconnected DeviceStatus = "PartiallyDisconnected" + // ReadyToSetup ... + ReadyToSetup DeviceStatus = "ReadyToSetup" +) + +// PossibleDeviceStatusValues returns an array of possible values for the DeviceStatus const type. +func PossibleDeviceStatusValues() []DeviceStatus { + return []DeviceStatus{Disconnected, NeedsAttention, Offline, Online, PartiallyDisconnected, ReadyToSetup} +} + +// DeviceType enumerates the values for device type. +type DeviceType string + +const ( + // DataBoxEdgeDevice ... + DataBoxEdgeDevice DeviceType = "DataBoxEdgeDevice" +) + +// PossibleDeviceTypeValues returns an array of possible values for the DeviceType const type. +func PossibleDeviceTypeValues() []DeviceType { + return []DeviceType{DataBoxEdgeDevice} +} + +// DownloadPhase enumerates the values for download phase. +type DownloadPhase string + +const ( + // Downloading ... + Downloading DownloadPhase = "Downloading" + // Initializing ... + Initializing DownloadPhase = "Initializing" + // Unknown ... + Unknown DownloadPhase = "Unknown" + // Verifying ... + Verifying DownloadPhase = "Verifying" +) + +// PossibleDownloadPhaseValues returns an array of possible values for the DownloadPhase const type. +func PossibleDownloadPhaseValues() []DownloadPhase { + return []DownloadPhase{Downloading, Initializing, Unknown, Verifying} +} + +// EncryptionAlgorithm enumerates the values for encryption algorithm. +type EncryptionAlgorithm string + +const ( + // AES256 ... + AES256 EncryptionAlgorithm = "AES256" + // None ... + None EncryptionAlgorithm = "None" + // RSAESPKCS1V15 ... + RSAESPKCS1V15 EncryptionAlgorithm = "RSAES_PKCS1_v_1_5" +) + +// PossibleEncryptionAlgorithmValues returns an array of possible values for the EncryptionAlgorithm const type. +func PossibleEncryptionAlgorithmValues() []EncryptionAlgorithm { + return []EncryptionAlgorithm{AES256, None, RSAESPKCS1V15} +} + +// InstallRebootBehavior enumerates the values for install reboot behavior. +type InstallRebootBehavior string + +const ( + // NeverReboots ... + NeverReboots InstallRebootBehavior = "NeverReboots" + // RequestReboot ... + RequestReboot InstallRebootBehavior = "RequestReboot" + // RequiresReboot ... + RequiresReboot InstallRebootBehavior = "RequiresReboot" +) + +// PossibleInstallRebootBehaviorValues returns an array of possible values for the InstallRebootBehavior const type. +func PossibleInstallRebootBehaviorValues() []InstallRebootBehavior { + return []InstallRebootBehavior{NeverReboots, RequestReboot, RequiresReboot} +} + +// JobStatus enumerates the values for job status. +type JobStatus string + +const ( + // JobStatusCanceled ... + JobStatusCanceled JobStatus = "Canceled" + // JobStatusFailed ... + JobStatusFailed JobStatus = "Failed" + // JobStatusInvalid ... + JobStatusInvalid JobStatus = "Invalid" + // JobStatusPaused ... + JobStatusPaused JobStatus = "Paused" + // JobStatusRunning ... + JobStatusRunning JobStatus = "Running" + // JobStatusScheduled ... + JobStatusScheduled JobStatus = "Scheduled" + // JobStatusSucceeded ... + JobStatusSucceeded JobStatus = "Succeeded" +) + +// PossibleJobStatusValues returns an array of possible values for the JobStatus const type. +func PossibleJobStatusValues() []JobStatus { + return []JobStatus{JobStatusCanceled, JobStatusFailed, JobStatusInvalid, JobStatusPaused, JobStatusRunning, JobStatusScheduled, JobStatusSucceeded} +} + +// JobType enumerates the values for job type. +type JobType string + +const ( + // JobTypeDownloadUpdates ... + JobTypeDownloadUpdates JobType = "DownloadUpdates" + // JobTypeInstallUpdates ... + JobTypeInstallUpdates JobType = "InstallUpdates" + // JobTypeInvalid ... + JobTypeInvalid JobType = "Invalid" + // JobTypeRefreshShare ... + JobTypeRefreshShare JobType = "RefreshShare" + // JobTypeScanForUpdates ... + JobTypeScanForUpdates JobType = "ScanForUpdates" +) + +// PossibleJobTypeValues returns an array of possible values for the JobType const type. +func PossibleJobTypeValues() []JobType { + return []JobType{JobTypeDownloadUpdates, JobTypeInstallUpdates, JobTypeInvalid, JobTypeRefreshShare, JobTypeScanForUpdates} +} + +// Kind enumerates the values for kind. +type Kind string + +const ( + // KindIOT ... + KindIOT Kind = "IOT" + // KindRole ... + KindRole Kind = "Role" +) + +// PossibleKindValues returns an array of possible values for the Kind const type. +func PossibleKindValues() []Kind { + return []Kind{KindIOT, KindRole} +} + +// KindBasicTrigger enumerates the values for kind basic trigger. +type KindBasicTrigger string + +const ( + // KindFileEvent ... + KindFileEvent KindBasicTrigger = "FileEvent" + // KindPeriodicTimerEvent ... + KindPeriodicTimerEvent KindBasicTrigger = "PeriodicTimerEvent" + // KindTrigger ... + KindTrigger KindBasicTrigger = "Trigger" +) + +// PossibleKindBasicTriggerValues returns an array of possible values for the KindBasicTrigger const type. +func PossibleKindBasicTriggerValues() []KindBasicTrigger { + return []KindBasicTrigger{KindFileEvent, KindPeriodicTimerEvent, KindTrigger} +} + +// MetricAggregationType enumerates the values for metric aggregation type. +type MetricAggregationType string + +const ( + // MetricAggregationTypeAverage ... + MetricAggregationTypeAverage MetricAggregationType = "Average" + // MetricAggregationTypeCount ... + MetricAggregationTypeCount MetricAggregationType = "Count" + // MetricAggregationTypeMaximum ... + MetricAggregationTypeMaximum MetricAggregationType = "Maximum" + // MetricAggregationTypeMinimum ... + MetricAggregationTypeMinimum MetricAggregationType = "Minimum" + // MetricAggregationTypeNone ... + MetricAggregationTypeNone MetricAggregationType = "None" + // MetricAggregationTypeNotSpecified ... + MetricAggregationTypeNotSpecified MetricAggregationType = "NotSpecified" + // MetricAggregationTypeTotal ... + MetricAggregationTypeTotal MetricAggregationType = "Total" +) + +// PossibleMetricAggregationTypeValues returns an array of possible values for the MetricAggregationType const type. +func PossibleMetricAggregationTypeValues() []MetricAggregationType { + return []MetricAggregationType{MetricAggregationTypeAverage, MetricAggregationTypeCount, MetricAggregationTypeMaximum, MetricAggregationTypeMinimum, MetricAggregationTypeNone, MetricAggregationTypeNotSpecified, MetricAggregationTypeTotal} +} + +// MetricCategory enumerates the values for metric category. +type MetricCategory string + +const ( + // Capacity ... + Capacity MetricCategory = "Capacity" + // Transaction ... + Transaction MetricCategory = "Transaction" +) + +// PossibleMetricCategoryValues returns an array of possible values for the MetricCategory const type. +func PossibleMetricCategoryValues() []MetricCategory { + return []MetricCategory{Capacity, Transaction} +} + +// MetricUnit enumerates the values for metric unit. +type MetricUnit string + +const ( + // Bytes ... + Bytes MetricUnit = "Bytes" + // BytesPerSecond ... + BytesPerSecond MetricUnit = "BytesPerSecond" + // Count ... + Count MetricUnit = "Count" + // CountPerSecond ... + CountPerSecond MetricUnit = "CountPerSecond" + // Milliseconds ... + Milliseconds MetricUnit = "Milliseconds" + // NotSpecified ... + NotSpecified MetricUnit = "NotSpecified" + // Percent ... + Percent MetricUnit = "Percent" + // Seconds ... + Seconds MetricUnit = "Seconds" +) + +// PossibleMetricUnitValues returns an array of possible values for the MetricUnit const type. +func PossibleMetricUnitValues() []MetricUnit { + return []MetricUnit{Bytes, BytesPerSecond, Count, CountPerSecond, Milliseconds, NotSpecified, Percent, Seconds} +} + +// MonitoringStatus enumerates the values for monitoring status. +type MonitoringStatus string + +const ( + // Disabled ... + Disabled MonitoringStatus = "Disabled" + // Enabled ... + Enabled MonitoringStatus = "Enabled" +) + +// PossibleMonitoringStatusValues returns an array of possible values for the MonitoringStatus const type. +func PossibleMonitoringStatusValues() []MonitoringStatus { + return []MonitoringStatus{Disabled, Enabled} +} + +// NetworkAdapterDHCPStatus enumerates the values for network adapter dhcp status. +type NetworkAdapterDHCPStatus string + +const ( + // NetworkAdapterDHCPStatusDisabled ... + NetworkAdapterDHCPStatusDisabled NetworkAdapterDHCPStatus = "Disabled" + // NetworkAdapterDHCPStatusEnabled ... + NetworkAdapterDHCPStatusEnabled NetworkAdapterDHCPStatus = "Enabled" +) + +// PossibleNetworkAdapterDHCPStatusValues returns an array of possible values for the NetworkAdapterDHCPStatus const type. +func PossibleNetworkAdapterDHCPStatusValues() []NetworkAdapterDHCPStatus { + return []NetworkAdapterDHCPStatus{NetworkAdapterDHCPStatusDisabled, NetworkAdapterDHCPStatusEnabled} +} + +// NetworkAdapterRDMAStatus enumerates the values for network adapter rdma status. +type NetworkAdapterRDMAStatus string + +const ( + // Capable ... + Capable NetworkAdapterRDMAStatus = "Capable" + // Incapable ... + Incapable NetworkAdapterRDMAStatus = "Incapable" +) + +// PossibleNetworkAdapterRDMAStatusValues returns an array of possible values for the NetworkAdapterRDMAStatus const type. +func PossibleNetworkAdapterRDMAStatusValues() []NetworkAdapterRDMAStatus { + return []NetworkAdapterRDMAStatus{Capable, Incapable} +} + +// NetworkAdapterStatus enumerates the values for network adapter status. +type NetworkAdapterStatus string + +const ( + // Active ... + Active NetworkAdapterStatus = "Active" + // Inactive ... + Inactive NetworkAdapterStatus = "Inactive" +) + +// PossibleNetworkAdapterStatusValues returns an array of possible values for the NetworkAdapterStatus const type. +func PossibleNetworkAdapterStatusValues() []NetworkAdapterStatus { + return []NetworkAdapterStatus{Active, Inactive} +} + +// NetworkGroup enumerates the values for network group. +type NetworkGroup string + +const ( + // NetworkGroupNone ... + NetworkGroupNone NetworkGroup = "None" + // NetworkGroupNonRDMA ... + NetworkGroupNonRDMA NetworkGroup = "NonRDMA" + // NetworkGroupRDMA ... + NetworkGroupRDMA NetworkGroup = "RDMA" +) + +// PossibleNetworkGroupValues returns an array of possible values for the NetworkGroup const type. +func PossibleNetworkGroupValues() []NetworkGroup { + return []NetworkGroup{NetworkGroupNone, NetworkGroupNonRDMA, NetworkGroupRDMA} +} + +// OrderState enumerates the values for order state. +type OrderState string + +const ( + // Arriving ... + Arriving OrderState = "Arriving" + // AwaitingFulfilment ... + AwaitingFulfilment OrderState = "AwaitingFulfilment" + // AwaitingPreparation ... + AwaitingPreparation OrderState = "AwaitingPreparation" + // AwaitingReturnShipment ... + AwaitingReturnShipment OrderState = "AwaitingReturnShipment" + // AwaitingShipment ... + AwaitingShipment OrderState = "AwaitingShipment" + // CollectedAtMicrosoft ... + CollectedAtMicrosoft OrderState = "CollectedAtMicrosoft" + // Declined ... + Declined OrderState = "Declined" + // Delivered ... + Delivered OrderState = "Delivered" + // LostDevice ... + LostDevice OrderState = "LostDevice" + // ReplacementRequested ... + ReplacementRequested OrderState = "ReplacementRequested" + // ReturnInitiated ... + ReturnInitiated OrderState = "ReturnInitiated" + // Shipped ... + Shipped OrderState = "Shipped" + // ShippedBack ... + ShippedBack OrderState = "ShippedBack" + // Untracked ... + Untracked OrderState = "Untracked" +) + +// PossibleOrderStateValues returns an array of possible values for the OrderState const type. +func PossibleOrderStateValues() []OrderState { + return []OrderState{Arriving, AwaitingFulfilment, AwaitingPreparation, AwaitingReturnShipment, AwaitingShipment, CollectedAtMicrosoft, Declined, Delivered, LostDevice, ReplacementRequested, ReturnInitiated, Shipped, ShippedBack, Untracked} +} + +// PlatformType enumerates the values for platform type. +type PlatformType string + +const ( + // Linux ... + Linux PlatformType = "Linux" + // Windows ... + Windows PlatformType = "Windows" +) + +// PossiblePlatformTypeValues returns an array of possible values for the PlatformType const type. +func PossiblePlatformTypeValues() []PlatformType { + return []PlatformType{Linux, Windows} +} + +// RoleStatus enumerates the values for role status. +type RoleStatus string + +const ( + // RoleStatusDisabled ... + RoleStatusDisabled RoleStatus = "Disabled" + // RoleStatusEnabled ... + RoleStatusEnabled RoleStatus = "Enabled" +) + +// PossibleRoleStatusValues returns an array of possible values for the RoleStatus const type. +func PossibleRoleStatusValues() []RoleStatus { + return []RoleStatus{RoleStatusDisabled, RoleStatusEnabled} +} + +// RoleTypes enumerates the values for role types. +type RoleTypes string + +const ( + // ASA ... + ASA RoleTypes = "ASA" + // Cognitive ... + Cognitive RoleTypes = "Cognitive" + // Functions ... + Functions RoleTypes = "Functions" + // IOT ... + IOT RoleTypes = "IOT" +) + +// PossibleRoleTypesValues returns an array of possible values for the RoleTypes const type. +func PossibleRoleTypesValues() []RoleTypes { + return []RoleTypes{ASA, Cognitive, Functions, IOT} +} + +// ShareAccessProtocol enumerates the values for share access protocol. +type ShareAccessProtocol string + +const ( + // NFS ... + NFS ShareAccessProtocol = "NFS" + // SMB ... + SMB ShareAccessProtocol = "SMB" +) + +// PossibleShareAccessProtocolValues returns an array of possible values for the ShareAccessProtocol const type. +func PossibleShareAccessProtocolValues() []ShareAccessProtocol { + return []ShareAccessProtocol{NFS, SMB} +} + +// ShareAccessType enumerates the values for share access type. +type ShareAccessType string + +const ( + // Change ... + Change ShareAccessType = "Change" + // Custom ... + Custom ShareAccessType = "Custom" + // Read ... + Read ShareAccessType = "Read" +) + +// PossibleShareAccessTypeValues returns an array of possible values for the ShareAccessType const type. +func PossibleShareAccessTypeValues() []ShareAccessType { + return []ShareAccessType{Change, Custom, Read} +} + +// ShareStatus enumerates the values for share status. +type ShareStatus string + +const ( + // ShareStatusOffline ... + ShareStatusOffline ShareStatus = "Offline" + // ShareStatusOnline ... + ShareStatusOnline ShareStatus = "Online" +) + +// PossibleShareStatusValues returns an array of possible values for the ShareStatus const type. +func PossibleShareStatusValues() []ShareStatus { + return []ShareStatus{ShareStatusOffline, ShareStatusOnline} +} + +// SkuName enumerates the values for sku name. +type SkuName string + +const ( + // Edge ... + Edge SkuName = "Edge" + // Gateway ... + Gateway SkuName = "Gateway" +) + +// PossibleSkuNameValues returns an array of possible values for the SkuName const type. +func PossibleSkuNameValues() []SkuName { + return []SkuName{Edge, Gateway} +} + +// SkuTier enumerates the values for sku tier. +type SkuTier string + +const ( + // Standard ... + Standard SkuTier = "Standard" +) + +// PossibleSkuTierValues returns an array of possible values for the SkuTier const type. +func PossibleSkuTierValues() []SkuTier { + return []SkuTier{Standard} +} + +// SSLStatus enumerates the values for ssl status. +type SSLStatus string + +const ( + // SSLStatusDisabled ... + SSLStatusDisabled SSLStatus = "Disabled" + // SSLStatusEnabled ... + SSLStatusEnabled SSLStatus = "Enabled" +) + +// PossibleSSLStatusValues returns an array of possible values for the SSLStatus const type. +func PossibleSSLStatusValues() []SSLStatus { + return []SSLStatus{SSLStatusDisabled, SSLStatusEnabled} +} + +// TimeGrain enumerates the values for time grain. +type TimeGrain string + +const ( + // PT12H ... + PT12H TimeGrain = "PT12H" + // PT15M ... + PT15M TimeGrain = "PT15M" + // PT1D ... + PT1D TimeGrain = "PT1D" + // PT1H ... + PT1H TimeGrain = "PT1H" + // PT1M ... + PT1M TimeGrain = "PT1M" + // PT30M ... + PT30M TimeGrain = "PT30M" + // PT5M ... + PT5M TimeGrain = "PT5M" + // PT6H ... + PT6H TimeGrain = "PT6H" +) + +// PossibleTimeGrainValues returns an array of possible values for the TimeGrain const type. +func PossibleTimeGrainValues() []TimeGrain { + return []TimeGrain{PT12H, PT15M, PT1D, PT1H, PT1M, PT30M, PT5M, PT6H} +} + +// UpdateOperation enumerates the values for update operation. +type UpdateOperation string + +const ( + // UpdateOperationDownload ... + UpdateOperationDownload UpdateOperation = "Download" + // UpdateOperationInstall ... + UpdateOperationInstall UpdateOperation = "Install" + // UpdateOperationNone ... + UpdateOperationNone UpdateOperation = "None" + // UpdateOperationScan ... + UpdateOperationScan UpdateOperation = "Scan" +) + +// PossibleUpdateOperationValues returns an array of possible values for the UpdateOperation const type. +func PossibleUpdateOperationValues() []UpdateOperation { + return []UpdateOperation{UpdateOperationDownload, UpdateOperationInstall, UpdateOperationNone, UpdateOperationScan} +} + +// UpdateOperationStage enumerates the values for update operation stage. +type UpdateOperationStage string + +const ( + // UpdateOperationStageDownloadComplete ... + UpdateOperationStageDownloadComplete UpdateOperationStage = "DownloadComplete" + // UpdateOperationStageDownloadFailed ... + UpdateOperationStageDownloadFailed UpdateOperationStage = "DownloadFailed" + // UpdateOperationStageDownloadStarted ... + UpdateOperationStageDownloadStarted UpdateOperationStage = "DownloadStarted" + // UpdateOperationStageFailure ... + UpdateOperationStageFailure UpdateOperationStage = "Failure" + // UpdateOperationStageInitial ... + UpdateOperationStageInitial UpdateOperationStage = "Initial" + // UpdateOperationStageInstallComplete ... + UpdateOperationStageInstallComplete UpdateOperationStage = "InstallComplete" + // UpdateOperationStageInstallFailed ... + UpdateOperationStageInstallFailed UpdateOperationStage = "InstallFailed" + // UpdateOperationStageInstallStarted ... + UpdateOperationStageInstallStarted UpdateOperationStage = "InstallStarted" + // UpdateOperationStageRebootInitiated ... + UpdateOperationStageRebootInitiated UpdateOperationStage = "RebootInitiated" + // UpdateOperationStageRescanComplete ... + UpdateOperationStageRescanComplete UpdateOperationStage = "RescanComplete" + // UpdateOperationStageRescanFailed ... + UpdateOperationStageRescanFailed UpdateOperationStage = "RescanFailed" + // UpdateOperationStageRescanStarted ... + UpdateOperationStageRescanStarted UpdateOperationStage = "RescanStarted" + // UpdateOperationStageScanComplete ... + UpdateOperationStageScanComplete UpdateOperationStage = "ScanComplete" + // UpdateOperationStageScanFailed ... + UpdateOperationStageScanFailed UpdateOperationStage = "ScanFailed" + // UpdateOperationStageScanStarted ... + UpdateOperationStageScanStarted UpdateOperationStage = "ScanStarted" + // UpdateOperationStageSuccess ... + UpdateOperationStageSuccess UpdateOperationStage = "Success" + // UpdateOperationStageUnknown ... + UpdateOperationStageUnknown UpdateOperationStage = "Unknown" +) + +// PossibleUpdateOperationStageValues returns an array of possible values for the UpdateOperationStage const type. +func PossibleUpdateOperationStageValues() []UpdateOperationStage { + return []UpdateOperationStage{UpdateOperationStageDownloadComplete, UpdateOperationStageDownloadFailed, UpdateOperationStageDownloadStarted, UpdateOperationStageFailure, UpdateOperationStageInitial, UpdateOperationStageInstallComplete, UpdateOperationStageInstallFailed, UpdateOperationStageInstallStarted, UpdateOperationStageRebootInitiated, UpdateOperationStageRescanComplete, UpdateOperationStageRescanFailed, UpdateOperationStageRescanStarted, UpdateOperationStageScanComplete, UpdateOperationStageScanFailed, UpdateOperationStageScanStarted, UpdateOperationStageSuccess, UpdateOperationStageUnknown} +} + +// Address the shipping address of the customer. +type Address struct { + // AddressLine1 - The address line1. + AddressLine1 *string `json:"addressLine1,omitempty"` + // AddressLine2 - The address line2. + AddressLine2 *string `json:"addressLine2,omitempty"` + // AddressLine3 - The address line3. + AddressLine3 *string `json:"addressLine3,omitempty"` + // PostalCode - The postal code. + PostalCode *string `json:"postalCode,omitempty"` + // City - The city name. + City *string `json:"city,omitempty"` + // State - The state name. + State *string `json:"state,omitempty"` + // Country - The country name. + Country *string `json:"country,omitempty"` +} + +// Alert alert on the data box edge/gateway device. +type Alert struct { + autorest.Response `json:"-"` + // AlertProperties - READ-ONLY; Properties of alert. + *AlertProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for Alert. +func (a Alert) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for Alert struct. +func (a *Alert) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var alertProperties AlertProperties + err = json.Unmarshal(*v, &alertProperties) + if err != nil { + return err + } + a.AlertProperties = &alertProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + a.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + a.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + a.Type = &typeVar + } + } + } + + return nil +} + +// AlertErrorDetails error details for the alert. +type AlertErrorDetails struct { + // ErrorCode - READ-ONLY; Error code. + ErrorCode *string `json:"errorCode,omitempty"` + // ErrorMessage - READ-ONLY; Error Message. + ErrorMessage *string `json:"errorMessage,omitempty"` + // Occurrences - READ-ONLY; Number of occurrences. + Occurrences *int32 `json:"occurrences,omitempty"` +} + +// AlertList collection of alerts. +type AlertList struct { + autorest.Response `json:"-"` + // Value - READ-ONLY; The value. + Value *[]Alert `json:"value,omitempty"` + // NextLink - READ-ONLY; Link to the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// AlertListIterator provides access to a complete listing of Alert values. +type AlertListIterator struct { + i int + page AlertListPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *AlertListIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AlertListIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *AlertListIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter AlertListIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter AlertListIterator) Response() AlertList { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter AlertListIterator) Value() Alert { + if !iter.page.NotDone() { + return Alert{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the AlertListIterator type. +func NewAlertListIterator(page AlertListPage) AlertListIterator { + return AlertListIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (al AlertList) IsEmpty() bool { + return al.Value == nil || len(*al.Value) == 0 +} + +// alertListPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (al AlertList) alertListPreparer(ctx context.Context) (*http.Request, error) { + if al.NextLink == nil || len(to.String(al.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(al.NextLink))) +} + +// AlertListPage contains a page of Alert values. +type AlertListPage struct { + fn func(context.Context, AlertList) (AlertList, error) + al AlertList +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *AlertListPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AlertListPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + next, err := page.fn(ctx, page.al) + if err != nil { + return err + } + page.al = next + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *AlertListPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page AlertListPage) NotDone() bool { + return !page.al.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page AlertListPage) Response() AlertList { + return page.al +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page AlertListPage) Values() []Alert { + if page.al.IsEmpty() { + return nil + } + return *page.al.Value +} + +// Creates a new instance of the AlertListPage type. +func NewAlertListPage(getNextPage func(context.Context, AlertList) (AlertList, error)) AlertListPage { + return AlertListPage{fn: getNextPage} +} + +// AlertProperties properties of alert. +type AlertProperties struct { + // Title - READ-ONLY; Alert title. + Title *string `json:"title,omitempty"` + // AlertType - READ-ONLY; Alert type. + AlertType *string `json:"alertType,omitempty"` + // AppearedAtDateTime - READ-ONLY; UTC time when the alert appeared. + AppearedAtDateTime *date.Time `json:"appearedAtDateTime,omitempty"` + // Recommendation - READ-ONLY; Alert recommendation. + Recommendation *string `json:"recommendation,omitempty"` + // Severity - READ-ONLY; Severity of the alert. Possible values include: 'Informational', 'Warning', 'Critical' + Severity AlertSeverity `json:"severity,omitempty"` + // ErrorDetails - READ-ONLY; Error details of the alert. + ErrorDetails *AlertErrorDetails `json:"errorDetails,omitempty"` + // DetailedInformation - READ-ONLY; Alert details. + DetailedInformation map[string]*string `json:"detailedInformation"` +} + +// MarshalJSON is the custom marshaler for AlertProperties. +func (ap AlertProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// ARMBaseModel represents the base class for all object models. +type ARMBaseModel struct { + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// AsymmetricEncryptedSecret represent the secrets intended for encryption with asymmetric key pair. +type AsymmetricEncryptedSecret struct { + // Value - The value of the secret. + Value *string `json:"value,omitempty"` + // EncryptionCertThumbprint - Thumbprint certificate used to encrypt \"Value\". If the value is unencrypted, it will be null. + EncryptionCertThumbprint *string `json:"encryptionCertThumbprint,omitempty"` + // EncryptionAlgorithm - The algorithm used to encrypt "Value". Possible values include: 'None', 'AES256', 'RSAESPKCS1V15' + EncryptionAlgorithm EncryptionAlgorithm `json:"encryptionAlgorithm,omitempty"` +} + +// Authentication authentication mechanism for IoT devices. +type Authentication struct { + // SymmetricKey - Symmetric key for authentication. + SymmetricKey *SymmetricKey `json:"symmetricKey,omitempty"` +} + +// AzureContainerInfo azure container mapping of the endpoint. +type AzureContainerInfo struct { + // StorageAccountCredentialID - ID of the storage account credential used to access storage. + StorageAccountCredentialID *string `json:"storageAccountCredentialId,omitempty"` + // ContainerName - Container name (Based on the data format specified, this represents the name of Azure Files/Page blob/Block blob). + ContainerName *string `json:"containerName,omitempty"` + // DataFormat - Storage format used for the file represented by the share. Possible values include: 'BlockBlob', 'PageBlob', 'AzureFile' + DataFormat AzureContainerDataFormat `json:"dataFormat,omitempty"` +} + +// BandwidthSchedule the bandwidth schedule details. +type BandwidthSchedule struct { + autorest.Response `json:"-"` + // BandwidthScheduleProperties - The properties of the bandwidth schedule. + *BandwidthScheduleProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for BandwidthSchedule. +func (bs BandwidthSchedule) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if bs.BandwidthScheduleProperties != nil { + objectMap["properties"] = bs.BandwidthScheduleProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for BandwidthSchedule struct. +func (bs *BandwidthSchedule) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var bandwidthScheduleProperties BandwidthScheduleProperties + err = json.Unmarshal(*v, &bandwidthScheduleProperties) + if err != nil { + return err + } + bs.BandwidthScheduleProperties = &bandwidthScheduleProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + bs.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + bs.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + bs.Type = &typeVar + } + } + } + + return nil +} + +// BandwidthScheduleProperties the properties of the bandwidth schedule. +type BandwidthScheduleProperties struct { + // Start - The start time of the schedule in UTC. + Start *string `json:"start,omitempty"` + // Stop - The stop time of the schedule in UTC. + Stop *string `json:"stop,omitempty"` + // RateInMbps - The bandwidth rate in Mbps. + RateInMbps *int32 `json:"rateInMbps,omitempty"` + // Days - The days of the week when this schedule is applicable. + Days *[]DayOfWeek `json:"days,omitempty"` +} + +// BandwidthSchedulesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type BandwidthSchedulesCreateOrUpdateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *BandwidthSchedulesCreateOrUpdateFuture) Result(client BandwidthSchedulesClient) (bs BandwidthSchedule, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.BandwidthSchedulesCreateOrUpdateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if bs.Response.Response, err = future.GetResult(sender); err == nil && bs.Response.Response.StatusCode != http.StatusNoContent { + bs, err = client.CreateOrUpdateResponder(bs.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesCreateOrUpdateFuture", "Result", bs.Response.Response, "Failure responding to request") + } + } + return +} + +// BandwidthSchedulesDeleteFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type BandwidthSchedulesDeleteFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *BandwidthSchedulesDeleteFuture) Result(client BandwidthSchedulesClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.BandwidthSchedulesDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// BandwidthSchedulesList the collection of bandwidth schedules. +type BandwidthSchedulesList struct { + autorest.Response `json:"-"` + // Value - READ-ONLY; The list of bandwidth schedules. + Value *[]BandwidthSchedule `json:"value,omitempty"` + // NextLink - READ-ONLY; Link to the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// BandwidthSchedulesListIterator provides access to a complete listing of BandwidthSchedule values. +type BandwidthSchedulesListIterator struct { + i int + page BandwidthSchedulesListPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *BandwidthSchedulesListIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BandwidthSchedulesListIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *BandwidthSchedulesListIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter BandwidthSchedulesListIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter BandwidthSchedulesListIterator) Response() BandwidthSchedulesList { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter BandwidthSchedulesListIterator) Value() BandwidthSchedule { + if !iter.page.NotDone() { + return BandwidthSchedule{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the BandwidthSchedulesListIterator type. +func NewBandwidthSchedulesListIterator(page BandwidthSchedulesListPage) BandwidthSchedulesListIterator { + return BandwidthSchedulesListIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (bsl BandwidthSchedulesList) IsEmpty() bool { + return bsl.Value == nil || len(*bsl.Value) == 0 +} + +// bandwidthSchedulesListPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (bsl BandwidthSchedulesList) bandwidthSchedulesListPreparer(ctx context.Context) (*http.Request, error) { + if bsl.NextLink == nil || len(to.String(bsl.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(bsl.NextLink))) +} + +// BandwidthSchedulesListPage contains a page of BandwidthSchedule values. +type BandwidthSchedulesListPage struct { + fn func(context.Context, BandwidthSchedulesList) (BandwidthSchedulesList, error) + bsl BandwidthSchedulesList +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *BandwidthSchedulesListPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BandwidthSchedulesListPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + next, err := page.fn(ctx, page.bsl) + if err != nil { + return err + } + page.bsl = next + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *BandwidthSchedulesListPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page BandwidthSchedulesListPage) NotDone() bool { + return !page.bsl.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page BandwidthSchedulesListPage) Response() BandwidthSchedulesList { + return page.bsl +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page BandwidthSchedulesListPage) Values() []BandwidthSchedule { + if page.bsl.IsEmpty() { + return nil + } + return *page.bsl.Value +} + +// Creates a new instance of the BandwidthSchedulesListPage type. +func NewBandwidthSchedulesListPage(getNextPage func(context.Context, BandwidthSchedulesList) (BandwidthSchedulesList, error)) BandwidthSchedulesListPage { + return BandwidthSchedulesListPage{fn: getNextPage} +} + +// ClientAccessRight the mapping between a particular client IP and the type of access client has on the +// NFS share. +type ClientAccessRight struct { + // Client - IP of the client. + Client *string `json:"client,omitempty"` + // AccessPermission - Type of access to be allowed for the client. Possible values include: 'NoAccess', 'ReadOnly', 'ReadWrite' + AccessPermission ClientPermissionType `json:"accessPermission,omitempty"` +} + +// CloudError an error response from the service. +type CloudError struct { + // Error - The error details. + Error *CloudErrorBody `json:"error,omitempty"` +} + +// CloudErrorBody an error response from the service. +type CloudErrorBody struct { + // Code - An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + Code *string `json:"code,omitempty"` + // Message - A message describing the error, intended to be suitable for display in a user interface. + Message *string `json:"message,omitempty"` + // Details - A list of additional details about the error. + Details *[]CloudErrorBody `json:"details,omitempty"` +} + +// ContactDetails contains all the contact details of the customer. +type ContactDetails struct { + // ContactPerson - The contact person name. + ContactPerson *string `json:"contactPerson,omitempty"` + // CompanyName - The name of the company. + CompanyName *string `json:"companyName,omitempty"` + // Phone - The phone number. + Phone *string `json:"phone,omitempty"` + // EmailList - The email list. + EmailList *[]string `json:"emailList,omitempty"` +} + +// Device the Data Box Edge/Gateway device. +type Device struct { + autorest.Response `json:"-"` + // Location - The location of the device. This is a supported and registered Azure geographical region (for example, West US, East US, or Southeast Asia). The geographical region of a device cannot be changed once it is created, but if an identical geographical region is specified on update, the request will succeed. + Location *string `json:"location,omitempty"` + // Tags - The list of tags that describe the device. These tags can be used to view and group this device (across resource groups). + Tags map[string]*string `json:"tags"` + // Sku - The SKU type. + Sku *Sku `json:"sku,omitempty"` + // Etag - The etag for the devices. + Etag *string `json:"etag,omitempty"` + // DeviceProperties - The properties of the Data Box Edge/Gateway device. + *DeviceProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for Device. +func (d Device) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if d.Location != nil { + objectMap["location"] = d.Location + } + if d.Tags != nil { + objectMap["tags"] = d.Tags + } + if d.Sku != nil { + objectMap["sku"] = d.Sku + } + if d.Etag != nil { + objectMap["etag"] = d.Etag + } + if d.DeviceProperties != nil { + objectMap["properties"] = d.DeviceProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for Device struct. +func (d *Device) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "location": + if v != nil { + var location string + err = json.Unmarshal(*v, &location) + if err != nil { + return err + } + d.Location = &location + } + case "tags": + if v != nil { + var tags map[string]*string + err = json.Unmarshal(*v, &tags) + if err != nil { + return err + } + d.Tags = tags + } + case "sku": + if v != nil { + var sku Sku + err = json.Unmarshal(*v, &sku) + if err != nil { + return err + } + d.Sku = &sku + } + case "etag": + if v != nil { + var etag string + err = json.Unmarshal(*v, &etag) + if err != nil { + return err + } + d.Etag = &etag + } + case "properties": + if v != nil { + var deviceProperties DeviceProperties + err = json.Unmarshal(*v, &deviceProperties) + if err != nil { + return err + } + d.DeviceProperties = &deviceProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + d.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + d.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + d.Type = &typeVar + } + } + } + + return nil +} + +// DeviceExtendedInfo the extended Info of the Data Box Edge/Gateway device. +type DeviceExtendedInfo struct { + autorest.Response `json:"-"` + // DeviceExtendedInfoProperties - The extended info properties. + *DeviceExtendedInfoProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeviceExtendedInfo. +func (dei DeviceExtendedInfo) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if dei.DeviceExtendedInfoProperties != nil { + objectMap["properties"] = dei.DeviceExtendedInfoProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for DeviceExtendedInfo struct. +func (dei *DeviceExtendedInfo) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var deviceExtendedInfoProperties DeviceExtendedInfoProperties + err = json.Unmarshal(*v, &deviceExtendedInfoProperties) + if err != nil { + return err + } + dei.DeviceExtendedInfoProperties = &deviceExtendedInfoProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + dei.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + dei.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + dei.Type = &typeVar + } + } + } + + return nil +} + +// DeviceExtendedInfoProperties the properties of the Data Box Edge/Gateway device extended info. +type DeviceExtendedInfoProperties struct { + // EncryptionKeyThumbprint - The digital signature of encrypted certificate. + EncryptionKeyThumbprint *string `json:"encryptionKeyThumbprint,omitempty"` + // EncryptionKey - The public part of the encryption certificate. Client uses this to encrypt any secret. + EncryptionKey *string `json:"encryptionKey,omitempty"` + // ResourceKey - READ-ONLY; The Resource ID of the Resource. + ResourceKey *string `json:"resourceKey,omitempty"` +} + +// DeviceList the collection of Data Box Edge/Gateway devices. +type DeviceList struct { + autorest.Response `json:"-"` + // Value - READ-ONLY; The list of Data Box Edge/Gateway devices. + Value *[]Device `json:"value,omitempty"` + // NextLink - READ-ONLY; Link to the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// DeviceListIterator provides access to a complete listing of Device values. +type DeviceListIterator struct { + i int + page DeviceListPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *DeviceListIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DeviceListIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *DeviceListIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter DeviceListIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter DeviceListIterator) Response() DeviceList { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter DeviceListIterator) Value() Device { + if !iter.page.NotDone() { + return Device{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the DeviceListIterator type. +func NewDeviceListIterator(page DeviceListPage) DeviceListIterator { + return DeviceListIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (dl DeviceList) IsEmpty() bool { + return dl.Value == nil || len(*dl.Value) == 0 +} + +// deviceListPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (dl DeviceList) deviceListPreparer(ctx context.Context) (*http.Request, error) { + if dl.NextLink == nil || len(to.String(dl.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(dl.NextLink))) +} + +// DeviceListPage contains a page of Device values. +type DeviceListPage struct { + fn func(context.Context, DeviceList) (DeviceList, error) + dl DeviceList +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *DeviceListPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DeviceListPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + next, err := page.fn(ctx, page.dl) + if err != nil { + return err + } + page.dl = next + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *DeviceListPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page DeviceListPage) NotDone() bool { + return !page.dl.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page DeviceListPage) Response() DeviceList { + return page.dl +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page DeviceListPage) Values() []Device { + if page.dl.IsEmpty() { + return nil + } + return *page.dl.Value +} + +// Creates a new instance of the DeviceListPage type. +func NewDeviceListPage(getNextPage func(context.Context, DeviceList) (DeviceList, error)) DeviceListPage { + return DeviceListPage{fn: getNextPage} +} + +// DevicePatch the Data Box Edge/Gateway device patch. +type DevicePatch struct { + // Tags - The tags attached to the Data Box Edge/Gateway resource. + Tags map[string]*string `json:"tags"` +} + +// MarshalJSON is the custom marshaler for DevicePatch. +func (dp DevicePatch) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if dp.Tags != nil { + objectMap["tags"] = dp.Tags + } + return json.Marshal(objectMap) +} + +// DeviceProperties the properties of the Data Box Edge/Gateway device. +type DeviceProperties struct { + // DataBoxEdgeDeviceStatus - The status of the Data Box Edge/Gateway device. Possible values include: 'ReadyToSetup', 'Online', 'Offline', 'NeedsAttention', 'Disconnected', 'PartiallyDisconnected' + DataBoxEdgeDeviceStatus DeviceStatus `json:"dataBoxEdgeDeviceStatus,omitempty"` + // SerialNumber - READ-ONLY; The Serial Number of Data Box Edge/Gateway device. + SerialNumber *string `json:"serialNumber,omitempty"` + // Description - The Description of the Data Box Edge/Gateway device. + Description *string `json:"description,omitempty"` + // ModelDescription - The description of the Data Box Edge/Gateway device model. + ModelDescription *string `json:"modelDescription,omitempty"` + // DeviceType - READ-ONLY; The type of the Data Box Edge/Gateway device. Possible values include: 'DataBoxEdgeDevice' + DeviceType DeviceType `json:"deviceType,omitempty"` + // FriendlyName - The Data Box Edge/Gateway device name. + FriendlyName *string `json:"friendlyName,omitempty"` + // Culture - READ-ONLY; The Data Box Edge/Gateway device culture. + Culture *string `json:"culture,omitempty"` + // DeviceModel - READ-ONLY; The Data Box Edge/Gateway device model. + DeviceModel *string `json:"deviceModel,omitempty"` + // DeviceSoftwareVersion - READ-ONLY; The Data Box Edge/Gateway device software version. + DeviceSoftwareVersion *string `json:"deviceSoftwareVersion,omitempty"` + // DeviceLocalCapacity - READ-ONLY; The Data Box Edge/Gateway device local capacity in MB. + DeviceLocalCapacity *int64 `json:"deviceLocalCapacity,omitempty"` + // TimeZone - READ-ONLY; The Data Box Edge/Gateway device timezone. + TimeZone *string `json:"timeZone,omitempty"` + // DeviceHcsVersion - READ-ONLY; The device software version number of the device (eg: 1.2.18105.6). + DeviceHcsVersion *string `json:"deviceHcsVersion,omitempty"` + // ConfiguredRoleTypes - READ-ONLY; Type of compute roles configured. + ConfiguredRoleTypes *[]RoleTypes `json:"configuredRoleTypes,omitempty"` +} + +// DevicesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type DevicesCreateOrUpdateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *DevicesCreateOrUpdateFuture) Result(client DevicesClient) (d Device, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.DevicesCreateOrUpdateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if d.Response.Response, err = future.GetResult(sender); err == nil && d.Response.Response.StatusCode != http.StatusNoContent { + d, err = client.CreateOrUpdateResponder(d.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesCreateOrUpdateFuture", "Result", d.Response.Response, "Failure responding to request") + } + } + return +} + +// DevicesCreateOrUpdateSecuritySettingsFuture an abstraction for monitoring and retrieving the results of +// a long-running operation. +type DevicesCreateOrUpdateSecuritySettingsFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *DevicesCreateOrUpdateSecuritySettingsFuture) Result(client DevicesClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesCreateOrUpdateSecuritySettingsFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.DevicesCreateOrUpdateSecuritySettingsFuture") + return + } + ar.Response = future.Response() + return +} + +// DevicesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type DevicesDeleteFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *DevicesDeleteFuture) Result(client DevicesClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.DevicesDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// DevicesDownloadUpdatesFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type DevicesDownloadUpdatesFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *DevicesDownloadUpdatesFuture) Result(client DevicesClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesDownloadUpdatesFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.DevicesDownloadUpdatesFuture") + return + } + ar.Response = future.Response() + return +} + +// DevicesInstallUpdatesFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type DevicesInstallUpdatesFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *DevicesInstallUpdatesFuture) Result(client DevicesClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesInstallUpdatesFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.DevicesInstallUpdatesFuture") + return + } + ar.Response = future.Response() + return +} + +// DevicesScanForUpdatesFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type DevicesScanForUpdatesFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *DevicesScanForUpdatesFuture) Result(client DevicesClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesScanForUpdatesFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.DevicesScanForUpdatesFuture") + return + } + ar.Response = future.Response() + return +} + +// FileEventTrigger trigger details. +type FileEventTrigger struct { + // FileTriggerProperties - File trigger properties. + *FileTriggerProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` + // Kind - Possible values include: 'KindTrigger', 'KindFileEvent', 'KindPeriodicTimerEvent' + Kind KindBasicTrigger `json:"kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for FileEventTrigger. +func (fet FileEventTrigger) MarshalJSON() ([]byte, error) { + fet.Kind = KindFileEvent + objectMap := make(map[string]interface{}) + if fet.FileTriggerProperties != nil { + objectMap["properties"] = fet.FileTriggerProperties + } + if fet.Kind != "" { + objectMap["kind"] = fet.Kind + } + return json.Marshal(objectMap) +} + +// AsFileEventTrigger is the BasicTrigger implementation for FileEventTrigger. +func (fet FileEventTrigger) AsFileEventTrigger() (*FileEventTrigger, bool) { + return &fet, true +} + +// AsPeriodicTimerEventTrigger is the BasicTrigger implementation for FileEventTrigger. +func (fet FileEventTrigger) AsPeriodicTimerEventTrigger() (*PeriodicTimerEventTrigger, bool) { + return nil, false +} + +// AsTrigger is the BasicTrigger implementation for FileEventTrigger. +func (fet FileEventTrigger) AsTrigger() (*Trigger, bool) { + return nil, false +} + +// AsBasicTrigger is the BasicTrigger implementation for FileEventTrigger. +func (fet FileEventTrigger) AsBasicTrigger() (BasicTrigger, bool) { + return &fet, true +} + +// UnmarshalJSON is the custom unmarshaler for FileEventTrigger struct. +func (fet *FileEventTrigger) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var fileTriggerProperties FileTriggerProperties + err = json.Unmarshal(*v, &fileTriggerProperties) + if err != nil { + return err + } + fet.FileTriggerProperties = &fileTriggerProperties + } + case "kind": + if v != nil { + var kind KindBasicTrigger + err = json.Unmarshal(*v, &kind) + if err != nil { + return err + } + fet.Kind = kind + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + fet.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + fet.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + fet.Type = &typeVar + } + } + } + + return nil +} + +// FileSourceInfo file source details. +type FileSourceInfo struct { + // ShareID - File share ID. + ShareID *string `json:"shareId,omitempty"` +} + +// FileTriggerProperties file trigger properties. +type FileTriggerProperties struct { + // SourceInfo - File event source details. + SourceInfo *FileSourceInfo `json:"sourceInfo,omitempty"` + // SinkInfo - Role sink info. + SinkInfo *RoleSinkInfo `json:"sinkInfo,omitempty"` + // CustomContextTag - A custom context tag typically used to correlate the trigger against its usage. For example, if a periodic timer trigger is intended for certain specific IoT modules in the device, the tag can be the name or the image URL of the module. + CustomContextTag *string `json:"customContextTag,omitempty"` +} + +// IoTDeviceInfo metadata of IoT device/IoT Edge device to be configured. +type IoTDeviceInfo struct { + // DeviceID - ID of the IoT device/edge device. + DeviceID *string `json:"deviceId,omitempty"` + // IoTHostHub - Host name for the IoT hub associated to the device. + IoTHostHub *string `json:"ioTHostHub,omitempty"` + // Authentication - IoT device authentication info. + Authentication *Authentication `json:"authentication,omitempty"` +} + +// IoTRole compute role. +type IoTRole struct { + // IoTRoleProperties - Properties specific to IoT role. + *IoTRoleProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` + // Kind - Possible values include: 'KindRole', 'KindIOT' + Kind Kind `json:"kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for IoTRole. +func (itr IoTRole) MarshalJSON() ([]byte, error) { + itr.Kind = KindIOT + objectMap := make(map[string]interface{}) + if itr.IoTRoleProperties != nil { + objectMap["properties"] = itr.IoTRoleProperties + } + if itr.Kind != "" { + objectMap["kind"] = itr.Kind + } + return json.Marshal(objectMap) +} + +// AsIoTRole is the BasicRole implementation for IoTRole. +func (itr IoTRole) AsIoTRole() (*IoTRole, bool) { + return &itr, true +} + +// AsRole is the BasicRole implementation for IoTRole. +func (itr IoTRole) AsRole() (*Role, bool) { + return nil, false +} + +// AsBasicRole is the BasicRole implementation for IoTRole. +func (itr IoTRole) AsBasicRole() (BasicRole, bool) { + return &itr, true +} + +// UnmarshalJSON is the custom unmarshaler for IoTRole struct. +func (itr *IoTRole) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var ioTRoleProperties IoTRoleProperties + err = json.Unmarshal(*v, &ioTRoleProperties) + if err != nil { + return err + } + itr.IoTRoleProperties = &ioTRoleProperties + } + case "kind": + if v != nil { + var kind Kind + err = json.Unmarshal(*v, &kind) + if err != nil { + return err + } + itr.Kind = kind + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + itr.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + itr.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + itr.Type = &typeVar + } + } + } + + return nil +} + +// IoTRoleProperties ioT role properties. +type IoTRoleProperties struct { + // HostPlatform - Host OS supported by the IoT role. Possible values include: 'Windows', 'Linux' + HostPlatform PlatformType `json:"hostPlatform,omitempty"` + // IoTDeviceDetails - IoT device metadata to which data box edge device needs to be connected. + IoTDeviceDetails *IoTDeviceInfo `json:"ioTDeviceDetails,omitempty"` + // IoTEdgeDeviceDetails - IoT edge device to which the IoT role needs to be configured. + IoTEdgeDeviceDetails *IoTDeviceInfo `json:"ioTEdgeDeviceDetails,omitempty"` + // ShareMappings - Mount points of shares in role(s). + ShareMappings *[]MountPointMap `json:"shareMappings,omitempty"` + // RoleStatus - Role status. Possible values include: 'RoleStatusEnabled', 'RoleStatusDisabled' + RoleStatus RoleStatus `json:"roleStatus,omitempty"` +} + +// Ipv4Config details related to the IPv4 address configuration. +type Ipv4Config struct { + // IPAddress - READ-ONLY; The IPv4 address of the network adapter. + IPAddress *string `json:"ipAddress,omitempty"` + // Subnet - READ-ONLY; The IPv4 subnet of the network adapter. + Subnet *string `json:"subnet,omitempty"` + // Gateway - READ-ONLY; The IPv4 gateway of the network adapter. + Gateway *string `json:"gateway,omitempty"` +} + +// Ipv6Config details related to the IPv6 address configuration. +type Ipv6Config struct { + // IPAddress - READ-ONLY; The IPv6 address of the network adapter. + IPAddress *string `json:"ipAddress,omitempty"` + // PrefixLength - READ-ONLY; The IPv6 prefix of the network adapter. + PrefixLength *int32 `json:"prefixLength,omitempty"` + // Gateway - READ-ONLY; The IPv6 gateway of the network adapter. + Gateway *string `json:"gateway,omitempty"` +} + +// Job a device job. +type Job struct { + autorest.Response `json:"-"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The name of the object. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` + // Status - READ-ONLY; The current status of the job. Possible values include: 'JobStatusInvalid', 'JobStatusRunning', 'JobStatusSucceeded', 'JobStatusFailed', 'JobStatusCanceled', 'JobStatusPaused', 'JobStatusScheduled' + Status JobStatus `json:"status,omitempty"` + // StartTime - READ-ONLY; The UTC date and time at which the job started. + StartTime *date.Time `json:"startTime,omitempty"` + // EndTime - READ-ONLY; The UTC date and time at which the job completed. + EndTime *date.Time `json:"endTime,omitempty"` + // PercentComplete - READ-ONLY; The percentage of the job that is complete. + PercentComplete *int32 `json:"percentComplete,omitempty"` + // Error - READ-ONLY; The error details. + Error *JobErrorDetails `json:"error,omitempty"` + // JobProperties - READ-ONLY; The properties of the job. + *JobProperties `json:"properties,omitempty"` +} + +// MarshalJSON is the custom marshaler for Job. +func (j Job) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for Job struct. +func (j *Job) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + j.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + j.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + j.Type = &typeVar + } + case "status": + if v != nil { + var status JobStatus + err = json.Unmarshal(*v, &status) + if err != nil { + return err + } + j.Status = status + } + case "startTime": + if v != nil { + var startTime date.Time + err = json.Unmarshal(*v, &startTime) + if err != nil { + return err + } + j.StartTime = &startTime + } + case "endTime": + if v != nil { + var endTime date.Time + err = json.Unmarshal(*v, &endTime) + if err != nil { + return err + } + j.EndTime = &endTime + } + case "percentComplete": + if v != nil { + var percentComplete int32 + err = json.Unmarshal(*v, &percentComplete) + if err != nil { + return err + } + j.PercentComplete = &percentComplete + } + case "error": + if v != nil { + var errorVar JobErrorDetails + err = json.Unmarshal(*v, &errorVar) + if err != nil { + return err + } + j.Error = &errorVar + } + case "properties": + if v != nil { + var jobProperties JobProperties + err = json.Unmarshal(*v, &jobProperties) + if err != nil { + return err + } + j.JobProperties = &jobProperties + } + } + } + + return nil +} + +// JobErrorDetails the job error information containing the list of job errors. +type JobErrorDetails struct { + // ErrorDetails - READ-ONLY; The error details. + ErrorDetails *[]JobErrorItem `json:"errorDetails,omitempty"` + // Code - READ-ONLY; The code intended for programmatic access. + Code *string `json:"code,omitempty"` + // Message - READ-ONLY; The message that describes the error in detail. + Message *string `json:"message,omitempty"` +} + +// JobErrorItem the job error items. +type JobErrorItem struct { + // Recommendations - READ-ONLY; The recommended actions. + Recommendations *[]string `json:"recommendations,omitempty"` + // Code - READ-ONLY; The code intended for programmatic access. + Code *string `json:"code,omitempty"` + // Message - READ-ONLY; The message that describes the error in detail. + Message *string `json:"message,omitempty"` +} + +// JobProperties the properties for the job. +type JobProperties struct { + // JobType - READ-ONLY; The type of the job. Possible values include: 'JobTypeInvalid', 'JobTypeScanForUpdates', 'JobTypeDownloadUpdates', 'JobTypeInstallUpdates', 'JobTypeRefreshShare' + JobType JobType `json:"jobType,omitempty"` + // CurrentStage - READ-ONLY; Current stage of the update operation. Possible values include: 'UpdateOperationStageUnknown', 'UpdateOperationStageInitial', 'UpdateOperationStageScanStarted', 'UpdateOperationStageScanComplete', 'UpdateOperationStageScanFailed', 'UpdateOperationStageDownloadStarted', 'UpdateOperationStageDownloadComplete', 'UpdateOperationStageDownloadFailed', 'UpdateOperationStageInstallStarted', 'UpdateOperationStageInstallComplete', 'UpdateOperationStageInstallFailed', 'UpdateOperationStageRebootInitiated', 'UpdateOperationStageSuccess', 'UpdateOperationStageFailure', 'UpdateOperationStageRescanStarted', 'UpdateOperationStageRescanComplete', 'UpdateOperationStageRescanFailed' + CurrentStage UpdateOperationStage `json:"currentStage,omitempty"` + // DownloadProgress - READ-ONLY; The download progress. + DownloadProgress *UpdateDownloadProgress `json:"downloadProgress,omitempty"` + // InstallProgress - READ-ONLY; The install progress. + InstallProgress *UpdateInstallProgress `json:"installProgress,omitempty"` + // TotalRefreshErrors - READ-ONLY; Total number of errors encountered during the refresh process. + TotalRefreshErrors *int32 `json:"totalRefreshErrors,omitempty"` + // ErrorManifestFile - READ-ONLY; Local share/remote container relative path to the error manifest file of the refresh. + ErrorManifestFile *string `json:"errorManifestFile,omitempty"` + // ShareID - READ-ONLY; ARM ID of the share that was refreshed. + ShareID *string `json:"shareId,omitempty"` + // Folder - If only subfolders need to be refreshed, then the subfolder path inside the share. (The path is empty if there are no subfolders.) + Folder *string `json:"folder,omitempty"` +} + +// MetricDimensionV1 metric Dimension v1. +type MetricDimensionV1 struct { + // Name - Name of the metrics dimension. + Name *string `json:"name,omitempty"` + // DisplayName - Display name of the metrics dimension. + DisplayName *string `json:"displayName,omitempty"` + // ToBeExportedForShoebox - To be exported to shoe box. + ToBeExportedForShoebox *bool `json:"toBeExportedForShoebox,omitempty"` +} + +// MetricSpecificationV1 metric specification version 1. +type MetricSpecificationV1 struct { + // Name - Name of the metric. + Name *string `json:"name,omitempty"` + // DisplayName - Display name of the metric. + DisplayName *string `json:"displayName,omitempty"` + // DisplayDescription - Description of the metric to be displayed. + DisplayDescription *string `json:"displayDescription,omitempty"` + // Unit - Metric units. Possible values include: 'NotSpecified', 'Percent', 'Count', 'Seconds', 'Milliseconds', 'Bytes', 'BytesPerSecond', 'CountPerSecond' + Unit MetricUnit `json:"unit,omitempty"` + // AggregationType - Metric aggregation type. Possible values include: 'MetricAggregationTypeNotSpecified', 'MetricAggregationTypeNone', 'MetricAggregationTypeAverage', 'MetricAggregationTypeMinimum', 'MetricAggregationTypeMaximum', 'MetricAggregationTypeTotal', 'MetricAggregationTypeCount' + AggregationType MetricAggregationType `json:"aggregationType,omitempty"` + // Dimensions - Metric dimensions, other than default dimension which is resource. + Dimensions *[]MetricDimensionV1 `json:"dimensions,omitempty"` + // FillGapWithZero - Set true to fill the gaps with zero. + FillGapWithZero *bool `json:"fillGapWithZero,omitempty"` + // Category - Metric category. Possible values include: 'Capacity', 'Transaction' + Category MetricCategory `json:"category,omitempty"` + // ResourceIDDimensionNameOverride - Resource name override. + ResourceIDDimensionNameOverride *string `json:"resourceIdDimensionNameOverride,omitempty"` + // SupportedTimeGrainTypes - Support granularity of metrics. + SupportedTimeGrainTypes *[]TimeGrain `json:"supportedTimeGrainTypes,omitempty"` + // SupportedAggregationTypes - Support metric aggregation type. + SupportedAggregationTypes *[]MetricAggregationType `json:"supportedAggregationTypes,omitempty"` +} + +// MountPointMap the share mount point. +type MountPointMap struct { + // ShareID - ID of the share mounted to the role VM. + ShareID *string `json:"shareId,omitempty"` + // RoleID - READ-ONLY; ID of the role to which share is mounted. + RoleID *string `json:"roleId,omitempty"` + // MountPoint - READ-ONLY; Mount point for the share. + MountPoint *string `json:"mountPoint,omitempty"` + // RoleType - READ-ONLY; Role type. Possible values include: 'IOT', 'ASA', 'Functions', 'Cognitive' + RoleType RoleTypes `json:"roleType,omitempty"` +} + +// NetworkAdapter represents the networkAdapter on a device. +type NetworkAdapter struct { + // AdapterID - READ-ONLY; Instance ID of network adapter. + AdapterID *string `json:"adapterId,omitempty"` + // AdapterPosition - READ-ONLY; Hardware position of network adapter. + AdapterPosition *NetworkAdapterPosition `json:"adapterPosition,omitempty"` + // Index - READ-ONLY; Logical index of the adapter. + Index *int32 `json:"index,omitempty"` + // NodeID - READ-ONLY; Node ID of the network adapter. + NodeID *string `json:"nodeId,omitempty"` + // NetworkAdapterName - READ-ONLY; Network adapter name. + NetworkAdapterName *string `json:"networkAdapterName,omitempty"` + // Label - READ-ONLY; Hardware label for the adapter. + Label *string `json:"label,omitempty"` + // MacAddress - READ-ONLY; MAC address. + MacAddress *string `json:"macAddress,omitempty"` + // LinkSpeed - READ-ONLY; Link speed. + LinkSpeed *int64 `json:"linkSpeed,omitempty"` + // Status - READ-ONLY; Value indicating whether this adapter is valid. Possible values include: 'Inactive', 'Active' + Status NetworkAdapterStatus `json:"status,omitempty"` + // RdmaStatus - Value indicating whether this adapter is RDMA capable. Possible values include: 'Incapable', 'Capable' + RdmaStatus NetworkAdapterRDMAStatus `json:"rdmaStatus,omitempty"` + // DhcpStatus - Value indicating whether this adapter has DHCP enabled. Possible values include: 'NetworkAdapterDHCPStatusDisabled', 'NetworkAdapterDHCPStatusEnabled' + DhcpStatus NetworkAdapterDHCPStatus `json:"dhcpStatus,omitempty"` + // Ipv4Configuration - READ-ONLY; The IPv4 configuration of the network adapter. + Ipv4Configuration *Ipv4Config `json:"ipv4Configuration,omitempty"` + // Ipv6Configuration - READ-ONLY; The IPv6 configuration of the network adapter. + Ipv6Configuration *Ipv6Config `json:"ipv6Configuration,omitempty"` + // Ipv6LinkLocalAddress - READ-ONLY; The IPv6 local address. + Ipv6LinkLocalAddress *string `json:"ipv6LinkLocalAddress,omitempty"` + // DNSServers - READ-ONLY; The list of DNS Servers of the device. + DNSServers *[]string `json:"dnsServers,omitempty"` +} + +// NetworkAdapterPosition the network adapter position. +type NetworkAdapterPosition struct { + // NetworkGroup - READ-ONLY; The network group. Possible values include: 'NetworkGroupNone', 'NetworkGroupNonRDMA', 'NetworkGroupRDMA' + NetworkGroup NetworkGroup `json:"networkGroup,omitempty"` + // Port - READ-ONLY; The port. + Port *int32 `json:"port,omitempty"` +} + +// NetworkSettings the network settings of a device. +type NetworkSettings struct { + autorest.Response `json:"-"` + // NetworkSettingsProperties - READ-ONLY; The properties of network settings of a device. + *NetworkSettingsProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for NetworkSettings. +func (ns NetworkSettings) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for NetworkSettings struct. +func (ns *NetworkSettings) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var networkSettingsProperties NetworkSettingsProperties + err = json.Unmarshal(*v, &networkSettingsProperties) + if err != nil { + return err + } + ns.NetworkSettingsProperties = &networkSettingsProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + ns.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + ns.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + ns.Type = &typeVar + } + } + } + + return nil +} + +// NetworkSettingsProperties the properties of network settings. +type NetworkSettingsProperties struct { + // NetworkAdapters - READ-ONLY; The network adapter list on the device. + NetworkAdapters *[]NetworkAdapter `json:"networkAdapters,omitempty"` +} + +// Operation operations. +type Operation struct { + // Name - Name of the operation. + Name *string `json:"name,omitempty"` + // Display - Properties displayed for the operation. + Display *OperationDisplay `json:"display,omitempty"` + // Origin - Origin of the operation. + Origin *string `json:"origin,omitempty"` + // OperationProperties - Operation properties. + *OperationProperties `json:"properties,omitempty"` +} + +// MarshalJSON is the custom marshaler for Operation. +func (o Operation) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if o.Name != nil { + objectMap["name"] = o.Name + } + if o.Display != nil { + objectMap["display"] = o.Display + } + if o.Origin != nil { + objectMap["origin"] = o.Origin + } + if o.OperationProperties != nil { + objectMap["properties"] = o.OperationProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for Operation struct. +func (o *Operation) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + o.Name = &name + } + case "display": + if v != nil { + var display OperationDisplay + err = json.Unmarshal(*v, &display) + if err != nil { + return err + } + o.Display = &display + } + case "origin": + if v != nil { + var origin string + err = json.Unmarshal(*v, &origin) + if err != nil { + return err + } + o.Origin = &origin + } + case "properties": + if v != nil { + var operationProperties OperationProperties + err = json.Unmarshal(*v, &operationProperties) + if err != nil { + return err + } + o.OperationProperties = &operationProperties + } + } + } + + return nil +} + +// OperationDisplay operation display properties. +type OperationDisplay struct { + // Provider - Provider name. + Provider *string `json:"provider,omitempty"` + // Resource - The type of resource in which the operation is performed. + Resource *string `json:"resource,omitempty"` + // Operation - Operation to be performed on the resource. + Operation *string `json:"operation,omitempty"` + // Description - Description of the operation to be performed. + Description *string `json:"description,omitempty"` +} + +// OperationProperties operation properties. +type OperationProperties struct { + // ServiceSpecification - Service specification. + ServiceSpecification *ServiceSpecification `json:"serviceSpecification,omitempty"` +} + +// OperationsList the list of operations used for the discovery of available provider operations. +type OperationsList struct { + autorest.Response `json:"-"` + // Value - The value. + Value *[]Operation `json:"value,omitempty"` + // NextLink - Link to the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// OperationsListIterator provides access to a complete listing of Operation values. +type OperationsListIterator struct { + i int + page OperationsListPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *OperationsListIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OperationsListIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *OperationsListIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter OperationsListIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter OperationsListIterator) Response() OperationsList { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter OperationsListIterator) Value() Operation { + if !iter.page.NotDone() { + return Operation{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the OperationsListIterator type. +func NewOperationsListIterator(page OperationsListPage) OperationsListIterator { + return OperationsListIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (ol OperationsList) IsEmpty() bool { + return ol.Value == nil || len(*ol.Value) == 0 +} + +// operationsListPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (ol OperationsList) operationsListPreparer(ctx context.Context) (*http.Request, error) { + if ol.NextLink == nil || len(to.String(ol.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(ol.NextLink))) +} + +// OperationsListPage contains a page of Operation values. +type OperationsListPage struct { + fn func(context.Context, OperationsList) (OperationsList, error) + ol OperationsList +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *OperationsListPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OperationsListPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + next, err := page.fn(ctx, page.ol) + if err != nil { + return err + } + page.ol = next + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *OperationsListPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page OperationsListPage) NotDone() bool { + return !page.ol.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page OperationsListPage) Response() OperationsList { + return page.ol +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page OperationsListPage) Values() []Operation { + if page.ol.IsEmpty() { + return nil + } + return *page.ol.Value +} + +// Creates a new instance of the OperationsListPage type. +func NewOperationsListPage(getNextPage func(context.Context, OperationsList) (OperationsList, error)) OperationsListPage { + return OperationsListPage{fn: getNextPage} +} + +// Order the order details. +type Order struct { + autorest.Response `json:"-"` + // OrderProperties - The order properties. + *OrderProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for Order. +func (o Order) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if o.OrderProperties != nil { + objectMap["properties"] = o.OrderProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for Order struct. +func (o *Order) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var orderProperties OrderProperties + err = json.Unmarshal(*v, &orderProperties) + if err != nil { + return err + } + o.OrderProperties = &orderProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + o.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + o.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + o.Type = &typeVar + } + } + } + + return nil +} + +// OrderList list of order entities. +type OrderList struct { + autorest.Response `json:"-"` + // Value - READ-ONLY; The list of orders. + Value *[]Order `json:"value,omitempty"` + // NextLink - READ-ONLY; Link to the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// OrderListIterator provides access to a complete listing of Order values. +type OrderListIterator struct { + i int + page OrderListPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *OrderListIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OrderListIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *OrderListIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter OrderListIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter OrderListIterator) Response() OrderList { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter OrderListIterator) Value() Order { + if !iter.page.NotDone() { + return Order{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the OrderListIterator type. +func NewOrderListIterator(page OrderListPage) OrderListIterator { + return OrderListIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (ol OrderList) IsEmpty() bool { + return ol.Value == nil || len(*ol.Value) == 0 +} + +// orderListPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (ol OrderList) orderListPreparer(ctx context.Context) (*http.Request, error) { + if ol.NextLink == nil || len(to.String(ol.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(ol.NextLink))) +} + +// OrderListPage contains a page of Order values. +type OrderListPage struct { + fn func(context.Context, OrderList) (OrderList, error) + ol OrderList +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *OrderListPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OrderListPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + next, err := page.fn(ctx, page.ol) + if err != nil { + return err + } + page.ol = next + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *OrderListPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page OrderListPage) NotDone() bool { + return !page.ol.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page OrderListPage) Response() OrderList { + return page.ol +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page OrderListPage) Values() []Order { + if page.ol.IsEmpty() { + return nil + } + return *page.ol.Value +} + +// Creates a new instance of the OrderListPage type. +func NewOrderListPage(getNextPage func(context.Context, OrderList) (OrderList, error)) OrderListPage { + return OrderListPage{fn: getNextPage} +} + +// OrderProperties order properties. +type OrderProperties struct { + // ContactInformation - The contact details. + ContactInformation *ContactDetails `json:"contactInformation,omitempty"` + // ShippingAddress - The shipping address. + ShippingAddress *Address `json:"shippingAddress,omitempty"` + // CurrentStatus - Current status of the order. + CurrentStatus *OrderStatus `json:"currentStatus,omitempty"` + // OrderHistory - READ-ONLY; List of status changes in the order. + OrderHistory *[]OrderStatus `json:"orderHistory,omitempty"` + // SerialNumber - READ-ONLY; Serial number of the device. + SerialNumber *string `json:"serialNumber,omitempty"` + // DeliveryTrackingInfo - READ-ONLY; Tracking information for the package delivered to the customer whether it has an original or a replacement device. + DeliveryTrackingInfo *[]TrackingInfo `json:"deliveryTrackingInfo,omitempty"` + // ReturnTrackingInfo - READ-ONLY; Tracking information for the package returned from the customer whether it has an original or a replacement device. + ReturnTrackingInfo *[]TrackingInfo `json:"returnTrackingInfo,omitempty"` +} + +// OrdersCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type OrdersCreateOrUpdateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *OrdersCreateOrUpdateFuture) Result(client OrdersClient) (o Order, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.OrdersCreateOrUpdateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if o.Response.Response, err = future.GetResult(sender); err == nil && o.Response.Response.StatusCode != http.StatusNoContent { + o, err = client.CreateOrUpdateResponder(o.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersCreateOrUpdateFuture", "Result", o.Response.Response, "Failure responding to request") + } + } + return +} + +// OrdersDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. +type OrdersDeleteFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *OrdersDeleteFuture) Result(client OrdersClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.OrdersDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// OrderStatus represents a single status change. +type OrderStatus struct { + // Status - Status of the order as per the allowed status types. Possible values include: 'Untracked', 'AwaitingFulfilment', 'AwaitingPreparation', 'AwaitingShipment', 'Shipped', 'Arriving', 'Delivered', 'ReplacementRequested', 'LostDevice', 'Declined', 'ReturnInitiated', 'AwaitingReturnShipment', 'ShippedBack', 'CollectedAtMicrosoft' + Status OrderState `json:"status,omitempty"` + // UpdateDateTime - READ-ONLY; Time of status update. + UpdateDateTime *date.Time `json:"updateDateTime,omitempty"` + // Comments - Comments related to this status change. + Comments *string `json:"comments,omitempty"` +} + +// PeriodicTimerEventTrigger trigger details. +type PeriodicTimerEventTrigger struct { + // PeriodicTimerProperties - Periodic timer trigger properties. + *PeriodicTimerProperties `json:"properties,omitempty"` + // Kind - Possible values include: 'KindTrigger', 'KindFileEvent', 'KindPeriodicTimerEvent' + Kind KindBasicTrigger `json:"kind,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for PeriodicTimerEventTrigger. +func (ptet PeriodicTimerEventTrigger) MarshalJSON() ([]byte, error) { + ptet.Kind = KindPeriodicTimerEvent + objectMap := make(map[string]interface{}) + if ptet.PeriodicTimerProperties != nil { + objectMap["properties"] = ptet.PeriodicTimerProperties + } + if ptet.Kind != "" { + objectMap["kind"] = ptet.Kind + } + return json.Marshal(objectMap) +} + +// AsFileEventTrigger is the BasicTrigger implementation for PeriodicTimerEventTrigger. +func (ptet PeriodicTimerEventTrigger) AsFileEventTrigger() (*FileEventTrigger, bool) { + return nil, false +} + +// AsPeriodicTimerEventTrigger is the BasicTrigger implementation for PeriodicTimerEventTrigger. +func (ptet PeriodicTimerEventTrigger) AsPeriodicTimerEventTrigger() (*PeriodicTimerEventTrigger, bool) { + return &ptet, true +} + +// AsTrigger is the BasicTrigger implementation for PeriodicTimerEventTrigger. +func (ptet PeriodicTimerEventTrigger) AsTrigger() (*Trigger, bool) { + return nil, false +} + +// AsBasicTrigger is the BasicTrigger implementation for PeriodicTimerEventTrigger. +func (ptet PeriodicTimerEventTrigger) AsBasicTrigger() (BasicTrigger, bool) { + return &ptet, true +} + +// UnmarshalJSON is the custom unmarshaler for PeriodicTimerEventTrigger struct. +func (ptet *PeriodicTimerEventTrigger) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var periodicTimerProperties PeriodicTimerProperties + err = json.Unmarshal(*v, &periodicTimerProperties) + if err != nil { + return err + } + ptet.PeriodicTimerProperties = &periodicTimerProperties + } + case "kind": + if v != nil { + var kind KindBasicTrigger + err = json.Unmarshal(*v, &kind) + if err != nil { + return err + } + ptet.Kind = kind + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + ptet.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + ptet.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + ptet.Type = &typeVar + } + } + } + + return nil +} + +// PeriodicTimerProperties periodic timer trigger properties. +type PeriodicTimerProperties struct { + // SourceInfo - Periodic timer details. + SourceInfo *PeriodicTimerSourceInfo `json:"sourceInfo,omitempty"` + // SinkInfo - Role Sink information. + SinkInfo *RoleSinkInfo `json:"sinkInfo,omitempty"` + // CustomContextTag - A custom context tag typically used to correlate the trigger against its usage. For example, if a periodic timer trigger is intended for certain specific IoT modules in the device, the tag can be the name or the image URL of the module. + CustomContextTag *string `json:"customContextTag,omitempty"` +} + +// PeriodicTimerSourceInfo periodic timer event source. +type PeriodicTimerSourceInfo struct { + // StartTime - The time of the day that results in a valid trigger. Schedule is computed with reference to the time specified up to seconds. If timezone is not specified the time will considered to be in device timezone. The value will always be returned as UTC time. + StartTime *date.Time `json:"startTime,omitempty"` + // Schedule - Periodic frequency at which timer event needs to be raised. Supports daily, hourly, minutes, and seconds. + Schedule *string `json:"schedule,omitempty"` + // Topic - Topic where periodic events are published to IoT device. + Topic *string `json:"topic,omitempty"` +} + +// RawCertificateData raw Certificate Data. +type RawCertificateData struct { + // AuthenticationType - The authentication type. Possible values include: 'Invalid', 'AzureActiveDirectory' + AuthenticationType AuthenticationType `json:"authenticationType,omitempty"` + // Certificate - The base64 encoded certificate raw data. + Certificate *string `json:"certificate,omitempty"` +} + +// RefreshDetails fields for tracking refresh job on the share. +type RefreshDetails struct { + // InProgressRefreshJobID - If a refresh share job is currently in progress on this share, this field indicates the ARM resource ID of that job. The field is empty if no job is in progress. + InProgressRefreshJobID *string `json:"inProgressRefreshJobId,omitempty"` + // LastCompletedRefreshJobTimeInUTC - Indicates the completed time for the last refresh job on this particular share, if any.This could be a failed job or a successful job. + LastCompletedRefreshJobTimeInUTC *date.Time `json:"lastCompletedRefreshJobTimeInUTC,omitempty"` + // ErrorManifestFile - Indicates the relative path of the error xml for the last refresh job on this particular share, if any. This could be a failed job or a successful job. + ErrorManifestFile *string `json:"errorManifestFile,omitempty"` + // LastJob - Indicates the id of the last refresh job on this particular share,if any. This could be a failed job or a successful job. + LastJob *string `json:"lastJob,omitempty"` +} + +// BasicRole compute role. +type BasicRole interface { + AsIoTRole() (*IoTRole, bool) + AsRole() (*Role, bool) +} + +// Role compute role. +type Role struct { + autorest.Response `json:"-"` + // Kind - Possible values include: 'KindRole', 'KindIOT' + Kind Kind `json:"kind,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +func unmarshalBasicRole(body []byte) (BasicRole, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["kind"] { + case string(KindIOT): + var itr IoTRole + err := json.Unmarshal(body, &itr) + return itr, err + default: + var r Role + err := json.Unmarshal(body, &r) + return r, err + } +} +func unmarshalBasicRoleArray(body []byte) ([]BasicRole, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + rArray := make([]BasicRole, len(rawMessages)) + + for index, rawMessage := range rawMessages { + r, err := unmarshalBasicRole(*rawMessage) + if err != nil { + return nil, err + } + rArray[index] = r + } + return rArray, nil +} + +// MarshalJSON is the custom marshaler for Role. +func (r Role) MarshalJSON() ([]byte, error) { + r.Kind = KindRole + objectMap := make(map[string]interface{}) + if r.Kind != "" { + objectMap["kind"] = r.Kind + } + return json.Marshal(objectMap) +} + +// AsIoTRole is the BasicRole implementation for Role. +func (r Role) AsIoTRole() (*IoTRole, bool) { + return nil, false +} + +// AsRole is the BasicRole implementation for Role. +func (r Role) AsRole() (*Role, bool) { + return &r, true +} + +// AsBasicRole is the BasicRole implementation for Role. +func (r Role) AsBasicRole() (BasicRole, bool) { + return &r, true +} + +// RoleList collection of all the roles on the Data Box Edge device. +type RoleList struct { + autorest.Response `json:"-"` + // Value - READ-ONLY; The Value. + Value *[]BasicRole `json:"value,omitempty"` + // NextLink - READ-ONLY; Link to the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for RoleList struct. +func (rl *RoleList) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "value": + if v != nil { + value, err := unmarshalBasicRoleArray(*v) + if err != nil { + return err + } + rl.Value = &value + } + case "nextLink": + if v != nil { + var nextLink string + err = json.Unmarshal(*v, &nextLink) + if err != nil { + return err + } + rl.NextLink = &nextLink + } + } + } + + return nil +} + +// RoleListIterator provides access to a complete listing of Role values. +type RoleListIterator struct { + i int + page RoleListPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *RoleListIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/RoleListIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *RoleListIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter RoleListIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter RoleListIterator) Response() RoleList { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter RoleListIterator) Value() BasicRole { + if !iter.page.NotDone() { + return Role{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the RoleListIterator type. +func NewRoleListIterator(page RoleListPage) RoleListIterator { + return RoleListIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (rl RoleList) IsEmpty() bool { + return rl.Value == nil || len(*rl.Value) == 0 +} + +// roleListPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (rl RoleList) roleListPreparer(ctx context.Context) (*http.Request, error) { + if rl.NextLink == nil || len(to.String(rl.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(rl.NextLink))) +} + +// RoleListPage contains a page of BasicRole values. +type RoleListPage struct { + fn func(context.Context, RoleList) (RoleList, error) + rl RoleList +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *RoleListPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/RoleListPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + next, err := page.fn(ctx, page.rl) + if err != nil { + return err + } + page.rl = next + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *RoleListPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page RoleListPage) NotDone() bool { + return !page.rl.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page RoleListPage) Response() RoleList { + return page.rl +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page RoleListPage) Values() []BasicRole { + if page.rl.IsEmpty() { + return nil + } + return *page.rl.Value +} + +// Creates a new instance of the RoleListPage type. +func NewRoleListPage(getNextPage func(context.Context, RoleList) (RoleList, error)) RoleListPage { + return RoleListPage{fn: getNextPage} +} + +// RoleModel ... +type RoleModel struct { + autorest.Response `json:"-"` + Value BasicRole `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for RoleModel struct. +func (rm *RoleModel) UnmarshalJSON(body []byte) error { + r, err := unmarshalBasicRole(body) + if err != nil { + return err + } + rm.Value = r + + return nil +} + +// RolesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type RolesCreateOrUpdateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *RolesCreateOrUpdateFuture) Result(client RolesClient) (rm RoleModel, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.RolesCreateOrUpdateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if rm.Response.Response, err = future.GetResult(sender); err == nil && rm.Response.Response.StatusCode != http.StatusNoContent { + rm, err = client.CreateOrUpdateResponder(rm.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesCreateOrUpdateFuture", "Result", rm.Response.Response, "Failure responding to request") + } + } + return +} + +// RolesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. +type RolesDeleteFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *RolesDeleteFuture) Result(client RolesClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.RolesDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// RoleSinkInfo compute role against which events will be raised. +type RoleSinkInfo struct { + // RoleID - Compute role ID. + RoleID *string `json:"roleId,omitempty"` +} + +// SecuritySettings the security settings of a device. +type SecuritySettings struct { + // SecuritySettingsProperties - Properties of the security settings. + *SecuritySettingsProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for SecuritySettings. +func (ss SecuritySettings) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if ss.SecuritySettingsProperties != nil { + objectMap["properties"] = ss.SecuritySettingsProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for SecuritySettings struct. +func (ss *SecuritySettings) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var securitySettingsProperties SecuritySettingsProperties + err = json.Unmarshal(*v, &securitySettingsProperties) + if err != nil { + return err + } + ss.SecuritySettingsProperties = &securitySettingsProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + ss.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + ss.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + ss.Type = &typeVar + } + } + } + + return nil +} + +// SecuritySettingsProperties the properties of security settings. +type SecuritySettingsProperties struct { + // DeviceAdminPassword - Device administrator password as an encrypted string (encrypted using RSA PKCS #1) is used to sign into the local web UI of the device. The Actual password should have at least 8 characters that are a combination of uppercase, lowercase, numeric, and special characters. + DeviceAdminPassword *AsymmetricEncryptedSecret `json:"deviceAdminPassword,omitempty"` +} + +// ServiceSpecification service specification. +type ServiceSpecification struct { + // MetricSpecifications - Metric specification as defined by shoebox. + MetricSpecifications *[]MetricSpecificationV1 `json:"metricSpecifications,omitempty"` +} + +// Share represents a share on the Data Box Edge/Gateway device. +type Share struct { + autorest.Response `json:"-"` + // ShareProperties - The share properties. + *ShareProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for Share. +func (s Share) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if s.ShareProperties != nil { + objectMap["properties"] = s.ShareProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for Share struct. +func (s *Share) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var shareProperties ShareProperties + err = json.Unmarshal(*v, &shareProperties) + if err != nil { + return err + } + s.ShareProperties = &shareProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + s.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + s.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + s.Type = &typeVar + } + } + } + + return nil +} + +// ShareAccessRight specifies the mapping between this particular user and the type of access he has on +// shares on this device. +type ShareAccessRight struct { + // ShareID - The share ID. + ShareID *string `json:"shareId,omitempty"` + // AccessType - Type of access to be allowed on the share for this user. Possible values include: 'Change', 'Read', 'Custom' + AccessType ShareAccessType `json:"accessType,omitempty"` +} + +// ShareList collection of all the shares on the Data Box Edge/Gateway device. +type ShareList struct { + autorest.Response `json:"-"` + // Value - READ-ONLY; The list of shares. + Value *[]Share `json:"value,omitempty"` + // NextLink - READ-ONLY; Link to the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// ShareListIterator provides access to a complete listing of Share values. +type ShareListIterator struct { + i int + page ShareListPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *ShareListIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ShareListIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *ShareListIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter ShareListIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter ShareListIterator) Response() ShareList { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter ShareListIterator) Value() Share { + if !iter.page.NotDone() { + return Share{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the ShareListIterator type. +func NewShareListIterator(page ShareListPage) ShareListIterator { + return ShareListIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (sl ShareList) IsEmpty() bool { + return sl.Value == nil || len(*sl.Value) == 0 +} + +// shareListPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (sl ShareList) shareListPreparer(ctx context.Context) (*http.Request, error) { + if sl.NextLink == nil || len(to.String(sl.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(sl.NextLink))) +} + +// ShareListPage contains a page of Share values. +type ShareListPage struct { + fn func(context.Context, ShareList) (ShareList, error) + sl ShareList +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *ShareListPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ShareListPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + next, err := page.fn(ctx, page.sl) + if err != nil { + return err + } + page.sl = next + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *ShareListPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page ShareListPage) NotDone() bool { + return !page.sl.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page ShareListPage) Response() ShareList { + return page.sl +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page ShareListPage) Values() []Share { + if page.sl.IsEmpty() { + return nil + } + return *page.sl.Value +} + +// Creates a new instance of the ShareListPage type. +func NewShareListPage(getNextPage func(context.Context, ShareList) (ShareList, error)) ShareListPage { + return ShareListPage{fn: getNextPage} +} + +// ShareProperties the share properties. +type ShareProperties struct { + // Description - Description for the share. + Description *string `json:"description,omitempty"` + // ShareStatus - Current status of the share. Possible values include: 'ShareStatusOnline', 'ShareStatusOffline' + ShareStatus ShareStatus `json:"shareStatus,omitempty"` + // MonitoringStatus - Current monitoring status of the share. Possible values include: 'Enabled', 'Disabled' + MonitoringStatus MonitoringStatus `json:"monitoringStatus,omitempty"` + // AzureContainerInfo - Azure container mapping for the share. + AzureContainerInfo *AzureContainerInfo `json:"azureContainerInfo,omitempty"` + // AccessProtocol - Access protocol to be used by the share. Possible values include: 'SMB', 'NFS' + AccessProtocol ShareAccessProtocol `json:"accessProtocol,omitempty"` + // UserAccessRights - Mapping of users and corresponding access rights on the share (required for SMB protocol). + UserAccessRights *[]UserAccessRight `json:"userAccessRights,omitempty"` + // ClientAccessRights - List of IP addresses and corresponding access rights on the share(required for NFS protocol). + ClientAccessRights *[]ClientAccessRight `json:"clientAccessRights,omitempty"` + // RefreshDetails - Details of the refresh job on this share. + RefreshDetails *RefreshDetails `json:"refreshDetails,omitempty"` + // ShareMappings - READ-ONLY; Share mount point to the role. + ShareMappings *[]MountPointMap `json:"shareMappings,omitempty"` + // DataPolicy - Data policy of the share. Possible values include: 'Cloud', 'Local' + DataPolicy DataPolicy `json:"dataPolicy,omitempty"` +} + +// SharesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type SharesCreateOrUpdateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *SharesCreateOrUpdateFuture) Result(client SharesClient) (s Share, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.SharesCreateOrUpdateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if s.Response.Response, err = future.GetResult(sender); err == nil && s.Response.Response.StatusCode != http.StatusNoContent { + s, err = client.CreateOrUpdateResponder(s.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesCreateOrUpdateFuture", "Result", s.Response.Response, "Failure responding to request") + } + } + return +} + +// SharesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. +type SharesDeleteFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *SharesDeleteFuture) Result(client SharesClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.SharesDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// SharesRefreshFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type SharesRefreshFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *SharesRefreshFuture) Result(client SharesClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesRefreshFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.SharesRefreshFuture") + return + } + ar.Response = future.Response() + return +} + +// Sku the SKU type. +type Sku struct { + // Name - SKU name. Possible values include: 'Gateway', 'Edge' + Name SkuName `json:"name,omitempty"` + // Tier - The SKU tier. This is based on the SKU name. Possible values include: 'Standard' + Tier SkuTier `json:"tier,omitempty"` +} + +// StorageAccountCredential the storage account credential. +type StorageAccountCredential struct { + autorest.Response `json:"-"` + // StorageAccountCredentialProperties - The storage account credential properties. + *StorageAccountCredentialProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for StorageAccountCredential. +func (sac StorageAccountCredential) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if sac.StorageAccountCredentialProperties != nil { + objectMap["properties"] = sac.StorageAccountCredentialProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for StorageAccountCredential struct. +func (sac *StorageAccountCredential) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var storageAccountCredentialProperties StorageAccountCredentialProperties + err = json.Unmarshal(*v, &storageAccountCredentialProperties) + if err != nil { + return err + } + sac.StorageAccountCredentialProperties = &storageAccountCredentialProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + sac.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + sac.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + sac.Type = &typeVar + } + } + } + + return nil +} + +// StorageAccountCredentialList the collection of storage account credentials. +type StorageAccountCredentialList struct { + autorest.Response `json:"-"` + // Value - READ-ONLY; The value. + Value *[]StorageAccountCredential `json:"value,omitempty"` + // NextLink - READ-ONLY; Link to the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// StorageAccountCredentialListIterator provides access to a complete listing of StorageAccountCredential +// values. +type StorageAccountCredentialListIterator struct { + i int + page StorageAccountCredentialListPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *StorageAccountCredentialListIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StorageAccountCredentialListIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *StorageAccountCredentialListIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter StorageAccountCredentialListIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter StorageAccountCredentialListIterator) Response() StorageAccountCredentialList { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter StorageAccountCredentialListIterator) Value() StorageAccountCredential { + if !iter.page.NotDone() { + return StorageAccountCredential{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the StorageAccountCredentialListIterator type. +func NewStorageAccountCredentialListIterator(page StorageAccountCredentialListPage) StorageAccountCredentialListIterator { + return StorageAccountCredentialListIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (sacl StorageAccountCredentialList) IsEmpty() bool { + return sacl.Value == nil || len(*sacl.Value) == 0 +} + +// storageAccountCredentialListPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (sacl StorageAccountCredentialList) storageAccountCredentialListPreparer(ctx context.Context) (*http.Request, error) { + if sacl.NextLink == nil || len(to.String(sacl.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(sacl.NextLink))) +} + +// StorageAccountCredentialListPage contains a page of StorageAccountCredential values. +type StorageAccountCredentialListPage struct { + fn func(context.Context, StorageAccountCredentialList) (StorageAccountCredentialList, error) + sacl StorageAccountCredentialList +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *StorageAccountCredentialListPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StorageAccountCredentialListPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + next, err := page.fn(ctx, page.sacl) + if err != nil { + return err + } + page.sacl = next + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *StorageAccountCredentialListPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page StorageAccountCredentialListPage) NotDone() bool { + return !page.sacl.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page StorageAccountCredentialListPage) Response() StorageAccountCredentialList { + return page.sacl +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page StorageAccountCredentialListPage) Values() []StorageAccountCredential { + if page.sacl.IsEmpty() { + return nil + } + return *page.sacl.Value +} + +// Creates a new instance of the StorageAccountCredentialListPage type. +func NewStorageAccountCredentialListPage(getNextPage func(context.Context, StorageAccountCredentialList) (StorageAccountCredentialList, error)) StorageAccountCredentialListPage { + return StorageAccountCredentialListPage{fn: getNextPage} +} + +// StorageAccountCredentialProperties the storage account credential properties. +type StorageAccountCredentialProperties struct { + // Alias - Alias for the storage account. + Alias *string `json:"alias,omitempty"` + // UserName - Username for the storage account. + UserName *string `json:"userName,omitempty"` + // AccountKey - Encrypted storage key. + AccountKey *AsymmetricEncryptedSecret `json:"accountKey,omitempty"` + // ConnectionString - Connection string for the storage account. Use this string if username and account key are not specified. + ConnectionString *string `json:"connectionString,omitempty"` + // SslStatus - Signifies whether SSL needs to be enabled or not. Possible values include: 'SSLStatusEnabled', 'SSLStatusDisabled' + SslStatus SSLStatus `json:"sslStatus,omitempty"` + // BlobDomainName - Blob end point for private clouds. + BlobDomainName *string `json:"blobDomainName,omitempty"` + // AccountType - Type of storage accessed on the storage account. Possible values include: 'GeneralPurposeStorage', 'BlobStorage' + AccountType AccountType `json:"accountType,omitempty"` +} + +// StorageAccountCredentialsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results +// of a long-running operation. +type StorageAccountCredentialsCreateOrUpdateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *StorageAccountCredentialsCreateOrUpdateFuture) Result(client StorageAccountCredentialsClient) (sac StorageAccountCredential, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.StorageAccountCredentialsCreateOrUpdateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if sac.Response.Response, err = future.GetResult(sender); err == nil && sac.Response.Response.StatusCode != http.StatusNoContent { + sac, err = client.CreateOrUpdateResponder(sac.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsCreateOrUpdateFuture", "Result", sac.Response.Response, "Failure responding to request") + } + } + return +} + +// StorageAccountCredentialsDeleteFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type StorageAccountCredentialsDeleteFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *StorageAccountCredentialsDeleteFuture) Result(client StorageAccountCredentialsClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.StorageAccountCredentialsDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// SymmetricKey symmetric key for authentication. +type SymmetricKey struct { + // ConnectionString - Connection string based on the symmetric key. + ConnectionString *AsymmetricEncryptedSecret `json:"connectionString,omitempty"` +} + +// TrackingInfo tracking courier information. +type TrackingInfo struct { + // SerialNumber - Serial number of the device being tracked. + SerialNumber *string `json:"serialNumber,omitempty"` + // CarrierName - Name of the carrier used in the delivery. + CarrierName *string `json:"carrierName,omitempty"` + // TrackingID - Tracking ID of the shipment. + TrackingID *string `json:"trackingId,omitempty"` + // TrackingURL - Tracking URL of the shipment. + TrackingURL *string `json:"trackingUrl,omitempty"` +} + +// BasicTrigger trigger details. +type BasicTrigger interface { + AsFileEventTrigger() (*FileEventTrigger, bool) + AsPeriodicTimerEventTrigger() (*PeriodicTimerEventTrigger, bool) + AsTrigger() (*Trigger, bool) +} + +// Trigger trigger details. +type Trigger struct { + autorest.Response `json:"-"` + // Kind - Possible values include: 'KindTrigger', 'KindFileEvent', 'KindPeriodicTimerEvent' + Kind KindBasicTrigger `json:"kind,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +func unmarshalBasicTrigger(body []byte) (BasicTrigger, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["kind"] { + case string(KindFileEvent): + var fet FileEventTrigger + err := json.Unmarshal(body, &fet) + return fet, err + case string(KindPeriodicTimerEvent): + var ptet PeriodicTimerEventTrigger + err := json.Unmarshal(body, &ptet) + return ptet, err + default: + var t Trigger + err := json.Unmarshal(body, &t) + return t, err + } +} +func unmarshalBasicTriggerArray(body []byte) ([]BasicTrigger, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + tArray := make([]BasicTrigger, len(rawMessages)) + + for index, rawMessage := range rawMessages { + t, err := unmarshalBasicTrigger(*rawMessage) + if err != nil { + return nil, err + } + tArray[index] = t + } + return tArray, nil +} + +// MarshalJSON is the custom marshaler for Trigger. +func (t Trigger) MarshalJSON() ([]byte, error) { + t.Kind = KindTrigger + objectMap := make(map[string]interface{}) + if t.Kind != "" { + objectMap["kind"] = t.Kind + } + return json.Marshal(objectMap) +} + +// AsFileEventTrigger is the BasicTrigger implementation for Trigger. +func (t Trigger) AsFileEventTrigger() (*FileEventTrigger, bool) { + return nil, false +} + +// AsPeriodicTimerEventTrigger is the BasicTrigger implementation for Trigger. +func (t Trigger) AsPeriodicTimerEventTrigger() (*PeriodicTimerEventTrigger, bool) { + return nil, false +} + +// AsTrigger is the BasicTrigger implementation for Trigger. +func (t Trigger) AsTrigger() (*Trigger, bool) { + return &t, true +} + +// AsBasicTrigger is the BasicTrigger implementation for Trigger. +func (t Trigger) AsBasicTrigger() (BasicTrigger, bool) { + return &t, true +} + +// TriggerList collection of all trigger on the data box edge device. +type TriggerList struct { + autorest.Response `json:"-"` + // Value - READ-ONLY; The list of triggers. + Value *[]BasicTrigger `json:"value,omitempty"` + // NextLink - READ-ONLY; Link to the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for TriggerList struct. +func (tl *TriggerList) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "value": + if v != nil { + value, err := unmarshalBasicTriggerArray(*v) + if err != nil { + return err + } + tl.Value = &value + } + case "nextLink": + if v != nil { + var nextLink string + err = json.Unmarshal(*v, &nextLink) + if err != nil { + return err + } + tl.NextLink = &nextLink + } + } + } + + return nil +} + +// TriggerListIterator provides access to a complete listing of Trigger values. +type TriggerListIterator struct { + i int + page TriggerListPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *TriggerListIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/TriggerListIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *TriggerListIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter TriggerListIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter TriggerListIterator) Response() TriggerList { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter TriggerListIterator) Value() BasicTrigger { + if !iter.page.NotDone() { + return Trigger{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the TriggerListIterator type. +func NewTriggerListIterator(page TriggerListPage) TriggerListIterator { + return TriggerListIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (tl TriggerList) IsEmpty() bool { + return tl.Value == nil || len(*tl.Value) == 0 +} + +// triggerListPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (tl TriggerList) triggerListPreparer(ctx context.Context) (*http.Request, error) { + if tl.NextLink == nil || len(to.String(tl.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(tl.NextLink))) +} + +// TriggerListPage contains a page of BasicTrigger values. +type TriggerListPage struct { + fn func(context.Context, TriggerList) (TriggerList, error) + tl TriggerList +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *TriggerListPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/TriggerListPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + next, err := page.fn(ctx, page.tl) + if err != nil { + return err + } + page.tl = next + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *TriggerListPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page TriggerListPage) NotDone() bool { + return !page.tl.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page TriggerListPage) Response() TriggerList { + return page.tl +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page TriggerListPage) Values() []BasicTrigger { + if page.tl.IsEmpty() { + return nil + } + return *page.tl.Value +} + +// Creates a new instance of the TriggerListPage type. +func NewTriggerListPage(getNextPage func(context.Context, TriggerList) (TriggerList, error)) TriggerListPage { + return TriggerListPage{fn: getNextPage} +} + +// TriggerModel ... +type TriggerModel struct { + autorest.Response `json:"-"` + Value BasicTrigger `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for TriggerModel struct. +func (tm *TriggerModel) UnmarshalJSON(body []byte) error { + t, err := unmarshalBasicTrigger(body) + if err != nil { + return err + } + tm.Value = t + + return nil +} + +// TriggersCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type TriggersCreateOrUpdateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *TriggersCreateOrUpdateFuture) Result(client TriggersClient) (tm TriggerModel, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.TriggersCreateOrUpdateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if tm.Response.Response, err = future.GetResult(sender); err == nil && tm.Response.Response.StatusCode != http.StatusNoContent { + tm, err = client.CreateOrUpdateResponder(tm.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersCreateOrUpdateFuture", "Result", tm.Response.Response, "Failure responding to request") + } + } + return +} + +// TriggersDeleteFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type TriggersDeleteFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *TriggersDeleteFuture) Result(client TriggersClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.TriggersDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// UpdateDownloadProgress details about the download progress of update. +type UpdateDownloadProgress struct { + // DownloadPhase - READ-ONLY; The download phase. Possible values include: 'Unknown', 'Initializing', 'Downloading', 'Verifying' + DownloadPhase DownloadPhase `json:"downloadPhase,omitempty"` + // PercentComplete - READ-ONLY; Percentage of completion. + PercentComplete *int32 `json:"percentComplete,omitempty"` + // TotalBytesToDownload - READ-ONLY; Total bytes to download. + TotalBytesToDownload *float64 `json:"totalBytesToDownload,omitempty"` + // TotalBytesDownloaded - READ-ONLY; Total bytes downloaded. + TotalBytesDownloaded *float64 `json:"totalBytesDownloaded,omitempty"` + // NumberOfUpdatesToDownload - READ-ONLY; Number of updates to download. + NumberOfUpdatesToDownload *int32 `json:"numberOfUpdatesToDownload,omitempty"` + // NumberOfUpdatesDownloaded - READ-ONLY; Number of updates downloaded. + NumberOfUpdatesDownloaded *int32 `json:"numberOfUpdatesDownloaded,omitempty"` +} + +// UpdateInstallProgress progress details during installation of updates. +type UpdateInstallProgress struct { + // PercentComplete - READ-ONLY; Percentage completed. + PercentComplete *int32 `json:"percentComplete,omitempty"` + // NumberOfUpdatesToInstall - READ-ONLY; Number of updates to install. + NumberOfUpdatesToInstall *int32 `json:"numberOfUpdatesToInstall,omitempty"` + // NumberOfUpdatesInstalled - READ-ONLY; Number of updates installed. + NumberOfUpdatesInstalled *int32 `json:"numberOfUpdatesInstalled,omitempty"` +} + +// UpdateSummary details about ongoing updates and availability of updates on the device. +type UpdateSummary struct { + autorest.Response `json:"-"` + // UpdateSummaryProperties - The device update information summary. + *UpdateSummaryProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for UpdateSummary. +func (us UpdateSummary) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if us.UpdateSummaryProperties != nil { + objectMap["properties"] = us.UpdateSummaryProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for UpdateSummary struct. +func (us *UpdateSummary) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var updateSummaryProperties UpdateSummaryProperties + err = json.Unmarshal(*v, &updateSummaryProperties) + if err != nil { + return err + } + us.UpdateSummaryProperties = &updateSummaryProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + us.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + us.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + us.Type = &typeVar + } + } + } + + return nil +} + +// UpdateSummaryProperties the device update information summary. +type UpdateSummaryProperties struct { + // DeviceVersionNumber - The current version of the device in format: 1.2.17312.13.", + DeviceVersionNumber *string `json:"deviceVersionNumber,omitempty"` + // FriendlyDeviceVersionName - The current version of the device in text format. + FriendlyDeviceVersionName *string `json:"friendlyDeviceVersionName,omitempty"` + // DeviceLastScannedDateTime - The last time when a scan was done on the device. + DeviceLastScannedDateTime *date.Time `json:"deviceLastScannedDateTime,omitempty"` + // LastCompletedScanJobDateTime - The time when the last scan job was completed (success/cancelled/failed) on the appliance. + LastCompletedScanJobDateTime *date.Time `json:"lastCompletedScanJobDateTime,omitempty"` + // LastCompletedDownloadJobDateTime - READ-ONLY; The time when the last Download job was completed (success/cancelled/failed) on the appliance. + LastCompletedDownloadJobDateTime *date.Time `json:"lastCompletedDownloadJobDateTime,omitempty"` + // LastCompletedInstallJobDateTime - READ-ONLY; The time when the last Install job was completed (success/cancelled/failed) on the appliance. + LastCompletedInstallJobDateTime *date.Time `json:"lastCompletedInstallJobDateTime,omitempty"` + // TotalNumberOfUpdatesAvailable - READ-ONLY; The number of updates available for the current device version as per the last device scan. + TotalNumberOfUpdatesAvailable *int32 `json:"totalNumberOfUpdatesAvailable,omitempty"` + // TotalNumberOfUpdatesPendingDownload - READ-ONLY; The total number of items pending download. + TotalNumberOfUpdatesPendingDownload *int32 `json:"totalNumberOfUpdatesPendingDownload,omitempty"` + // TotalNumberOfUpdatesPendingInstall - READ-ONLY; The total number of items pending install. + TotalNumberOfUpdatesPendingInstall *int32 `json:"totalNumberOfUpdatesPendingInstall,omitempty"` + // RebootBehavior - READ-ONLY; Indicates if updates are available and at least one of the updates needs a reboot. Possible values include: 'NeverReboots', 'RequiresReboot', 'RequestReboot' + RebootBehavior InstallRebootBehavior `json:"rebootBehavior,omitempty"` + // OngoingUpdateOperation - READ-ONLY; The current update operation. Possible values include: 'UpdateOperationNone', 'UpdateOperationScan', 'UpdateOperationDownload', 'UpdateOperationInstall' + OngoingUpdateOperation UpdateOperation `json:"ongoingUpdateOperation,omitempty"` + // InProgressDownloadJobID - READ-ONLY; The job ID of the download job in progress. + InProgressDownloadJobID *string `json:"inProgressDownloadJobId,omitempty"` + // InProgressInstallJobID - READ-ONLY; The job ID of the install job in progress. + InProgressInstallJobID *string `json:"inProgressInstallJobId,omitempty"` + // InProgressDownloadJobStartedDateTime - READ-ONLY; The time when the currently running download (if any) started. + InProgressDownloadJobStartedDateTime *date.Time `json:"inProgressDownloadJobStartedDateTime,omitempty"` + // InProgressInstallJobStartedDateTime - READ-ONLY; The time when the currently running install (if any) started. + InProgressInstallJobStartedDateTime *date.Time `json:"inProgressInstallJobStartedDateTime,omitempty"` + // UpdateTitles - READ-ONLY; The list of updates available for install. + UpdateTitles *[]string `json:"updateTitles,omitempty"` + // TotalUpdateSizeInBytes - READ-ONLY; The total size of updates available for download in bytes. + TotalUpdateSizeInBytes *float64 `json:"totalUpdateSizeInBytes,omitempty"` +} + +// UploadCertificateRequest the upload certificate request. +type UploadCertificateRequest struct { + // RawCertificateData - The Base 64 encoded certificate raw data. + *RawCertificateData `json:"properties,omitempty"` +} + +// MarshalJSON is the custom marshaler for UploadCertificateRequest. +func (ucr UploadCertificateRequest) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if ucr.RawCertificateData != nil { + objectMap["properties"] = ucr.RawCertificateData + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for UploadCertificateRequest struct. +func (ucr *UploadCertificateRequest) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var rawCertificateData RawCertificateData + err = json.Unmarshal(*v, &rawCertificateData) + if err != nil { + return err + } + ucr.RawCertificateData = &rawCertificateData + } + } + } + + return nil +} + +// UploadCertificateResponse the upload registration certificate response. +type UploadCertificateResponse struct { + autorest.Response `json:"-"` + // AuthType - Specifies authentication type. Possible values include: 'Invalid', 'AzureActiveDirectory' + AuthType AuthenticationType `json:"authType,omitempty"` + // ResourceID - The resource ID of the Data Box Edge/Gateway device. + ResourceID *string `json:"resourceId,omitempty"` + // AadAuthority - Azure Active Directory tenant authority. + AadAuthority *string `json:"aadAuthority,omitempty"` + // AadTenantID - Azure Active Directory tenant ID. + AadTenantID *string `json:"aadTenantId,omitempty"` + // ServicePrincipalClientID - Azure Active Directory service principal client ID. + ServicePrincipalClientID *string `json:"servicePrincipalClientId,omitempty"` + // ServicePrincipalObjectID - Azure Active Directory service principal object ID. + ServicePrincipalObjectID *string `json:"servicePrincipalObjectId,omitempty"` + // AzureManagementEndpointAudience - The azure management endpoint audience. + AzureManagementEndpointAudience *string `json:"azureManagementEndpointAudience,omitempty"` +} + +// User represents a user who has access to one or more shares on the Data Box Edge/Gateway device. +type User struct { + autorest.Response `json:"-"` + // UserProperties - The storage account credential properties. + *UserProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for User. +func (u User) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if u.UserProperties != nil { + objectMap["properties"] = u.UserProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for User struct. +func (u *User) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var userProperties UserProperties + err = json.Unmarshal(*v, &userProperties) + if err != nil { + return err + } + u.UserProperties = &userProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + u.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + u.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + u.Type = &typeVar + } + } + } + + return nil +} + +// UserAccessRight the mapping between a particular user and the access type on the SMB share. +type UserAccessRight struct { + // UserID - User ID (already existing in the device). + UserID *string `json:"userId,omitempty"` + // AccessType - Type of access to be allowed for the user. Possible values include: 'Change', 'Read', 'Custom' + AccessType ShareAccessType `json:"accessType,omitempty"` +} + +// UserList collection of users. +type UserList struct { + autorest.Response `json:"-"` + // Value - READ-ONLY; The list of users. + Value *[]User `json:"value,omitempty"` + // NextLink - READ-ONLY; Link to the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// UserListIterator provides access to a complete listing of User values. +type UserListIterator struct { + i int + page UserListPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *UserListIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/UserListIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *UserListIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter UserListIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter UserListIterator) Response() UserList { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter UserListIterator) Value() User { + if !iter.page.NotDone() { + return User{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the UserListIterator type. +func NewUserListIterator(page UserListPage) UserListIterator { + return UserListIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (ul UserList) IsEmpty() bool { + return ul.Value == nil || len(*ul.Value) == 0 +} + +// userListPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (ul UserList) userListPreparer(ctx context.Context) (*http.Request, error) { + if ul.NextLink == nil || len(to.String(ul.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(ul.NextLink))) +} + +// UserListPage contains a page of User values. +type UserListPage struct { + fn func(context.Context, UserList) (UserList, error) + ul UserList +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *UserListPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/UserListPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + next, err := page.fn(ctx, page.ul) + if err != nil { + return err + } + page.ul = next + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *UserListPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page UserListPage) NotDone() bool { + return !page.ul.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page UserListPage) Response() UserList { + return page.ul +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page UserListPage) Values() []User { + if page.ul.IsEmpty() { + return nil + } + return *page.ul.Value +} + +// Creates a new instance of the UserListPage type. +func NewUserListPage(getNextPage func(context.Context, UserList) (UserList, error)) UserListPage { + return UserListPage{fn: getNextPage} +} + +// UserProperties the user properties. +type UserProperties struct { + // EncryptedPassword - The password details. + EncryptedPassword *AsymmetricEncryptedSecret `json:"encryptedPassword,omitempty"` + // ShareAccessRights - List of shares that the user has rights on. This field should not be specified during user creation. + ShareAccessRights *[]ShareAccessRight `json:"shareAccessRights,omitempty"` +} + +// UsersCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type UsersCreateOrUpdateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *UsersCreateOrUpdateFuture) Result(client UsersClient) (u User, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.UsersCreateOrUpdateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if u.Response.Response, err = future.GetResult(sender); err == nil && u.Response.Response.StatusCode != http.StatusNoContent { + u, err = client.CreateOrUpdateResponder(u.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersCreateOrUpdateFuture", "Result", u.Response.Response, "Failure responding to request") + } + } + return +} + +// UsersDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. +type UsersDeleteFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *UsersDeleteFuture) Result(client UsersClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.UsersDeleteFuture") + return + } + ar.Response = future.Response() + return +} diff --git a/services/databoxedge/mgmt/2019-03-01/databoxedge/operations.go b/services/databoxedge/mgmt/2019-03-01/databoxedge/operations.go new file mode 100644 index 000000000000..47a0db9e1e81 --- /dev/null +++ b/services/databoxedge/mgmt/2019-03-01/databoxedge/operations.go @@ -0,0 +1,147 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// OperationsClient is the client for the Operations methods of the Databoxedge service. +type OperationsClient struct { + BaseClient +} + +// NewOperationsClient creates an instance of the OperationsClient client. +func NewOperationsClient(subscriptionID string) OperationsClient { + return NewOperationsClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewOperationsClientWithBaseURI creates an instance of the OperationsClient client. +func NewOperationsClientWithBaseURI(baseURI string, subscriptionID string) OperationsClient { + return OperationsClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// List sends the list request. +func (client OperationsClient) List(ctx context.Context) (result OperationsListPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OperationsClient.List") + defer func() { + sc := -1 + if result.ol.Response.Response != nil { + sc = result.ol.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listNextResults + req, err := client.ListPreparer(ctx) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OperationsClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.ol.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.OperationsClient", "List", resp, "Failure sending request") + return + } + + result.ol, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OperationsClient", "List", resp, "Failure responding to request") + } + + return +} + +// ListPreparer prepares the List request. +func (client OperationsClient) ListPreparer(ctx context.Context) (*http.Request, error) { + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/providers/Microsoft.DataBoxEdge/operations"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client OperationsClient) ListSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client OperationsClient) ListResponder(resp *http.Response) (result OperationsList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listNextResults retrieves the next set of results, if any. +func (client OperationsClient) listNextResults(ctx context.Context, lastResults OperationsList) (result OperationsList, err error) { + req, err := lastResults.operationsListPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "databoxedge.OperationsClient", "listNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "databoxedge.OperationsClient", "listNextResults", resp, "Failure sending next results request") + } + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OperationsClient", "listNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListComplete enumerates all values, automatically crossing page boundaries as required. +func (client OperationsClient) ListComplete(ctx context.Context) (result OperationsListIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OperationsClient.List") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.List(ctx) + return +} diff --git a/services/databoxedge/mgmt/2019-03-01/databoxedge/operationsstatus.go b/services/databoxedge/mgmt/2019-03-01/databoxedge/operationsstatus.go new file mode 100644 index 000000000000..e08a6177b3cc --- /dev/null +++ b/services/databoxedge/mgmt/2019-03-01/databoxedge/operationsstatus.go @@ -0,0 +1,120 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// OperationsStatusClient is the client for the OperationsStatus methods of the Databoxedge service. +type OperationsStatusClient struct { + BaseClient +} + +// NewOperationsStatusClient creates an instance of the OperationsStatusClient client. +func NewOperationsStatusClient(subscriptionID string) OperationsStatusClient { + return NewOperationsStatusClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewOperationsStatusClientWithBaseURI creates an instance of the OperationsStatusClient client. +func NewOperationsStatusClientWithBaseURI(baseURI string, subscriptionID string) OperationsStatusClient { + return OperationsStatusClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// Get sends the get request. +// Parameters: +// deviceName - the device name. +// name - the job name. +// resourceGroupName - the resource group name. +func (client OperationsStatusClient) Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result Job, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OperationsStatusClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OperationsStatusClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.OperationsStatusClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OperationsStatusClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client OperationsStatusClient) GetPreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/operationsStatus/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client OperationsStatusClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client OperationsStatusClient) GetResponder(resp *http.Response) (result Job, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/databoxedge/mgmt/2019-03-01/databoxedge/orders.go b/services/databoxedge/mgmt/2019-03-01/databoxedge/orders.go new file mode 100644 index 000000000000..5b989ab89c2c --- /dev/null +++ b/services/databoxedge/mgmt/2019-03-01/databoxedge/orders.go @@ -0,0 +1,410 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// OrdersClient is the client for the Orders methods of the Databoxedge service. +type OrdersClient struct { + BaseClient +} + +// NewOrdersClient creates an instance of the OrdersClient client. +func NewOrdersClient(subscriptionID string) OrdersClient { + return NewOrdersClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewOrdersClientWithBaseURI creates an instance of the OrdersClient client. +func NewOrdersClientWithBaseURI(baseURI string, subscriptionID string) OrdersClient { + return OrdersClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate sends the create or update request. +// Parameters: +// deviceName - the device name. +// order - the order to be created or updated. +// resourceGroupName - the resource group name. +func (client OrdersClient) CreateOrUpdate(ctx context.Context, deviceName string, order Order, resourceGroupName string) (result OrdersCreateOrUpdateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OrdersClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: order, + Constraints: []validation.Constraint{{Target: "order.OrderProperties", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "order.OrderProperties.ContactInformation", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "order.OrderProperties.ContactInformation.ContactPerson", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "order.OrderProperties.ContactInformation.CompanyName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "order.OrderProperties.ContactInformation.Phone", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "order.OrderProperties.ContactInformation.EmailList", Name: validation.Null, Rule: true, Chain: nil}, + }}, + {Target: "order.OrderProperties.ShippingAddress", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "order.OrderProperties.ShippingAddress.AddressLine1", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "order.OrderProperties.ShippingAddress.PostalCode", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "order.OrderProperties.ShippingAddress.City", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "order.OrderProperties.ShippingAddress.State", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "order.OrderProperties.ShippingAddress.Country", Name: validation.Null, Rule: true, Chain: nil}, + }}, + }}}}}); err != nil { + return result, validation.NewError("databoxedge.OrdersClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, deviceName, order, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + result, err = client.CreateOrUpdateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "CreateOrUpdate", result.Response(), "Failure sending request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client OrdersClient) CreateOrUpdatePreparer(ctx context.Context, deviceName string, order Order, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/orders/default", pathParameters), + autorest.WithJSON(order), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client OrdersClient) CreateOrUpdateSender(req *http.Request) (future OrdersCreateOrUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client OrdersClient) CreateOrUpdateResponder(resp *http.Response) (result Order, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete sends the delete request. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client OrdersClient) Delete(ctx context.Context, deviceName string, resourceGroupName string) (result OrdersDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OrdersClient.Delete") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "Delete", result.Response(), "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client OrdersClient) DeletePreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/orders/default", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client OrdersClient) DeleteSender(req *http.Request) (future OrdersDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client OrdersClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get sends the get request. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client OrdersClient) Get(ctx context.Context, deviceName string, resourceGroupName string) (result Order, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OrdersClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client OrdersClient) GetPreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/orders/default", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client OrdersClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client OrdersClient) GetResponder(resp *http.Response) (result Order, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// ListByDataBoxEdgeDevice sends the list by data box edge device request. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client OrdersClient) ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result OrderListPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OrdersClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.ol.Response.Response != nil { + sc = result.ol.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listByDataBoxEdgeDeviceNextResults + req, err := client.ListByDataBoxEdgeDevicePreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "ListByDataBoxEdgeDevice", nil, "Failure preparing request") + return + } + + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.ol.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "ListByDataBoxEdgeDevice", resp, "Failure sending request") + return + } + + result.ol, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "ListByDataBoxEdgeDevice", resp, "Failure responding to request") + } + + return +} + +// ListByDataBoxEdgeDevicePreparer prepares the ListByDataBoxEdgeDevice request. +func (client OrdersClient) ListByDataBoxEdgeDevicePreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/orders", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByDataBoxEdgeDeviceSender sends the ListByDataBoxEdgeDevice request. The method will close the +// http.Response Body if it receives an error. +func (client OrdersClient) ListByDataBoxEdgeDeviceSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListByDataBoxEdgeDeviceResponder handles the response to the ListByDataBoxEdgeDevice request. The method always +// closes the http.Response Body. +func (client OrdersClient) ListByDataBoxEdgeDeviceResponder(resp *http.Response) (result OrderList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listByDataBoxEdgeDeviceNextResults retrieves the next set of results, if any. +func (client OrdersClient) listByDataBoxEdgeDeviceNextResults(ctx context.Context, lastResults OrderList) (result OrderList, err error) { + req, err := lastResults.orderListPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "listByDataBoxEdgeDeviceNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure sending next results request") + } + result, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListByDataBoxEdgeDeviceComplete enumerates all values, automatically crossing page boundaries as required. +func (client OrdersClient) ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string) (result OrderListIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OrdersClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListByDataBoxEdgeDevice(ctx, deviceName, resourceGroupName) + return +} diff --git a/services/databoxedge/mgmt/2019-03-01/databoxedge/roles.go b/services/databoxedge/mgmt/2019-03-01/databoxedge/roles.go new file mode 100644 index 000000000000..5324a10c4a75 --- /dev/null +++ b/services/databoxedge/mgmt/2019-03-01/databoxedge/roles.go @@ -0,0 +1,395 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// RolesClient is the client for the Roles methods of the Databoxedge service. +type RolesClient struct { + BaseClient +} + +// NewRolesClient creates an instance of the RolesClient client. +func NewRolesClient(subscriptionID string) RolesClient { + return NewRolesClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewRolesClientWithBaseURI creates an instance of the RolesClient client. +func NewRolesClientWithBaseURI(baseURI string, subscriptionID string) RolesClient { + return RolesClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate create or update a role. +// Parameters: +// deviceName - the device name. +// name - the role name. +// role - the role properties. +// resourceGroupName - the resource group name. +func (client RolesClient) CreateOrUpdate(ctx context.Context, deviceName string, name string, role BasicRole, resourceGroupName string) (result RolesCreateOrUpdateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/RolesClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.CreateOrUpdatePreparer(ctx, deviceName, name, role, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + result, err = client.CreateOrUpdateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesClient", "CreateOrUpdate", result.Response(), "Failure sending request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client RolesClient) CreateOrUpdatePreparer(ctx context.Context, deviceName string, name string, role BasicRole, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/roles/{name}", pathParameters), + autorest.WithJSON(role), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client RolesClient) CreateOrUpdateSender(req *http.Request) (future RolesCreateOrUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client RolesClient) CreateOrUpdateResponder(resp *http.Response) (result RoleModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes the role on the data box edge device. +// Parameters: +// deviceName - the device name. +// name - the role name. +// resourceGroupName - the resource group name. +func (client RolesClient) Delete(ctx context.Context, deviceName string, name string, resourceGroupName string) (result RolesDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/RolesClient.Delete") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesClient", "Delete", result.Response(), "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client RolesClient) DeletePreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/roles/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client RolesClient) DeleteSender(req *http.Request) (future RolesDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client RolesClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get gets a specific role by name. +// Parameters: +// deviceName - the device name. +// name - the role name. +// resourceGroupName - the resource group name. +func (client RolesClient) Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result RoleModel, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/RolesClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.RolesClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client RolesClient) GetPreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/roles/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client RolesClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client RolesClient) GetResponder(resp *http.Response) (result RoleModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// ListByDataBoxEdgeDevice lists all the roles configured in a data box edge/gateway device. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client RolesClient) ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result RoleListPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/RolesClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.rl.Response.Response != nil { + sc = result.rl.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listByDataBoxEdgeDeviceNextResults + req, err := client.ListByDataBoxEdgeDevicePreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesClient", "ListByDataBoxEdgeDevice", nil, "Failure preparing request") + return + } + + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.rl.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.RolesClient", "ListByDataBoxEdgeDevice", resp, "Failure sending request") + return + } + + result.rl, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesClient", "ListByDataBoxEdgeDevice", resp, "Failure responding to request") + } + + return +} + +// ListByDataBoxEdgeDevicePreparer prepares the ListByDataBoxEdgeDevice request. +func (client RolesClient) ListByDataBoxEdgeDevicePreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/roles", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByDataBoxEdgeDeviceSender sends the ListByDataBoxEdgeDevice request. The method will close the +// http.Response Body if it receives an error. +func (client RolesClient) ListByDataBoxEdgeDeviceSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListByDataBoxEdgeDeviceResponder handles the response to the ListByDataBoxEdgeDevice request. The method always +// closes the http.Response Body. +func (client RolesClient) ListByDataBoxEdgeDeviceResponder(resp *http.Response) (result RoleList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listByDataBoxEdgeDeviceNextResults retrieves the next set of results, if any. +func (client RolesClient) listByDataBoxEdgeDeviceNextResults(ctx context.Context, lastResults RoleList) (result RoleList, err error) { + req, err := lastResults.roleListPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "databoxedge.RolesClient", "listByDataBoxEdgeDeviceNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "databoxedge.RolesClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure sending next results request") + } + result, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListByDataBoxEdgeDeviceComplete enumerates all values, automatically crossing page boundaries as required. +func (client RolesClient) ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string) (result RoleListIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/RolesClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListByDataBoxEdgeDevice(ctx, deviceName, resourceGroupName) + return +} diff --git a/services/databoxedge/mgmt/2019-03-01/databoxedge/shares.go b/services/databoxedge/mgmt/2019-03-01/databoxedge/shares.go new file mode 100644 index 000000000000..04dc7f8e4157 --- /dev/null +++ b/services/databoxedge/mgmt/2019-03-01/databoxedge/shares.go @@ -0,0 +1,485 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// SharesClient is the client for the Shares methods of the Databoxedge service. +type SharesClient struct { + BaseClient +} + +// NewSharesClient creates an instance of the SharesClient client. +func NewSharesClient(subscriptionID string) SharesClient { + return NewSharesClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewSharesClientWithBaseURI creates an instance of the SharesClient client. +func NewSharesClientWithBaseURI(baseURI string, subscriptionID string) SharesClient { + return SharesClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate sends the create or update request. +// Parameters: +// deviceName - the device name. +// name - the share name. +// share - the share properties. +// resourceGroupName - the resource group name. +func (client SharesClient) CreateOrUpdate(ctx context.Context, deviceName string, name string, share Share, resourceGroupName string) (result SharesCreateOrUpdateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/SharesClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: share, + Constraints: []validation.Constraint{{Target: "share.ShareProperties", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "share.ShareProperties.AzureContainerInfo", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "share.ShareProperties.AzureContainerInfo.StorageAccountCredentialID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "share.ShareProperties.AzureContainerInfo.ContainerName", Name: validation.Null, Rule: true, Chain: nil}, + }}, + }}}}}); err != nil { + return result, validation.NewError("databoxedge.SharesClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, deviceName, name, share, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + result, err = client.CreateOrUpdateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "CreateOrUpdate", result.Response(), "Failure sending request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client SharesClient) CreateOrUpdatePreparer(ctx context.Context, deviceName string, name string, share Share, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/shares/{name}", pathParameters), + autorest.WithJSON(share), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client SharesClient) CreateOrUpdateSender(req *http.Request) (future SharesCreateOrUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client SharesClient) CreateOrUpdateResponder(resp *http.Response) (result Share, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes the share on the data box edge/gateway device. +// Parameters: +// deviceName - the device name. +// name - the share name. +// resourceGroupName - the resource group name. +func (client SharesClient) Delete(ctx context.Context, deviceName string, name string, resourceGroupName string) (result SharesDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/SharesClient.Delete") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "Delete", result.Response(), "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client SharesClient) DeletePreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/shares/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client SharesClient) DeleteSender(req *http.Request) (future SharesDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client SharesClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get sends the get request. +// Parameters: +// deviceName - the device name. +// name - the share name. +// resourceGroupName - the resource group name. +func (client SharesClient) Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result Share, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/SharesClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client SharesClient) GetPreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/shares/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client SharesClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client SharesClient) GetResponder(resp *http.Response) (result Share, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// ListByDataBoxEdgeDevice sends the list by data box edge device request. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client SharesClient) ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result ShareListPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/SharesClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.sl.Response.Response != nil { + sc = result.sl.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listByDataBoxEdgeDeviceNextResults + req, err := client.ListByDataBoxEdgeDevicePreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "ListByDataBoxEdgeDevice", nil, "Failure preparing request") + return + } + + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.sl.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "ListByDataBoxEdgeDevice", resp, "Failure sending request") + return + } + + result.sl, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "ListByDataBoxEdgeDevice", resp, "Failure responding to request") + } + + return +} + +// ListByDataBoxEdgeDevicePreparer prepares the ListByDataBoxEdgeDevice request. +func (client SharesClient) ListByDataBoxEdgeDevicePreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/shares", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByDataBoxEdgeDeviceSender sends the ListByDataBoxEdgeDevice request. The method will close the +// http.Response Body if it receives an error. +func (client SharesClient) ListByDataBoxEdgeDeviceSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListByDataBoxEdgeDeviceResponder handles the response to the ListByDataBoxEdgeDevice request. The method always +// closes the http.Response Body. +func (client SharesClient) ListByDataBoxEdgeDeviceResponder(resp *http.Response) (result ShareList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listByDataBoxEdgeDeviceNextResults retrieves the next set of results, if any. +func (client SharesClient) listByDataBoxEdgeDeviceNextResults(ctx context.Context, lastResults ShareList) (result ShareList, err error) { + req, err := lastResults.shareListPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "databoxedge.SharesClient", "listByDataBoxEdgeDeviceNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "databoxedge.SharesClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure sending next results request") + } + result, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListByDataBoxEdgeDeviceComplete enumerates all values, automatically crossing page boundaries as required. +func (client SharesClient) ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string) (result ShareListIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/SharesClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListByDataBoxEdgeDevice(ctx, deviceName, resourceGroupName) + return +} + +// Refresh sends the refresh request. +// Parameters: +// deviceName - the device name. +// name - the share name. +// resourceGroupName - the resource group name. +func (client SharesClient) Refresh(ctx context.Context, deviceName string, name string, resourceGroupName string) (result SharesRefreshFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/SharesClient.Refresh") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.RefreshPreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "Refresh", nil, "Failure preparing request") + return + } + + result, err = client.RefreshSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "Refresh", result.Response(), "Failure sending request") + return + } + + return +} + +// RefreshPreparer prepares the Refresh request. +func (client SharesClient) RefreshPreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/shares/{name}/refresh", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RefreshSender sends the Refresh request. The method will close the +// http.Response Body if it receives an error. +func (client SharesClient) RefreshSender(req *http.Request) (future SharesRefreshFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// RefreshResponder handles the response to the Refresh request. The method always +// closes the http.Response Body. +func (client SharesClient) RefreshResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} diff --git a/services/databoxedge/mgmt/2019-03-01/databoxedge/storageaccountcredentials.go b/services/databoxedge/mgmt/2019-03-01/databoxedge/storageaccountcredentials.go new file mode 100644 index 000000000000..4eb785135af9 --- /dev/null +++ b/services/databoxedge/mgmt/2019-03-01/databoxedge/storageaccountcredentials.go @@ -0,0 +1,406 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// StorageAccountCredentialsClient is the client for the StorageAccountCredentials methods of the Databoxedge service. +type StorageAccountCredentialsClient struct { + BaseClient +} + +// NewStorageAccountCredentialsClient creates an instance of the StorageAccountCredentialsClient client. +func NewStorageAccountCredentialsClient(subscriptionID string) StorageAccountCredentialsClient { + return NewStorageAccountCredentialsClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewStorageAccountCredentialsClientWithBaseURI creates an instance of the StorageAccountCredentialsClient client. +func NewStorageAccountCredentialsClientWithBaseURI(baseURI string, subscriptionID string) StorageAccountCredentialsClient { + return StorageAccountCredentialsClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate creates or updates the storage account credential. +// Parameters: +// deviceName - the device name. +// name - the storage account credential name. +// storageAccountCredential - the storage account credential. +// resourceGroupName - the resource group name. +func (client StorageAccountCredentialsClient) CreateOrUpdate(ctx context.Context, deviceName string, name string, storageAccountCredential StorageAccountCredential, resourceGroupName string) (result StorageAccountCredentialsCreateOrUpdateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StorageAccountCredentialsClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: storageAccountCredential, + Constraints: []validation.Constraint{{Target: "storageAccountCredential.StorageAccountCredentialProperties", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "storageAccountCredential.StorageAccountCredentialProperties.Alias", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "storageAccountCredential.StorageAccountCredentialProperties.AccountKey", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "storageAccountCredential.StorageAccountCredentialProperties.AccountKey.Value", Name: validation.Null, Rule: true, Chain: nil}}}, + }}}}}); err != nil { + return result, validation.NewError("databoxedge.StorageAccountCredentialsClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, deviceName, name, storageAccountCredential, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + result, err = client.CreateOrUpdateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "CreateOrUpdate", result.Response(), "Failure sending request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client StorageAccountCredentialsClient) CreateOrUpdatePreparer(ctx context.Context, deviceName string, name string, storageAccountCredential StorageAccountCredential, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/storageAccountCredentials/{name}", pathParameters), + autorest.WithJSON(storageAccountCredential), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client StorageAccountCredentialsClient) CreateOrUpdateSender(req *http.Request) (future StorageAccountCredentialsCreateOrUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client StorageAccountCredentialsClient) CreateOrUpdateResponder(resp *http.Response) (result StorageAccountCredential, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes the storage account credential. +// Parameters: +// deviceName - the device name. +// name - the storage account credential name. +// resourceGroupName - the resource group name. +func (client StorageAccountCredentialsClient) Delete(ctx context.Context, deviceName string, name string, resourceGroupName string) (result StorageAccountCredentialsDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StorageAccountCredentialsClient.Delete") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "Delete", result.Response(), "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client StorageAccountCredentialsClient) DeletePreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/storageAccountCredentials/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client StorageAccountCredentialsClient) DeleteSender(req *http.Request) (future StorageAccountCredentialsDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client StorageAccountCredentialsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get gets the properties of the specified storage account credential. +// Parameters: +// deviceName - the device name. +// name - the storage account credential name. +// resourceGroupName - the resource group name. +func (client StorageAccountCredentialsClient) Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result StorageAccountCredential, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StorageAccountCredentialsClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client StorageAccountCredentialsClient) GetPreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/storageAccountCredentials/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client StorageAccountCredentialsClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client StorageAccountCredentialsClient) GetResponder(resp *http.Response) (result StorageAccountCredential, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// ListByDataBoxEdgeDevice sends the list by data box edge device request. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client StorageAccountCredentialsClient) ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result StorageAccountCredentialListPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StorageAccountCredentialsClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.sacl.Response.Response != nil { + sc = result.sacl.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listByDataBoxEdgeDeviceNextResults + req, err := client.ListByDataBoxEdgeDevicePreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "ListByDataBoxEdgeDevice", nil, "Failure preparing request") + return + } + + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.sacl.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "ListByDataBoxEdgeDevice", resp, "Failure sending request") + return + } + + result.sacl, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "ListByDataBoxEdgeDevice", resp, "Failure responding to request") + } + + return +} + +// ListByDataBoxEdgeDevicePreparer prepares the ListByDataBoxEdgeDevice request. +func (client StorageAccountCredentialsClient) ListByDataBoxEdgeDevicePreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/storageAccountCredentials", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByDataBoxEdgeDeviceSender sends the ListByDataBoxEdgeDevice request. The method will close the +// http.Response Body if it receives an error. +func (client StorageAccountCredentialsClient) ListByDataBoxEdgeDeviceSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListByDataBoxEdgeDeviceResponder handles the response to the ListByDataBoxEdgeDevice request. The method always +// closes the http.Response Body. +func (client StorageAccountCredentialsClient) ListByDataBoxEdgeDeviceResponder(resp *http.Response) (result StorageAccountCredentialList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listByDataBoxEdgeDeviceNextResults retrieves the next set of results, if any. +func (client StorageAccountCredentialsClient) listByDataBoxEdgeDeviceNextResults(ctx context.Context, lastResults StorageAccountCredentialList) (result StorageAccountCredentialList, err error) { + req, err := lastResults.storageAccountCredentialListPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "listByDataBoxEdgeDeviceNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure sending next results request") + } + result, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListByDataBoxEdgeDeviceComplete enumerates all values, automatically crossing page boundaries as required. +func (client StorageAccountCredentialsClient) ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string) (result StorageAccountCredentialListIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StorageAccountCredentialsClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListByDataBoxEdgeDevice(ctx, deviceName, resourceGroupName) + return +} diff --git a/services/databoxedge/mgmt/2019-03-01/databoxedge/triggers.go b/services/databoxedge/mgmt/2019-03-01/databoxedge/triggers.go new file mode 100644 index 000000000000..47ab4172d287 --- /dev/null +++ b/services/databoxedge/mgmt/2019-03-01/databoxedge/triggers.go @@ -0,0 +1,399 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// TriggersClient is the client for the Triggers methods of the Databoxedge service. +type TriggersClient struct { + BaseClient +} + +// NewTriggersClient creates an instance of the TriggersClient client. +func NewTriggersClient(subscriptionID string) TriggersClient { + return NewTriggersClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewTriggersClientWithBaseURI creates an instance of the TriggersClient client. +func NewTriggersClientWithBaseURI(baseURI string, subscriptionID string) TriggersClient { + return TriggersClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate creates or updates a trigger. +// Parameters: +// deviceName - creates or updates a trigger +// name - the trigger name. +// trigger - the trigger. +// resourceGroupName - the resource group name. +func (client TriggersClient) CreateOrUpdate(ctx context.Context, deviceName string, name string, trigger BasicTrigger, resourceGroupName string) (result TriggersCreateOrUpdateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/TriggersClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.CreateOrUpdatePreparer(ctx, deviceName, name, trigger, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + result, err = client.CreateOrUpdateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "CreateOrUpdate", result.Response(), "Failure sending request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client TriggersClient) CreateOrUpdatePreparer(ctx context.Context, deviceName string, name string, trigger BasicTrigger, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/triggers/{name}", pathParameters), + autorest.WithJSON(trigger), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client TriggersClient) CreateOrUpdateSender(req *http.Request) (future TriggersCreateOrUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client TriggersClient) CreateOrUpdateResponder(resp *http.Response) (result TriggerModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes the trigger on the gateway device. +// Parameters: +// deviceName - the device name. +// name - the trigger name. +// resourceGroupName - the resource group name. +func (client TriggersClient) Delete(ctx context.Context, deviceName string, name string, resourceGroupName string) (result TriggersDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/TriggersClient.Delete") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "Delete", result.Response(), "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client TriggersClient) DeletePreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/triggers/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client TriggersClient) DeleteSender(req *http.Request) (future TriggersDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client TriggersClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get get a specific trigger by name. +// Parameters: +// deviceName - the device name. +// name - the trigger name. +// resourceGroupName - the resource group name. +func (client TriggersClient) Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result TriggerModel, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/TriggersClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client TriggersClient) GetPreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/triggers/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client TriggersClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client TriggersClient) GetResponder(resp *http.Response) (result TriggerModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// ListByDataBoxEdgeDevice lists all the triggers configured in the device. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +// expand - specify $filter='CustomContextTag eq ' to filter on custom context tag property +func (client TriggersClient) ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string, expand string) (result TriggerListPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/TriggersClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.tl.Response.Response != nil { + sc = result.tl.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listByDataBoxEdgeDeviceNextResults + req, err := client.ListByDataBoxEdgeDevicePreparer(ctx, deviceName, resourceGroupName, expand) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "ListByDataBoxEdgeDevice", nil, "Failure preparing request") + return + } + + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.tl.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "ListByDataBoxEdgeDevice", resp, "Failure sending request") + return + } + + result.tl, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "ListByDataBoxEdgeDevice", resp, "Failure responding to request") + } + + return +} + +// ListByDataBoxEdgeDevicePreparer prepares the ListByDataBoxEdgeDevice request. +func (client TriggersClient) ListByDataBoxEdgeDevicePreparer(ctx context.Context, deviceName string, resourceGroupName string, expand string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(expand) > 0 { + queryParameters["$expand"] = autorest.Encode("query", expand) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/triggers", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByDataBoxEdgeDeviceSender sends the ListByDataBoxEdgeDevice request. The method will close the +// http.Response Body if it receives an error. +func (client TriggersClient) ListByDataBoxEdgeDeviceSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListByDataBoxEdgeDeviceResponder handles the response to the ListByDataBoxEdgeDevice request. The method always +// closes the http.Response Body. +func (client TriggersClient) ListByDataBoxEdgeDeviceResponder(resp *http.Response) (result TriggerList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listByDataBoxEdgeDeviceNextResults retrieves the next set of results, if any. +func (client TriggersClient) listByDataBoxEdgeDeviceNextResults(ctx context.Context, lastResults TriggerList) (result TriggerList, err error) { + req, err := lastResults.triggerListPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "listByDataBoxEdgeDeviceNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure sending next results request") + } + result, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListByDataBoxEdgeDeviceComplete enumerates all values, automatically crossing page boundaries as required. +func (client TriggersClient) ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string, expand string) (result TriggerListIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/TriggersClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListByDataBoxEdgeDevice(ctx, deviceName, resourceGroupName, expand) + return +} diff --git a/services/databoxedge/mgmt/2019-03-01/databoxedge/users.go b/services/databoxedge/mgmt/2019-03-01/databoxedge/users.go new file mode 100644 index 000000000000..7fba6cb567c2 --- /dev/null +++ b/services/databoxedge/mgmt/2019-03-01/databoxedge/users.go @@ -0,0 +1,405 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// UsersClient is the client for the Users methods of the Databoxedge service. +type UsersClient struct { + BaseClient +} + +// NewUsersClient creates an instance of the UsersClient client. +func NewUsersClient(subscriptionID string) UsersClient { + return NewUsersClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewUsersClientWithBaseURI creates an instance of the UsersClient client. +func NewUsersClientWithBaseURI(baseURI string, subscriptionID string) UsersClient { + return UsersClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate creates a new user or updates an existing user's information on a data box edge/gateway device. +// Parameters: +// deviceName - the device name. +// name - the user name. +// userParameter - the user details. +// resourceGroupName - the resource group name. +func (client UsersClient) CreateOrUpdate(ctx context.Context, deviceName string, name string, userParameter User, resourceGroupName string) (result UsersCreateOrUpdateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/UsersClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: userParameter, + Constraints: []validation.Constraint{{Target: "userParameter.UserProperties", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "userParameter.UserProperties.EncryptedPassword", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "userParameter.UserProperties.EncryptedPassword.Value", Name: validation.Null, Rule: true, Chain: nil}}}, + }}}}}); err != nil { + return result, validation.NewError("databoxedge.UsersClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, deviceName, name, userParameter, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + result, err = client.CreateOrUpdateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersClient", "CreateOrUpdate", result.Response(), "Failure sending request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client UsersClient) CreateOrUpdatePreparer(ctx context.Context, deviceName string, name string, userParameter User, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/users/{name}", pathParameters), + autorest.WithJSON(userParameter), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client UsersClient) CreateOrUpdateSender(req *http.Request) (future UsersCreateOrUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client UsersClient) CreateOrUpdateResponder(resp *http.Response) (result User, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes the user on a databox edge/gateway device. +// Parameters: +// deviceName - the device name. +// name - the user name. +// resourceGroupName - the resource group name. +func (client UsersClient) Delete(ctx context.Context, deviceName string, name string, resourceGroupName string) (result UsersDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/UsersClient.Delete") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersClient", "Delete", result.Response(), "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client UsersClient) DeletePreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/users/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client UsersClient) DeleteSender(req *http.Request) (future UsersDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client UsersClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get gets the properties of the specified user. +// Parameters: +// deviceName - the device name. +// name - the user name. +// resourceGroupName - the resource group name. +func (client UsersClient) Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result User, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/UsersClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.UsersClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client UsersClient) GetPreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/users/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client UsersClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client UsersClient) GetResponder(resp *http.Response) (result User, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// ListByDataBoxEdgeDevice gets all the users registered on a data box edge/gateway device. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client UsersClient) ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result UserListPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/UsersClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.ul.Response.Response != nil { + sc = result.ul.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listByDataBoxEdgeDeviceNextResults + req, err := client.ListByDataBoxEdgeDevicePreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersClient", "ListByDataBoxEdgeDevice", nil, "Failure preparing request") + return + } + + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.ul.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.UsersClient", "ListByDataBoxEdgeDevice", resp, "Failure sending request") + return + } + + result.ul, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersClient", "ListByDataBoxEdgeDevice", resp, "Failure responding to request") + } + + return +} + +// ListByDataBoxEdgeDevicePreparer prepares the ListByDataBoxEdgeDevice request. +func (client UsersClient) ListByDataBoxEdgeDevicePreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-03-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/users", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByDataBoxEdgeDeviceSender sends the ListByDataBoxEdgeDevice request. The method will close the +// http.Response Body if it receives an error. +func (client UsersClient) ListByDataBoxEdgeDeviceSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListByDataBoxEdgeDeviceResponder handles the response to the ListByDataBoxEdgeDevice request. The method always +// closes the http.Response Body. +func (client UsersClient) ListByDataBoxEdgeDeviceResponder(resp *http.Response) (result UserList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listByDataBoxEdgeDeviceNextResults retrieves the next set of results, if any. +func (client UsersClient) listByDataBoxEdgeDeviceNextResults(ctx context.Context, lastResults UserList) (result UserList, err error) { + req, err := lastResults.userListPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "databoxedge.UsersClient", "listByDataBoxEdgeDeviceNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "databoxedge.UsersClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure sending next results request") + } + result, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListByDataBoxEdgeDeviceComplete enumerates all values, automatically crossing page boundaries as required. +func (client UsersClient) ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string) (result UserListIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/UsersClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListByDataBoxEdgeDevice(ctx, deviceName, resourceGroupName) + return +} diff --git a/services/databoxedge/mgmt/2019-03-01/databoxedge/version.go b/services/databoxedge/mgmt/2019-03-01/databoxedge/version.go new file mode 100644 index 000000000000..b390cf60a53e --- /dev/null +++ b/services/databoxedge/mgmt/2019-03-01/databoxedge/version.go @@ -0,0 +1,30 @@ +package databoxedge + +import "github.com/Azure/azure-sdk-for-go/version" + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +// UserAgent returns the UserAgent string to use when sending http.Requests. +func UserAgent() string { + return "Azure-SDK-For-Go/" + version.Number + " databoxedge/2019-03-01" +} + +// Version returns the semantic version (see http://semver.org) of the client. +func Version() string { + return version.Number +} diff --git a/services/databoxedge/mgmt/2019-07-01/databoxedge/alerts.go b/services/databoxedge/mgmt/2019-07-01/databoxedge/alerts.go new file mode 100644 index 000000000000..942ea572ba27 --- /dev/null +++ b/services/databoxedge/mgmt/2019-07-01/databoxedge/alerts.go @@ -0,0 +1,235 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// AlertsClient is the client for the Alerts methods of the Databoxedge service. +type AlertsClient struct { + BaseClient +} + +// NewAlertsClient creates an instance of the AlertsClient client. +func NewAlertsClient(subscriptionID string) AlertsClient { + return NewAlertsClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewAlertsClientWithBaseURI creates an instance of the AlertsClient client. +func NewAlertsClientWithBaseURI(baseURI string, subscriptionID string) AlertsClient { + return AlertsClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// Get sends the get request. +// Parameters: +// deviceName - the device name. +// name - the alert name. +// resourceGroupName - the resource group name. +func (client AlertsClient) Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result Alert, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AlertsClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.AlertsClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.AlertsClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.AlertsClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client AlertsClient) GetPreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/alerts/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client AlertsClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client AlertsClient) GetResponder(resp *http.Response) (result Alert, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// ListByDataBoxEdgeDevice gets all the alerts for a Data Box Edge/Data Box Gateway device. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client AlertsClient) ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result AlertListPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AlertsClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.al.Response.Response != nil { + sc = result.al.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listByDataBoxEdgeDeviceNextResults + req, err := client.ListByDataBoxEdgeDevicePreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.AlertsClient", "ListByDataBoxEdgeDevice", nil, "Failure preparing request") + return + } + + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.al.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.AlertsClient", "ListByDataBoxEdgeDevice", resp, "Failure sending request") + return + } + + result.al, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.AlertsClient", "ListByDataBoxEdgeDevice", resp, "Failure responding to request") + } + + return +} + +// ListByDataBoxEdgeDevicePreparer prepares the ListByDataBoxEdgeDevice request. +func (client AlertsClient) ListByDataBoxEdgeDevicePreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/alerts", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByDataBoxEdgeDeviceSender sends the ListByDataBoxEdgeDevice request. The method will close the +// http.Response Body if it receives an error. +func (client AlertsClient) ListByDataBoxEdgeDeviceSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListByDataBoxEdgeDeviceResponder handles the response to the ListByDataBoxEdgeDevice request. The method always +// closes the http.Response Body. +func (client AlertsClient) ListByDataBoxEdgeDeviceResponder(resp *http.Response) (result AlertList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listByDataBoxEdgeDeviceNextResults retrieves the next set of results, if any. +func (client AlertsClient) listByDataBoxEdgeDeviceNextResults(ctx context.Context, lastResults AlertList) (result AlertList, err error) { + req, err := lastResults.alertListPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "databoxedge.AlertsClient", "listByDataBoxEdgeDeviceNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "databoxedge.AlertsClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure sending next results request") + } + result, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.AlertsClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListByDataBoxEdgeDeviceComplete enumerates all values, automatically crossing page boundaries as required. +func (client AlertsClient) ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string) (result AlertListIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AlertsClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListByDataBoxEdgeDevice(ctx, deviceName, resourceGroupName) + return +} diff --git a/services/databoxedge/mgmt/2019-07-01/databoxedge/bandwidthschedules.go b/services/databoxedge/mgmt/2019-07-01/databoxedge/bandwidthschedules.go new file mode 100644 index 000000000000..8224612fd704 --- /dev/null +++ b/services/databoxedge/mgmt/2019-07-01/databoxedge/bandwidthschedules.go @@ -0,0 +1,407 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// BandwidthSchedulesClient is the client for the BandwidthSchedules methods of the Databoxedge service. +type BandwidthSchedulesClient struct { + BaseClient +} + +// NewBandwidthSchedulesClient creates an instance of the BandwidthSchedulesClient client. +func NewBandwidthSchedulesClient(subscriptionID string) BandwidthSchedulesClient { + return NewBandwidthSchedulesClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewBandwidthSchedulesClientWithBaseURI creates an instance of the BandwidthSchedulesClient client. +func NewBandwidthSchedulesClientWithBaseURI(baseURI string, subscriptionID string) BandwidthSchedulesClient { + return BandwidthSchedulesClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate creates or updates a bandwidth schedule. +// Parameters: +// deviceName - the device name. +// name - the bandwidth schedule name which needs to be added/updated. +// parameters - the bandwidth schedule to be added or updated. +// resourceGroupName - the resource group name. +func (client BandwidthSchedulesClient) CreateOrUpdate(ctx context.Context, deviceName string, name string, parameters BandwidthSchedule, resourceGroupName string) (result BandwidthSchedulesCreateOrUpdateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BandwidthSchedulesClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: parameters, + Constraints: []validation.Constraint{{Target: "parameters.BandwidthScheduleProperties", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "parameters.BandwidthScheduleProperties.Start", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.BandwidthScheduleProperties.Stop", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.BandwidthScheduleProperties.RateInMbps", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "parameters.BandwidthScheduleProperties.Days", Name: validation.Null, Rule: true, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("databoxedge.BandwidthSchedulesClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, deviceName, name, parameters, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + result, err = client.CreateOrUpdateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "CreateOrUpdate", result.Response(), "Failure sending request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client BandwidthSchedulesClient) CreateOrUpdatePreparer(ctx context.Context, deviceName string, name string, parameters BandwidthSchedule, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/bandwidthSchedules/{name}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client BandwidthSchedulesClient) CreateOrUpdateSender(req *http.Request) (future BandwidthSchedulesCreateOrUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client BandwidthSchedulesClient) CreateOrUpdateResponder(resp *http.Response) (result BandwidthSchedule, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes the specified bandwidth schedule. +// Parameters: +// deviceName - the device name. +// name - the bandwidth schedule name. +// resourceGroupName - the resource group name. +func (client BandwidthSchedulesClient) Delete(ctx context.Context, deviceName string, name string, resourceGroupName string) (result BandwidthSchedulesDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BandwidthSchedulesClient.Delete") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "Delete", result.Response(), "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client BandwidthSchedulesClient) DeletePreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/bandwidthSchedules/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client BandwidthSchedulesClient) DeleteSender(req *http.Request) (future BandwidthSchedulesDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client BandwidthSchedulesClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get gets the properties of the specified bandwidth schedule. +// Parameters: +// deviceName - the device name. +// name - the bandwidth schedule name. +// resourceGroupName - the resource group name. +func (client BandwidthSchedulesClient) Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result BandwidthSchedule, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BandwidthSchedulesClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client BandwidthSchedulesClient) GetPreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/bandwidthSchedules/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client BandwidthSchedulesClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client BandwidthSchedulesClient) GetResponder(resp *http.Response) (result BandwidthSchedule, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// ListByDataBoxEdgeDevice gets all the bandwidth schedules for a Data Box Edge/Data Box Gateway device. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client BandwidthSchedulesClient) ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result BandwidthSchedulesListPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BandwidthSchedulesClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.bsl.Response.Response != nil { + sc = result.bsl.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listByDataBoxEdgeDeviceNextResults + req, err := client.ListByDataBoxEdgeDevicePreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "ListByDataBoxEdgeDevice", nil, "Failure preparing request") + return + } + + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.bsl.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "ListByDataBoxEdgeDevice", resp, "Failure sending request") + return + } + + result.bsl, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "ListByDataBoxEdgeDevice", resp, "Failure responding to request") + } + + return +} + +// ListByDataBoxEdgeDevicePreparer prepares the ListByDataBoxEdgeDevice request. +func (client BandwidthSchedulesClient) ListByDataBoxEdgeDevicePreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/bandwidthSchedules", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByDataBoxEdgeDeviceSender sends the ListByDataBoxEdgeDevice request. The method will close the +// http.Response Body if it receives an error. +func (client BandwidthSchedulesClient) ListByDataBoxEdgeDeviceSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListByDataBoxEdgeDeviceResponder handles the response to the ListByDataBoxEdgeDevice request. The method always +// closes the http.Response Body. +func (client BandwidthSchedulesClient) ListByDataBoxEdgeDeviceResponder(resp *http.Response) (result BandwidthSchedulesList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listByDataBoxEdgeDeviceNextResults retrieves the next set of results, if any. +func (client BandwidthSchedulesClient) listByDataBoxEdgeDeviceNextResults(ctx context.Context, lastResults BandwidthSchedulesList) (result BandwidthSchedulesList, err error) { + req, err := lastResults.bandwidthSchedulesListPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "listByDataBoxEdgeDeviceNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure sending next results request") + } + result, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListByDataBoxEdgeDeviceComplete enumerates all values, automatically crossing page boundaries as required. +func (client BandwidthSchedulesClient) ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string) (result BandwidthSchedulesListIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BandwidthSchedulesClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListByDataBoxEdgeDevice(ctx, deviceName, resourceGroupName) + return +} diff --git a/services/databoxedge/mgmt/2019-07-01/databoxedge/client.go b/services/databoxedge/mgmt/2019-07-01/databoxedge/client.go new file mode 100644 index 000000000000..36593d1fec80 --- /dev/null +++ b/services/databoxedge/mgmt/2019-07-01/databoxedge/client.go @@ -0,0 +1,51 @@ +// Package databoxedge implements the Azure ARM Databoxedge service API version 2019-07-01. +// +// +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "github.com/Azure/go-autorest/autorest" +) + +const ( + // DefaultBaseURI is the default URI used for the service Databoxedge + DefaultBaseURI = "https://management.azure.com" +) + +// BaseClient is the base client for Databoxedge. +type BaseClient struct { + autorest.Client + BaseURI string + SubscriptionID string +} + +// New creates an instance of the BaseClient client. +func New(subscriptionID string) BaseClient { + return NewWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewWithBaseURI creates an instance of the BaseClient client. +func NewWithBaseURI(baseURI string, subscriptionID string) BaseClient { + return BaseClient{ + Client: autorest.NewClientWithUserAgent(UserAgent()), + BaseURI: baseURI, + SubscriptionID: subscriptionID, + } +} diff --git a/services/databoxedge/mgmt/2019-07-01/databoxedge/databoxedgeapi/interfaces.go b/services/databoxedge/mgmt/2019-07-01/databoxedge/databoxedgeapi/interfaces.go new file mode 100644 index 000000000000..545baab9a791 --- /dev/null +++ b/services/databoxedge/mgmt/2019-07-01/databoxedge/databoxedgeapi/interfaces.go @@ -0,0 +1,150 @@ +package databoxedgeapi + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/2019-07-01/databoxedge" +) + +// OperationsClientAPI contains the set of methods on the OperationsClient type. +type OperationsClientAPI interface { + List(ctx context.Context) (result databoxedge.OperationsListPage, err error) +} + +var _ OperationsClientAPI = (*databoxedge.OperationsClient)(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) + 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) + ListBySubscription(ctx context.Context, expand string) (result databoxedge.DeviceListPage, 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) + 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) +} + +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) +} + +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.NodeList, 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) +} + +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) +} + +var _ RolesClientAPI = (*databoxedge.RolesClient)(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) + 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) +} + +var _ StorageAccountCredentialsClientAPI = (*databoxedge.StorageAccountCredentialsClient)(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, expand string) (result databoxedge.TriggerListPage, 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) (result databoxedge.UserListPage, err error) +} + +var _ UsersClientAPI = (*databoxedge.UsersClient)(nil) diff --git a/services/databoxedge/mgmt/2019-07-01/databoxedge/devices.go b/services/databoxedge/mgmt/2019-07-01/databoxedge/devices.go new file mode 100644 index 000000000000..3ba730cbaca4 --- /dev/null +++ b/services/databoxedge/mgmt/2019-07-01/databoxedge/devices.go @@ -0,0 +1,1229 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// DevicesClient is the client for the Devices methods of the Databoxedge service. +type DevicesClient struct { + BaseClient +} + +// NewDevicesClient creates an instance of the DevicesClient client. +func NewDevicesClient(subscriptionID string) DevicesClient { + return NewDevicesClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewDevicesClientWithBaseURI creates an instance of the DevicesClient client. +func NewDevicesClientWithBaseURI(baseURI string, subscriptionID string) DevicesClient { + return DevicesClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate creates or updates a Data Box Edge/Data Box Gateway resource. +// Parameters: +// deviceName - the device name. +// dataBoxEdgeDevice - the resource object. +// resourceGroupName - the resource group name. +func (client DevicesClient) CreateOrUpdate(ctx context.Context, deviceName string, dataBoxEdgeDevice Device, resourceGroupName string) (result DevicesCreateOrUpdateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: dataBoxEdgeDevice, + Constraints: []validation.Constraint{{Target: "dataBoxEdgeDevice.Location", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("databoxedge.DevicesClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, deviceName, dataBoxEdgeDevice, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + result, err = client.CreateOrUpdateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "CreateOrUpdate", result.Response(), "Failure sending request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client DevicesClient) CreateOrUpdatePreparer(ctx context.Context, deviceName string, dataBoxEdgeDevice Device, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}", pathParameters), + autorest.WithJSON(dataBoxEdgeDevice), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) CreateOrUpdateSender(req *http.Request) (future DevicesCreateOrUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client DevicesClient) CreateOrUpdateResponder(resp *http.Response) (result Device, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// CreateOrUpdateSecuritySettings updates the security settings on a Data Box Edge/Data Box Gateway device. +// Parameters: +// deviceName - the device name. +// securitySettings - the security settings. +// resourceGroupName - the resource group name. +func (client DevicesClient) CreateOrUpdateSecuritySettings(ctx context.Context, deviceName string, securitySettings SecuritySettings, resourceGroupName string) (result DevicesCreateOrUpdateSecuritySettingsFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.CreateOrUpdateSecuritySettings") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: securitySettings, + Constraints: []validation.Constraint{{Target: "securitySettings.SecuritySettingsProperties", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "securitySettings.SecuritySettingsProperties.DeviceAdminPassword", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "securitySettings.SecuritySettingsProperties.DeviceAdminPassword.Value", Name: validation.Null, Rule: true, Chain: nil}}}, + }}}}}); err != nil { + return result, validation.NewError("databoxedge.DevicesClient", "CreateOrUpdateSecuritySettings", err.Error()) + } + + req, err := client.CreateOrUpdateSecuritySettingsPreparer(ctx, deviceName, securitySettings, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "CreateOrUpdateSecuritySettings", nil, "Failure preparing request") + return + } + + result, err = client.CreateOrUpdateSecuritySettingsSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "CreateOrUpdateSecuritySettings", result.Response(), "Failure sending request") + return + } + + return +} + +// CreateOrUpdateSecuritySettingsPreparer prepares the CreateOrUpdateSecuritySettings request. +func (client DevicesClient) CreateOrUpdateSecuritySettingsPreparer(ctx context.Context, deviceName string, securitySettings SecuritySettings, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/securitySettings/default/update", pathParameters), + autorest.WithJSON(securitySettings), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSecuritySettingsSender sends the CreateOrUpdateSecuritySettings request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) CreateOrUpdateSecuritySettingsSender(req *http.Request) (future DevicesCreateOrUpdateSecuritySettingsFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateOrUpdateSecuritySettingsResponder handles the response to the CreateOrUpdateSecuritySettings request. The method always +// closes the http.Response Body. +func (client DevicesClient) CreateOrUpdateSecuritySettingsResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Delete deletes the Data Box Edge/Data Box Gateway device. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client DevicesClient) Delete(ctx context.Context, deviceName string, resourceGroupName string) (result DevicesDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.Delete") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "Delete", result.Response(), "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client DevicesClient) DeletePreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) DeleteSender(req *http.Request) (future DevicesDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client DevicesClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// DownloadUpdates sends the download updates request. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client DevicesClient) DownloadUpdates(ctx context.Context, deviceName string, resourceGroupName string) (result DevicesDownloadUpdatesFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.DownloadUpdates") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DownloadUpdatesPreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "DownloadUpdates", nil, "Failure preparing request") + return + } + + result, err = client.DownloadUpdatesSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "DownloadUpdates", result.Response(), "Failure sending request") + return + } + + return +} + +// DownloadUpdatesPreparer prepares the DownloadUpdates request. +func (client DevicesClient) DownloadUpdatesPreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/downloadUpdates", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DownloadUpdatesSender sends the DownloadUpdates request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) DownloadUpdatesSender(req *http.Request) (future DevicesDownloadUpdatesFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// DownloadUpdatesResponder handles the response to the DownloadUpdates request. The method always +// closes the http.Response Body. +func (client DevicesClient) DownloadUpdatesResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get gets the properties of the Data Box Edge/Data Box Gateway device. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client DevicesClient) Get(ctx context.Context, deviceName string, resourceGroupName string) (result Device, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client DevicesClient) GetPreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client DevicesClient) GetResponder(resp *http.Response) (result Device, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetExtendedInformation gets additional information for the specified Data Box Edge/Data Box Gateway device. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client DevicesClient) GetExtendedInformation(ctx context.Context, deviceName string, resourceGroupName string) (result DeviceExtendedInfo, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.GetExtendedInformation") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetExtendedInformationPreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "GetExtendedInformation", nil, "Failure preparing request") + return + } + + resp, err := client.GetExtendedInformationSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "GetExtendedInformation", resp, "Failure sending request") + return + } + + result, err = client.GetExtendedInformationResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "GetExtendedInformation", resp, "Failure responding to request") + } + + return +} + +// GetExtendedInformationPreparer prepares the GetExtendedInformation request. +func (client DevicesClient) GetExtendedInformationPreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/getExtendedInformation", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetExtendedInformationSender sends the GetExtendedInformation request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) GetExtendedInformationSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetExtendedInformationResponder handles the response to the GetExtendedInformation request. The method always +// closes the http.Response Body. +func (client DevicesClient) GetExtendedInformationResponder(resp *http.Response) (result DeviceExtendedInfo, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetNetworkSettings gets the network settings of the specified Data Box Edge/Data Box Gateway device. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client DevicesClient) GetNetworkSettings(ctx context.Context, deviceName string, resourceGroupName string) (result NetworkSettings, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.GetNetworkSettings") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetNetworkSettingsPreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "GetNetworkSettings", nil, "Failure preparing request") + return + } + + resp, err := client.GetNetworkSettingsSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "GetNetworkSettings", resp, "Failure sending request") + return + } + + result, err = client.GetNetworkSettingsResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "GetNetworkSettings", resp, "Failure responding to request") + } + + return +} + +// GetNetworkSettingsPreparer prepares the GetNetworkSettings request. +func (client DevicesClient) GetNetworkSettingsPreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/networkSettings/default", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetNetworkSettingsSender sends the GetNetworkSettings request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) GetNetworkSettingsSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetNetworkSettingsResponder handles the response to the GetNetworkSettings request. The method always +// closes the http.Response Body. +func (client DevicesClient) GetNetworkSettingsResponder(resp *http.Response) (result NetworkSettings, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// GetUpdateSummary sends the get update summary request. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client DevicesClient) GetUpdateSummary(ctx context.Context, deviceName string, resourceGroupName string) (result UpdateSummary, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.GetUpdateSummary") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetUpdateSummaryPreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "GetUpdateSummary", nil, "Failure preparing request") + return + } + + resp, err := client.GetUpdateSummarySender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "GetUpdateSummary", resp, "Failure sending request") + return + } + + result, err = client.GetUpdateSummaryResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "GetUpdateSummary", resp, "Failure responding to request") + } + + return +} + +// GetUpdateSummaryPreparer prepares the GetUpdateSummary request. +func (client DevicesClient) GetUpdateSummaryPreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/updateSummary/default", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetUpdateSummarySender sends the GetUpdateSummary request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) GetUpdateSummarySender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetUpdateSummaryResponder handles the response to the GetUpdateSummary request. The method always +// closes the http.Response Body. +func (client DevicesClient) GetUpdateSummaryResponder(resp *http.Response) (result UpdateSummary, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// InstallUpdates sends the install updates request. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client DevicesClient) InstallUpdates(ctx context.Context, deviceName string, resourceGroupName string) (result DevicesInstallUpdatesFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.InstallUpdates") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.InstallUpdatesPreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "InstallUpdates", nil, "Failure preparing request") + return + } + + result, err = client.InstallUpdatesSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "InstallUpdates", result.Response(), "Failure sending request") + return + } + + return +} + +// InstallUpdatesPreparer prepares the InstallUpdates request. +func (client DevicesClient) InstallUpdatesPreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/installUpdates", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// InstallUpdatesSender sends the InstallUpdates request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) InstallUpdatesSender(req *http.Request) (future DevicesInstallUpdatesFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// InstallUpdatesResponder handles the response to the InstallUpdates request. The method always +// closes the http.Response Body. +func (client DevicesClient) InstallUpdatesResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// ListByResourceGroup gets all the Data Box Edge/Data Box Gateway devices in a resource group. +// Parameters: +// resourceGroupName - the resource group name. +// expand - specify $expand=details to populate additional fields related to the resource or Specify +// $skipToken= to populate the next page in the list. +func (client DevicesClient) ListByResourceGroup(ctx context.Context, resourceGroupName string, expand string) (result DeviceListPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.ListByResourceGroup") + defer func() { + sc := -1 + if result.dl.Response.Response != nil { + sc = result.dl.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listByResourceGroupNextResults + req, err := client.ListByResourceGroupPreparer(ctx, resourceGroupName, expand) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "ListByResourceGroup", nil, "Failure preparing request") + return + } + + resp, err := client.ListByResourceGroupSender(req) + if err != nil { + result.dl.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "ListByResourceGroup", resp, "Failure sending request") + return + } + + result.dl, err = client.ListByResourceGroupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "ListByResourceGroup", resp, "Failure responding to request") + } + + return +} + +// ListByResourceGroupPreparer prepares the ListByResourceGroup request. +func (client DevicesClient) ListByResourceGroupPreparer(ctx context.Context, resourceGroupName string, expand string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(expand) > 0 { + queryParameters["$expand"] = autorest.Encode("query", expand) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByResourceGroupSender sends the ListByResourceGroup request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) ListByResourceGroupSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListByResourceGroupResponder handles the response to the ListByResourceGroup request. The method always +// closes the http.Response Body. +func (client DevicesClient) ListByResourceGroupResponder(resp *http.Response) (result DeviceList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listByResourceGroupNextResults retrieves the next set of results, if any. +func (client DevicesClient) listByResourceGroupNextResults(ctx context.Context, lastResults DeviceList) (result DeviceList, err error) { + req, err := lastResults.deviceListPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "listByResourceGroupNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListByResourceGroupSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "listByResourceGroupNextResults", resp, "Failure sending next results request") + } + result, err = client.ListByResourceGroupResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "listByResourceGroupNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListByResourceGroupComplete enumerates all values, automatically crossing page boundaries as required. +func (client DevicesClient) ListByResourceGroupComplete(ctx context.Context, resourceGroupName string, expand string) (result DeviceListIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.ListByResourceGroup") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListByResourceGroup(ctx, resourceGroupName, expand) + return +} + +// ListBySubscription gets all the Data Box Edge/Data Box Gateway devices in a subscription. +// Parameters: +// expand - specify $expand=details to populate additional fields related to the resource or Specify +// $skipToken= to populate the next page in the list. +func (client DevicesClient) ListBySubscription(ctx context.Context, expand string) (result DeviceListPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.ListBySubscription") + defer func() { + sc := -1 + if result.dl.Response.Response != nil { + sc = result.dl.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listBySubscriptionNextResults + req, err := client.ListBySubscriptionPreparer(ctx, expand) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "ListBySubscription", nil, "Failure preparing request") + return + } + + resp, err := client.ListBySubscriptionSender(req) + if err != nil { + result.dl.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "ListBySubscription", resp, "Failure sending request") + return + } + + result.dl, err = client.ListBySubscriptionResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "ListBySubscription", resp, "Failure responding to request") + } + + return +} + +// ListBySubscriptionPreparer prepares the ListBySubscription request. +func (client DevicesClient) ListBySubscriptionPreparer(ctx context.Context, expand string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(expand) > 0 { + queryParameters["$expand"] = autorest.Encode("query", expand) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListBySubscriptionSender sends the ListBySubscription request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) ListBySubscriptionSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListBySubscriptionResponder handles the response to the ListBySubscription request. The method always +// closes the http.Response Body. +func (client DevicesClient) ListBySubscriptionResponder(resp *http.Response) (result DeviceList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listBySubscriptionNextResults retrieves the next set of results, if any. +func (client DevicesClient) listBySubscriptionNextResults(ctx context.Context, lastResults DeviceList) (result DeviceList, err error) { + req, err := lastResults.deviceListPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "listBySubscriptionNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListBySubscriptionSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "listBySubscriptionNextResults", resp, "Failure sending next results request") + } + result, err = client.ListBySubscriptionResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "listBySubscriptionNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListBySubscriptionComplete enumerates all values, automatically crossing page boundaries as required. +func (client DevicesClient) ListBySubscriptionComplete(ctx context.Context, expand string) (result DeviceListIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.ListBySubscription") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListBySubscription(ctx, expand) + return +} + +// ScanForUpdates sends the scan for updates request. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client DevicesClient) ScanForUpdates(ctx context.Context, deviceName string, resourceGroupName string) (result DevicesScanForUpdatesFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.ScanForUpdates") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ScanForUpdatesPreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "ScanForUpdates", nil, "Failure preparing request") + return + } + + result, err = client.ScanForUpdatesSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "ScanForUpdates", result.Response(), "Failure sending request") + return + } + + return +} + +// ScanForUpdatesPreparer prepares the ScanForUpdates request. +func (client DevicesClient) ScanForUpdatesPreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/scanForUpdates", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ScanForUpdatesSender sends the ScanForUpdates request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) ScanForUpdatesSender(req *http.Request) (future DevicesScanForUpdatesFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// ScanForUpdatesResponder handles the response to the ScanForUpdates request. The method always +// closes the http.Response Body. +func (client DevicesClient) ScanForUpdatesResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} + +// Update modifies a Data Box Edge/Data Box Gateway resource. +// Parameters: +// deviceName - the device name. +// parameters - the resource parameters. +// resourceGroupName - the resource group name. +func (client DevicesClient) Update(ctx context.Context, deviceName string, parameters DevicePatch, resourceGroupName string) (result Device, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.Update") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.UpdatePreparer(ctx, deviceName, parameters, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "Update", nil, "Failure preparing request") + return + } + + resp, err := client.UpdateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "Update", resp, "Failure sending request") + return + } + + result, err = client.UpdateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "Update", resp, "Failure responding to request") + } + + return +} + +// UpdatePreparer prepares the Update request. +func (client DevicesClient) UpdatePreparer(ctx context.Context, deviceName string, parameters DevicePatch, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPatch(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UpdateSender sends the Update request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) UpdateSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// UpdateResponder handles the response to the Update request. The method always +// closes the http.Response Body. +func (client DevicesClient) UpdateResponder(resp *http.Response) (result Device, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// UploadCertificate uploads registration certificate for the device. +// Parameters: +// deviceName - the device name. +// parameters - the upload certificate request. +// resourceGroupName - the resource group name. +func (client DevicesClient) UploadCertificate(ctx context.Context, deviceName string, parameters UploadCertificateRequest, resourceGroupName string) (result UploadCertificateResponse, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DevicesClient.UploadCertificate") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: parameters, + Constraints: []validation.Constraint{{Target: "parameters.RawCertificateData", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "parameters.RawCertificateData.Certificate", Name: validation.Null, Rule: true, Chain: nil}}}}}}); err != nil { + return result, validation.NewError("databoxedge.DevicesClient", "UploadCertificate", err.Error()) + } + + req, err := client.UploadCertificatePreparer(ctx, deviceName, parameters, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "UploadCertificate", nil, "Failure preparing request") + return + } + + resp, err := client.UploadCertificateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "UploadCertificate", resp, "Failure sending request") + return + } + + result, err = client.UploadCertificateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesClient", "UploadCertificate", resp, "Failure responding to request") + } + + return +} + +// UploadCertificatePreparer prepares the UploadCertificate request. +func (client DevicesClient) UploadCertificatePreparer(ctx context.Context, deviceName string, parameters UploadCertificateRequest, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/uploadCertificate", pathParameters), + autorest.WithJSON(parameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// UploadCertificateSender sends the UploadCertificate request. The method will close the +// http.Response Body if it receives an error. +func (client DevicesClient) UploadCertificateSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// UploadCertificateResponder handles the response to the UploadCertificate request. The method always +// closes the http.Response Body. +func (client DevicesClient) UploadCertificateResponder(resp *http.Response) (result UploadCertificateResponse, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/databoxedge/mgmt/2019-07-01/databoxedge/jobs.go b/services/databoxedge/mgmt/2019-07-01/databoxedge/jobs.go new file mode 100644 index 000000000000..cb77c8a60081 --- /dev/null +++ b/services/databoxedge/mgmt/2019-07-01/databoxedge/jobs.go @@ -0,0 +1,120 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// JobsClient is the client for the Jobs methods of the Databoxedge service. +type JobsClient struct { + BaseClient +} + +// NewJobsClient creates an instance of the JobsClient client. +func NewJobsClient(subscriptionID string) JobsClient { + return NewJobsClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewJobsClientWithBaseURI creates an instance of the JobsClient client. +func NewJobsClientWithBaseURI(baseURI string, subscriptionID string) JobsClient { + return JobsClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// Get sends the get request. +// Parameters: +// deviceName - the device name. +// name - the job name. +// resourceGroupName - the resource group name. +func (client JobsClient) Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result Job, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/JobsClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.JobsClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.JobsClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.JobsClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client JobsClient) GetPreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/jobs/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client JobsClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client JobsClient) GetResponder(resp *http.Response) (result Job, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/databoxedge/mgmt/2019-07-01/databoxedge/models.go b/services/databoxedge/mgmt/2019-07-01/databoxedge/models.go new file mode 100644 index 000000000000..0b13b5c4be4e --- /dev/null +++ b/services/databoxedge/mgmt/2019-07-01/databoxedge/models.go @@ -0,0 +1,5203 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "encoding/json" + "github.com/Azure/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/date" + "github.com/Azure/go-autorest/autorest/to" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// The package's fully qualified name. +const fqdn = "github.com/Azure/azure-sdk-for-go/services/databoxedge/mgmt/2019-07-01/databoxedge" + +// AccountType enumerates the values for account type. +type AccountType string + +const ( + // BlobStorage ... + BlobStorage AccountType = "BlobStorage" + // GeneralPurposeStorage ... + GeneralPurposeStorage AccountType = "GeneralPurposeStorage" +) + +// PossibleAccountTypeValues returns an array of possible values for the AccountType const type. +func PossibleAccountTypeValues() []AccountType { + return []AccountType{BlobStorage, GeneralPurposeStorage} +} + +// AlertSeverity enumerates the values for alert severity. +type AlertSeverity string + +const ( + // Critical ... + Critical AlertSeverity = "Critical" + // Informational ... + Informational AlertSeverity = "Informational" + // Warning ... + Warning AlertSeverity = "Warning" +) + +// PossibleAlertSeverityValues returns an array of possible values for the AlertSeverity const type. +func PossibleAlertSeverityValues() []AlertSeverity { + return []AlertSeverity{Critical, Informational, Warning} +} + +// AuthenticationType enumerates the values for authentication type. +type AuthenticationType string + +const ( + // AzureActiveDirectory ... + AzureActiveDirectory AuthenticationType = "AzureActiveDirectory" + // Invalid ... + Invalid AuthenticationType = "Invalid" +) + +// PossibleAuthenticationTypeValues returns an array of possible values for the AuthenticationType const type. +func PossibleAuthenticationTypeValues() []AuthenticationType { + return []AuthenticationType{AzureActiveDirectory, Invalid} +} + +// AzureContainerDataFormat enumerates the values for azure container data format. +type AzureContainerDataFormat string + +const ( + // AzureFile ... + AzureFile AzureContainerDataFormat = "AzureFile" + // BlockBlob ... + BlockBlob AzureContainerDataFormat = "BlockBlob" + // PageBlob ... + PageBlob AzureContainerDataFormat = "PageBlob" +) + +// PossibleAzureContainerDataFormatValues returns an array of possible values for the AzureContainerDataFormat const type. +func PossibleAzureContainerDataFormatValues() []AzureContainerDataFormat { + return []AzureContainerDataFormat{AzureFile, BlockBlob, PageBlob} +} + +// ClientPermissionType enumerates the values for client permission type. +type ClientPermissionType string + +const ( + // NoAccess ... + NoAccess ClientPermissionType = "NoAccess" + // ReadOnly ... + ReadOnly ClientPermissionType = "ReadOnly" + // ReadWrite ... + ReadWrite ClientPermissionType = "ReadWrite" +) + +// PossibleClientPermissionTypeValues returns an array of possible values for the ClientPermissionType const type. +func PossibleClientPermissionTypeValues() []ClientPermissionType { + return []ClientPermissionType{NoAccess, ReadOnly, ReadWrite} +} + +// DataPolicy enumerates the values for data policy. +type DataPolicy string + +const ( + // Cloud ... + Cloud DataPolicy = "Cloud" + // Local ... + Local DataPolicy = "Local" +) + +// PossibleDataPolicyValues returns an array of possible values for the DataPolicy const type. +func PossibleDataPolicyValues() []DataPolicy { + return []DataPolicy{Cloud, Local} +} + +// DayOfWeek enumerates the values for day of week. +type DayOfWeek string + +const ( + // Friday ... + Friday DayOfWeek = "Friday" + // Monday ... + Monday DayOfWeek = "Monday" + // Saturday ... + Saturday DayOfWeek = "Saturday" + // Sunday ... + Sunday DayOfWeek = "Sunday" + // Thursday ... + Thursday DayOfWeek = "Thursday" + // Tuesday ... + Tuesday DayOfWeek = "Tuesday" + // Wednesday ... + Wednesday DayOfWeek = "Wednesday" +) + +// PossibleDayOfWeekValues returns an array of possible values for the DayOfWeek const type. +func PossibleDayOfWeekValues() []DayOfWeek { + return []DayOfWeek{Friday, Monday, Saturday, Sunday, Thursday, Tuesday, Wednesday} +} + +// DeviceStatus enumerates the values for device status. +type DeviceStatus string + +const ( + // Disconnected ... + Disconnected DeviceStatus = "Disconnected" + // Maintenance ... + Maintenance DeviceStatus = "Maintenance" + // NeedsAttention ... + NeedsAttention DeviceStatus = "NeedsAttention" + // Offline ... + Offline DeviceStatus = "Offline" + // Online ... + Online DeviceStatus = "Online" + // PartiallyDisconnected ... + PartiallyDisconnected DeviceStatus = "PartiallyDisconnected" + // ReadyToSetup ... + ReadyToSetup DeviceStatus = "ReadyToSetup" +) + +// PossibleDeviceStatusValues returns an array of possible values for the DeviceStatus const type. +func PossibleDeviceStatusValues() []DeviceStatus { + return []DeviceStatus{Disconnected, Maintenance, NeedsAttention, Offline, Online, PartiallyDisconnected, ReadyToSetup} +} + +// DeviceType enumerates the values for device type. +type DeviceType string + +const ( + // DataBoxEdgeDevice ... + DataBoxEdgeDevice DeviceType = "DataBoxEdgeDevice" +) + +// PossibleDeviceTypeValues returns an array of possible values for the DeviceType const type. +func PossibleDeviceTypeValues() []DeviceType { + return []DeviceType{DataBoxEdgeDevice} +} + +// DownloadPhase enumerates the values for download phase. +type DownloadPhase string + +const ( + // Downloading ... + Downloading DownloadPhase = "Downloading" + // Initializing ... + Initializing DownloadPhase = "Initializing" + // Unknown ... + Unknown DownloadPhase = "Unknown" + // Verifying ... + Verifying DownloadPhase = "Verifying" +) + +// PossibleDownloadPhaseValues returns an array of possible values for the DownloadPhase const type. +func PossibleDownloadPhaseValues() []DownloadPhase { + return []DownloadPhase{Downloading, Initializing, Unknown, Verifying} +} + +// EncryptionAlgorithm enumerates the values for encryption algorithm. +type EncryptionAlgorithm string + +const ( + // AES256 ... + AES256 EncryptionAlgorithm = "AES256" + // None ... + None EncryptionAlgorithm = "None" + // RSAESPKCS1V15 ... + RSAESPKCS1V15 EncryptionAlgorithm = "RSAES_PKCS1_v_1_5" +) + +// PossibleEncryptionAlgorithmValues returns an array of possible values for the EncryptionAlgorithm const type. +func PossibleEncryptionAlgorithmValues() []EncryptionAlgorithm { + return []EncryptionAlgorithm{AES256, None, RSAESPKCS1V15} +} + +// InstallRebootBehavior enumerates the values for install reboot behavior. +type InstallRebootBehavior string + +const ( + // NeverReboots ... + NeverReboots InstallRebootBehavior = "NeverReboots" + // RequestReboot ... + RequestReboot InstallRebootBehavior = "RequestReboot" + // RequiresReboot ... + RequiresReboot InstallRebootBehavior = "RequiresReboot" +) + +// PossibleInstallRebootBehaviorValues returns an array of possible values for the InstallRebootBehavior const type. +func PossibleInstallRebootBehaviorValues() []InstallRebootBehavior { + return []InstallRebootBehavior{NeverReboots, RequestReboot, RequiresReboot} +} + +// JobStatus enumerates the values for job status. +type JobStatus string + +const ( + // JobStatusCanceled ... + JobStatusCanceled JobStatus = "Canceled" + // JobStatusFailed ... + JobStatusFailed JobStatus = "Failed" + // JobStatusInvalid ... + JobStatusInvalid JobStatus = "Invalid" + // JobStatusPaused ... + JobStatusPaused JobStatus = "Paused" + // JobStatusRunning ... + JobStatusRunning JobStatus = "Running" + // JobStatusScheduled ... + JobStatusScheduled JobStatus = "Scheduled" + // JobStatusSucceeded ... + JobStatusSucceeded JobStatus = "Succeeded" +) + +// PossibleJobStatusValues returns an array of possible values for the JobStatus const type. +func PossibleJobStatusValues() []JobStatus { + return []JobStatus{JobStatusCanceled, JobStatusFailed, JobStatusInvalid, JobStatusPaused, JobStatusRunning, JobStatusScheduled, JobStatusSucceeded} +} + +// JobType enumerates the values for job type. +type JobType string + +const ( + // JobTypeDownloadUpdates ... + JobTypeDownloadUpdates JobType = "DownloadUpdates" + // JobTypeInstallUpdates ... + JobTypeInstallUpdates JobType = "InstallUpdates" + // JobTypeInvalid ... + JobTypeInvalid JobType = "Invalid" + // JobTypeRefreshShare ... + JobTypeRefreshShare JobType = "RefreshShare" + // JobTypeScanForUpdates ... + JobTypeScanForUpdates JobType = "ScanForUpdates" +) + +// PossibleJobTypeValues returns an array of possible values for the JobType const type. +func PossibleJobTypeValues() []JobType { + return []JobType{JobTypeDownloadUpdates, JobTypeInstallUpdates, JobTypeInvalid, JobTypeRefreshShare, JobTypeScanForUpdates} +} + +// Kind enumerates the values for kind. +type Kind string + +const ( + // KindIOT ... + KindIOT Kind = "IOT" + // KindRole ... + KindRole Kind = "Role" +) + +// PossibleKindValues returns an array of possible values for the Kind const type. +func PossibleKindValues() []Kind { + return []Kind{KindIOT, KindRole} +} + +// KindBasicTrigger enumerates the values for kind basic trigger. +type KindBasicTrigger string + +const ( + // KindFileEvent ... + KindFileEvent KindBasicTrigger = "FileEvent" + // KindPeriodicTimerEvent ... + KindPeriodicTimerEvent KindBasicTrigger = "PeriodicTimerEvent" + // KindTrigger ... + KindTrigger KindBasicTrigger = "Trigger" +) + +// PossibleKindBasicTriggerValues returns an array of possible values for the KindBasicTrigger const type. +func PossibleKindBasicTriggerValues() []KindBasicTrigger { + return []KindBasicTrigger{KindFileEvent, KindPeriodicTimerEvent, KindTrigger} +} + +// MetricAggregationType enumerates the values for metric aggregation type. +type MetricAggregationType string + +const ( + // MetricAggregationTypeAverage ... + MetricAggregationTypeAverage MetricAggregationType = "Average" + // MetricAggregationTypeCount ... + MetricAggregationTypeCount MetricAggregationType = "Count" + // MetricAggregationTypeMaximum ... + MetricAggregationTypeMaximum MetricAggregationType = "Maximum" + // MetricAggregationTypeMinimum ... + MetricAggregationTypeMinimum MetricAggregationType = "Minimum" + // MetricAggregationTypeNone ... + MetricAggregationTypeNone MetricAggregationType = "None" + // MetricAggregationTypeNotSpecified ... + MetricAggregationTypeNotSpecified MetricAggregationType = "NotSpecified" + // MetricAggregationTypeTotal ... + MetricAggregationTypeTotal MetricAggregationType = "Total" +) + +// PossibleMetricAggregationTypeValues returns an array of possible values for the MetricAggregationType const type. +func PossibleMetricAggregationTypeValues() []MetricAggregationType { + return []MetricAggregationType{MetricAggregationTypeAverage, MetricAggregationTypeCount, MetricAggregationTypeMaximum, MetricAggregationTypeMinimum, MetricAggregationTypeNone, MetricAggregationTypeNotSpecified, MetricAggregationTypeTotal} +} + +// MetricCategory enumerates the values for metric category. +type MetricCategory string + +const ( + // Capacity ... + Capacity MetricCategory = "Capacity" + // Transaction ... + Transaction MetricCategory = "Transaction" +) + +// PossibleMetricCategoryValues returns an array of possible values for the MetricCategory const type. +func PossibleMetricCategoryValues() []MetricCategory { + return []MetricCategory{Capacity, Transaction} +} + +// MetricUnit enumerates the values for metric unit. +type MetricUnit string + +const ( + // Bytes ... + Bytes MetricUnit = "Bytes" + // BytesPerSecond ... + BytesPerSecond MetricUnit = "BytesPerSecond" + // Count ... + Count MetricUnit = "Count" + // CountPerSecond ... + CountPerSecond MetricUnit = "CountPerSecond" + // Milliseconds ... + Milliseconds MetricUnit = "Milliseconds" + // NotSpecified ... + NotSpecified MetricUnit = "NotSpecified" + // Percent ... + Percent MetricUnit = "Percent" + // Seconds ... + Seconds MetricUnit = "Seconds" +) + +// PossibleMetricUnitValues returns an array of possible values for the MetricUnit const type. +func PossibleMetricUnitValues() []MetricUnit { + return []MetricUnit{Bytes, BytesPerSecond, Count, CountPerSecond, Milliseconds, NotSpecified, Percent, Seconds} +} + +// MonitoringStatus enumerates the values for monitoring status. +type MonitoringStatus string + +const ( + // Disabled ... + Disabled MonitoringStatus = "Disabled" + // Enabled ... + Enabled MonitoringStatus = "Enabled" +) + +// PossibleMonitoringStatusValues returns an array of possible values for the MonitoringStatus const type. +func PossibleMonitoringStatusValues() []MonitoringStatus { + return []MonitoringStatus{Disabled, Enabled} +} + +// NetworkAdapterDHCPStatus enumerates the values for network adapter dhcp status. +type NetworkAdapterDHCPStatus string + +const ( + // NetworkAdapterDHCPStatusDisabled ... + NetworkAdapterDHCPStatusDisabled NetworkAdapterDHCPStatus = "Disabled" + // NetworkAdapterDHCPStatusEnabled ... + NetworkAdapterDHCPStatusEnabled NetworkAdapterDHCPStatus = "Enabled" +) + +// PossibleNetworkAdapterDHCPStatusValues returns an array of possible values for the NetworkAdapterDHCPStatus const type. +func PossibleNetworkAdapterDHCPStatusValues() []NetworkAdapterDHCPStatus { + return []NetworkAdapterDHCPStatus{NetworkAdapterDHCPStatusDisabled, NetworkAdapterDHCPStatusEnabled} +} + +// NetworkAdapterRDMAStatus enumerates the values for network adapter rdma status. +type NetworkAdapterRDMAStatus string + +const ( + // Capable ... + Capable NetworkAdapterRDMAStatus = "Capable" + // Incapable ... + Incapable NetworkAdapterRDMAStatus = "Incapable" +) + +// PossibleNetworkAdapterRDMAStatusValues returns an array of possible values for the NetworkAdapterRDMAStatus const type. +func PossibleNetworkAdapterRDMAStatusValues() []NetworkAdapterRDMAStatus { + return []NetworkAdapterRDMAStatus{Capable, Incapable} +} + +// NetworkAdapterStatus enumerates the values for network adapter status. +type NetworkAdapterStatus string + +const ( + // Active ... + Active NetworkAdapterStatus = "Active" + // Inactive ... + Inactive NetworkAdapterStatus = "Inactive" +) + +// PossibleNetworkAdapterStatusValues returns an array of possible values for the NetworkAdapterStatus const type. +func PossibleNetworkAdapterStatusValues() []NetworkAdapterStatus { + return []NetworkAdapterStatus{Active, Inactive} +} + +// NetworkGroup enumerates the values for network group. +type NetworkGroup string + +const ( + // NetworkGroupNone ... + NetworkGroupNone NetworkGroup = "None" + // NetworkGroupNonRDMA ... + NetworkGroupNonRDMA NetworkGroup = "NonRDMA" + // NetworkGroupRDMA ... + NetworkGroupRDMA NetworkGroup = "RDMA" +) + +// PossibleNetworkGroupValues returns an array of possible values for the NetworkGroup const type. +func PossibleNetworkGroupValues() []NetworkGroup { + return []NetworkGroup{NetworkGroupNone, NetworkGroupNonRDMA, NetworkGroupRDMA} +} + +// NodeStatus enumerates the values for node status. +type NodeStatus string + +const ( + // NodeStatusDown ... + NodeStatusDown NodeStatus = "Down" + // NodeStatusRebooting ... + NodeStatusRebooting NodeStatus = "Rebooting" + // NodeStatusShuttingDown ... + NodeStatusShuttingDown NodeStatus = "ShuttingDown" + // NodeStatusUnknown ... + NodeStatusUnknown NodeStatus = "Unknown" + // NodeStatusUp ... + NodeStatusUp NodeStatus = "Up" +) + +// PossibleNodeStatusValues returns an array of possible values for the NodeStatus const type. +func PossibleNodeStatusValues() []NodeStatus { + return []NodeStatus{NodeStatusDown, NodeStatusRebooting, NodeStatusShuttingDown, NodeStatusUnknown, NodeStatusUp} +} + +// OrderState enumerates the values for order state. +type OrderState string + +const ( + // Arriving ... + Arriving OrderState = "Arriving" + // AwaitingFulfilment ... + AwaitingFulfilment OrderState = "AwaitingFulfilment" + // AwaitingPreparation ... + AwaitingPreparation OrderState = "AwaitingPreparation" + // AwaitingReturnShipment ... + AwaitingReturnShipment OrderState = "AwaitingReturnShipment" + // AwaitingShipment ... + AwaitingShipment OrderState = "AwaitingShipment" + // CollectedAtMicrosoft ... + CollectedAtMicrosoft OrderState = "CollectedAtMicrosoft" + // Declined ... + Declined OrderState = "Declined" + // Delivered ... + Delivered OrderState = "Delivered" + // LostDevice ... + LostDevice OrderState = "LostDevice" + // ReplacementRequested ... + ReplacementRequested OrderState = "ReplacementRequested" + // ReturnInitiated ... + ReturnInitiated OrderState = "ReturnInitiated" + // Shipped ... + Shipped OrderState = "Shipped" + // ShippedBack ... + ShippedBack OrderState = "ShippedBack" + // Untracked ... + Untracked OrderState = "Untracked" +) + +// PossibleOrderStateValues returns an array of possible values for the OrderState const type. +func PossibleOrderStateValues() []OrderState { + return []OrderState{Arriving, AwaitingFulfilment, AwaitingPreparation, AwaitingReturnShipment, AwaitingShipment, CollectedAtMicrosoft, Declined, Delivered, LostDevice, ReplacementRequested, ReturnInitiated, Shipped, ShippedBack, Untracked} +} + +// PlatformType enumerates the values for platform type. +type PlatformType string + +const ( + // Linux ... + Linux PlatformType = "Linux" + // Windows ... + Windows PlatformType = "Windows" +) + +// PossiblePlatformTypeValues returns an array of possible values for the PlatformType const type. +func PossiblePlatformTypeValues() []PlatformType { + return []PlatformType{Linux, Windows} +} + +// RoleStatus enumerates the values for role status. +type RoleStatus string + +const ( + // RoleStatusDisabled ... + RoleStatusDisabled RoleStatus = "Disabled" + // RoleStatusEnabled ... + RoleStatusEnabled RoleStatus = "Enabled" +) + +// PossibleRoleStatusValues returns an array of possible values for the RoleStatus const type. +func PossibleRoleStatusValues() []RoleStatus { + return []RoleStatus{RoleStatusDisabled, RoleStatusEnabled} +} + +// RoleTypes enumerates the values for role types. +type RoleTypes string + +const ( + // ASA ... + ASA RoleTypes = "ASA" + // Cognitive ... + Cognitive RoleTypes = "Cognitive" + // Functions ... + Functions RoleTypes = "Functions" + // IOT ... + IOT RoleTypes = "IOT" +) + +// PossibleRoleTypesValues returns an array of possible values for the RoleTypes const type. +func PossibleRoleTypesValues() []RoleTypes { + return []RoleTypes{ASA, Cognitive, Functions, IOT} +} + +// ShareAccessProtocol enumerates the values for share access protocol. +type ShareAccessProtocol string + +const ( + // NFS ... + NFS ShareAccessProtocol = "NFS" + // SMB ... + SMB ShareAccessProtocol = "SMB" +) + +// PossibleShareAccessProtocolValues returns an array of possible values for the ShareAccessProtocol const type. +func PossibleShareAccessProtocolValues() []ShareAccessProtocol { + return []ShareAccessProtocol{NFS, SMB} +} + +// ShareAccessType enumerates the values for share access type. +type ShareAccessType string + +const ( + // Change ... + Change ShareAccessType = "Change" + // Custom ... + Custom ShareAccessType = "Custom" + // Read ... + Read ShareAccessType = "Read" +) + +// PossibleShareAccessTypeValues returns an array of possible values for the ShareAccessType const type. +func PossibleShareAccessTypeValues() []ShareAccessType { + return []ShareAccessType{Change, Custom, Read} +} + +// ShareStatus enumerates the values for share status. +type ShareStatus string + +const ( + // ShareStatusNeedsAttention ... + ShareStatusNeedsAttention ShareStatus = "NeedsAttention" + // ShareStatusOffline ... + ShareStatusOffline ShareStatus = "Offline" + // ShareStatusOK ... + ShareStatusOK ShareStatus = "OK" + // ShareStatusUnknown ... + ShareStatusUnknown ShareStatus = "Unknown" + // ShareStatusUpdating ... + ShareStatusUpdating ShareStatus = "Updating" +) + +// PossibleShareStatusValues returns an array of possible values for the ShareStatus const type. +func PossibleShareStatusValues() []ShareStatus { + return []ShareStatus{ShareStatusNeedsAttention, ShareStatusOffline, ShareStatusOK, ShareStatusUnknown, ShareStatusUpdating} +} + +// SkuName enumerates the values for sku name. +type SkuName string + +const ( + // Edge ... + Edge SkuName = "Edge" + // Gateway ... + Gateway SkuName = "Gateway" +) + +// PossibleSkuNameValues returns an array of possible values for the SkuName const type. +func PossibleSkuNameValues() []SkuName { + return []SkuName{Edge, Gateway} +} + +// SkuTier enumerates the values for sku tier. +type SkuTier string + +const ( + // Standard ... + Standard SkuTier = "Standard" +) + +// PossibleSkuTierValues returns an array of possible values for the SkuTier const type. +func PossibleSkuTierValues() []SkuTier { + return []SkuTier{Standard} +} + +// SSLStatus enumerates the values for ssl status. +type SSLStatus string + +const ( + // SSLStatusDisabled ... + SSLStatusDisabled SSLStatus = "Disabled" + // SSLStatusEnabled ... + SSLStatusEnabled SSLStatus = "Enabled" +) + +// PossibleSSLStatusValues returns an array of possible values for the SSLStatus const type. +func PossibleSSLStatusValues() []SSLStatus { + return []SSLStatus{SSLStatusDisabled, SSLStatusEnabled} +} + +// TimeGrain enumerates the values for time grain. +type TimeGrain string + +const ( + // PT12H ... + PT12H TimeGrain = "PT12H" + // PT15M ... + PT15M TimeGrain = "PT15M" + // PT1D ... + PT1D TimeGrain = "PT1D" + // PT1H ... + PT1H TimeGrain = "PT1H" + // PT1M ... + PT1M TimeGrain = "PT1M" + // PT30M ... + PT30M TimeGrain = "PT30M" + // PT5M ... + PT5M TimeGrain = "PT5M" + // PT6H ... + PT6H TimeGrain = "PT6H" +) + +// PossibleTimeGrainValues returns an array of possible values for the TimeGrain const type. +func PossibleTimeGrainValues() []TimeGrain { + return []TimeGrain{PT12H, PT15M, PT1D, PT1H, PT1M, PT30M, PT5M, PT6H} +} + +// UpdateOperation enumerates the values for update operation. +type UpdateOperation string + +const ( + // UpdateOperationDownload ... + UpdateOperationDownload UpdateOperation = "Download" + // UpdateOperationInstall ... + UpdateOperationInstall UpdateOperation = "Install" + // UpdateOperationNone ... + UpdateOperationNone UpdateOperation = "None" + // UpdateOperationScan ... + UpdateOperationScan UpdateOperation = "Scan" +) + +// PossibleUpdateOperationValues returns an array of possible values for the UpdateOperation const type. +func PossibleUpdateOperationValues() []UpdateOperation { + return []UpdateOperation{UpdateOperationDownload, UpdateOperationInstall, UpdateOperationNone, UpdateOperationScan} +} + +// UpdateOperationStage enumerates the values for update operation stage. +type UpdateOperationStage string + +const ( + // UpdateOperationStageDownloadComplete ... + UpdateOperationStageDownloadComplete UpdateOperationStage = "DownloadComplete" + // UpdateOperationStageDownloadFailed ... + UpdateOperationStageDownloadFailed UpdateOperationStage = "DownloadFailed" + // UpdateOperationStageDownloadStarted ... + UpdateOperationStageDownloadStarted UpdateOperationStage = "DownloadStarted" + // UpdateOperationStageFailure ... + UpdateOperationStageFailure UpdateOperationStage = "Failure" + // UpdateOperationStageInitial ... + UpdateOperationStageInitial UpdateOperationStage = "Initial" + // UpdateOperationStageInstallComplete ... + UpdateOperationStageInstallComplete UpdateOperationStage = "InstallComplete" + // UpdateOperationStageInstallFailed ... + UpdateOperationStageInstallFailed UpdateOperationStage = "InstallFailed" + // UpdateOperationStageInstallStarted ... + UpdateOperationStageInstallStarted UpdateOperationStage = "InstallStarted" + // UpdateOperationStageRebootInitiated ... + UpdateOperationStageRebootInitiated UpdateOperationStage = "RebootInitiated" + // UpdateOperationStageRescanComplete ... + UpdateOperationStageRescanComplete UpdateOperationStage = "RescanComplete" + // UpdateOperationStageRescanFailed ... + UpdateOperationStageRescanFailed UpdateOperationStage = "RescanFailed" + // UpdateOperationStageRescanStarted ... + UpdateOperationStageRescanStarted UpdateOperationStage = "RescanStarted" + // UpdateOperationStageScanComplete ... + UpdateOperationStageScanComplete UpdateOperationStage = "ScanComplete" + // UpdateOperationStageScanFailed ... + UpdateOperationStageScanFailed UpdateOperationStage = "ScanFailed" + // UpdateOperationStageScanStarted ... + UpdateOperationStageScanStarted UpdateOperationStage = "ScanStarted" + // UpdateOperationStageSuccess ... + UpdateOperationStageSuccess UpdateOperationStage = "Success" + // UpdateOperationStageUnknown ... + UpdateOperationStageUnknown UpdateOperationStage = "Unknown" +) + +// PossibleUpdateOperationStageValues returns an array of possible values for the UpdateOperationStage const type. +func PossibleUpdateOperationStageValues() []UpdateOperationStage { + return []UpdateOperationStage{UpdateOperationStageDownloadComplete, UpdateOperationStageDownloadFailed, UpdateOperationStageDownloadStarted, UpdateOperationStageFailure, UpdateOperationStageInitial, UpdateOperationStageInstallComplete, UpdateOperationStageInstallFailed, UpdateOperationStageInstallStarted, UpdateOperationStageRebootInitiated, UpdateOperationStageRescanComplete, UpdateOperationStageRescanFailed, UpdateOperationStageRescanStarted, UpdateOperationStageScanComplete, UpdateOperationStageScanFailed, UpdateOperationStageScanStarted, UpdateOperationStageSuccess, UpdateOperationStageUnknown} +} + +// Address the shipping address of the customer. +type Address struct { + // AddressLine1 - The address line1. + AddressLine1 *string `json:"addressLine1,omitempty"` + // AddressLine2 - The address line2. + AddressLine2 *string `json:"addressLine2,omitempty"` + // AddressLine3 - The address line3. + AddressLine3 *string `json:"addressLine3,omitempty"` + // PostalCode - The postal code. + PostalCode *string `json:"postalCode,omitempty"` + // City - The city name. + City *string `json:"city,omitempty"` + // State - The state name. + State *string `json:"state,omitempty"` + // Country - The country name. + Country *string `json:"country,omitempty"` +} + +// Alert alert on the data box edge/gateway device. +type Alert struct { + autorest.Response `json:"-"` + // AlertProperties - READ-ONLY; Properties of alert. + *AlertProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for Alert. +func (a Alert) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for Alert struct. +func (a *Alert) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var alertProperties AlertProperties + err = json.Unmarshal(*v, &alertProperties) + if err != nil { + return err + } + a.AlertProperties = &alertProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + a.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + a.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + a.Type = &typeVar + } + } + } + + return nil +} + +// AlertErrorDetails error details for the alert. +type AlertErrorDetails struct { + // ErrorCode - READ-ONLY; Error code. + ErrorCode *string `json:"errorCode,omitempty"` + // ErrorMessage - READ-ONLY; Error Message. + ErrorMessage *string `json:"errorMessage,omitempty"` + // Occurrences - READ-ONLY; Number of occurrences. + Occurrences *int32 `json:"occurrences,omitempty"` +} + +// AlertList collection of alerts. +type AlertList struct { + autorest.Response `json:"-"` + // Value - READ-ONLY; The value. + Value *[]Alert `json:"value,omitempty"` + // NextLink - READ-ONLY; Link to the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// AlertListIterator provides access to a complete listing of Alert values. +type AlertListIterator struct { + i int + page AlertListPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *AlertListIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AlertListIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *AlertListIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter AlertListIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter AlertListIterator) Response() AlertList { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter AlertListIterator) Value() Alert { + if !iter.page.NotDone() { + return Alert{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the AlertListIterator type. +func NewAlertListIterator(page AlertListPage) AlertListIterator { + return AlertListIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (al AlertList) IsEmpty() bool { + return al.Value == nil || len(*al.Value) == 0 +} + +// alertListPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (al AlertList) alertListPreparer(ctx context.Context) (*http.Request, error) { + if al.NextLink == nil || len(to.String(al.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(al.NextLink))) +} + +// AlertListPage contains a page of Alert values. +type AlertListPage struct { + fn func(context.Context, AlertList) (AlertList, error) + al AlertList +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *AlertListPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/AlertListPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + next, err := page.fn(ctx, page.al) + if err != nil { + return err + } + page.al = next + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *AlertListPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page AlertListPage) NotDone() bool { + return !page.al.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page AlertListPage) Response() AlertList { + return page.al +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page AlertListPage) Values() []Alert { + if page.al.IsEmpty() { + return nil + } + return *page.al.Value +} + +// Creates a new instance of the AlertListPage type. +func NewAlertListPage(getNextPage func(context.Context, AlertList) (AlertList, error)) AlertListPage { + return AlertListPage{fn: getNextPage} +} + +// AlertProperties properties of alert. +type AlertProperties struct { + // Title - READ-ONLY; Alert title. + Title *string `json:"title,omitempty"` + // AlertType - READ-ONLY; Alert type. + AlertType *string `json:"alertType,omitempty"` + // AppearedAtDateTime - READ-ONLY; UTC time when the alert appeared. + AppearedAtDateTime *date.Time `json:"appearedAtDateTime,omitempty"` + // Recommendation - READ-ONLY; Alert recommendation. + Recommendation *string `json:"recommendation,omitempty"` + // Severity - READ-ONLY; Severity of the alert. Possible values include: 'Informational', 'Warning', 'Critical' + Severity AlertSeverity `json:"severity,omitempty"` + // ErrorDetails - READ-ONLY; Error details of the alert. + ErrorDetails *AlertErrorDetails `json:"errorDetails,omitempty"` + // DetailedInformation - READ-ONLY; Alert details. + DetailedInformation map[string]*string `json:"detailedInformation"` +} + +// MarshalJSON is the custom marshaler for AlertProperties. +func (ap AlertProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// ARMBaseModel represents the base class for all object models. +type ARMBaseModel struct { + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// AsymmetricEncryptedSecret represent the secrets intended for encryption with asymmetric key pair. +type AsymmetricEncryptedSecret struct { + // Value - The value of the secret. + Value *string `json:"value,omitempty"` + // EncryptionCertThumbprint - Thumbprint certificate used to encrypt \"Value\". If the value is unencrypted, it will be null. + EncryptionCertThumbprint *string `json:"encryptionCertThumbprint,omitempty"` + // EncryptionAlgorithm - The algorithm used to encrypt "Value". Possible values include: 'None', 'AES256', 'RSAESPKCS1V15' + EncryptionAlgorithm EncryptionAlgorithm `json:"encryptionAlgorithm,omitempty"` +} + +// Authentication authentication mechanism for IoT devices. +type Authentication struct { + // SymmetricKey - Symmetric key for authentication. + SymmetricKey *SymmetricKey `json:"symmetricKey,omitempty"` +} + +// AzureContainerInfo azure container mapping of the endpoint. +type AzureContainerInfo struct { + // StorageAccountCredentialID - ID of the storage account credential used to access storage. + StorageAccountCredentialID *string `json:"storageAccountCredentialId,omitempty"` + // ContainerName - Container name (Based on the data format specified, this represents the name of Azure Files/Page blob/Block blob). + ContainerName *string `json:"containerName,omitempty"` + // DataFormat - Storage format used for the file represented by the share. Possible values include: 'BlockBlob', 'PageBlob', 'AzureFile' + DataFormat AzureContainerDataFormat `json:"dataFormat,omitempty"` +} + +// BandwidthSchedule the bandwidth schedule details. +type BandwidthSchedule struct { + autorest.Response `json:"-"` + // BandwidthScheduleProperties - The properties of the bandwidth schedule. + *BandwidthScheduleProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for BandwidthSchedule. +func (bs BandwidthSchedule) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if bs.BandwidthScheduleProperties != nil { + objectMap["properties"] = bs.BandwidthScheduleProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for BandwidthSchedule struct. +func (bs *BandwidthSchedule) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var bandwidthScheduleProperties BandwidthScheduleProperties + err = json.Unmarshal(*v, &bandwidthScheduleProperties) + if err != nil { + return err + } + bs.BandwidthScheduleProperties = &bandwidthScheduleProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + bs.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + bs.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + bs.Type = &typeVar + } + } + } + + return nil +} + +// BandwidthScheduleProperties the properties of the bandwidth schedule. +type BandwidthScheduleProperties struct { + // Start - The start time of the schedule in UTC. + Start *string `json:"start,omitempty"` + // Stop - The stop time of the schedule in UTC. + Stop *string `json:"stop,omitempty"` + // RateInMbps - The bandwidth rate in Mbps. + RateInMbps *int32 `json:"rateInMbps,omitempty"` + // Days - The days of the week when this schedule is applicable. + Days *[]DayOfWeek `json:"days,omitempty"` +} + +// BandwidthSchedulesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type BandwidthSchedulesCreateOrUpdateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *BandwidthSchedulesCreateOrUpdateFuture) Result(client BandwidthSchedulesClient) (bs BandwidthSchedule, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.BandwidthSchedulesCreateOrUpdateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if bs.Response.Response, err = future.GetResult(sender); err == nil && bs.Response.Response.StatusCode != http.StatusNoContent { + bs, err = client.CreateOrUpdateResponder(bs.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesCreateOrUpdateFuture", "Result", bs.Response.Response, "Failure responding to request") + } + } + return +} + +// BandwidthSchedulesDeleteFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type BandwidthSchedulesDeleteFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *BandwidthSchedulesDeleteFuture) Result(client BandwidthSchedulesClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.BandwidthSchedulesDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.BandwidthSchedulesDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// BandwidthSchedulesList the collection of bandwidth schedules. +type BandwidthSchedulesList struct { + autorest.Response `json:"-"` + // Value - READ-ONLY; The list of bandwidth schedules. + Value *[]BandwidthSchedule `json:"value,omitempty"` + // NextLink - READ-ONLY; Link to the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// BandwidthSchedulesListIterator provides access to a complete listing of BandwidthSchedule values. +type BandwidthSchedulesListIterator struct { + i int + page BandwidthSchedulesListPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *BandwidthSchedulesListIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BandwidthSchedulesListIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *BandwidthSchedulesListIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter BandwidthSchedulesListIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter BandwidthSchedulesListIterator) Response() BandwidthSchedulesList { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter BandwidthSchedulesListIterator) Value() BandwidthSchedule { + if !iter.page.NotDone() { + return BandwidthSchedule{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the BandwidthSchedulesListIterator type. +func NewBandwidthSchedulesListIterator(page BandwidthSchedulesListPage) BandwidthSchedulesListIterator { + return BandwidthSchedulesListIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (bsl BandwidthSchedulesList) IsEmpty() bool { + return bsl.Value == nil || len(*bsl.Value) == 0 +} + +// bandwidthSchedulesListPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (bsl BandwidthSchedulesList) bandwidthSchedulesListPreparer(ctx context.Context) (*http.Request, error) { + if bsl.NextLink == nil || len(to.String(bsl.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(bsl.NextLink))) +} + +// BandwidthSchedulesListPage contains a page of BandwidthSchedule values. +type BandwidthSchedulesListPage struct { + fn func(context.Context, BandwidthSchedulesList) (BandwidthSchedulesList, error) + bsl BandwidthSchedulesList +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *BandwidthSchedulesListPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/BandwidthSchedulesListPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + next, err := page.fn(ctx, page.bsl) + if err != nil { + return err + } + page.bsl = next + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *BandwidthSchedulesListPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page BandwidthSchedulesListPage) NotDone() bool { + return !page.bsl.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page BandwidthSchedulesListPage) Response() BandwidthSchedulesList { + return page.bsl +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page BandwidthSchedulesListPage) Values() []BandwidthSchedule { + if page.bsl.IsEmpty() { + return nil + } + return *page.bsl.Value +} + +// Creates a new instance of the BandwidthSchedulesListPage type. +func NewBandwidthSchedulesListPage(getNextPage func(context.Context, BandwidthSchedulesList) (BandwidthSchedulesList, error)) BandwidthSchedulesListPage { + return BandwidthSchedulesListPage{fn: getNextPage} +} + +// ClientAccessRight the mapping between a particular client IP and the type of access client has on the +// NFS share. +type ClientAccessRight struct { + // Client - IP of the client. + Client *string `json:"client,omitempty"` + // AccessPermission - Type of access to be allowed for the client. Possible values include: 'NoAccess', 'ReadOnly', 'ReadWrite' + AccessPermission ClientPermissionType `json:"accessPermission,omitempty"` +} + +// CloudError an error response from the service. +type CloudError struct { + // Error - The error details. + Error *CloudErrorBody `json:"error,omitempty"` +} + +// CloudErrorBody an error response from the service. +type CloudErrorBody struct { + // Code - An identifier for the error. Codes are invariant and are intended to be consumed programmatically. + Code *string `json:"code,omitempty"` + // Message - A message describing the error, intended to be suitable for display in a user interface. + Message *string `json:"message,omitempty"` + // Details - A list of additional details about the error. + Details *[]CloudErrorBody `json:"details,omitempty"` +} + +// ContactDetails contains all the contact details of the customer. +type ContactDetails struct { + // ContactPerson - The contact person name. + ContactPerson *string `json:"contactPerson,omitempty"` + // CompanyName - The name of the company. + CompanyName *string `json:"companyName,omitempty"` + // Phone - The phone number. + Phone *string `json:"phone,omitempty"` + // EmailList - The email list. + EmailList *[]string `json:"emailList,omitempty"` +} + +// Device the Data Box Edge/Gateway device. +type Device struct { + autorest.Response `json:"-"` + // Location - The location of the device. This is a supported and registered Azure geographical region (for example, West US, East US, or Southeast Asia). The geographical region of a device cannot be changed once it is created, but if an identical geographical region is specified on update, the request will succeed. + Location *string `json:"location,omitempty"` + // Tags - The list of tags that describe the device. These tags can be used to view and group this device (across resource groups). + Tags map[string]*string `json:"tags"` + // Sku - The SKU type. + Sku *Sku `json:"sku,omitempty"` + // Etag - The etag for the devices. + Etag *string `json:"etag,omitempty"` + // DeviceProperties - The properties of the Data Box Edge/Gateway device. + *DeviceProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for Device. +func (d Device) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if d.Location != nil { + objectMap["location"] = d.Location + } + if d.Tags != nil { + objectMap["tags"] = d.Tags + } + if d.Sku != nil { + objectMap["sku"] = d.Sku + } + if d.Etag != nil { + objectMap["etag"] = d.Etag + } + if d.DeviceProperties != nil { + objectMap["properties"] = d.DeviceProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for Device struct. +func (d *Device) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "location": + if v != nil { + var location string + err = json.Unmarshal(*v, &location) + if err != nil { + return err + } + d.Location = &location + } + case "tags": + if v != nil { + var tags map[string]*string + err = json.Unmarshal(*v, &tags) + if err != nil { + return err + } + d.Tags = tags + } + case "sku": + if v != nil { + var sku Sku + err = json.Unmarshal(*v, &sku) + if err != nil { + return err + } + d.Sku = &sku + } + case "etag": + if v != nil { + var etag string + err = json.Unmarshal(*v, &etag) + if err != nil { + return err + } + d.Etag = &etag + } + case "properties": + if v != nil { + var deviceProperties DeviceProperties + err = json.Unmarshal(*v, &deviceProperties) + if err != nil { + return err + } + d.DeviceProperties = &deviceProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + d.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + d.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + d.Type = &typeVar + } + } + } + + return nil +} + +// DeviceExtendedInfo the extended Info of the Data Box Edge/Gateway device. +type DeviceExtendedInfo struct { + autorest.Response `json:"-"` + // DeviceExtendedInfoProperties - The extended info properties. + *DeviceExtendedInfoProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for DeviceExtendedInfo. +func (dei DeviceExtendedInfo) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if dei.DeviceExtendedInfoProperties != nil { + objectMap["properties"] = dei.DeviceExtendedInfoProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for DeviceExtendedInfo struct. +func (dei *DeviceExtendedInfo) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var deviceExtendedInfoProperties DeviceExtendedInfoProperties + err = json.Unmarshal(*v, &deviceExtendedInfoProperties) + if err != nil { + return err + } + dei.DeviceExtendedInfoProperties = &deviceExtendedInfoProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + dei.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + dei.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + dei.Type = &typeVar + } + } + } + + return nil +} + +// DeviceExtendedInfoProperties the properties of the Data Box Edge/Gateway device extended info. +type DeviceExtendedInfoProperties struct { + // EncryptionKeyThumbprint - The digital signature of encrypted certificate. + EncryptionKeyThumbprint *string `json:"encryptionKeyThumbprint,omitempty"` + // EncryptionKey - The public part of the encryption certificate. Client uses this to encrypt any secret. + EncryptionKey *string `json:"encryptionKey,omitempty"` + // ResourceKey - READ-ONLY; The Resource ID of the Resource. + ResourceKey *string `json:"resourceKey,omitempty"` +} + +// DeviceList the collection of Data Box Edge/Gateway devices. +type DeviceList struct { + autorest.Response `json:"-"` + // Value - READ-ONLY; The list of Data Box Edge/Gateway devices. + Value *[]Device `json:"value,omitempty"` + // NextLink - READ-ONLY; Link to the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// DeviceListIterator provides access to a complete listing of Device values. +type DeviceListIterator struct { + i int + page DeviceListPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *DeviceListIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DeviceListIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *DeviceListIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter DeviceListIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter DeviceListIterator) Response() DeviceList { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter DeviceListIterator) Value() Device { + if !iter.page.NotDone() { + return Device{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the DeviceListIterator type. +func NewDeviceListIterator(page DeviceListPage) DeviceListIterator { + return DeviceListIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (dl DeviceList) IsEmpty() bool { + return dl.Value == nil || len(*dl.Value) == 0 +} + +// deviceListPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (dl DeviceList) deviceListPreparer(ctx context.Context) (*http.Request, error) { + if dl.NextLink == nil || len(to.String(dl.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(dl.NextLink))) +} + +// DeviceListPage contains a page of Device values. +type DeviceListPage struct { + fn func(context.Context, DeviceList) (DeviceList, error) + dl DeviceList +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *DeviceListPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/DeviceListPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + next, err := page.fn(ctx, page.dl) + if err != nil { + return err + } + page.dl = next + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *DeviceListPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page DeviceListPage) NotDone() bool { + return !page.dl.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page DeviceListPage) Response() DeviceList { + return page.dl +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page DeviceListPage) Values() []Device { + if page.dl.IsEmpty() { + return nil + } + return *page.dl.Value +} + +// Creates a new instance of the DeviceListPage type. +func NewDeviceListPage(getNextPage func(context.Context, DeviceList) (DeviceList, error)) DeviceListPage { + return DeviceListPage{fn: getNextPage} +} + +// DevicePatch the Data Box Edge/Gateway device patch. +type DevicePatch struct { + // Tags - The tags attached to the Data Box Edge/Gateway resource. + Tags map[string]*string `json:"tags"` +} + +// MarshalJSON is the custom marshaler for DevicePatch. +func (dp DevicePatch) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if dp.Tags != nil { + objectMap["tags"] = dp.Tags + } + return json.Marshal(objectMap) +} + +// DeviceProperties the properties of the Data Box Edge/Gateway device. +type DeviceProperties struct { + // DataBoxEdgeDeviceStatus - The status of the Data Box Edge/Gateway device. Possible values include: 'ReadyToSetup', 'Online', 'Offline', 'NeedsAttention', 'Disconnected', 'PartiallyDisconnected', 'Maintenance' + DataBoxEdgeDeviceStatus DeviceStatus `json:"dataBoxEdgeDeviceStatus,omitempty"` + // SerialNumber - READ-ONLY; The Serial Number of Data Box Edge/Gateway device. + SerialNumber *string `json:"serialNumber,omitempty"` + // Description - The Description of the Data Box Edge/Gateway device. + Description *string `json:"description,omitempty"` + // ModelDescription - The description of the Data Box Edge/Gateway device model. + ModelDescription *string `json:"modelDescription,omitempty"` + // DeviceType - READ-ONLY; The type of the Data Box Edge/Gateway device. Possible values include: 'DataBoxEdgeDevice' + DeviceType DeviceType `json:"deviceType,omitempty"` + // FriendlyName - The Data Box Edge/Gateway device name. + FriendlyName *string `json:"friendlyName,omitempty"` + // Culture - READ-ONLY; The Data Box Edge/Gateway device culture. + Culture *string `json:"culture,omitempty"` + // DeviceModel - READ-ONLY; The Data Box Edge/Gateway device model. + DeviceModel *string `json:"deviceModel,omitempty"` + // DeviceSoftwareVersion - READ-ONLY; The Data Box Edge/Gateway device software version. + DeviceSoftwareVersion *string `json:"deviceSoftwareVersion,omitempty"` + // DeviceLocalCapacity - READ-ONLY; The Data Box Edge/Gateway device local capacity in MB. + DeviceLocalCapacity *int64 `json:"deviceLocalCapacity,omitempty"` + // TimeZone - READ-ONLY; The Data Box Edge/Gateway device timezone. + TimeZone *string `json:"timeZone,omitempty"` + // DeviceHcsVersion - READ-ONLY; The device software version number of the device (eg: 1.2.18105.6). + DeviceHcsVersion *string `json:"deviceHcsVersion,omitempty"` + // ConfiguredRoleTypes - READ-ONLY; Type of compute roles configured. + ConfiguredRoleTypes *[]RoleTypes `json:"configuredRoleTypes,omitempty"` + // NodeCount - READ-ONLY; The number of nodes in the cluster. + NodeCount *int32 `json:"nodeCount,omitempty"` +} + +// DevicesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type DevicesCreateOrUpdateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *DevicesCreateOrUpdateFuture) Result(client DevicesClient) (d Device, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.DevicesCreateOrUpdateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if d.Response.Response, err = future.GetResult(sender); err == nil && d.Response.Response.StatusCode != http.StatusNoContent { + d, err = client.CreateOrUpdateResponder(d.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesCreateOrUpdateFuture", "Result", d.Response.Response, "Failure responding to request") + } + } + return +} + +// DevicesCreateOrUpdateSecuritySettingsFuture an abstraction for monitoring and retrieving the results of +// a long-running operation. +type DevicesCreateOrUpdateSecuritySettingsFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *DevicesCreateOrUpdateSecuritySettingsFuture) Result(client DevicesClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesCreateOrUpdateSecuritySettingsFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.DevicesCreateOrUpdateSecuritySettingsFuture") + return + } + ar.Response = future.Response() + return +} + +// DevicesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type DevicesDeleteFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *DevicesDeleteFuture) Result(client DevicesClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.DevicesDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// DevicesDownloadUpdatesFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type DevicesDownloadUpdatesFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *DevicesDownloadUpdatesFuture) Result(client DevicesClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesDownloadUpdatesFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.DevicesDownloadUpdatesFuture") + return + } + ar.Response = future.Response() + return +} + +// DevicesInstallUpdatesFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type DevicesInstallUpdatesFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *DevicesInstallUpdatesFuture) Result(client DevicesClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesInstallUpdatesFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.DevicesInstallUpdatesFuture") + return + } + ar.Response = future.Response() + return +} + +// DevicesScanForUpdatesFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type DevicesScanForUpdatesFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *DevicesScanForUpdatesFuture) Result(client DevicesClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.DevicesScanForUpdatesFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.DevicesScanForUpdatesFuture") + return + } + ar.Response = future.Response() + return +} + +// FileEventTrigger trigger details. +type FileEventTrigger struct { + // FileTriggerProperties - File trigger properties. + *FileTriggerProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` + // Kind - Possible values include: 'KindTrigger', 'KindFileEvent', 'KindPeriodicTimerEvent' + Kind KindBasicTrigger `json:"kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for FileEventTrigger. +func (fet FileEventTrigger) MarshalJSON() ([]byte, error) { + fet.Kind = KindFileEvent + objectMap := make(map[string]interface{}) + if fet.FileTriggerProperties != nil { + objectMap["properties"] = fet.FileTriggerProperties + } + if fet.Kind != "" { + objectMap["kind"] = fet.Kind + } + return json.Marshal(objectMap) +} + +// AsFileEventTrigger is the BasicTrigger implementation for FileEventTrigger. +func (fet FileEventTrigger) AsFileEventTrigger() (*FileEventTrigger, bool) { + return &fet, true +} + +// AsPeriodicTimerEventTrigger is the BasicTrigger implementation for FileEventTrigger. +func (fet FileEventTrigger) AsPeriodicTimerEventTrigger() (*PeriodicTimerEventTrigger, bool) { + return nil, false +} + +// AsTrigger is the BasicTrigger implementation for FileEventTrigger. +func (fet FileEventTrigger) AsTrigger() (*Trigger, bool) { + return nil, false +} + +// AsBasicTrigger is the BasicTrigger implementation for FileEventTrigger. +func (fet FileEventTrigger) AsBasicTrigger() (BasicTrigger, bool) { + return &fet, true +} + +// UnmarshalJSON is the custom unmarshaler for FileEventTrigger struct. +func (fet *FileEventTrigger) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var fileTriggerProperties FileTriggerProperties + err = json.Unmarshal(*v, &fileTriggerProperties) + if err != nil { + return err + } + fet.FileTriggerProperties = &fileTriggerProperties + } + case "kind": + if v != nil { + var kind KindBasicTrigger + err = json.Unmarshal(*v, &kind) + if err != nil { + return err + } + fet.Kind = kind + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + fet.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + fet.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + fet.Type = &typeVar + } + } + } + + return nil +} + +// FileSourceInfo file source details. +type FileSourceInfo struct { + // ShareID - File share ID. + ShareID *string `json:"shareId,omitempty"` +} + +// FileTriggerProperties file trigger properties. +type FileTriggerProperties struct { + // SourceInfo - File event source details. + SourceInfo *FileSourceInfo `json:"sourceInfo,omitempty"` + // SinkInfo - Role sink info. + SinkInfo *RoleSinkInfo `json:"sinkInfo,omitempty"` + // CustomContextTag - A custom context tag typically used to correlate the trigger against its usage. For example, if a periodic timer trigger is intended for certain specific IoT modules in the device, the tag can be the name or the image URL of the module. + CustomContextTag *string `json:"customContextTag,omitempty"` +} + +// IoTDeviceInfo metadata of IoT device/IoT Edge device to be configured. +type IoTDeviceInfo struct { + // DeviceID - ID of the IoT device/edge device. + DeviceID *string `json:"deviceId,omitempty"` + // IoTHostHub - Host name for the IoT hub associated to the device. + IoTHostHub *string `json:"ioTHostHub,omitempty"` + // IoTHostHubID - Id of the IoT hub associated to the device. + IoTHostHubID *string `json:"ioTHostHubId,omitempty"` + // Authentication - IoT device authentication info. + Authentication *Authentication `json:"authentication,omitempty"` +} + +// IoTRole compute role. +type IoTRole struct { + // IoTRoleProperties - Properties specific to IoT role. + *IoTRoleProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` + // Kind - Possible values include: 'KindRole', 'KindIOT' + Kind Kind `json:"kind,omitempty"` +} + +// MarshalJSON is the custom marshaler for IoTRole. +func (itr IoTRole) MarshalJSON() ([]byte, error) { + itr.Kind = KindIOT + objectMap := make(map[string]interface{}) + if itr.IoTRoleProperties != nil { + objectMap["properties"] = itr.IoTRoleProperties + } + if itr.Kind != "" { + objectMap["kind"] = itr.Kind + } + return json.Marshal(objectMap) +} + +// AsIoTRole is the BasicRole implementation for IoTRole. +func (itr IoTRole) AsIoTRole() (*IoTRole, bool) { + return &itr, true +} + +// AsRole is the BasicRole implementation for IoTRole. +func (itr IoTRole) AsRole() (*Role, bool) { + return nil, false +} + +// AsBasicRole is the BasicRole implementation for IoTRole. +func (itr IoTRole) AsBasicRole() (BasicRole, bool) { + return &itr, true +} + +// UnmarshalJSON is the custom unmarshaler for IoTRole struct. +func (itr *IoTRole) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var ioTRoleProperties IoTRoleProperties + err = json.Unmarshal(*v, &ioTRoleProperties) + if err != nil { + return err + } + itr.IoTRoleProperties = &ioTRoleProperties + } + case "kind": + if v != nil { + var kind Kind + err = json.Unmarshal(*v, &kind) + if err != nil { + return err + } + itr.Kind = kind + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + itr.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + itr.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + itr.Type = &typeVar + } + } + } + + return nil +} + +// IoTRoleProperties ioT role properties. +type IoTRoleProperties struct { + // HostPlatform - Host OS supported by the IoT role. Possible values include: 'Windows', 'Linux' + HostPlatform PlatformType `json:"hostPlatform,omitempty"` + // IoTDeviceDetails - IoT device metadata to which data box edge device needs to be connected. + IoTDeviceDetails *IoTDeviceInfo `json:"ioTDeviceDetails,omitempty"` + // IoTEdgeDeviceDetails - IoT edge device to which the IoT role needs to be configured. + IoTEdgeDeviceDetails *IoTDeviceInfo `json:"ioTEdgeDeviceDetails,omitempty"` + // ShareMappings - Mount points of shares in role(s). + ShareMappings *[]MountPointMap `json:"shareMappings,omitempty"` + // RoleStatus - Role status. Possible values include: 'RoleStatusEnabled', 'RoleStatusDisabled' + RoleStatus RoleStatus `json:"roleStatus,omitempty"` +} + +// Ipv4Config details related to the IPv4 address configuration. +type Ipv4Config struct { + // IPAddress - READ-ONLY; The IPv4 address of the network adapter. + IPAddress *string `json:"ipAddress,omitempty"` + // Subnet - READ-ONLY; The IPv4 subnet of the network adapter. + Subnet *string `json:"subnet,omitempty"` + // Gateway - READ-ONLY; The IPv4 gateway of the network adapter. + Gateway *string `json:"gateway,omitempty"` +} + +// Ipv6Config details related to the IPv6 address configuration. +type Ipv6Config struct { + // IPAddress - READ-ONLY; The IPv6 address of the network adapter. + IPAddress *string `json:"ipAddress,omitempty"` + // PrefixLength - READ-ONLY; The IPv6 prefix of the network adapter. + PrefixLength *int32 `json:"prefixLength,omitempty"` + // Gateway - READ-ONLY; The IPv6 gateway of the network adapter. + Gateway *string `json:"gateway,omitempty"` +} + +// Job a device job. +type Job struct { + autorest.Response `json:"-"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The name of the object. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` + // Status - READ-ONLY; The current status of the job. Possible values include: 'JobStatusInvalid', 'JobStatusRunning', 'JobStatusSucceeded', 'JobStatusFailed', 'JobStatusCanceled', 'JobStatusPaused', 'JobStatusScheduled' + Status JobStatus `json:"status,omitempty"` + // StartTime - READ-ONLY; The UTC date and time at which the job started. + StartTime *date.Time `json:"startTime,omitempty"` + // EndTime - READ-ONLY; The UTC date and time at which the job completed. + EndTime *date.Time `json:"endTime,omitempty"` + // PercentComplete - READ-ONLY; The percentage of the job that is complete. + PercentComplete *int32 `json:"percentComplete,omitempty"` + // Error - READ-ONLY; The error details. + Error *JobErrorDetails `json:"error,omitempty"` + // JobProperties - READ-ONLY; The properties of the job. + *JobProperties `json:"properties,omitempty"` +} + +// MarshalJSON is the custom marshaler for Job. +func (j Job) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for Job struct. +func (j *Job) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + j.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + j.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + j.Type = &typeVar + } + case "status": + if v != nil { + var status JobStatus + err = json.Unmarshal(*v, &status) + if err != nil { + return err + } + j.Status = status + } + case "startTime": + if v != nil { + var startTime date.Time + err = json.Unmarshal(*v, &startTime) + if err != nil { + return err + } + j.StartTime = &startTime + } + case "endTime": + if v != nil { + var endTime date.Time + err = json.Unmarshal(*v, &endTime) + if err != nil { + return err + } + j.EndTime = &endTime + } + case "percentComplete": + if v != nil { + var percentComplete int32 + err = json.Unmarshal(*v, &percentComplete) + if err != nil { + return err + } + j.PercentComplete = &percentComplete + } + case "error": + if v != nil { + var errorVar JobErrorDetails + err = json.Unmarshal(*v, &errorVar) + if err != nil { + return err + } + j.Error = &errorVar + } + case "properties": + if v != nil { + var jobProperties JobProperties + err = json.Unmarshal(*v, &jobProperties) + if err != nil { + return err + } + j.JobProperties = &jobProperties + } + } + } + + return nil +} + +// JobErrorDetails the job error information containing the list of job errors. +type JobErrorDetails struct { + // ErrorDetails - READ-ONLY; The error details. + ErrorDetails *[]JobErrorItem `json:"errorDetails,omitempty"` + // Code - READ-ONLY; The code intended for programmatic access. + Code *string `json:"code,omitempty"` + // Message - READ-ONLY; The message that describes the error in detail. + Message *string `json:"message,omitempty"` +} + +// JobErrorItem the job error items. +type JobErrorItem struct { + // Recommendations - READ-ONLY; The recommended actions. + Recommendations *[]string `json:"recommendations,omitempty"` + // Code - READ-ONLY; The code intended for programmatic access. + Code *string `json:"code,omitempty"` + // Message - READ-ONLY; The message that describes the error in detail. + Message *string `json:"message,omitempty"` +} + +// JobProperties the properties for the job. +type JobProperties struct { + // JobType - READ-ONLY; The type of the job. Possible values include: 'JobTypeInvalid', 'JobTypeScanForUpdates', 'JobTypeDownloadUpdates', 'JobTypeInstallUpdates', 'JobTypeRefreshShare' + JobType JobType `json:"jobType,omitempty"` + // CurrentStage - READ-ONLY; Current stage of the update operation. Possible values include: 'UpdateOperationStageUnknown', 'UpdateOperationStageInitial', 'UpdateOperationStageScanStarted', 'UpdateOperationStageScanComplete', 'UpdateOperationStageScanFailed', 'UpdateOperationStageDownloadStarted', 'UpdateOperationStageDownloadComplete', 'UpdateOperationStageDownloadFailed', 'UpdateOperationStageInstallStarted', 'UpdateOperationStageInstallComplete', 'UpdateOperationStageInstallFailed', 'UpdateOperationStageRebootInitiated', 'UpdateOperationStageSuccess', 'UpdateOperationStageFailure', 'UpdateOperationStageRescanStarted', 'UpdateOperationStageRescanComplete', 'UpdateOperationStageRescanFailed' + CurrentStage UpdateOperationStage `json:"currentStage,omitempty"` + // DownloadProgress - READ-ONLY; The download progress. + DownloadProgress *UpdateDownloadProgress `json:"downloadProgress,omitempty"` + // InstallProgress - READ-ONLY; The install progress. + InstallProgress *UpdateInstallProgress `json:"installProgress,omitempty"` + // TotalRefreshErrors - READ-ONLY; Total number of errors encountered during the refresh process. + TotalRefreshErrors *int32 `json:"totalRefreshErrors,omitempty"` + // ErrorManifestFile - READ-ONLY; Local share/remote container relative path to the error manifest file of the refresh. + ErrorManifestFile *string `json:"errorManifestFile,omitempty"` + // ShareID - READ-ONLY; ARM ID of the share that was refreshed. + ShareID *string `json:"shareId,omitempty"` + // Folder - If only subfolders need to be refreshed, then the subfolder path inside the share. (The path is empty if there are no subfolders.) + Folder *string `json:"folder,omitempty"` +} + +// MetricDimensionV1 metric Dimension v1. +type MetricDimensionV1 struct { + // Name - Name of the metrics dimension. + Name *string `json:"name,omitempty"` + // DisplayName - Display name of the metrics dimension. + DisplayName *string `json:"displayName,omitempty"` + // ToBeExportedForShoebox - To be exported to shoe box. + ToBeExportedForShoebox *bool `json:"toBeExportedForShoebox,omitempty"` +} + +// MetricSpecificationV1 metric specification version 1. +type MetricSpecificationV1 struct { + // Name - Name of the metric. + Name *string `json:"name,omitempty"` + // DisplayName - Display name of the metric. + DisplayName *string `json:"displayName,omitempty"` + // DisplayDescription - Description of the metric to be displayed. + DisplayDescription *string `json:"displayDescription,omitempty"` + // Unit - Metric units. Possible values include: 'NotSpecified', 'Percent', 'Count', 'Seconds', 'Milliseconds', 'Bytes', 'BytesPerSecond', 'CountPerSecond' + Unit MetricUnit `json:"unit,omitempty"` + // AggregationType - Metric aggregation type. Possible values include: 'MetricAggregationTypeNotSpecified', 'MetricAggregationTypeNone', 'MetricAggregationTypeAverage', 'MetricAggregationTypeMinimum', 'MetricAggregationTypeMaximum', 'MetricAggregationTypeTotal', 'MetricAggregationTypeCount' + AggregationType MetricAggregationType `json:"aggregationType,omitempty"` + // Dimensions - Metric dimensions, other than default dimension which is resource. + Dimensions *[]MetricDimensionV1 `json:"dimensions,omitempty"` + // FillGapWithZero - Set true to fill the gaps with zero. + FillGapWithZero *bool `json:"fillGapWithZero,omitempty"` + // Category - Metric category. Possible values include: 'Capacity', 'Transaction' + Category MetricCategory `json:"category,omitempty"` + // ResourceIDDimensionNameOverride - Resource name override. + ResourceIDDimensionNameOverride *string `json:"resourceIdDimensionNameOverride,omitempty"` + // SupportedTimeGrainTypes - Support granularity of metrics. + SupportedTimeGrainTypes *[]TimeGrain `json:"supportedTimeGrainTypes,omitempty"` + // SupportedAggregationTypes - Support metric aggregation type. + SupportedAggregationTypes *[]MetricAggregationType `json:"supportedAggregationTypes,omitempty"` +} + +// MountPointMap the share mount point. +type MountPointMap struct { + // ShareID - ID of the share mounted to the role VM. + ShareID *string `json:"shareId,omitempty"` + // RoleID - READ-ONLY; ID of the role to which share is mounted. + RoleID *string `json:"roleId,omitempty"` + // MountPoint - READ-ONLY; Mount point for the share. + MountPoint *string `json:"mountPoint,omitempty"` + // RoleType - READ-ONLY; Role type. Possible values include: 'IOT', 'ASA', 'Functions', 'Cognitive' + RoleType RoleTypes `json:"roleType,omitempty"` +} + +// NetworkAdapter represents the networkAdapter on a device. +type NetworkAdapter struct { + // AdapterID - READ-ONLY; Instance ID of network adapter. + AdapterID *string `json:"adapterId,omitempty"` + // AdapterPosition - READ-ONLY; Hardware position of network adapter. + AdapterPosition *NetworkAdapterPosition `json:"adapterPosition,omitempty"` + // Index - READ-ONLY; Logical index of the adapter. + Index *int32 `json:"index,omitempty"` + // NodeID - READ-ONLY; Node ID of the network adapter. + NodeID *string `json:"nodeId,omitempty"` + // NetworkAdapterName - READ-ONLY; Network adapter name. + NetworkAdapterName *string `json:"networkAdapterName,omitempty"` + // Label - READ-ONLY; Hardware label for the adapter. + Label *string `json:"label,omitempty"` + // MacAddress - READ-ONLY; MAC address. + MacAddress *string `json:"macAddress,omitempty"` + // LinkSpeed - READ-ONLY; Link speed. + LinkSpeed *int64 `json:"linkSpeed,omitempty"` + // Status - READ-ONLY; Value indicating whether this adapter is valid. Possible values include: 'Inactive', 'Active' + Status NetworkAdapterStatus `json:"status,omitempty"` + // RdmaStatus - Value indicating whether this adapter is RDMA capable. Possible values include: 'Incapable', 'Capable' + RdmaStatus NetworkAdapterRDMAStatus `json:"rdmaStatus,omitempty"` + // DhcpStatus - Value indicating whether this adapter has DHCP enabled. Possible values include: 'NetworkAdapterDHCPStatusDisabled', 'NetworkAdapterDHCPStatusEnabled' + DhcpStatus NetworkAdapterDHCPStatus `json:"dhcpStatus,omitempty"` + // Ipv4Configuration - READ-ONLY; The IPv4 configuration of the network adapter. + Ipv4Configuration *Ipv4Config `json:"ipv4Configuration,omitempty"` + // Ipv6Configuration - READ-ONLY; The IPv6 configuration of the network adapter. + Ipv6Configuration *Ipv6Config `json:"ipv6Configuration,omitempty"` + // Ipv6LinkLocalAddress - READ-ONLY; The IPv6 local address. + Ipv6LinkLocalAddress *string `json:"ipv6LinkLocalAddress,omitempty"` + // DNSServers - READ-ONLY; The list of DNS Servers of the device. + DNSServers *[]string `json:"dnsServers,omitempty"` +} + +// NetworkAdapterPosition the network adapter position. +type NetworkAdapterPosition struct { + // NetworkGroup - READ-ONLY; The network group. Possible values include: 'NetworkGroupNone', 'NetworkGroupNonRDMA', 'NetworkGroupRDMA' + NetworkGroup NetworkGroup `json:"networkGroup,omitempty"` + // Port - READ-ONLY; The port. + Port *int32 `json:"port,omitempty"` +} + +// NetworkSettings the network settings of a device. +type NetworkSettings struct { + autorest.Response `json:"-"` + // NetworkSettingsProperties - READ-ONLY; The properties of network settings of a device. + *NetworkSettingsProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for NetworkSettings. +func (ns NetworkSettings) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for NetworkSettings struct. +func (ns *NetworkSettings) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var networkSettingsProperties NetworkSettingsProperties + err = json.Unmarshal(*v, &networkSettingsProperties) + if err != nil { + return err + } + ns.NetworkSettingsProperties = &networkSettingsProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + ns.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + ns.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + ns.Type = &typeVar + } + } + } + + return nil +} + +// NetworkSettingsProperties the properties of network settings. +type NetworkSettingsProperties struct { + // NetworkAdapters - READ-ONLY; The network adapter list on the device. + NetworkAdapters *[]NetworkAdapter `json:"networkAdapters,omitempty"` +} + +// Node represents a single node in a Data box Edge/Gateway device +// Gateway devices, standalone Edge devices and a single node cluster Edge device will all have 1 node +// Multi-node Edge devices will have more than 1 nodes +type Node struct { + // NodeProperties - READ-ONLY; The properties of the node + *NodeProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for Node. +func (n Node) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for Node struct. +func (n *Node) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var nodeProperties NodeProperties + err = json.Unmarshal(*v, &nodeProperties) + if err != nil { + return err + } + n.NodeProperties = &nodeProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + n.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + n.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + n.Type = &typeVar + } + } + } + + return nil +} + +// NodeList collection of Nodes. +type NodeList struct { + autorest.Response `json:"-"` + // Value - READ-ONLY; The list of Nodes. + Value *[]Node `json:"value,omitempty"` +} + +// NodeProperties this class represents the nodes in a highly available cluster +type NodeProperties struct { + // NodeStatus - READ-ONLY; The current status of the individual node. Possible values include: 'NodeStatusUnknown', 'NodeStatusUp', 'NodeStatusDown', 'NodeStatusRebooting', 'NodeStatusShuttingDown' + NodeStatus NodeStatus `json:"nodeStatus,omitempty"` + // NodeChassisSerialNumber - READ-ONLY; Serial number of the Chassis + NodeChassisSerialNumber *string `json:"nodeChassisSerialNumber,omitempty"` + // NodeSerialNumber - READ-ONLY; Serial number of the individual node + NodeSerialNumber *string `json:"nodeSerialNumber,omitempty"` + // NodeDisplayName - READ-ONLY; Display Name of the individual node + NodeDisplayName *string `json:"nodeDisplayName,omitempty"` + // NodeFriendlySoftwareVersion - READ-ONLY; Friendly software version name that is currently installed on the node + NodeFriendlySoftwareVersion *string `json:"nodeFriendlySoftwareVersion,omitempty"` + // NodeHcsVersion - READ-ONLY; HCS version that is currently installed on the node + NodeHcsVersion *string `json:"nodeHcsVersion,omitempty"` + // NodeInstanceID - READ-ONLY; Guid instance id of the node + NodeInstanceID *string `json:"nodeInstanceId,omitempty"` +} + +// Operation operations. +type Operation struct { + // Name - Name of the operation. + Name *string `json:"name,omitempty"` + // Display - Properties displayed for the operation. + Display *OperationDisplay `json:"display,omitempty"` + // Origin - Origin of the operation. + Origin *string `json:"origin,omitempty"` + // OperationProperties - Operation properties. + *OperationProperties `json:"properties,omitempty"` +} + +// MarshalJSON is the custom marshaler for Operation. +func (o Operation) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if o.Name != nil { + objectMap["name"] = o.Name + } + if o.Display != nil { + objectMap["display"] = o.Display + } + if o.Origin != nil { + objectMap["origin"] = o.Origin + } + if o.OperationProperties != nil { + objectMap["properties"] = o.OperationProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for Operation struct. +func (o *Operation) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + o.Name = &name + } + case "display": + if v != nil { + var display OperationDisplay + err = json.Unmarshal(*v, &display) + if err != nil { + return err + } + o.Display = &display + } + case "origin": + if v != nil { + var origin string + err = json.Unmarshal(*v, &origin) + if err != nil { + return err + } + o.Origin = &origin + } + case "properties": + if v != nil { + var operationProperties OperationProperties + err = json.Unmarshal(*v, &operationProperties) + if err != nil { + return err + } + o.OperationProperties = &operationProperties + } + } + } + + return nil +} + +// OperationDisplay operation display properties. +type OperationDisplay struct { + // Provider - Provider name. + Provider *string `json:"provider,omitempty"` + // Resource - The type of resource in which the operation is performed. + Resource *string `json:"resource,omitempty"` + // Operation - Operation to be performed on the resource. + Operation *string `json:"operation,omitempty"` + // Description - Description of the operation to be performed. + Description *string `json:"description,omitempty"` +} + +// OperationProperties operation properties. +type OperationProperties struct { + // ServiceSpecification - Service specification. + ServiceSpecification *ServiceSpecification `json:"serviceSpecification,omitempty"` +} + +// OperationsList the list of operations used for the discovery of available provider operations. +type OperationsList struct { + autorest.Response `json:"-"` + // Value - The value. + Value *[]Operation `json:"value,omitempty"` + // NextLink - Link to the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// OperationsListIterator provides access to a complete listing of Operation values. +type OperationsListIterator struct { + i int + page OperationsListPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *OperationsListIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OperationsListIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *OperationsListIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter OperationsListIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter OperationsListIterator) Response() OperationsList { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter OperationsListIterator) Value() Operation { + if !iter.page.NotDone() { + return Operation{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the OperationsListIterator type. +func NewOperationsListIterator(page OperationsListPage) OperationsListIterator { + return OperationsListIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (ol OperationsList) IsEmpty() bool { + return ol.Value == nil || len(*ol.Value) == 0 +} + +// operationsListPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (ol OperationsList) operationsListPreparer(ctx context.Context) (*http.Request, error) { + if ol.NextLink == nil || len(to.String(ol.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(ol.NextLink))) +} + +// OperationsListPage contains a page of Operation values. +type OperationsListPage struct { + fn func(context.Context, OperationsList) (OperationsList, error) + ol OperationsList +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *OperationsListPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OperationsListPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + next, err := page.fn(ctx, page.ol) + if err != nil { + return err + } + page.ol = next + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *OperationsListPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page OperationsListPage) NotDone() bool { + return !page.ol.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page OperationsListPage) Response() OperationsList { + return page.ol +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page OperationsListPage) Values() []Operation { + if page.ol.IsEmpty() { + return nil + } + return *page.ol.Value +} + +// Creates a new instance of the OperationsListPage type. +func NewOperationsListPage(getNextPage func(context.Context, OperationsList) (OperationsList, error)) OperationsListPage { + return OperationsListPage{fn: getNextPage} +} + +// Order the order details. +type Order struct { + autorest.Response `json:"-"` + // OrderProperties - The order properties. + *OrderProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for Order. +func (o Order) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if o.OrderProperties != nil { + objectMap["properties"] = o.OrderProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for Order struct. +func (o *Order) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var orderProperties OrderProperties + err = json.Unmarshal(*v, &orderProperties) + if err != nil { + return err + } + o.OrderProperties = &orderProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + o.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + o.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + o.Type = &typeVar + } + } + } + + return nil +} + +// OrderList list of order entities. +type OrderList struct { + autorest.Response `json:"-"` + // Value - READ-ONLY; The list of orders. + Value *[]Order `json:"value,omitempty"` + // NextLink - READ-ONLY; Link to the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// OrderListIterator provides access to a complete listing of Order values. +type OrderListIterator struct { + i int + page OrderListPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *OrderListIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OrderListIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *OrderListIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter OrderListIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter OrderListIterator) Response() OrderList { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter OrderListIterator) Value() Order { + if !iter.page.NotDone() { + return Order{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the OrderListIterator type. +func NewOrderListIterator(page OrderListPage) OrderListIterator { + return OrderListIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (ol OrderList) IsEmpty() bool { + return ol.Value == nil || len(*ol.Value) == 0 +} + +// orderListPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (ol OrderList) orderListPreparer(ctx context.Context) (*http.Request, error) { + if ol.NextLink == nil || len(to.String(ol.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(ol.NextLink))) +} + +// OrderListPage contains a page of Order values. +type OrderListPage struct { + fn func(context.Context, OrderList) (OrderList, error) + ol OrderList +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *OrderListPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OrderListPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + next, err := page.fn(ctx, page.ol) + if err != nil { + return err + } + page.ol = next + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *OrderListPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page OrderListPage) NotDone() bool { + return !page.ol.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page OrderListPage) Response() OrderList { + return page.ol +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page OrderListPage) Values() []Order { + if page.ol.IsEmpty() { + return nil + } + return *page.ol.Value +} + +// Creates a new instance of the OrderListPage type. +func NewOrderListPage(getNextPage func(context.Context, OrderList) (OrderList, error)) OrderListPage { + return OrderListPage{fn: getNextPage} +} + +// OrderProperties order properties. +type OrderProperties struct { + // ContactInformation - The contact details. + ContactInformation *ContactDetails `json:"contactInformation,omitempty"` + // ShippingAddress - The shipping address. + ShippingAddress *Address `json:"shippingAddress,omitempty"` + // CurrentStatus - Current status of the order. + CurrentStatus *OrderStatus `json:"currentStatus,omitempty"` + // OrderHistory - READ-ONLY; List of status changes in the order. + OrderHistory *[]OrderStatus `json:"orderHistory,omitempty"` + // SerialNumber - READ-ONLY; Serial number of the device. + SerialNumber *string `json:"serialNumber,omitempty"` + // DeliveryTrackingInfo - READ-ONLY; Tracking information for the package delivered to the customer whether it has an original or a replacement device. + DeliveryTrackingInfo *[]TrackingInfo `json:"deliveryTrackingInfo,omitempty"` + // ReturnTrackingInfo - READ-ONLY; Tracking information for the package returned from the customer whether it has an original or a replacement device. + ReturnTrackingInfo *[]TrackingInfo `json:"returnTrackingInfo,omitempty"` +} + +// OrdersCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type OrdersCreateOrUpdateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *OrdersCreateOrUpdateFuture) Result(client OrdersClient) (o Order, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.OrdersCreateOrUpdateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if o.Response.Response, err = future.GetResult(sender); err == nil && o.Response.Response.StatusCode != http.StatusNoContent { + o, err = client.CreateOrUpdateResponder(o.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersCreateOrUpdateFuture", "Result", o.Response.Response, "Failure responding to request") + } + } + return +} + +// OrdersDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. +type OrdersDeleteFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *OrdersDeleteFuture) Result(client OrdersClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.OrdersDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// OrderStatus represents a single status change. +type OrderStatus struct { + // Status - Status of the order as per the allowed status types. Possible values include: 'Untracked', 'AwaitingFulfilment', 'AwaitingPreparation', 'AwaitingShipment', 'Shipped', 'Arriving', 'Delivered', 'ReplacementRequested', 'LostDevice', 'Declined', 'ReturnInitiated', 'AwaitingReturnShipment', 'ShippedBack', 'CollectedAtMicrosoft' + Status OrderState `json:"status,omitempty"` + // UpdateDateTime - READ-ONLY; Time of status update. + UpdateDateTime *date.Time `json:"updateDateTime,omitempty"` + // Comments - Comments related to this status change. + Comments *string `json:"comments,omitempty"` +} + +// PeriodicTimerEventTrigger trigger details. +type PeriodicTimerEventTrigger struct { + // PeriodicTimerProperties - Periodic timer trigger properties. + *PeriodicTimerProperties `json:"properties,omitempty"` + // Kind - Possible values include: 'KindTrigger', 'KindFileEvent', 'KindPeriodicTimerEvent' + Kind KindBasicTrigger `json:"kind,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for PeriodicTimerEventTrigger. +func (ptet PeriodicTimerEventTrigger) MarshalJSON() ([]byte, error) { + ptet.Kind = KindPeriodicTimerEvent + objectMap := make(map[string]interface{}) + if ptet.PeriodicTimerProperties != nil { + objectMap["properties"] = ptet.PeriodicTimerProperties + } + if ptet.Kind != "" { + objectMap["kind"] = ptet.Kind + } + return json.Marshal(objectMap) +} + +// AsFileEventTrigger is the BasicTrigger implementation for PeriodicTimerEventTrigger. +func (ptet PeriodicTimerEventTrigger) AsFileEventTrigger() (*FileEventTrigger, bool) { + return nil, false +} + +// AsPeriodicTimerEventTrigger is the BasicTrigger implementation for PeriodicTimerEventTrigger. +func (ptet PeriodicTimerEventTrigger) AsPeriodicTimerEventTrigger() (*PeriodicTimerEventTrigger, bool) { + return &ptet, true +} + +// AsTrigger is the BasicTrigger implementation for PeriodicTimerEventTrigger. +func (ptet PeriodicTimerEventTrigger) AsTrigger() (*Trigger, bool) { + return nil, false +} + +// AsBasicTrigger is the BasicTrigger implementation for PeriodicTimerEventTrigger. +func (ptet PeriodicTimerEventTrigger) AsBasicTrigger() (BasicTrigger, bool) { + return &ptet, true +} + +// UnmarshalJSON is the custom unmarshaler for PeriodicTimerEventTrigger struct. +func (ptet *PeriodicTimerEventTrigger) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var periodicTimerProperties PeriodicTimerProperties + err = json.Unmarshal(*v, &periodicTimerProperties) + if err != nil { + return err + } + ptet.PeriodicTimerProperties = &periodicTimerProperties + } + case "kind": + if v != nil { + var kind KindBasicTrigger + err = json.Unmarshal(*v, &kind) + if err != nil { + return err + } + ptet.Kind = kind + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + ptet.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + ptet.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + ptet.Type = &typeVar + } + } + } + + return nil +} + +// PeriodicTimerProperties periodic timer trigger properties. +type PeriodicTimerProperties struct { + // SourceInfo - Periodic timer details. + SourceInfo *PeriodicTimerSourceInfo `json:"sourceInfo,omitempty"` + // SinkInfo - Role Sink information. + SinkInfo *RoleSinkInfo `json:"sinkInfo,omitempty"` + // CustomContextTag - A custom context tag typically used to correlate the trigger against its usage. For example, if a periodic timer trigger is intended for certain specific IoT modules in the device, the tag can be the name or the image URL of the module. + CustomContextTag *string `json:"customContextTag,omitempty"` +} + +// PeriodicTimerSourceInfo periodic timer event source. +type PeriodicTimerSourceInfo struct { + // StartTime - The time of the day that results in a valid trigger. Schedule is computed with reference to the time specified upto seconds. If timezone is not specified the time will considered to be in device timezone. The value will always be returned as UTC time. + StartTime *date.Time `json:"startTime,omitempty"` + // Schedule - Periodic frequency at which timer event needs to be raised. Supports daily, hourly, minutes, and seconds. + Schedule *string `json:"schedule,omitempty"` + // Topic - Topic where periodic events are published to IoT device. + Topic *string `json:"topic,omitempty"` +} + +// RawCertificateData raw Certificate Data. +type RawCertificateData struct { + // AuthenticationType - The authentication type. Possible values include: 'Invalid', 'AzureActiveDirectory' + AuthenticationType AuthenticationType `json:"authenticationType,omitempty"` + // Certificate - The base64 encoded certificate raw data. + Certificate *string `json:"certificate,omitempty"` +} + +// RefreshDetails fields for tracking refresh job on the share. +type RefreshDetails struct { + // InProgressRefreshJobID - If a refresh share job is currently in progress on this share, this field indicates the ARM resource ID of that job. The field is empty if no job is in progress. + InProgressRefreshJobID *string `json:"inProgressRefreshJobId,omitempty"` + // LastCompletedRefreshJobTimeInUTC - Indicates the completed time for the last refresh job on this particular share, if any.This could be a failed job or a successful job. + LastCompletedRefreshJobTimeInUTC *date.Time `json:"lastCompletedRefreshJobTimeInUTC,omitempty"` + // ErrorManifestFile - Indicates the relative path of the error xml for the last refresh job on this particular share, if any. This could be a failed job or a successful job. + ErrorManifestFile *string `json:"errorManifestFile,omitempty"` + // LastJob - Indicates the id of the last refresh job on this particular share,if any. This could be a failed job or a successful job. + LastJob *string `json:"lastJob,omitempty"` +} + +// BasicRole compute role. +type BasicRole interface { + AsIoTRole() (*IoTRole, bool) + AsRole() (*Role, bool) +} + +// Role compute role. +type Role struct { + autorest.Response `json:"-"` + // Kind - Possible values include: 'KindRole', 'KindIOT' + Kind Kind `json:"kind,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +func unmarshalBasicRole(body []byte) (BasicRole, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["kind"] { + case string(KindIOT): + var itr IoTRole + err := json.Unmarshal(body, &itr) + return itr, err + default: + var r Role + err := json.Unmarshal(body, &r) + return r, err + } +} +func unmarshalBasicRoleArray(body []byte) ([]BasicRole, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + rArray := make([]BasicRole, len(rawMessages)) + + for index, rawMessage := range rawMessages { + r, err := unmarshalBasicRole(*rawMessage) + if err != nil { + return nil, err + } + rArray[index] = r + } + return rArray, nil +} + +// MarshalJSON is the custom marshaler for Role. +func (r Role) MarshalJSON() ([]byte, error) { + r.Kind = KindRole + objectMap := make(map[string]interface{}) + if r.Kind != "" { + objectMap["kind"] = r.Kind + } + return json.Marshal(objectMap) +} + +// AsIoTRole is the BasicRole implementation for Role. +func (r Role) AsIoTRole() (*IoTRole, bool) { + return nil, false +} + +// AsRole is the BasicRole implementation for Role. +func (r Role) AsRole() (*Role, bool) { + return &r, true +} + +// AsBasicRole is the BasicRole implementation for Role. +func (r Role) AsBasicRole() (BasicRole, bool) { + return &r, true +} + +// RoleList collection of all the roles on the Data Box Edge device. +type RoleList struct { + autorest.Response `json:"-"` + // Value - READ-ONLY; The Value. + Value *[]BasicRole `json:"value,omitempty"` + // NextLink - READ-ONLY; Link to the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for RoleList struct. +func (rl *RoleList) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "value": + if v != nil { + value, err := unmarshalBasicRoleArray(*v) + if err != nil { + return err + } + rl.Value = &value + } + case "nextLink": + if v != nil { + var nextLink string + err = json.Unmarshal(*v, &nextLink) + if err != nil { + return err + } + rl.NextLink = &nextLink + } + } + } + + return nil +} + +// RoleListIterator provides access to a complete listing of Role values. +type RoleListIterator struct { + i int + page RoleListPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *RoleListIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/RoleListIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *RoleListIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter RoleListIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter RoleListIterator) Response() RoleList { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter RoleListIterator) Value() BasicRole { + if !iter.page.NotDone() { + return Role{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the RoleListIterator type. +func NewRoleListIterator(page RoleListPage) RoleListIterator { + return RoleListIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (rl RoleList) IsEmpty() bool { + return rl.Value == nil || len(*rl.Value) == 0 +} + +// roleListPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (rl RoleList) roleListPreparer(ctx context.Context) (*http.Request, error) { + if rl.NextLink == nil || len(to.String(rl.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(rl.NextLink))) +} + +// RoleListPage contains a page of BasicRole values. +type RoleListPage struct { + fn func(context.Context, RoleList) (RoleList, error) + rl RoleList +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *RoleListPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/RoleListPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + next, err := page.fn(ctx, page.rl) + if err != nil { + return err + } + page.rl = next + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *RoleListPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page RoleListPage) NotDone() bool { + return !page.rl.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page RoleListPage) Response() RoleList { + return page.rl +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page RoleListPage) Values() []BasicRole { + if page.rl.IsEmpty() { + return nil + } + return *page.rl.Value +} + +// Creates a new instance of the RoleListPage type. +func NewRoleListPage(getNextPage func(context.Context, RoleList) (RoleList, error)) RoleListPage { + return RoleListPage{fn: getNextPage} +} + +// RoleModel ... +type RoleModel struct { + autorest.Response `json:"-"` + Value BasicRole `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for RoleModel struct. +func (rm *RoleModel) UnmarshalJSON(body []byte) error { + r, err := unmarshalBasicRole(body) + if err != nil { + return err + } + rm.Value = r + + return nil +} + +// RolesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type RolesCreateOrUpdateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *RolesCreateOrUpdateFuture) Result(client RolesClient) (rm RoleModel, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.RolesCreateOrUpdateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if rm.Response.Response, err = future.GetResult(sender); err == nil && rm.Response.Response.StatusCode != http.StatusNoContent { + rm, err = client.CreateOrUpdateResponder(rm.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesCreateOrUpdateFuture", "Result", rm.Response.Response, "Failure responding to request") + } + } + return +} + +// RolesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. +type RolesDeleteFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *RolesDeleteFuture) Result(client RolesClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.RolesDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// RoleSinkInfo compute role against which events will be raised. +type RoleSinkInfo struct { + // RoleID - Compute role ID. + RoleID *string `json:"roleId,omitempty"` +} + +// SecuritySettings the security settings of a device. +type SecuritySettings struct { + // SecuritySettingsProperties - Properties of the security settings. + *SecuritySettingsProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for SecuritySettings. +func (ss SecuritySettings) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if ss.SecuritySettingsProperties != nil { + objectMap["properties"] = ss.SecuritySettingsProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for SecuritySettings struct. +func (ss *SecuritySettings) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var securitySettingsProperties SecuritySettingsProperties + err = json.Unmarshal(*v, &securitySettingsProperties) + if err != nil { + return err + } + ss.SecuritySettingsProperties = &securitySettingsProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + ss.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + ss.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + ss.Type = &typeVar + } + } + } + + return nil +} + +// SecuritySettingsProperties the properties of security settings. +type SecuritySettingsProperties struct { + // DeviceAdminPassword - Device administrator password as an encrypted string (encrypted using RSA PKCS #1) is used to sign into the local web UI of the device. The Actual password should have at least 8 characters that are a combination of uppercase, lowercase, numeric, and special characters. + DeviceAdminPassword *AsymmetricEncryptedSecret `json:"deviceAdminPassword,omitempty"` +} + +// ServiceSpecification service specification. +type ServiceSpecification struct { + // MetricSpecifications - Metric specification as defined by shoebox. + MetricSpecifications *[]MetricSpecificationV1 `json:"metricSpecifications,omitempty"` +} + +// Share represents a share on the Data Box Edge/Gateway device. +type Share struct { + autorest.Response `json:"-"` + // ShareProperties - The share properties. + *ShareProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for Share. +func (s Share) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if s.ShareProperties != nil { + objectMap["properties"] = s.ShareProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for Share struct. +func (s *Share) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var shareProperties ShareProperties + err = json.Unmarshal(*v, &shareProperties) + if err != nil { + return err + } + s.ShareProperties = &shareProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + s.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + s.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + s.Type = &typeVar + } + } + } + + return nil +} + +// ShareAccessRight specifies the mapping between this particular user and the type of access he has on +// shares on this device. +type ShareAccessRight struct { + // ShareID - The share ID. + ShareID *string `json:"shareId,omitempty"` + // AccessType - Type of access to be allowed on the share for this user. Possible values include: 'Change', 'Read', 'Custom' + AccessType ShareAccessType `json:"accessType,omitempty"` +} + +// ShareList collection of all the shares on the Data Box Edge/Gateway device. +type ShareList struct { + autorest.Response `json:"-"` + // Value - READ-ONLY; The list of shares. + Value *[]Share `json:"value,omitempty"` + // NextLink - READ-ONLY; Link to the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// ShareListIterator provides access to a complete listing of Share values. +type ShareListIterator struct { + i int + page ShareListPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *ShareListIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ShareListIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *ShareListIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter ShareListIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter ShareListIterator) Response() ShareList { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter ShareListIterator) Value() Share { + if !iter.page.NotDone() { + return Share{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the ShareListIterator type. +func NewShareListIterator(page ShareListPage) ShareListIterator { + return ShareListIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (sl ShareList) IsEmpty() bool { + return sl.Value == nil || len(*sl.Value) == 0 +} + +// shareListPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (sl ShareList) shareListPreparer(ctx context.Context) (*http.Request, error) { + if sl.NextLink == nil || len(to.String(sl.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(sl.NextLink))) +} + +// ShareListPage contains a page of Share values. +type ShareListPage struct { + fn func(context.Context, ShareList) (ShareList, error) + sl ShareList +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *ShareListPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ShareListPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + next, err := page.fn(ctx, page.sl) + if err != nil { + return err + } + page.sl = next + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *ShareListPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page ShareListPage) NotDone() bool { + return !page.sl.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page ShareListPage) Response() ShareList { + return page.sl +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page ShareListPage) Values() []Share { + if page.sl.IsEmpty() { + return nil + } + return *page.sl.Value +} + +// Creates a new instance of the ShareListPage type. +func NewShareListPage(getNextPage func(context.Context, ShareList) (ShareList, error)) ShareListPage { + return ShareListPage{fn: getNextPage} +} + +// ShareProperties the share properties. +type ShareProperties struct { + // Description - Description for the share. + Description *string `json:"description,omitempty"` + // ShareStatus - Current status of the share. Possible values include: 'ShareStatusOffline', 'ShareStatusUnknown', 'ShareStatusOK', 'ShareStatusUpdating', 'ShareStatusNeedsAttention' + ShareStatus ShareStatus `json:"shareStatus,omitempty"` + // MonitoringStatus - Current monitoring status of the share. Possible values include: 'Enabled', 'Disabled' + MonitoringStatus MonitoringStatus `json:"monitoringStatus,omitempty"` + // AzureContainerInfo - Azure container mapping for the share. + AzureContainerInfo *AzureContainerInfo `json:"azureContainerInfo,omitempty"` + // AccessProtocol - Access protocol to be used by the share. Possible values include: 'SMB', 'NFS' + AccessProtocol ShareAccessProtocol `json:"accessProtocol,omitempty"` + // UserAccessRights - Mapping of users and corresponding access rights on the share (required for SMB protocol). + UserAccessRights *[]UserAccessRight `json:"userAccessRights,omitempty"` + // ClientAccessRights - List of IP addresses and corresponding access rights on the share(required for NFS protocol). + ClientAccessRights *[]ClientAccessRight `json:"clientAccessRights,omitempty"` + // RefreshDetails - Details of the refresh job on this share. + RefreshDetails *RefreshDetails `json:"refreshDetails,omitempty"` + // ShareMappings - READ-ONLY; Share mount point to the role. + ShareMappings *[]MountPointMap `json:"shareMappings,omitempty"` + // DataPolicy - Data policy of the share. Possible values include: 'Cloud', 'Local' + DataPolicy DataPolicy `json:"dataPolicy,omitempty"` +} + +// SharesCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type SharesCreateOrUpdateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *SharesCreateOrUpdateFuture) Result(client SharesClient) (s Share, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.SharesCreateOrUpdateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if s.Response.Response, err = future.GetResult(sender); err == nil && s.Response.Response.StatusCode != http.StatusNoContent { + s, err = client.CreateOrUpdateResponder(s.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesCreateOrUpdateFuture", "Result", s.Response.Response, "Failure responding to request") + } + } + return +} + +// SharesDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. +type SharesDeleteFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *SharesDeleteFuture) Result(client SharesClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.SharesDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// SharesRefreshFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type SharesRefreshFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *SharesRefreshFuture) Result(client SharesClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesRefreshFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.SharesRefreshFuture") + return + } + ar.Response = future.Response() + return +} + +// Sku the SKU type. +type Sku struct { + // Name - SKU name. Possible values include: 'Gateway', 'Edge' + Name SkuName `json:"name,omitempty"` + // Tier - The SKU tier. This is based on the SKU name. Possible values include: 'Standard' + Tier SkuTier `json:"tier,omitempty"` +} + +// StorageAccountCredential the storage account credential. +type StorageAccountCredential struct { + autorest.Response `json:"-"` + // StorageAccountCredentialProperties - The storage account credential properties. + *StorageAccountCredentialProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for StorageAccountCredential. +func (sac StorageAccountCredential) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if sac.StorageAccountCredentialProperties != nil { + objectMap["properties"] = sac.StorageAccountCredentialProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for StorageAccountCredential struct. +func (sac *StorageAccountCredential) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var storageAccountCredentialProperties StorageAccountCredentialProperties + err = json.Unmarshal(*v, &storageAccountCredentialProperties) + if err != nil { + return err + } + sac.StorageAccountCredentialProperties = &storageAccountCredentialProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + sac.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + sac.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + sac.Type = &typeVar + } + } + } + + return nil +} + +// StorageAccountCredentialList the collection of storage account credentials. +type StorageAccountCredentialList struct { + autorest.Response `json:"-"` + // Value - READ-ONLY; The value. + Value *[]StorageAccountCredential `json:"value,omitempty"` + // NextLink - READ-ONLY; Link to the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// StorageAccountCredentialListIterator provides access to a complete listing of StorageAccountCredential +// values. +type StorageAccountCredentialListIterator struct { + i int + page StorageAccountCredentialListPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *StorageAccountCredentialListIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StorageAccountCredentialListIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *StorageAccountCredentialListIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter StorageAccountCredentialListIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter StorageAccountCredentialListIterator) Response() StorageAccountCredentialList { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter StorageAccountCredentialListIterator) Value() StorageAccountCredential { + if !iter.page.NotDone() { + return StorageAccountCredential{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the StorageAccountCredentialListIterator type. +func NewStorageAccountCredentialListIterator(page StorageAccountCredentialListPage) StorageAccountCredentialListIterator { + return StorageAccountCredentialListIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (sacl StorageAccountCredentialList) IsEmpty() bool { + return sacl.Value == nil || len(*sacl.Value) == 0 +} + +// storageAccountCredentialListPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (sacl StorageAccountCredentialList) storageAccountCredentialListPreparer(ctx context.Context) (*http.Request, error) { + if sacl.NextLink == nil || len(to.String(sacl.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(sacl.NextLink))) +} + +// StorageAccountCredentialListPage contains a page of StorageAccountCredential values. +type StorageAccountCredentialListPage struct { + fn func(context.Context, StorageAccountCredentialList) (StorageAccountCredentialList, error) + sacl StorageAccountCredentialList +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *StorageAccountCredentialListPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StorageAccountCredentialListPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + next, err := page.fn(ctx, page.sacl) + if err != nil { + return err + } + page.sacl = next + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *StorageAccountCredentialListPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page StorageAccountCredentialListPage) NotDone() bool { + return !page.sacl.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page StorageAccountCredentialListPage) Response() StorageAccountCredentialList { + return page.sacl +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page StorageAccountCredentialListPage) Values() []StorageAccountCredential { + if page.sacl.IsEmpty() { + return nil + } + return *page.sacl.Value +} + +// Creates a new instance of the StorageAccountCredentialListPage type. +func NewStorageAccountCredentialListPage(getNextPage func(context.Context, StorageAccountCredentialList) (StorageAccountCredentialList, error)) StorageAccountCredentialListPage { + return StorageAccountCredentialListPage{fn: getNextPage} +} + +// StorageAccountCredentialProperties the storage account credential properties. +type StorageAccountCredentialProperties struct { + // Alias - Alias for the storage account. + Alias *string `json:"alias,omitempty"` + // UserName - Username for the storage account. + UserName *string `json:"userName,omitempty"` + // AccountKey - Encrypted storage key. + AccountKey *AsymmetricEncryptedSecret `json:"accountKey,omitempty"` + // ConnectionString - Connection string for the storage account. Use this string if username and account key are not specified. + ConnectionString *string `json:"connectionString,omitempty"` + // SslStatus - Signifies whether SSL needs to be enabled or not. Possible values include: 'SSLStatusEnabled', 'SSLStatusDisabled' + SslStatus SSLStatus `json:"sslStatus,omitempty"` + // BlobDomainName - Blob end point for private clouds. + BlobDomainName *string `json:"blobDomainName,omitempty"` + // AccountType - Type of storage accessed on the storage account. Possible values include: 'GeneralPurposeStorage', 'BlobStorage' + AccountType AccountType `json:"accountType,omitempty"` + // StorageAccountID - Id of the storage account. + StorageAccountID *string `json:"storageAccountId,omitempty"` +} + +// StorageAccountCredentialsCreateOrUpdateFuture an abstraction for monitoring and retrieving the results +// of a long-running operation. +type StorageAccountCredentialsCreateOrUpdateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *StorageAccountCredentialsCreateOrUpdateFuture) Result(client StorageAccountCredentialsClient) (sac StorageAccountCredential, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.StorageAccountCredentialsCreateOrUpdateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if sac.Response.Response, err = future.GetResult(sender); err == nil && sac.Response.Response.StatusCode != http.StatusNoContent { + sac, err = client.CreateOrUpdateResponder(sac.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsCreateOrUpdateFuture", "Result", sac.Response.Response, "Failure responding to request") + } + } + return +} + +// StorageAccountCredentialsDeleteFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type StorageAccountCredentialsDeleteFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *StorageAccountCredentialsDeleteFuture) Result(client StorageAccountCredentialsClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.StorageAccountCredentialsDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// SymmetricKey symmetric key for authentication. +type SymmetricKey struct { + // ConnectionString - Connection string based on the symmetric key. + ConnectionString *AsymmetricEncryptedSecret `json:"connectionString,omitempty"` +} + +// TrackingInfo tracking courier information. +type TrackingInfo struct { + // SerialNumber - Serial number of the device being tracked. + SerialNumber *string `json:"serialNumber,omitempty"` + // CarrierName - Name of the carrier used in the delivery. + CarrierName *string `json:"carrierName,omitempty"` + // TrackingID - Tracking ID of the shipment. + TrackingID *string `json:"trackingId,omitempty"` + // TrackingURL - Tracking URL of the shipment. + TrackingURL *string `json:"trackingUrl,omitempty"` +} + +// BasicTrigger trigger details. +type BasicTrigger interface { + AsFileEventTrigger() (*FileEventTrigger, bool) + AsPeriodicTimerEventTrigger() (*PeriodicTimerEventTrigger, bool) + AsTrigger() (*Trigger, bool) +} + +// Trigger trigger details. +type Trigger struct { + autorest.Response `json:"-"` + // Kind - Possible values include: 'KindTrigger', 'KindFileEvent', 'KindPeriodicTimerEvent' + Kind KindBasicTrigger `json:"kind,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +func unmarshalBasicTrigger(body []byte) (BasicTrigger, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["kind"] { + case string(KindFileEvent): + var fet FileEventTrigger + err := json.Unmarshal(body, &fet) + return fet, err + case string(KindPeriodicTimerEvent): + var ptet PeriodicTimerEventTrigger + err := json.Unmarshal(body, &ptet) + return ptet, err + default: + var t Trigger + err := json.Unmarshal(body, &t) + return t, err + } +} +func unmarshalBasicTriggerArray(body []byte) ([]BasicTrigger, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + tArray := make([]BasicTrigger, len(rawMessages)) + + for index, rawMessage := range rawMessages { + t, err := unmarshalBasicTrigger(*rawMessage) + if err != nil { + return nil, err + } + tArray[index] = t + } + return tArray, nil +} + +// MarshalJSON is the custom marshaler for Trigger. +func (t Trigger) MarshalJSON() ([]byte, error) { + t.Kind = KindTrigger + objectMap := make(map[string]interface{}) + if t.Kind != "" { + objectMap["kind"] = t.Kind + } + return json.Marshal(objectMap) +} + +// AsFileEventTrigger is the BasicTrigger implementation for Trigger. +func (t Trigger) AsFileEventTrigger() (*FileEventTrigger, bool) { + return nil, false +} + +// AsPeriodicTimerEventTrigger is the BasicTrigger implementation for Trigger. +func (t Trigger) AsPeriodicTimerEventTrigger() (*PeriodicTimerEventTrigger, bool) { + return nil, false +} + +// AsTrigger is the BasicTrigger implementation for Trigger. +func (t Trigger) AsTrigger() (*Trigger, bool) { + return &t, true +} + +// AsBasicTrigger is the BasicTrigger implementation for Trigger. +func (t Trigger) AsBasicTrigger() (BasicTrigger, bool) { + return &t, true +} + +// TriggerList collection of all trigger on the data box edge device. +type TriggerList struct { + autorest.Response `json:"-"` + // Value - READ-ONLY; The list of triggers. + Value *[]BasicTrigger `json:"value,omitempty"` + // NextLink - READ-ONLY; Link to the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for TriggerList struct. +func (tl *TriggerList) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "value": + if v != nil { + value, err := unmarshalBasicTriggerArray(*v) + if err != nil { + return err + } + tl.Value = &value + } + case "nextLink": + if v != nil { + var nextLink string + err = json.Unmarshal(*v, &nextLink) + if err != nil { + return err + } + tl.NextLink = &nextLink + } + } + } + + return nil +} + +// TriggerListIterator provides access to a complete listing of Trigger values. +type TriggerListIterator struct { + i int + page TriggerListPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *TriggerListIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/TriggerListIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *TriggerListIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter TriggerListIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter TriggerListIterator) Response() TriggerList { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter TriggerListIterator) Value() BasicTrigger { + if !iter.page.NotDone() { + return Trigger{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the TriggerListIterator type. +func NewTriggerListIterator(page TriggerListPage) TriggerListIterator { + return TriggerListIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (tl TriggerList) IsEmpty() bool { + return tl.Value == nil || len(*tl.Value) == 0 +} + +// triggerListPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (tl TriggerList) triggerListPreparer(ctx context.Context) (*http.Request, error) { + if tl.NextLink == nil || len(to.String(tl.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(tl.NextLink))) +} + +// TriggerListPage contains a page of BasicTrigger values. +type TriggerListPage struct { + fn func(context.Context, TriggerList) (TriggerList, error) + tl TriggerList +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *TriggerListPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/TriggerListPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + next, err := page.fn(ctx, page.tl) + if err != nil { + return err + } + page.tl = next + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *TriggerListPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page TriggerListPage) NotDone() bool { + return !page.tl.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page TriggerListPage) Response() TriggerList { + return page.tl +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page TriggerListPage) Values() []BasicTrigger { + if page.tl.IsEmpty() { + return nil + } + return *page.tl.Value +} + +// Creates a new instance of the TriggerListPage type. +func NewTriggerListPage(getNextPage func(context.Context, TriggerList) (TriggerList, error)) TriggerListPage { + return TriggerListPage{fn: getNextPage} +} + +// TriggerModel ... +type TriggerModel struct { + autorest.Response `json:"-"` + Value BasicTrigger `json:"value,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for TriggerModel struct. +func (tm *TriggerModel) UnmarshalJSON(body []byte) error { + t, err := unmarshalBasicTrigger(body) + if err != nil { + return err + } + tm.Value = t + + return nil +} + +// TriggersCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type TriggersCreateOrUpdateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *TriggersCreateOrUpdateFuture) Result(client TriggersClient) (tm TriggerModel, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.TriggersCreateOrUpdateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if tm.Response.Response, err = future.GetResult(sender); err == nil && tm.Response.Response.StatusCode != http.StatusNoContent { + tm, err = client.CreateOrUpdateResponder(tm.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersCreateOrUpdateFuture", "Result", tm.Response.Response, "Failure responding to request") + } + } + return +} + +// TriggersDeleteFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type TriggersDeleteFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *TriggersDeleteFuture) Result(client TriggersClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.TriggersDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// UpdateDownloadProgress details about the download progress of update. +type UpdateDownloadProgress struct { + // DownloadPhase - READ-ONLY; The download phase. Possible values include: 'Unknown', 'Initializing', 'Downloading', 'Verifying' + DownloadPhase DownloadPhase `json:"downloadPhase,omitempty"` + // PercentComplete - READ-ONLY; Percentage of completion. + PercentComplete *int32 `json:"percentComplete,omitempty"` + // TotalBytesToDownload - READ-ONLY; Total bytes to download. + TotalBytesToDownload *float64 `json:"totalBytesToDownload,omitempty"` + // TotalBytesDownloaded - READ-ONLY; Total bytes downloaded. + TotalBytesDownloaded *float64 `json:"totalBytesDownloaded,omitempty"` + // NumberOfUpdatesToDownload - READ-ONLY; Number of updates to download. + NumberOfUpdatesToDownload *int32 `json:"numberOfUpdatesToDownload,omitempty"` + // NumberOfUpdatesDownloaded - READ-ONLY; Number of updates downloaded. + NumberOfUpdatesDownloaded *int32 `json:"numberOfUpdatesDownloaded,omitempty"` +} + +// UpdateInstallProgress progress details during installation of updates. +type UpdateInstallProgress struct { + // PercentComplete - READ-ONLY; Percentage completed. + PercentComplete *int32 `json:"percentComplete,omitempty"` + // NumberOfUpdatesToInstall - READ-ONLY; Number of updates to install. + NumberOfUpdatesToInstall *int32 `json:"numberOfUpdatesToInstall,omitempty"` + // NumberOfUpdatesInstalled - READ-ONLY; Number of updates installed. + NumberOfUpdatesInstalled *int32 `json:"numberOfUpdatesInstalled,omitempty"` +} + +// UpdateSummary details about ongoing updates and availability of updates on the device. +type UpdateSummary struct { + autorest.Response `json:"-"` + // UpdateSummaryProperties - The device update information summary. + *UpdateSummaryProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for UpdateSummary. +func (us UpdateSummary) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if us.UpdateSummaryProperties != nil { + objectMap["properties"] = us.UpdateSummaryProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for UpdateSummary struct. +func (us *UpdateSummary) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var updateSummaryProperties UpdateSummaryProperties + err = json.Unmarshal(*v, &updateSummaryProperties) + if err != nil { + return err + } + us.UpdateSummaryProperties = &updateSummaryProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + us.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + us.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + us.Type = &typeVar + } + } + } + + return nil +} + +// UpdateSummaryProperties the device update information summary. +type UpdateSummaryProperties struct { + // DeviceVersionNumber - The current version of the device in format: 1.2.17312.13.", + DeviceVersionNumber *string `json:"deviceVersionNumber,omitempty"` + // FriendlyDeviceVersionName - The current version of the device in text format. + FriendlyDeviceVersionName *string `json:"friendlyDeviceVersionName,omitempty"` + // DeviceLastScannedDateTime - The last time when a scan was done on the device. + DeviceLastScannedDateTime *date.Time `json:"deviceLastScannedDateTime,omitempty"` + // LastCompletedScanJobDateTime - The time when the last scan job was completed (success/cancelled/failed) on the appliance. + LastCompletedScanJobDateTime *date.Time `json:"lastCompletedScanJobDateTime,omitempty"` + // LastCompletedDownloadJobDateTime - READ-ONLY; The time when the last Download job was completed (success/cancelled/failed) on the appliance. + LastCompletedDownloadJobDateTime *date.Time `json:"lastCompletedDownloadJobDateTime,omitempty"` + // LastCompletedInstallJobDateTime - READ-ONLY; The time when the last Install job was completed (success/cancelled/failed) on the appliance. + LastCompletedInstallJobDateTime *date.Time `json:"lastCompletedInstallJobDateTime,omitempty"` + // TotalNumberOfUpdatesAvailable - READ-ONLY; The number of updates available for the current device version as per the last device scan. + TotalNumberOfUpdatesAvailable *int32 `json:"totalNumberOfUpdatesAvailable,omitempty"` + // TotalNumberOfUpdatesPendingDownload - READ-ONLY; The total number of items pending download. + TotalNumberOfUpdatesPendingDownload *int32 `json:"totalNumberOfUpdatesPendingDownload,omitempty"` + // TotalNumberOfUpdatesPendingInstall - READ-ONLY; The total number of items pending install. + TotalNumberOfUpdatesPendingInstall *int32 `json:"totalNumberOfUpdatesPendingInstall,omitempty"` + // RebootBehavior - READ-ONLY; Indicates if updates are available and at least one of the updates needs a reboot. Possible values include: 'NeverReboots', 'RequiresReboot', 'RequestReboot' + RebootBehavior InstallRebootBehavior `json:"rebootBehavior,omitempty"` + // OngoingUpdateOperation - READ-ONLY; The current update operation. Possible values include: 'UpdateOperationNone', 'UpdateOperationScan', 'UpdateOperationDownload', 'UpdateOperationInstall' + OngoingUpdateOperation UpdateOperation `json:"ongoingUpdateOperation,omitempty"` + // InProgressDownloadJobID - READ-ONLY; The job ID of the download job in progress. + InProgressDownloadJobID *string `json:"inProgressDownloadJobId,omitempty"` + // InProgressInstallJobID - READ-ONLY; The job ID of the install job in progress. + InProgressInstallJobID *string `json:"inProgressInstallJobId,omitempty"` + // InProgressDownloadJobStartedDateTime - READ-ONLY; The time when the currently running download (if any) started. + InProgressDownloadJobStartedDateTime *date.Time `json:"inProgressDownloadJobStartedDateTime,omitempty"` + // InProgressInstallJobStartedDateTime - READ-ONLY; The time when the currently running install (if any) started. + InProgressInstallJobStartedDateTime *date.Time `json:"inProgressInstallJobStartedDateTime,omitempty"` + // UpdateTitles - READ-ONLY; The list of updates available for install. + UpdateTitles *[]string `json:"updateTitles,omitempty"` + // TotalUpdateSizeInBytes - READ-ONLY; The total size of updates available for download in bytes. + TotalUpdateSizeInBytes *float64 `json:"totalUpdateSizeInBytes,omitempty"` +} + +// UploadCertificateRequest the upload certificate request. +type UploadCertificateRequest struct { + // RawCertificateData - The Base 64 encoded certificate raw data. + *RawCertificateData `json:"properties,omitempty"` +} + +// MarshalJSON is the custom marshaler for UploadCertificateRequest. +func (ucr UploadCertificateRequest) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if ucr.RawCertificateData != nil { + objectMap["properties"] = ucr.RawCertificateData + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for UploadCertificateRequest struct. +func (ucr *UploadCertificateRequest) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var rawCertificateData RawCertificateData + err = json.Unmarshal(*v, &rawCertificateData) + if err != nil { + return err + } + ucr.RawCertificateData = &rawCertificateData + } + } + } + + return nil +} + +// UploadCertificateResponse the upload registration certificate response. +type UploadCertificateResponse struct { + autorest.Response `json:"-"` + // AuthType - Specifies authentication type. Possible values include: 'Invalid', 'AzureActiveDirectory' + AuthType AuthenticationType `json:"authType,omitempty"` + // ResourceID - The resource ID of the Data Box Edge/Gateway device. + ResourceID *string `json:"resourceId,omitempty"` + // AadAuthority - Azure Active Directory tenant authority. + AadAuthority *string `json:"aadAuthority,omitempty"` + // AadTenantID - Azure Active Directory tenant ID. + AadTenantID *string `json:"aadTenantId,omitempty"` + // ServicePrincipalClientID - Azure Active Directory service principal client ID. + ServicePrincipalClientID *string `json:"servicePrincipalClientId,omitempty"` + // ServicePrincipalObjectID - Azure Active Directory service principal object ID. + ServicePrincipalObjectID *string `json:"servicePrincipalObjectId,omitempty"` + // AzureManagementEndpointAudience - The azure management endpoint audience. + AzureManagementEndpointAudience *string `json:"azureManagementEndpointAudience,omitempty"` +} + +// User represents a user who has access to one or more shares on the Data Box Edge/Gateway device. +type User struct { + autorest.Response `json:"-"` + // UserProperties - The storage account credential properties. + *UserProperties `json:"properties,omitempty"` + // ID - READ-ONLY; The path ID that uniquely identifies the object. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The object name. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; The hierarchical type of the object. + Type *string `json:"type,omitempty"` +} + +// MarshalJSON is the custom marshaler for User. +func (u User) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if u.UserProperties != nil { + objectMap["properties"] = u.UserProperties + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for User struct. +func (u *User) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err + } + for k, v := range m { + switch k { + case "properties": + if v != nil { + var userProperties UserProperties + err = json.Unmarshal(*v, &userProperties) + if err != nil { + return err + } + u.UserProperties = &userProperties + } + case "id": + if v != nil { + var ID string + err = json.Unmarshal(*v, &ID) + if err != nil { + return err + } + u.ID = &ID + } + case "name": + if v != nil { + var name string + err = json.Unmarshal(*v, &name) + if err != nil { + return err + } + u.Name = &name + } + case "type": + if v != nil { + var typeVar string + err = json.Unmarshal(*v, &typeVar) + if err != nil { + return err + } + u.Type = &typeVar + } + } + } + + return nil +} + +// UserAccessRight the mapping between a particular user and the access type on the SMB share. +type UserAccessRight struct { + // UserID - User ID (already existing in the device). + UserID *string `json:"userId,omitempty"` + // AccessType - Type of access to be allowed for the user. Possible values include: 'Change', 'Read', 'Custom' + AccessType ShareAccessType `json:"accessType,omitempty"` +} + +// UserList collection of users. +type UserList struct { + autorest.Response `json:"-"` + // Value - READ-ONLY; The list of users. + Value *[]User `json:"value,omitempty"` + // NextLink - READ-ONLY; Link to the next set of results. + NextLink *string `json:"nextLink,omitempty"` +} + +// UserListIterator provides access to a complete listing of User values. +type UserListIterator struct { + i int + page UserListPage +} + +// NextWithContext advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +func (iter *UserListIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/UserListIterator.NextWithContext") + defer func() { + sc := -1 + if iter.Response().Response.Response != nil { + sc = iter.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + iter.i++ + if iter.i < len(iter.page.Values()) { + return nil + } + err = iter.page.NextWithContext(ctx) + if err != nil { + iter.i-- + return err + } + iter.i = 0 + return nil +} + +// Next advances to the next value. If there was an error making +// the request the iterator does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (iter *UserListIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter UserListIterator) NotDone() bool { + return iter.page.NotDone() && iter.i < len(iter.page.Values()) +} + +// Response returns the raw server response from the last page request. +func (iter UserListIterator) Response() UserList { + return iter.page.Response() +} + +// Value returns the current value or a zero-initialized value if the +// iterator has advanced beyond the end of the collection. +func (iter UserListIterator) Value() User { + if !iter.page.NotDone() { + return User{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the UserListIterator type. +func NewUserListIterator(page UserListPage) UserListIterator { + return UserListIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (ul UserList) IsEmpty() bool { + return ul.Value == nil || len(*ul.Value) == 0 +} + +// userListPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (ul UserList) userListPreparer(ctx context.Context) (*http.Request, error) { + if ul.NextLink == nil || len(to.String(ul.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(ul.NextLink))) +} + +// UserListPage contains a page of User values. +type UserListPage struct { + fn func(context.Context, UserList) (UserList, error) + ul UserList +} + +// NextWithContext advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +func (page *UserListPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/UserListPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + next, err := page.fn(ctx, page.ul) + if err != nil { + return err + } + page.ul = next + return nil +} + +// Next advances to the next page of values. If there was an error making +// the request the page does not advance and the error is returned. +// Deprecated: Use NextWithContext() instead. +func (page *UserListPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page UserListPage) NotDone() bool { + return !page.ul.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page UserListPage) Response() UserList { + return page.ul +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page UserListPage) Values() []User { + if page.ul.IsEmpty() { + return nil + } + return *page.ul.Value +} + +// Creates a new instance of the UserListPage type. +func NewUserListPage(getNextPage func(context.Context, UserList) (UserList, error)) UserListPage { + return UserListPage{fn: getNextPage} +} + +// UserProperties the user properties. +type UserProperties struct { + // EncryptedPassword - The password details. + EncryptedPassword *AsymmetricEncryptedSecret `json:"encryptedPassword,omitempty"` + // ShareAccessRights - List of shares that the user has rights on. This field should not be specified during user creation. + ShareAccessRights *[]ShareAccessRight `json:"shareAccessRights,omitempty"` +} + +// UsersCreateOrUpdateFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type UsersCreateOrUpdateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *UsersCreateOrUpdateFuture) Result(client UsersClient) (u User, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersCreateOrUpdateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.UsersCreateOrUpdateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if u.Response.Response, err = future.GetResult(sender); err == nil && u.Response.Response.StatusCode != http.StatusNoContent { + u, err = client.CreateOrUpdateResponder(u.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersCreateOrUpdateFuture", "Result", u.Response.Response, "Failure responding to request") + } + } + return +} + +// UsersDeleteFuture an abstraction for monitoring and retrieving the results of a long-running operation. +type UsersDeleteFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *UsersDeleteFuture) Result(client UsersClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("databoxedge.UsersDeleteFuture") + return + } + ar.Response = future.Response() + return +} diff --git a/services/databoxedge/mgmt/2019-07-01/databoxedge/nodes.go b/services/databoxedge/mgmt/2019-07-01/databoxedge/nodes.go new file mode 100644 index 000000000000..86b9766a31ca --- /dev/null +++ b/services/databoxedge/mgmt/2019-07-01/databoxedge/nodes.go @@ -0,0 +1,118 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// NodesClient is the client for the Nodes methods of the Databoxedge service. +type NodesClient struct { + BaseClient +} + +// NewNodesClient creates an instance of the NodesClient client. +func NewNodesClient(subscriptionID string) NodesClient { + return NewNodesClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewNodesClientWithBaseURI creates an instance of the NodesClient client. +func NewNodesClientWithBaseURI(baseURI string, subscriptionID string) NodesClient { + return NodesClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// ListByDataBoxEdgeDevice gets all the nodes currently configured under this Data Box Edge device +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client NodesClient) ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result NodeList, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/NodesClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListByDataBoxEdgeDevicePreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.NodesClient", "ListByDataBoxEdgeDevice", nil, "Failure preparing request") + return + } + + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.NodesClient", "ListByDataBoxEdgeDevice", resp, "Failure sending request") + return + } + + result, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.NodesClient", "ListByDataBoxEdgeDevice", resp, "Failure responding to request") + } + + return +} + +// ListByDataBoxEdgeDevicePreparer prepares the ListByDataBoxEdgeDevice request. +func (client NodesClient) ListByDataBoxEdgeDevicePreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/nodes", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByDataBoxEdgeDeviceSender sends the ListByDataBoxEdgeDevice request. The method will close the +// http.Response Body if it receives an error. +func (client NodesClient) ListByDataBoxEdgeDeviceSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListByDataBoxEdgeDeviceResponder handles the response to the ListByDataBoxEdgeDevice request. The method always +// closes the http.Response Body. +func (client NodesClient) ListByDataBoxEdgeDeviceResponder(resp *http.Response) (result NodeList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/databoxedge/mgmt/2019-07-01/databoxedge/operations.go b/services/databoxedge/mgmt/2019-07-01/databoxedge/operations.go new file mode 100644 index 000000000000..bcb8d20176f9 --- /dev/null +++ b/services/databoxedge/mgmt/2019-07-01/databoxedge/operations.go @@ -0,0 +1,147 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// OperationsClient is the client for the Operations methods of the Databoxedge service. +type OperationsClient struct { + BaseClient +} + +// NewOperationsClient creates an instance of the OperationsClient client. +func NewOperationsClient(subscriptionID string) OperationsClient { + return NewOperationsClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewOperationsClientWithBaseURI creates an instance of the OperationsClient client. +func NewOperationsClientWithBaseURI(baseURI string, subscriptionID string) OperationsClient { + return OperationsClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// List sends the list request. +func (client OperationsClient) List(ctx context.Context) (result OperationsListPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OperationsClient.List") + defer func() { + sc := -1 + if result.ol.Response.Response != nil { + sc = result.ol.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listNextResults + req, err := client.ListPreparer(ctx) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OperationsClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.ol.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.OperationsClient", "List", resp, "Failure sending request") + return + } + + result.ol, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OperationsClient", "List", resp, "Failure responding to request") + } + + return +} + +// ListPreparer prepares the List request. +func (client OperationsClient) ListPreparer(ctx context.Context) (*http.Request, error) { + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPath("/providers/Microsoft.DataBoxEdge/operations"), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListSender sends the List request. The method will close the +// http.Response Body if it receives an error. +func (client OperationsClient) ListSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client OperationsClient) ListResponder(resp *http.Response) (result OperationsList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listNextResults retrieves the next set of results, if any. +func (client OperationsClient) listNextResults(ctx context.Context, lastResults OperationsList) (result OperationsList, err error) { + req, err := lastResults.operationsListPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "databoxedge.OperationsClient", "listNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "databoxedge.OperationsClient", "listNextResults", resp, "Failure sending next results request") + } + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OperationsClient", "listNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListComplete enumerates all values, automatically crossing page boundaries as required. +func (client OperationsClient) ListComplete(ctx context.Context) (result OperationsListIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OperationsClient.List") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.List(ctx) + return +} diff --git a/services/databoxedge/mgmt/2019-07-01/databoxedge/operationsstatus.go b/services/databoxedge/mgmt/2019-07-01/databoxedge/operationsstatus.go new file mode 100644 index 000000000000..2e00a4ab98b1 --- /dev/null +++ b/services/databoxedge/mgmt/2019-07-01/databoxedge/operationsstatus.go @@ -0,0 +1,120 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// OperationsStatusClient is the client for the OperationsStatus methods of the Databoxedge service. +type OperationsStatusClient struct { + BaseClient +} + +// NewOperationsStatusClient creates an instance of the OperationsStatusClient client. +func NewOperationsStatusClient(subscriptionID string) OperationsStatusClient { + return NewOperationsStatusClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewOperationsStatusClientWithBaseURI creates an instance of the OperationsStatusClient client. +func NewOperationsStatusClientWithBaseURI(baseURI string, subscriptionID string) OperationsStatusClient { + return OperationsStatusClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// Get sends the get request. +// Parameters: +// deviceName - the device name. +// name - the job name. +// resourceGroupName - the resource group name. +func (client OperationsStatusClient) Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result Job, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OperationsStatusClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OperationsStatusClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.OperationsStatusClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OperationsStatusClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client OperationsStatusClient) GetPreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/operationsStatus/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client OperationsStatusClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client OperationsStatusClient) GetResponder(resp *http.Response) (result Job, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/services/databoxedge/mgmt/2019-07-01/databoxedge/orders.go b/services/databoxedge/mgmt/2019-07-01/databoxedge/orders.go new file mode 100644 index 000000000000..380f0452d415 --- /dev/null +++ b/services/databoxedge/mgmt/2019-07-01/databoxedge/orders.go @@ -0,0 +1,410 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// OrdersClient is the client for the Orders methods of the Databoxedge service. +type OrdersClient struct { + BaseClient +} + +// NewOrdersClient creates an instance of the OrdersClient client. +func NewOrdersClient(subscriptionID string) OrdersClient { + return NewOrdersClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewOrdersClientWithBaseURI creates an instance of the OrdersClient client. +func NewOrdersClientWithBaseURI(baseURI string, subscriptionID string) OrdersClient { + return OrdersClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate sends the create or update request. +// Parameters: +// deviceName - the device name. +// order - the order to be created or updated. +// resourceGroupName - the resource group name. +func (client OrdersClient) CreateOrUpdate(ctx context.Context, deviceName string, order Order, resourceGroupName string) (result OrdersCreateOrUpdateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OrdersClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: order, + Constraints: []validation.Constraint{{Target: "order.OrderProperties", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "order.OrderProperties.ContactInformation", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "order.OrderProperties.ContactInformation.ContactPerson", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "order.OrderProperties.ContactInformation.CompanyName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "order.OrderProperties.ContactInformation.Phone", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "order.OrderProperties.ContactInformation.EmailList", Name: validation.Null, Rule: true, Chain: nil}, + }}, + {Target: "order.OrderProperties.ShippingAddress", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "order.OrderProperties.ShippingAddress.AddressLine1", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "order.OrderProperties.ShippingAddress.PostalCode", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "order.OrderProperties.ShippingAddress.City", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "order.OrderProperties.ShippingAddress.State", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "order.OrderProperties.ShippingAddress.Country", Name: validation.Null, Rule: true, Chain: nil}, + }}, + }}}}}); err != nil { + return result, validation.NewError("databoxedge.OrdersClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, deviceName, order, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + result, err = client.CreateOrUpdateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "CreateOrUpdate", result.Response(), "Failure sending request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client OrdersClient) CreateOrUpdatePreparer(ctx context.Context, deviceName string, order Order, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/orders/default", pathParameters), + autorest.WithJSON(order), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client OrdersClient) CreateOrUpdateSender(req *http.Request) (future OrdersCreateOrUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client OrdersClient) CreateOrUpdateResponder(resp *http.Response) (result Order, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete sends the delete request. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client OrdersClient) Delete(ctx context.Context, deviceName string, resourceGroupName string) (result OrdersDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OrdersClient.Delete") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "Delete", result.Response(), "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client OrdersClient) DeletePreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/orders/default", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client OrdersClient) DeleteSender(req *http.Request) (future OrdersDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client OrdersClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get sends the get request. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client OrdersClient) Get(ctx context.Context, deviceName string, resourceGroupName string) (result Order, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OrdersClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client OrdersClient) GetPreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/orders/default", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client OrdersClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client OrdersClient) GetResponder(resp *http.Response) (result Order, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// ListByDataBoxEdgeDevice sends the list by data box edge device request. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client OrdersClient) ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result OrderListPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OrdersClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.ol.Response.Response != nil { + sc = result.ol.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listByDataBoxEdgeDeviceNextResults + req, err := client.ListByDataBoxEdgeDevicePreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "ListByDataBoxEdgeDevice", nil, "Failure preparing request") + return + } + + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.ol.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "ListByDataBoxEdgeDevice", resp, "Failure sending request") + return + } + + result.ol, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "ListByDataBoxEdgeDevice", resp, "Failure responding to request") + } + + return +} + +// ListByDataBoxEdgeDevicePreparer prepares the ListByDataBoxEdgeDevice request. +func (client OrdersClient) ListByDataBoxEdgeDevicePreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/orders", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByDataBoxEdgeDeviceSender sends the ListByDataBoxEdgeDevice request. The method will close the +// http.Response Body if it receives an error. +func (client OrdersClient) ListByDataBoxEdgeDeviceSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListByDataBoxEdgeDeviceResponder handles the response to the ListByDataBoxEdgeDevice request. The method always +// closes the http.Response Body. +func (client OrdersClient) ListByDataBoxEdgeDeviceResponder(resp *http.Response) (result OrderList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listByDataBoxEdgeDeviceNextResults retrieves the next set of results, if any. +func (client OrdersClient) listByDataBoxEdgeDeviceNextResults(ctx context.Context, lastResults OrderList) (result OrderList, err error) { + req, err := lastResults.orderListPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "listByDataBoxEdgeDeviceNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure sending next results request") + } + result, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.OrdersClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListByDataBoxEdgeDeviceComplete enumerates all values, automatically crossing page boundaries as required. +func (client OrdersClient) ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string) (result OrderListIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/OrdersClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListByDataBoxEdgeDevice(ctx, deviceName, resourceGroupName) + return +} diff --git a/services/databoxedge/mgmt/2019-07-01/databoxedge/roles.go b/services/databoxedge/mgmt/2019-07-01/databoxedge/roles.go new file mode 100644 index 000000000000..a59b590769ab --- /dev/null +++ b/services/databoxedge/mgmt/2019-07-01/databoxedge/roles.go @@ -0,0 +1,395 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// RolesClient is the client for the Roles methods of the Databoxedge service. +type RolesClient struct { + BaseClient +} + +// NewRolesClient creates an instance of the RolesClient client. +func NewRolesClient(subscriptionID string) RolesClient { + return NewRolesClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewRolesClientWithBaseURI creates an instance of the RolesClient client. +func NewRolesClientWithBaseURI(baseURI string, subscriptionID string) RolesClient { + return RolesClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate create or update a role. +// Parameters: +// deviceName - the device name. +// name - the role name. +// role - the role properties. +// resourceGroupName - the resource group name. +func (client RolesClient) CreateOrUpdate(ctx context.Context, deviceName string, name string, role BasicRole, resourceGroupName string) (result RolesCreateOrUpdateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/RolesClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.CreateOrUpdatePreparer(ctx, deviceName, name, role, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + result, err = client.CreateOrUpdateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesClient", "CreateOrUpdate", result.Response(), "Failure sending request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client RolesClient) CreateOrUpdatePreparer(ctx context.Context, deviceName string, name string, role BasicRole, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/roles/{name}", pathParameters), + autorest.WithJSON(role), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client RolesClient) CreateOrUpdateSender(req *http.Request) (future RolesCreateOrUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client RolesClient) CreateOrUpdateResponder(resp *http.Response) (result RoleModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes the role on the device. +// Parameters: +// deviceName - the device name. +// name - the role name. +// resourceGroupName - the resource group name. +func (client RolesClient) Delete(ctx context.Context, deviceName string, name string, resourceGroupName string) (result RolesDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/RolesClient.Delete") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesClient", "Delete", result.Response(), "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client RolesClient) DeletePreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/roles/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client RolesClient) DeleteSender(req *http.Request) (future RolesDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client RolesClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get gets a specific role by name. +// Parameters: +// deviceName - the device name. +// name - the role name. +// resourceGroupName - the resource group name. +func (client RolesClient) Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result RoleModel, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/RolesClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.RolesClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client RolesClient) GetPreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/roles/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client RolesClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client RolesClient) GetResponder(resp *http.Response) (result RoleModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// ListByDataBoxEdgeDevice lists all the roles configured in a Data Box Edge/Data Box Gateway device. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client RolesClient) ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result RoleListPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/RolesClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.rl.Response.Response != nil { + sc = result.rl.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listByDataBoxEdgeDeviceNextResults + req, err := client.ListByDataBoxEdgeDevicePreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesClient", "ListByDataBoxEdgeDevice", nil, "Failure preparing request") + return + } + + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.rl.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.RolesClient", "ListByDataBoxEdgeDevice", resp, "Failure sending request") + return + } + + result.rl, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesClient", "ListByDataBoxEdgeDevice", resp, "Failure responding to request") + } + + return +} + +// ListByDataBoxEdgeDevicePreparer prepares the ListByDataBoxEdgeDevice request. +func (client RolesClient) ListByDataBoxEdgeDevicePreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/roles", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByDataBoxEdgeDeviceSender sends the ListByDataBoxEdgeDevice request. The method will close the +// http.Response Body if it receives an error. +func (client RolesClient) ListByDataBoxEdgeDeviceSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListByDataBoxEdgeDeviceResponder handles the response to the ListByDataBoxEdgeDevice request. The method always +// closes the http.Response Body. +func (client RolesClient) ListByDataBoxEdgeDeviceResponder(resp *http.Response) (result RoleList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listByDataBoxEdgeDeviceNextResults retrieves the next set of results, if any. +func (client RolesClient) listByDataBoxEdgeDeviceNextResults(ctx context.Context, lastResults RoleList) (result RoleList, err error) { + req, err := lastResults.roleListPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "databoxedge.RolesClient", "listByDataBoxEdgeDeviceNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "databoxedge.RolesClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure sending next results request") + } + result, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.RolesClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListByDataBoxEdgeDeviceComplete enumerates all values, automatically crossing page boundaries as required. +func (client RolesClient) ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string) (result RoleListIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/RolesClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListByDataBoxEdgeDevice(ctx, deviceName, resourceGroupName) + return +} diff --git a/services/databoxedge/mgmt/2019-07-01/databoxedge/shares.go b/services/databoxedge/mgmt/2019-07-01/databoxedge/shares.go new file mode 100644 index 000000000000..9990a6891be4 --- /dev/null +++ b/services/databoxedge/mgmt/2019-07-01/databoxedge/shares.go @@ -0,0 +1,485 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// SharesClient is the client for the Shares methods of the Databoxedge service. +type SharesClient struct { + BaseClient +} + +// NewSharesClient creates an instance of the SharesClient client. +func NewSharesClient(subscriptionID string) SharesClient { + return NewSharesClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewSharesClientWithBaseURI creates an instance of the SharesClient client. +func NewSharesClientWithBaseURI(baseURI string, subscriptionID string) SharesClient { + return SharesClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate sends the create or update request. +// Parameters: +// deviceName - the device name. +// name - the share name. +// share - the share properties. +// resourceGroupName - the resource group name. +func (client SharesClient) CreateOrUpdate(ctx context.Context, deviceName string, name string, share Share, resourceGroupName string) (result SharesCreateOrUpdateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/SharesClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: share, + Constraints: []validation.Constraint{{Target: "share.ShareProperties", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "share.ShareProperties.AzureContainerInfo", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "share.ShareProperties.AzureContainerInfo.StorageAccountCredentialID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "share.ShareProperties.AzureContainerInfo.ContainerName", Name: validation.Null, Rule: true, Chain: nil}, + }}, + }}}}}); err != nil { + return result, validation.NewError("databoxedge.SharesClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, deviceName, name, share, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + result, err = client.CreateOrUpdateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "CreateOrUpdate", result.Response(), "Failure sending request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client SharesClient) CreateOrUpdatePreparer(ctx context.Context, deviceName string, name string, share Share, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/shares/{name}", pathParameters), + autorest.WithJSON(share), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client SharesClient) CreateOrUpdateSender(req *http.Request) (future SharesCreateOrUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client SharesClient) CreateOrUpdateResponder(resp *http.Response) (result Share, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes the share on the Data Box Edge/Data Box Gateway device. +// Parameters: +// deviceName - the device name. +// name - the share name. +// resourceGroupName - the resource group name. +func (client SharesClient) Delete(ctx context.Context, deviceName string, name string, resourceGroupName string) (result SharesDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/SharesClient.Delete") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "Delete", result.Response(), "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client SharesClient) DeletePreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/shares/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client SharesClient) DeleteSender(req *http.Request) (future SharesDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client SharesClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get sends the get request. +// Parameters: +// deviceName - the device name. +// name - the share name. +// resourceGroupName - the resource group name. +func (client SharesClient) Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result Share, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/SharesClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client SharesClient) GetPreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/shares/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client SharesClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client SharesClient) GetResponder(resp *http.Response) (result Share, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// ListByDataBoxEdgeDevice sends the list by data box edge device request. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client SharesClient) ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result ShareListPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/SharesClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.sl.Response.Response != nil { + sc = result.sl.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listByDataBoxEdgeDeviceNextResults + req, err := client.ListByDataBoxEdgeDevicePreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "ListByDataBoxEdgeDevice", nil, "Failure preparing request") + return + } + + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.sl.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "ListByDataBoxEdgeDevice", resp, "Failure sending request") + return + } + + result.sl, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "ListByDataBoxEdgeDevice", resp, "Failure responding to request") + } + + return +} + +// ListByDataBoxEdgeDevicePreparer prepares the ListByDataBoxEdgeDevice request. +func (client SharesClient) ListByDataBoxEdgeDevicePreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/shares", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByDataBoxEdgeDeviceSender sends the ListByDataBoxEdgeDevice request. The method will close the +// http.Response Body if it receives an error. +func (client SharesClient) ListByDataBoxEdgeDeviceSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListByDataBoxEdgeDeviceResponder handles the response to the ListByDataBoxEdgeDevice request. The method always +// closes the http.Response Body. +func (client SharesClient) ListByDataBoxEdgeDeviceResponder(resp *http.Response) (result ShareList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listByDataBoxEdgeDeviceNextResults retrieves the next set of results, if any. +func (client SharesClient) listByDataBoxEdgeDeviceNextResults(ctx context.Context, lastResults ShareList) (result ShareList, err error) { + req, err := lastResults.shareListPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "databoxedge.SharesClient", "listByDataBoxEdgeDeviceNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "databoxedge.SharesClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure sending next results request") + } + result, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListByDataBoxEdgeDeviceComplete enumerates all values, automatically crossing page boundaries as required. +func (client SharesClient) ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string) (result ShareListIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/SharesClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListByDataBoxEdgeDevice(ctx, deviceName, resourceGroupName) + return +} + +// Refresh sends the refresh request. +// Parameters: +// deviceName - the device name. +// name - the share name. +// resourceGroupName - the resource group name. +func (client SharesClient) Refresh(ctx context.Context, deviceName string, name string, resourceGroupName string) (result SharesRefreshFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/SharesClient.Refresh") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.RefreshPreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "Refresh", nil, "Failure preparing request") + return + } + + result, err = client.RefreshSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.SharesClient", "Refresh", result.Response(), "Failure sending request") + return + } + + return +} + +// RefreshPreparer prepares the Refresh request. +func (client SharesClient) RefreshPreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/shares/{name}/refresh", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RefreshSender sends the Refresh request. The method will close the +// http.Response Body if it receives an error. +func (client SharesClient) RefreshSender(req *http.Request) (future SharesRefreshFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// RefreshResponder handles the response to the Refresh request. The method always +// closes the http.Response Body. +func (client SharesClient) RefreshResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByClosing()) + result.Response = resp + return +} diff --git a/services/databoxedge/mgmt/2019-07-01/databoxedge/storageaccountcredentials.go b/services/databoxedge/mgmt/2019-07-01/databoxedge/storageaccountcredentials.go new file mode 100644 index 000000000000..4bc7578180fe --- /dev/null +++ b/services/databoxedge/mgmt/2019-07-01/databoxedge/storageaccountcredentials.go @@ -0,0 +1,406 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// StorageAccountCredentialsClient is the client for the StorageAccountCredentials methods of the Databoxedge service. +type StorageAccountCredentialsClient struct { + BaseClient +} + +// NewStorageAccountCredentialsClient creates an instance of the StorageAccountCredentialsClient client. +func NewStorageAccountCredentialsClient(subscriptionID string) StorageAccountCredentialsClient { + return NewStorageAccountCredentialsClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewStorageAccountCredentialsClientWithBaseURI creates an instance of the StorageAccountCredentialsClient client. +func NewStorageAccountCredentialsClientWithBaseURI(baseURI string, subscriptionID string) StorageAccountCredentialsClient { + return StorageAccountCredentialsClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate creates or updates the storage account credential. +// Parameters: +// deviceName - the device name. +// name - the storage account credential name. +// storageAccountCredential - the storage account credential. +// resourceGroupName - the resource group name. +func (client StorageAccountCredentialsClient) CreateOrUpdate(ctx context.Context, deviceName string, name string, storageAccountCredential StorageAccountCredential, resourceGroupName string) (result StorageAccountCredentialsCreateOrUpdateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StorageAccountCredentialsClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: storageAccountCredential, + Constraints: []validation.Constraint{{Target: "storageAccountCredential.StorageAccountCredentialProperties", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "storageAccountCredential.StorageAccountCredentialProperties.Alias", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "storageAccountCredential.StorageAccountCredentialProperties.AccountKey", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "storageAccountCredential.StorageAccountCredentialProperties.AccountKey.Value", Name: validation.Null, Rule: true, Chain: nil}}}, + }}}}}); err != nil { + return result, validation.NewError("databoxedge.StorageAccountCredentialsClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, deviceName, name, storageAccountCredential, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + result, err = client.CreateOrUpdateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "CreateOrUpdate", result.Response(), "Failure sending request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client StorageAccountCredentialsClient) CreateOrUpdatePreparer(ctx context.Context, deviceName string, name string, storageAccountCredential StorageAccountCredential, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/storageAccountCredentials/{name}", pathParameters), + autorest.WithJSON(storageAccountCredential), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client StorageAccountCredentialsClient) CreateOrUpdateSender(req *http.Request) (future StorageAccountCredentialsCreateOrUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client StorageAccountCredentialsClient) CreateOrUpdateResponder(resp *http.Response) (result StorageAccountCredential, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes the storage account credential. +// Parameters: +// deviceName - the device name. +// name - the storage account credential name. +// resourceGroupName - the resource group name. +func (client StorageAccountCredentialsClient) Delete(ctx context.Context, deviceName string, name string, resourceGroupName string) (result StorageAccountCredentialsDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StorageAccountCredentialsClient.Delete") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "Delete", result.Response(), "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client StorageAccountCredentialsClient) DeletePreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/storageAccountCredentials/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client StorageAccountCredentialsClient) DeleteSender(req *http.Request) (future StorageAccountCredentialsDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client StorageAccountCredentialsClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get gets the properties of the specified storage account credential. +// Parameters: +// deviceName - the device name. +// name - the storage account credential name. +// resourceGroupName - the resource group name. +func (client StorageAccountCredentialsClient) Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result StorageAccountCredential, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StorageAccountCredentialsClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client StorageAccountCredentialsClient) GetPreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/storageAccountCredentials/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client StorageAccountCredentialsClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client StorageAccountCredentialsClient) GetResponder(resp *http.Response) (result StorageAccountCredential, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// ListByDataBoxEdgeDevice sends the list by data box edge device request. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client StorageAccountCredentialsClient) ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result StorageAccountCredentialListPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StorageAccountCredentialsClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.sacl.Response.Response != nil { + sc = result.sacl.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listByDataBoxEdgeDeviceNextResults + req, err := client.ListByDataBoxEdgeDevicePreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "ListByDataBoxEdgeDevice", nil, "Failure preparing request") + return + } + + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.sacl.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "ListByDataBoxEdgeDevice", resp, "Failure sending request") + return + } + + result.sacl, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "ListByDataBoxEdgeDevice", resp, "Failure responding to request") + } + + return +} + +// ListByDataBoxEdgeDevicePreparer prepares the ListByDataBoxEdgeDevice request. +func (client StorageAccountCredentialsClient) ListByDataBoxEdgeDevicePreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/storageAccountCredentials", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByDataBoxEdgeDeviceSender sends the ListByDataBoxEdgeDevice request. The method will close the +// http.Response Body if it receives an error. +func (client StorageAccountCredentialsClient) ListByDataBoxEdgeDeviceSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListByDataBoxEdgeDeviceResponder handles the response to the ListByDataBoxEdgeDevice request. The method always +// closes the http.Response Body. +func (client StorageAccountCredentialsClient) ListByDataBoxEdgeDeviceResponder(resp *http.Response) (result StorageAccountCredentialList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listByDataBoxEdgeDeviceNextResults retrieves the next set of results, if any. +func (client StorageAccountCredentialsClient) listByDataBoxEdgeDeviceNextResults(ctx context.Context, lastResults StorageAccountCredentialList) (result StorageAccountCredentialList, err error) { + req, err := lastResults.storageAccountCredentialListPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "listByDataBoxEdgeDeviceNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure sending next results request") + } + result, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.StorageAccountCredentialsClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListByDataBoxEdgeDeviceComplete enumerates all values, automatically crossing page boundaries as required. +func (client StorageAccountCredentialsClient) ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string) (result StorageAccountCredentialListIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/StorageAccountCredentialsClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListByDataBoxEdgeDevice(ctx, deviceName, resourceGroupName) + return +} diff --git a/services/databoxedge/mgmt/2019-07-01/databoxedge/triggers.go b/services/databoxedge/mgmt/2019-07-01/databoxedge/triggers.go new file mode 100644 index 000000000000..0d669df50718 --- /dev/null +++ b/services/databoxedge/mgmt/2019-07-01/databoxedge/triggers.go @@ -0,0 +1,399 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// TriggersClient is the client for the Triggers methods of the Databoxedge service. +type TriggersClient struct { + BaseClient +} + +// NewTriggersClient creates an instance of the TriggersClient client. +func NewTriggersClient(subscriptionID string) TriggersClient { + return NewTriggersClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewTriggersClientWithBaseURI creates an instance of the TriggersClient client. +func NewTriggersClientWithBaseURI(baseURI string, subscriptionID string) TriggersClient { + return TriggersClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate creates or updates a trigger. +// Parameters: +// deviceName - creates or updates a trigger +// name - the trigger name. +// trigger - the trigger. +// resourceGroupName - the resource group name. +func (client TriggersClient) CreateOrUpdate(ctx context.Context, deviceName string, name string, trigger BasicTrigger, resourceGroupName string) (result TriggersCreateOrUpdateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/TriggersClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.CreateOrUpdatePreparer(ctx, deviceName, name, trigger, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + result, err = client.CreateOrUpdateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "CreateOrUpdate", result.Response(), "Failure sending request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client TriggersClient) CreateOrUpdatePreparer(ctx context.Context, deviceName string, name string, trigger BasicTrigger, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/triggers/{name}", pathParameters), + autorest.WithJSON(trigger), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client TriggersClient) CreateOrUpdateSender(req *http.Request) (future TriggersCreateOrUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client TriggersClient) CreateOrUpdateResponder(resp *http.Response) (result TriggerModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes the trigger on the gateway device. +// Parameters: +// deviceName - the device name. +// name - the trigger name. +// resourceGroupName - the resource group name. +func (client TriggersClient) Delete(ctx context.Context, deviceName string, name string, resourceGroupName string) (result TriggersDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/TriggersClient.Delete") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "Delete", result.Response(), "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client TriggersClient) DeletePreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/triggers/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client TriggersClient) DeleteSender(req *http.Request) (future TriggersDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client TriggersClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get get a specific trigger by name. +// Parameters: +// deviceName - the device name. +// name - the trigger name. +// resourceGroupName - the resource group name. +func (client TriggersClient) Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result TriggerModel, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/TriggersClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client TriggersClient) GetPreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/triggers/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client TriggersClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client TriggersClient) GetResponder(resp *http.Response) (result TriggerModel, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// ListByDataBoxEdgeDevice lists all the triggers configured in the device. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +// expand - specify $filter='CustomContextTag eq ' to filter on custom context tag property +func (client TriggersClient) ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string, expand string) (result TriggerListPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/TriggersClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.tl.Response.Response != nil { + sc = result.tl.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listByDataBoxEdgeDeviceNextResults + req, err := client.ListByDataBoxEdgeDevicePreparer(ctx, deviceName, resourceGroupName, expand) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "ListByDataBoxEdgeDevice", nil, "Failure preparing request") + return + } + + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.tl.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "ListByDataBoxEdgeDevice", resp, "Failure sending request") + return + } + + result.tl, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "ListByDataBoxEdgeDevice", resp, "Failure responding to request") + } + + return +} + +// ListByDataBoxEdgeDevicePreparer prepares the ListByDataBoxEdgeDevice request. +func (client TriggersClient) ListByDataBoxEdgeDevicePreparer(ctx context.Context, deviceName string, resourceGroupName string, expand string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(expand) > 0 { + queryParameters["$expand"] = autorest.Encode("query", expand) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/triggers", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByDataBoxEdgeDeviceSender sends the ListByDataBoxEdgeDevice request. The method will close the +// http.Response Body if it receives an error. +func (client TriggersClient) ListByDataBoxEdgeDeviceSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListByDataBoxEdgeDeviceResponder handles the response to the ListByDataBoxEdgeDevice request. The method always +// closes the http.Response Body. +func (client TriggersClient) ListByDataBoxEdgeDeviceResponder(resp *http.Response) (result TriggerList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listByDataBoxEdgeDeviceNextResults retrieves the next set of results, if any. +func (client TriggersClient) listByDataBoxEdgeDeviceNextResults(ctx context.Context, lastResults TriggerList) (result TriggerList, err error) { + req, err := lastResults.triggerListPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "listByDataBoxEdgeDeviceNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure sending next results request") + } + result, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.TriggersClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListByDataBoxEdgeDeviceComplete enumerates all values, automatically crossing page boundaries as required. +func (client TriggersClient) ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string, expand string) (result TriggerListIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/TriggersClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListByDataBoxEdgeDevice(ctx, deviceName, resourceGroupName, expand) + return +} diff --git a/services/databoxedge/mgmt/2019-07-01/databoxedge/users.go b/services/databoxedge/mgmt/2019-07-01/databoxedge/users.go new file mode 100644 index 000000000000..eeca2f8a653d --- /dev/null +++ b/services/databoxedge/mgmt/2019-07-01/databoxedge/users.go @@ -0,0 +1,406 @@ +package databoxedge + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// 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/go-autorest/autorest" + "github.com/Azure/go-autorest/autorest/azure" + "github.com/Azure/go-autorest/autorest/validation" + "github.com/Azure/go-autorest/tracing" + "net/http" +) + +// UsersClient is the client for the Users methods of the Databoxedge service. +type UsersClient struct { + BaseClient +} + +// NewUsersClient creates an instance of the UsersClient client. +func NewUsersClient(subscriptionID string) UsersClient { + return NewUsersClientWithBaseURI(DefaultBaseURI, subscriptionID) +} + +// NewUsersClientWithBaseURI creates an instance of the UsersClient client. +func NewUsersClientWithBaseURI(baseURI string, subscriptionID string) UsersClient { + return UsersClient{NewWithBaseURI(baseURI, subscriptionID)} +} + +// CreateOrUpdate creates a new user or updates an existing user's information on a Data Box Edge/Data Box Gateway +// device. +// Parameters: +// deviceName - the device name. +// name - the user name. +// userParameter - the user details. +// resourceGroupName - the resource group name. +func (client UsersClient) CreateOrUpdate(ctx context.Context, deviceName string, name string, userParameter User, resourceGroupName string) (result UsersCreateOrUpdateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/UsersClient.CreateOrUpdate") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: userParameter, + Constraints: []validation.Constraint{{Target: "userParameter.UserProperties", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "userParameter.UserProperties.EncryptedPassword", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "userParameter.UserProperties.EncryptedPassword.Value", Name: validation.Null, Rule: true, Chain: nil}}}, + }}}}}); err != nil { + return result, validation.NewError("databoxedge.UsersClient", "CreateOrUpdate", err.Error()) + } + + req, err := client.CreateOrUpdatePreparer(ctx, deviceName, name, userParameter, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersClient", "CreateOrUpdate", nil, "Failure preparing request") + return + } + + result, err = client.CreateOrUpdateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersClient", "CreateOrUpdate", result.Response(), "Failure sending request") + return + } + + return +} + +// CreateOrUpdatePreparer prepares the CreateOrUpdate request. +func (client UsersClient) CreateOrUpdatePreparer(ctx context.Context, deviceName string, name string, userParameter User, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsContentType("application/json; charset=utf-8"), + autorest.AsPut(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/users/{name}", pathParameters), + autorest.WithJSON(userParameter), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateOrUpdateSender sends the CreateOrUpdate request. The method will close the +// http.Response Body if it receives an error. +func (client UsersClient) CreateOrUpdateSender(req *http.Request) (future UsersCreateOrUpdateFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateOrUpdateResponder handles the response to the CreateOrUpdate request. The method always +// closes the http.Response Body. +func (client UsersClient) CreateOrUpdateResponder(resp *http.Response) (result User, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Delete deletes the user on a databox edge/gateway device. +// Parameters: +// deviceName - the device name. +// name - the user name. +// resourceGroupName - the resource group name. +func (client UsersClient) Delete(ctx context.Context, deviceName string, name string, resourceGroupName string) (result UsersDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/UsersClient.Delete") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersClient", "Delete", result.Response(), "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client UsersClient) DeletePreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/users/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// DeleteSender sends the Delete request. The method will close the +// http.Response Body if it receives an error. +func (client UsersClient) DeleteSender(req *http.Request) (future UsersDeleteFuture, err error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, sd...) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// DeleteResponder handles the response to the Delete request. The method always +// closes the http.Response Body. +func (client UsersClient) DeleteResponder(resp *http.Response) (result autorest.Response, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted, http.StatusNoContent), + autorest.ByClosing()) + result.Response = resp + return +} + +// Get gets the properties of the specified user. +// Parameters: +// deviceName - the device name. +// name - the user name. +// resourceGroupName - the resource group name. +func (client UsersClient) Get(ctx context.Context, deviceName string, name string, resourceGroupName string) (result User, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/UsersClient.Get") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.GetPreparer(ctx, deviceName, name, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.UsersClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client UsersClient) GetPreparer(ctx context.Context, deviceName string, name string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "name": autorest.Encode("path", name), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/users/{name}", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client UsersClient) GetSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client UsersClient) GetResponder(resp *http.Response) (result User, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// ListByDataBoxEdgeDevice gets all the users registered on a Data Box Edge/Data Box Gateway device. +// Parameters: +// deviceName - the device name. +// resourceGroupName - the resource group name. +func (client UsersClient) ListByDataBoxEdgeDevice(ctx context.Context, deviceName string, resourceGroupName string) (result UserListPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/UsersClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.ul.Response.Response != nil { + sc = result.ul.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listByDataBoxEdgeDeviceNextResults + req, err := client.ListByDataBoxEdgeDevicePreparer(ctx, deviceName, resourceGroupName) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersClient", "ListByDataBoxEdgeDevice", nil, "Failure preparing request") + return + } + + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.ul.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "databoxedge.UsersClient", "ListByDataBoxEdgeDevice", resp, "Failure sending request") + return + } + + result.ul, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersClient", "ListByDataBoxEdgeDevice", resp, "Failure responding to request") + } + + return +} + +// ListByDataBoxEdgeDevicePreparer prepares the ListByDataBoxEdgeDevice request. +func (client UsersClient) ListByDataBoxEdgeDevicePreparer(ctx context.Context, deviceName string, resourceGroupName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "deviceName": autorest.Encode("path", deviceName), + "resourceGroupName": autorest.Encode("path", resourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2019-07-01" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataBoxEdge/dataBoxEdgeDevices/{deviceName}/users", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByDataBoxEdgeDeviceSender sends the ListByDataBoxEdgeDevice request. The method will close the +// http.Response Body if it receives an error. +func (client UsersClient) ListByDataBoxEdgeDeviceSender(req *http.Request) (*http.Response, error) { + sd := autorest.GetSendDecorators(req.Context(), azure.DoRetryWithRegistration(client.Client)) + return autorest.SendWithSender(client, req, sd...) +} + +// ListByDataBoxEdgeDeviceResponder handles the response to the ListByDataBoxEdgeDevice request. The method always +// closes the http.Response Body. +func (client UsersClient) ListByDataBoxEdgeDeviceResponder(resp *http.Response) (result UserList, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listByDataBoxEdgeDeviceNextResults retrieves the next set of results, if any. +func (client UsersClient) listByDataBoxEdgeDeviceNextResults(ctx context.Context, lastResults UserList) (result UserList, err error) { + req, err := lastResults.userListPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "databoxedge.UsersClient", "listByDataBoxEdgeDeviceNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListByDataBoxEdgeDeviceSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "databoxedge.UsersClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure sending next results request") + } + result, err = client.ListByDataBoxEdgeDeviceResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "databoxedge.UsersClient", "listByDataBoxEdgeDeviceNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListByDataBoxEdgeDeviceComplete enumerates all values, automatically crossing page boundaries as required. +func (client UsersClient) ListByDataBoxEdgeDeviceComplete(ctx context.Context, deviceName string, resourceGroupName string) (result UserListIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/UsersClient.ListByDataBoxEdgeDevice") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.ListByDataBoxEdgeDevice(ctx, deviceName, resourceGroupName) + return +} diff --git a/services/databoxedge/mgmt/2019-07-01/databoxedge/version.go b/services/databoxedge/mgmt/2019-07-01/databoxedge/version.go new file mode 100644 index 000000000000..a71041140df9 --- /dev/null +++ b/services/databoxedge/mgmt/2019-07-01/databoxedge/version.go @@ -0,0 +1,30 @@ +package databoxedge + +import "github.com/Azure/azure-sdk-for-go/version" + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +// UserAgent returns the UserAgent string to use when sending http.Requests. +func UserAgent() string { + return "Azure-SDK-For-Go/" + version.Number + " databoxedge/2019-07-01" +} + +// Version returns the semantic version (see http://semver.org) of the client. +func Version() string { + return version.Number +}