diff --git a/profiles/latest/recoveryservices/mgmt/siterecovery/models.go b/profiles/latest/recoveryservices/mgmt/siterecovery/models.go index 561f01612221..76c439fa297e 100644 --- a/profiles/latest/recoveryservices/mgmt/siterecovery/models.go +++ b/profiles/latest/recoveryservices/mgmt/siterecovery/models.go @@ -26,6 +26,7 @@ const ( ) type BaseClient = original.BaseClient +type MigrationRecoveryPointsClient = original.MigrationRecoveryPointsClient type A2ARpRecoveryPointType = original.A2ARpRecoveryPointType const ( @@ -73,6 +74,21 @@ const ( NotSpecified DisableProtectionReason = original.NotSpecified ) +type DiskAccountType = original.DiskAccountType + +const ( + PremiumLRS DiskAccountType = original.PremiumLRS + StandardLRS DiskAccountType = original.StandardLRS + StandardSSDLRS DiskAccountType = original.StandardSSDLRS +) + +type EthernetAddressType = original.EthernetAddressType + +const ( + Dynamic EthernetAddressType = original.Dynamic + Static EthernetAddressType = original.Static +) + type FailoverDeploymentModel = original.FailoverDeploymentModel const ( @@ -101,12 +117,6 @@ const ( HyperVReplicaAzureRpRecoveryPointTypeLatestProcessed HyperVReplicaAzureRpRecoveryPointType = original.HyperVReplicaAzureRpRecoveryPointTypeLatestProcessed ) -type IdentityProviderType = original.IdentityProviderType - -const ( - RecoveryServicesActiveDirectory IdentityProviderType = original.RecoveryServicesActiveDirectory -) - type InMageV2RpRecoveryPointType = original.InMageV2RpRecoveryPointType const ( @@ -142,6 +152,13 @@ const ( InstanceTypeInMage InstanceTypeBasicDisableProtectionProviderSpecificInput = original.InstanceTypeInMage ) +type InstanceTypeBasicEnableMigrationProviderSpecificInput = original.InstanceTypeBasicEnableMigrationProviderSpecificInput + +const ( + InstanceTypeEnableMigrationProviderSpecificInput InstanceTypeBasicEnableMigrationProviderSpecificInput = original.InstanceTypeEnableMigrationProviderSpecificInput + InstanceTypeVMwareCbt InstanceTypeBasicEnableMigrationProviderSpecificInput = original.InstanceTypeVMwareCbt +) + type InstanceTypeBasicEnableProtectionProviderSpecificInput = original.InstanceTypeBasicEnableProtectionProviderSpecificInput const ( @@ -229,6 +246,20 @@ const ( InstanceTypeTestFailoverJobDetails InstanceTypeBasicJobDetails = original.InstanceTypeTestFailoverJobDetails ) +type InstanceTypeBasicMigrateProviderSpecificInput = original.InstanceTypeBasicMigrateProviderSpecificInput + +const ( + InstanceTypeBasicMigrateProviderSpecificInputInstanceTypeMigrateProviderSpecificInput InstanceTypeBasicMigrateProviderSpecificInput = original.InstanceTypeBasicMigrateProviderSpecificInputInstanceTypeMigrateProviderSpecificInput + InstanceTypeBasicMigrateProviderSpecificInputInstanceTypeVMwareCbt InstanceTypeBasicMigrateProviderSpecificInput = original.InstanceTypeBasicMigrateProviderSpecificInputInstanceTypeVMwareCbt +) + +type InstanceTypeBasicMigrationProviderSpecificSettings = original.InstanceTypeBasicMigrationProviderSpecificSettings + +const ( + InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeMigrationProviderSpecificSettings InstanceTypeBasicMigrationProviderSpecificSettings = original.InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeMigrationProviderSpecificSettings + InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeVMwareCbt InstanceTypeBasicMigrationProviderSpecificSettings = original.InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeVMwareCbt +) + type InstanceTypeBasicNetworkMappingFabricSpecificSettings = original.InstanceTypeBasicNetworkMappingFabricSpecificSettings const ( @@ -272,6 +303,7 @@ type InstanceTypeBasicProtectionContainerMappingProviderSpecificDetails = origin const ( InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeA2A InstanceTypeBasicProtectionContainerMappingProviderSpecificDetails = original.InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeA2A InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeProtectionContainerMappingProviderSpecificDetails InstanceTypeBasicProtectionContainerMappingProviderSpecificDetails = original.InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeProtectionContainerMappingProviderSpecificDetails + InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeVMwareCbt InstanceTypeBasicProtectionContainerMappingProviderSpecificDetails = original.InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeVMwareCbt ) type InstanceTypeBasicProviderSpecificFailoverInput = original.InstanceTypeBasicProviderSpecificFailoverInput @@ -316,8 +348,9 @@ const ( type InstanceTypeBasicReplicationProviderSpecificContainerCreationInput = original.InstanceTypeBasicReplicationProviderSpecificContainerCreationInput const ( - InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A InstanceTypeBasicReplicationProviderSpecificContainerCreationInput = original.InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A - InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput InstanceTypeBasicReplicationProviderSpecificContainerCreationInput = original.InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput + InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A InstanceTypeBasicReplicationProviderSpecificContainerCreationInput = original.InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A + InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput InstanceTypeBasicReplicationProviderSpecificContainerCreationInput = original.InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput + InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeSixcSevendaFourFiveFiveFiveZeroSixfFourThreeffAOneSixaEightebOneZeroOneaebbSevenZero InstanceTypeBasicReplicationProviderSpecificContainerCreationInput = original.InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeSixcSevendaFourFiveFiveFiveZeroSixfFourThreeffAOneSixaEightebOneZeroOneaebbSevenZero ) type InstanceTypeBasicReplicationProviderSpecificContainerMappingInput = original.InstanceTypeBasicReplicationProviderSpecificContainerMappingInput @@ -325,6 +358,7 @@ type InstanceTypeBasicReplicationProviderSpecificContainerMappingInput = origina const ( InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeA2A InstanceTypeBasicReplicationProviderSpecificContainerMappingInput = original.InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeA2A InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeReplicationProviderSpecificContainerMappingInput InstanceTypeBasicReplicationProviderSpecificContainerMappingInput = original.InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeReplicationProviderSpecificContainerMappingInput + InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeVMwareCbt InstanceTypeBasicReplicationProviderSpecificContainerMappingInput = original.InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeVMwareCbt ) type InstanceTypeBasicReplicationProviderSpecificSettings = original.InstanceTypeBasicReplicationProviderSpecificSettings @@ -378,6 +412,20 @@ const ( InstanceTypeVMNicUpdatesTaskDetails InstanceTypeBasicTaskTypeDetails = original.InstanceTypeVMNicUpdatesTaskDetails ) +type InstanceTypeBasicTestMigrateProviderSpecificInput = original.InstanceTypeBasicTestMigrateProviderSpecificInput + +const ( + InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeTestMigrateProviderSpecificInput InstanceTypeBasicTestMigrateProviderSpecificInput = original.InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeTestMigrateProviderSpecificInput + InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeVMwareCbt InstanceTypeBasicTestMigrateProviderSpecificInput = original.InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeVMwareCbt +) + +type InstanceTypeBasicUpdateMigrationItemProviderSpecificInput = original.InstanceTypeBasicUpdateMigrationItemProviderSpecificInput + +const ( + InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeUpdateMigrationItemProviderSpecificInput InstanceTypeBasicUpdateMigrationItemProviderSpecificInput = original.InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeUpdateMigrationItemProviderSpecificInput + InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeVMwareCbt InstanceTypeBasicUpdateMigrationItemProviderSpecificInput = original.InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeVMwareCbt +) + type InstanceTypeBasicUpdateReplicationProtectedItemProviderInput = original.InstanceTypeBasicUpdateReplicationProtectedItemProviderInput const ( @@ -395,6 +443,24 @@ const ( LicenseTypeWindowsServer LicenseType = original.LicenseTypeWindowsServer ) +type MigrationItemOperation = original.MigrationItemOperation + +const ( + CompleteMigration MigrationItemOperation = original.CompleteMigration + DisableMigration MigrationItemOperation = original.DisableMigration + Migrate MigrationItemOperation = original.Migrate + TestMigrate MigrationItemOperation = original.TestMigrate + TestMigrateCleanup MigrationItemOperation = original.TestMigrateCleanup +) + +type MigrationRecoveryPointType = original.MigrationRecoveryPointType + +const ( + MigrationRecoveryPointTypeApplicationConsistent MigrationRecoveryPointType = original.MigrationRecoveryPointTypeApplicationConsistent + MigrationRecoveryPointTypeCrashConsistent MigrationRecoveryPointType = original.MigrationRecoveryPointTypeCrashConsistent + MigrationRecoveryPointTypeNotSpecified MigrationRecoveryPointType = original.MigrationRecoveryPointTypeNotSpecified +) + type MultiVMGroupCreateOption = original.MultiVMGroupCreateOption const ( @@ -530,6 +596,8 @@ type A2AUpdateReplicationProtectedItemInput = original.A2AUpdateReplicationProte type A2AVMDiskInputDetails = original.A2AVMDiskInputDetails type A2AVMManagedDiskInputDetails = original.A2AVMManagedDiskInputDetails type A2AVMManagedDiskUpdateDetails = original.A2AVMManagedDiskUpdateDetails +type AddRecoveryServicesProviderInput = original.AddRecoveryServicesProviderInput +type AddRecoveryServicesProviderInputProperties = original.AddRecoveryServicesProviderInputProperties type AddVCenterRequest = original.AddVCenterRequest type AddVCenterRequestProperties = original.AddVCenterRequestProperties type Alert = original.Alert @@ -580,6 +648,10 @@ type DiskEncryptionInfo = original.DiskEncryptionInfo type DiskEncryptionKeyInfo = original.DiskEncryptionKeyInfo type DiskVolumeDetails = original.DiskVolumeDetails type Display = original.Display +type EnableMigrationInput = original.EnableMigrationInput +type EnableMigrationInputProperties = original.EnableMigrationInputProperties +type BasicEnableMigrationProviderSpecificInput = original.BasicEnableMigrationProviderSpecificInput +type EnableMigrationProviderSpecificInput = original.EnableMigrationProviderSpecificInput type EnableProtectionInput = original.EnableProtectionInput type EnableProtectionInputProperties = original.EnableProtectionInputProperties type BasicEnableProtectionProviderSpecificInput = original.BasicEnableProtectionProviderSpecificInput @@ -643,7 +715,8 @@ type HyperVReplicaPolicyInput = original.HyperVReplicaPolicyInput type HyperVReplicaReplicationDetails = original.HyperVReplicaReplicationDetails type HyperVSiteDetails = original.HyperVSiteDetails type HyperVVirtualMachineDetails = original.HyperVVirtualMachineDetails -type IdentityInformation = original.IdentityInformation +type IdentityProviderDetails = original.IdentityProviderDetails +type IdentityProviderInput = original.IdentityProviderInput type InconsistentVMDetails = original.InconsistentVMDetails type InitialReplicationDetails = original.InitialReplicationDetails type InlineWorkflowTaskDetails = original.InlineWorkflowTaskDetails @@ -695,6 +768,23 @@ type LogicalNetworkCollectionPage = original.LogicalNetworkCollectionPage type LogicalNetworkProperties = original.LogicalNetworkProperties type ManualActionTaskDetails = original.ManualActionTaskDetails type MasterTargetServer = original.MasterTargetServer +type MigrateInput = original.MigrateInput +type MigrateInputProperties = original.MigrateInputProperties +type BasicMigrateProviderSpecificInput = original.BasicMigrateProviderSpecificInput +type MigrateProviderSpecificInput = original.MigrateProviderSpecificInput +type MigrationItem = original.MigrationItem +type MigrationItemCollection = original.MigrationItemCollection +type MigrationItemCollectionIterator = original.MigrationItemCollectionIterator +type MigrationItemCollectionPage = original.MigrationItemCollectionPage +type MigrationItemProperties = original.MigrationItemProperties +type MigrationItemsQueryParameter = original.MigrationItemsQueryParameter +type BasicMigrationProviderSpecificSettings = original.BasicMigrationProviderSpecificSettings +type MigrationProviderSpecificSettings = original.MigrationProviderSpecificSettings +type MigrationRecoveryPoint = original.MigrationRecoveryPoint +type MigrationRecoveryPointCollection = original.MigrationRecoveryPointCollection +type MigrationRecoveryPointCollectionIterator = original.MigrationRecoveryPointCollectionIterator +type MigrationRecoveryPointCollectionPage = original.MigrationRecoveryPointCollectionPage +type MigrationRecoveryPointProperties = original.MigrationRecoveryPointProperties type MobilityServiceUpdate = original.MobilityServiceUpdate type Network = original.Network type NetworkCollection = original.NetworkCollection @@ -808,6 +898,14 @@ type ReplicationJobsCancelFuture = original.ReplicationJobsCancelFuture type ReplicationJobsExportFuture = original.ReplicationJobsExportFuture type ReplicationJobsRestartFuture = original.ReplicationJobsRestartFuture type ReplicationJobsResumeFuture = original.ReplicationJobsResumeFuture +type ReplicationMigrationItemsCompleteFuture = original.ReplicationMigrationItemsCompleteFuture +type ReplicationMigrationItemsCreateFuture = original.ReplicationMigrationItemsCreateFuture +type ReplicationMigrationItemsDeleteFuture = original.ReplicationMigrationItemsDeleteFuture +type ReplicationMigrationItemsMigrateFuture = original.ReplicationMigrationItemsMigrateFuture +type ReplicationMigrationItemsRemoveFuture = original.ReplicationMigrationItemsRemoveFuture +type ReplicationMigrationItemsTestMigrateCleanupFuture = original.ReplicationMigrationItemsTestMigrateCleanupFuture +type ReplicationMigrationItemsTestMigrateFuture = original.ReplicationMigrationItemsTestMigrateFuture +type ReplicationMigrationItemsUpdateFuture = original.ReplicationMigrationItemsUpdateFuture type ReplicationNetworkMappingsCreateFuture = original.ReplicationNetworkMappingsCreateFuture type ReplicationNetworkMappingsDeleteFuture = original.ReplicationNetworkMappingsDeleteFuture type ReplicationNetworkMappingsUpdateFuture = original.ReplicationNetworkMappingsUpdateFuture @@ -858,6 +956,7 @@ type ReplicationRecoveryPlansTestFailoverCleanupFuture = original.ReplicationRec type ReplicationRecoveryPlansTestFailoverFuture = original.ReplicationRecoveryPlansTestFailoverFuture type ReplicationRecoveryPlansUnplannedFailoverFuture = original.ReplicationRecoveryPlansUnplannedFailoverFuture type ReplicationRecoveryPlansUpdateFuture = original.ReplicationRecoveryPlansUpdateFuture +type ReplicationRecoveryServicesProvidersCreateFuture = original.ReplicationRecoveryServicesProvidersCreateFuture type ReplicationRecoveryServicesProvidersDeleteFuture = original.ReplicationRecoveryServicesProvidersDeleteFuture type ReplicationRecoveryServicesProvidersPurgeFuture = original.ReplicationRecoveryServicesProvidersPurgeFuture type ReplicationRecoveryServicesProvidersRefreshProviderFuture = original.ReplicationRecoveryServicesProvidersRefreshProviderFuture @@ -911,8 +1010,18 @@ type TestFailoverCleanupInputProperties = original.TestFailoverCleanupInputPrope type TestFailoverInput = original.TestFailoverInput type TestFailoverInputProperties = original.TestFailoverInputProperties type TestFailoverJobDetails = original.TestFailoverJobDetails +type TestMigrateCleanupInput = original.TestMigrateCleanupInput +type TestMigrateCleanupInputProperties = original.TestMigrateCleanupInputProperties +type TestMigrateInput = original.TestMigrateInput +type TestMigrateInputProperties = original.TestMigrateInputProperties +type BasicTestMigrateProviderSpecificInput = original.BasicTestMigrateProviderSpecificInput +type TestMigrateProviderSpecificInput = original.TestMigrateProviderSpecificInput type UnplannedFailoverInput = original.UnplannedFailoverInput type UnplannedFailoverInputProperties = original.UnplannedFailoverInputProperties +type UpdateMigrationItemInput = original.UpdateMigrationItemInput +type UpdateMigrationItemInputProperties = original.UpdateMigrationItemInputProperties +type BasicUpdateMigrationItemProviderSpecificInput = original.BasicUpdateMigrationItemProviderSpecificInput +type UpdateMigrationItemProviderSpecificInput = original.UpdateMigrationItemProviderSpecificInput type UpdateMobilityServiceRequest = original.UpdateMobilityServiceRequest type UpdateMobilityServiceRequestProperties = original.UpdateMobilityServiceRequestProperties type UpdateNetworkMappingInput = original.UpdateNetworkMappingInput @@ -949,8 +1058,20 @@ type VmmVirtualMachineDetails = original.VmmVirtualMachineDetails type VMNicDetails = original.VMNicDetails type VMNicInputDetails = original.VMNicInputDetails type VMNicUpdatesTaskDetails = original.VMNicUpdatesTaskDetails +type VMwareCbtContainerCreationInput = original.VMwareCbtContainerCreationInput +type VMwareCbtContainerMappingInput = original.VMwareCbtContainerMappingInput +type VMwareCbtDiskInput = original.VMwareCbtDiskInput +type VMwareCbtEnableMigrationInput = original.VMwareCbtEnableMigrationInput +type VMwareCbtMigrateInput = original.VMwareCbtMigrateInput +type VMwareCbtMigrationDetails = original.VMwareCbtMigrationDetails +type VMwareCbtNicDetails = original.VMwareCbtNicDetails +type VMwareCbtNicInput = original.VMwareCbtNicInput type VMwareCbtPolicyCreationInput = original.VMwareCbtPolicyCreationInput type VmwareCbtPolicyDetails = original.VmwareCbtPolicyDetails +type VMwareCbtProtectedDiskDetails = original.VMwareCbtProtectedDiskDetails +type VMwareCbtProtectionContainerMappingDetails = original.VMwareCbtProtectionContainerMappingDetails +type VMwareCbtTestMigrateInput = original.VMwareCbtTestMigrateInput +type VMwareCbtUpdateMigrationItemInput = original.VMwareCbtUpdateMigrationItemInput type VMwareDetails = original.VMwareDetails type VMwareV2FabricCreationInput = original.VMwareV2FabricCreationInput type VMwareV2FabricSpecificDetails = original.VMwareV2FabricSpecificDetails @@ -962,6 +1083,7 @@ type ReplicationEventsClient = original.ReplicationEventsClient type ReplicationFabricsClient = original.ReplicationFabricsClient type ReplicationJobsClient = original.ReplicationJobsClient type ReplicationLogicalNetworksClient = original.ReplicationLogicalNetworksClient +type ReplicationMigrationItemsClient = original.ReplicationMigrationItemsClient type ReplicationNetworkMappingsClient = original.ReplicationNetworkMappingsClient type ReplicationNetworksClient = original.ReplicationNetworksClient type ReplicationPoliciesClient = original.ReplicationPoliciesClient @@ -983,6 +1105,12 @@ func New(subscriptionID string, resourceGroupName string, resourceName string) B func NewWithBaseURI(baseURI string, subscriptionID string, resourceGroupName string, resourceName string) BaseClient { return original.NewWithBaseURI(baseURI, subscriptionID, resourceGroupName, resourceName) } +func NewMigrationRecoveryPointsClient(subscriptionID string, resourceGroupName string, resourceName string) MigrationRecoveryPointsClient { + return original.NewMigrationRecoveryPointsClient(subscriptionID, resourceGroupName, resourceName) +} +func NewMigrationRecoveryPointsClientWithBaseURI(baseURI string, subscriptionID string, resourceGroupName string, resourceName string) MigrationRecoveryPointsClient { + return original.NewMigrationRecoveryPointsClientWithBaseURI(baseURI, subscriptionID, resourceGroupName, resourceName) +} func PossibleA2ARpRecoveryPointTypeValues() []A2ARpRecoveryPointType { return original.PossibleA2ARpRecoveryPointTypeValues() } @@ -1001,6 +1129,12 @@ func PossibleDataSyncStatusValues() []DataSyncStatus { func PossibleDisableProtectionReasonValues() []DisableProtectionReason { return original.PossibleDisableProtectionReasonValues() } +func PossibleDiskAccountTypeValues() []DiskAccountType { + return original.PossibleDiskAccountTypeValues() +} +func PossibleEthernetAddressTypeValues() []EthernetAddressType { + return original.PossibleEthernetAddressTypeValues() +} func PossibleFailoverDeploymentModelValues() []FailoverDeploymentModel { return original.PossibleFailoverDeploymentModelValues() } @@ -1010,9 +1144,6 @@ func PossibleHealthErrorCategoryValues() []HealthErrorCategory { func PossibleHyperVReplicaAzureRpRecoveryPointTypeValues() []HyperVReplicaAzureRpRecoveryPointType { return original.PossibleHyperVReplicaAzureRpRecoveryPointTypeValues() } -func PossibleIdentityProviderTypeValues() []IdentityProviderType { - return original.PossibleIdentityProviderTypeValues() -} func PossibleInMageV2RpRecoveryPointTypeValues() []InMageV2RpRecoveryPointType { return original.PossibleInMageV2RpRecoveryPointTypeValues() } @@ -1025,6 +1156,9 @@ func PossibleInstanceTypeBasicConfigurationSettingsValues() []InstanceTypeBasicC func PossibleInstanceTypeBasicDisableProtectionProviderSpecificInputValues() []InstanceTypeBasicDisableProtectionProviderSpecificInput { return original.PossibleInstanceTypeBasicDisableProtectionProviderSpecificInputValues() } +func PossibleInstanceTypeBasicEnableMigrationProviderSpecificInputValues() []InstanceTypeBasicEnableMigrationProviderSpecificInput { + return original.PossibleInstanceTypeBasicEnableMigrationProviderSpecificInputValues() +} func PossibleInstanceTypeBasicEnableProtectionProviderSpecificInputValues() []InstanceTypeBasicEnableProtectionProviderSpecificInput { return original.PossibleInstanceTypeBasicEnableProtectionProviderSpecificInputValues() } @@ -1052,6 +1186,12 @@ func PossibleInstanceTypeBasicGroupTaskDetailsValues() []InstanceTypeBasicGroupT func PossibleInstanceTypeBasicJobDetailsValues() []InstanceTypeBasicJobDetails { return original.PossibleInstanceTypeBasicJobDetailsValues() } +func PossibleInstanceTypeBasicMigrateProviderSpecificInputValues() []InstanceTypeBasicMigrateProviderSpecificInput { + return original.PossibleInstanceTypeBasicMigrateProviderSpecificInputValues() +} +func PossibleInstanceTypeBasicMigrationProviderSpecificSettingsValues() []InstanceTypeBasicMigrationProviderSpecificSettings { + return original.PossibleInstanceTypeBasicMigrationProviderSpecificSettingsValues() +} func PossibleInstanceTypeBasicNetworkMappingFabricSpecificSettingsValues() []InstanceTypeBasicNetworkMappingFabricSpecificSettings { return original.PossibleInstanceTypeBasicNetworkMappingFabricSpecificSettingsValues() } @@ -1097,12 +1237,24 @@ func PossibleInstanceTypeBasicSwitchProtectionProviderSpecificInputValues() []In func PossibleInstanceTypeBasicTaskTypeDetailsValues() []InstanceTypeBasicTaskTypeDetails { return original.PossibleInstanceTypeBasicTaskTypeDetailsValues() } +func PossibleInstanceTypeBasicTestMigrateProviderSpecificInputValues() []InstanceTypeBasicTestMigrateProviderSpecificInput { + return original.PossibleInstanceTypeBasicTestMigrateProviderSpecificInputValues() +} +func PossibleInstanceTypeBasicUpdateMigrationItemProviderSpecificInputValues() []InstanceTypeBasicUpdateMigrationItemProviderSpecificInput { + return original.PossibleInstanceTypeBasicUpdateMigrationItemProviderSpecificInputValues() +} func PossibleInstanceTypeBasicUpdateReplicationProtectedItemProviderInputValues() []InstanceTypeBasicUpdateReplicationProtectedItemProviderInput { return original.PossibleInstanceTypeBasicUpdateReplicationProtectedItemProviderInputValues() } func PossibleLicenseTypeValues() []LicenseType { return original.PossibleLicenseTypeValues() } +func PossibleMigrationItemOperationValues() []MigrationItemOperation { + return original.PossibleMigrationItemOperationValues() +} +func PossibleMigrationRecoveryPointTypeValues() []MigrationRecoveryPointType { + return original.PossibleMigrationRecoveryPointTypeValues() +} func PossibleMultiVMGroupCreateOptionValues() []MultiVMGroupCreateOption { return original.PossibleMultiVMGroupCreateOptionValues() } @@ -1187,6 +1339,12 @@ func NewReplicationLogicalNetworksClient(subscriptionID string, resourceGroupNam func NewReplicationLogicalNetworksClientWithBaseURI(baseURI string, subscriptionID string, resourceGroupName string, resourceName string) ReplicationLogicalNetworksClient { return original.NewReplicationLogicalNetworksClientWithBaseURI(baseURI, subscriptionID, resourceGroupName, resourceName) } +func NewReplicationMigrationItemsClient(subscriptionID string, resourceGroupName string, resourceName string) ReplicationMigrationItemsClient { + return original.NewReplicationMigrationItemsClient(subscriptionID, resourceGroupName, resourceName) +} +func NewReplicationMigrationItemsClientWithBaseURI(baseURI string, subscriptionID string, resourceGroupName string, resourceName string) ReplicationMigrationItemsClient { + return original.NewReplicationMigrationItemsClientWithBaseURI(baseURI, subscriptionID, resourceGroupName, resourceName) +} func NewReplicationNetworkMappingsClient(subscriptionID string, resourceGroupName string, resourceName string) ReplicationNetworkMappingsClient { return original.NewReplicationNetworkMappingsClient(subscriptionID, resourceGroupName, resourceName) } diff --git a/profiles/preview/recoveryservices/mgmt/siterecovery/models.go b/profiles/preview/recoveryservices/mgmt/siterecovery/models.go index d151f6afca6f..a2866791829a 100644 --- a/profiles/preview/recoveryservices/mgmt/siterecovery/models.go +++ b/profiles/preview/recoveryservices/mgmt/siterecovery/models.go @@ -26,6 +26,7 @@ const ( ) type BaseClient = original.BaseClient +type MigrationRecoveryPointsClient = original.MigrationRecoveryPointsClient type A2ARpRecoveryPointType = original.A2ARpRecoveryPointType const ( @@ -73,6 +74,21 @@ const ( NotSpecified DisableProtectionReason = original.NotSpecified ) +type DiskAccountType = original.DiskAccountType + +const ( + PremiumLRS DiskAccountType = original.PremiumLRS + StandardLRS DiskAccountType = original.StandardLRS + StandardSSDLRS DiskAccountType = original.StandardSSDLRS +) + +type EthernetAddressType = original.EthernetAddressType + +const ( + Dynamic EthernetAddressType = original.Dynamic + Static EthernetAddressType = original.Static +) + type FailoverDeploymentModel = original.FailoverDeploymentModel const ( @@ -101,12 +117,6 @@ const ( HyperVReplicaAzureRpRecoveryPointTypeLatestProcessed HyperVReplicaAzureRpRecoveryPointType = original.HyperVReplicaAzureRpRecoveryPointTypeLatestProcessed ) -type IdentityProviderType = original.IdentityProviderType - -const ( - RecoveryServicesActiveDirectory IdentityProviderType = original.RecoveryServicesActiveDirectory -) - type InMageV2RpRecoveryPointType = original.InMageV2RpRecoveryPointType const ( @@ -142,6 +152,13 @@ const ( InstanceTypeInMage InstanceTypeBasicDisableProtectionProviderSpecificInput = original.InstanceTypeInMage ) +type InstanceTypeBasicEnableMigrationProviderSpecificInput = original.InstanceTypeBasicEnableMigrationProviderSpecificInput + +const ( + InstanceTypeEnableMigrationProviderSpecificInput InstanceTypeBasicEnableMigrationProviderSpecificInput = original.InstanceTypeEnableMigrationProviderSpecificInput + InstanceTypeVMwareCbt InstanceTypeBasicEnableMigrationProviderSpecificInput = original.InstanceTypeVMwareCbt +) + type InstanceTypeBasicEnableProtectionProviderSpecificInput = original.InstanceTypeBasicEnableProtectionProviderSpecificInput const ( @@ -229,6 +246,20 @@ const ( InstanceTypeTestFailoverJobDetails InstanceTypeBasicJobDetails = original.InstanceTypeTestFailoverJobDetails ) +type InstanceTypeBasicMigrateProviderSpecificInput = original.InstanceTypeBasicMigrateProviderSpecificInput + +const ( + InstanceTypeBasicMigrateProviderSpecificInputInstanceTypeMigrateProviderSpecificInput InstanceTypeBasicMigrateProviderSpecificInput = original.InstanceTypeBasicMigrateProviderSpecificInputInstanceTypeMigrateProviderSpecificInput + InstanceTypeBasicMigrateProviderSpecificInputInstanceTypeVMwareCbt InstanceTypeBasicMigrateProviderSpecificInput = original.InstanceTypeBasicMigrateProviderSpecificInputInstanceTypeVMwareCbt +) + +type InstanceTypeBasicMigrationProviderSpecificSettings = original.InstanceTypeBasicMigrationProviderSpecificSettings + +const ( + InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeMigrationProviderSpecificSettings InstanceTypeBasicMigrationProviderSpecificSettings = original.InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeMigrationProviderSpecificSettings + InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeVMwareCbt InstanceTypeBasicMigrationProviderSpecificSettings = original.InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeVMwareCbt +) + type InstanceTypeBasicNetworkMappingFabricSpecificSettings = original.InstanceTypeBasicNetworkMappingFabricSpecificSettings const ( @@ -272,6 +303,7 @@ type InstanceTypeBasicProtectionContainerMappingProviderSpecificDetails = origin const ( InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeA2A InstanceTypeBasicProtectionContainerMappingProviderSpecificDetails = original.InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeA2A InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeProtectionContainerMappingProviderSpecificDetails InstanceTypeBasicProtectionContainerMappingProviderSpecificDetails = original.InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeProtectionContainerMappingProviderSpecificDetails + InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeVMwareCbt InstanceTypeBasicProtectionContainerMappingProviderSpecificDetails = original.InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeVMwareCbt ) type InstanceTypeBasicProviderSpecificFailoverInput = original.InstanceTypeBasicProviderSpecificFailoverInput @@ -316,8 +348,9 @@ const ( type InstanceTypeBasicReplicationProviderSpecificContainerCreationInput = original.InstanceTypeBasicReplicationProviderSpecificContainerCreationInput const ( - InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A InstanceTypeBasicReplicationProviderSpecificContainerCreationInput = original.InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A - InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput InstanceTypeBasicReplicationProviderSpecificContainerCreationInput = original.InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput + InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A InstanceTypeBasicReplicationProviderSpecificContainerCreationInput = original.InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A + InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput InstanceTypeBasicReplicationProviderSpecificContainerCreationInput = original.InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput + InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeSixcSevendaFourFiveFiveFiveZeroSixfFourThreeffAOneSixaEightebOneZeroOneaebbSevenZero InstanceTypeBasicReplicationProviderSpecificContainerCreationInput = original.InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeSixcSevendaFourFiveFiveFiveZeroSixfFourThreeffAOneSixaEightebOneZeroOneaebbSevenZero ) type InstanceTypeBasicReplicationProviderSpecificContainerMappingInput = original.InstanceTypeBasicReplicationProviderSpecificContainerMappingInput @@ -325,6 +358,7 @@ type InstanceTypeBasicReplicationProviderSpecificContainerMappingInput = origina const ( InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeA2A InstanceTypeBasicReplicationProviderSpecificContainerMappingInput = original.InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeA2A InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeReplicationProviderSpecificContainerMappingInput InstanceTypeBasicReplicationProviderSpecificContainerMappingInput = original.InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeReplicationProviderSpecificContainerMappingInput + InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeVMwareCbt InstanceTypeBasicReplicationProviderSpecificContainerMappingInput = original.InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeVMwareCbt ) type InstanceTypeBasicReplicationProviderSpecificSettings = original.InstanceTypeBasicReplicationProviderSpecificSettings @@ -378,6 +412,20 @@ const ( InstanceTypeVMNicUpdatesTaskDetails InstanceTypeBasicTaskTypeDetails = original.InstanceTypeVMNicUpdatesTaskDetails ) +type InstanceTypeBasicTestMigrateProviderSpecificInput = original.InstanceTypeBasicTestMigrateProviderSpecificInput + +const ( + InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeTestMigrateProviderSpecificInput InstanceTypeBasicTestMigrateProviderSpecificInput = original.InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeTestMigrateProviderSpecificInput + InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeVMwareCbt InstanceTypeBasicTestMigrateProviderSpecificInput = original.InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeVMwareCbt +) + +type InstanceTypeBasicUpdateMigrationItemProviderSpecificInput = original.InstanceTypeBasicUpdateMigrationItemProviderSpecificInput + +const ( + InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeUpdateMigrationItemProviderSpecificInput InstanceTypeBasicUpdateMigrationItemProviderSpecificInput = original.InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeUpdateMigrationItemProviderSpecificInput + InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeVMwareCbt InstanceTypeBasicUpdateMigrationItemProviderSpecificInput = original.InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeVMwareCbt +) + type InstanceTypeBasicUpdateReplicationProtectedItemProviderInput = original.InstanceTypeBasicUpdateReplicationProtectedItemProviderInput const ( @@ -395,6 +443,24 @@ const ( LicenseTypeWindowsServer LicenseType = original.LicenseTypeWindowsServer ) +type MigrationItemOperation = original.MigrationItemOperation + +const ( + CompleteMigration MigrationItemOperation = original.CompleteMigration + DisableMigration MigrationItemOperation = original.DisableMigration + Migrate MigrationItemOperation = original.Migrate + TestMigrate MigrationItemOperation = original.TestMigrate + TestMigrateCleanup MigrationItemOperation = original.TestMigrateCleanup +) + +type MigrationRecoveryPointType = original.MigrationRecoveryPointType + +const ( + MigrationRecoveryPointTypeApplicationConsistent MigrationRecoveryPointType = original.MigrationRecoveryPointTypeApplicationConsistent + MigrationRecoveryPointTypeCrashConsistent MigrationRecoveryPointType = original.MigrationRecoveryPointTypeCrashConsistent + MigrationRecoveryPointTypeNotSpecified MigrationRecoveryPointType = original.MigrationRecoveryPointTypeNotSpecified +) + type MultiVMGroupCreateOption = original.MultiVMGroupCreateOption const ( @@ -530,6 +596,8 @@ type A2AUpdateReplicationProtectedItemInput = original.A2AUpdateReplicationProte type A2AVMDiskInputDetails = original.A2AVMDiskInputDetails type A2AVMManagedDiskInputDetails = original.A2AVMManagedDiskInputDetails type A2AVMManagedDiskUpdateDetails = original.A2AVMManagedDiskUpdateDetails +type AddRecoveryServicesProviderInput = original.AddRecoveryServicesProviderInput +type AddRecoveryServicesProviderInputProperties = original.AddRecoveryServicesProviderInputProperties type AddVCenterRequest = original.AddVCenterRequest type AddVCenterRequestProperties = original.AddVCenterRequestProperties type Alert = original.Alert @@ -580,6 +648,10 @@ type DiskEncryptionInfo = original.DiskEncryptionInfo type DiskEncryptionKeyInfo = original.DiskEncryptionKeyInfo type DiskVolumeDetails = original.DiskVolumeDetails type Display = original.Display +type EnableMigrationInput = original.EnableMigrationInput +type EnableMigrationInputProperties = original.EnableMigrationInputProperties +type BasicEnableMigrationProviderSpecificInput = original.BasicEnableMigrationProviderSpecificInput +type EnableMigrationProviderSpecificInput = original.EnableMigrationProviderSpecificInput type EnableProtectionInput = original.EnableProtectionInput type EnableProtectionInputProperties = original.EnableProtectionInputProperties type BasicEnableProtectionProviderSpecificInput = original.BasicEnableProtectionProviderSpecificInput @@ -643,7 +715,8 @@ type HyperVReplicaPolicyInput = original.HyperVReplicaPolicyInput type HyperVReplicaReplicationDetails = original.HyperVReplicaReplicationDetails type HyperVSiteDetails = original.HyperVSiteDetails type HyperVVirtualMachineDetails = original.HyperVVirtualMachineDetails -type IdentityInformation = original.IdentityInformation +type IdentityProviderDetails = original.IdentityProviderDetails +type IdentityProviderInput = original.IdentityProviderInput type InconsistentVMDetails = original.InconsistentVMDetails type InitialReplicationDetails = original.InitialReplicationDetails type InlineWorkflowTaskDetails = original.InlineWorkflowTaskDetails @@ -695,6 +768,23 @@ type LogicalNetworkCollectionPage = original.LogicalNetworkCollectionPage type LogicalNetworkProperties = original.LogicalNetworkProperties type ManualActionTaskDetails = original.ManualActionTaskDetails type MasterTargetServer = original.MasterTargetServer +type MigrateInput = original.MigrateInput +type MigrateInputProperties = original.MigrateInputProperties +type BasicMigrateProviderSpecificInput = original.BasicMigrateProviderSpecificInput +type MigrateProviderSpecificInput = original.MigrateProviderSpecificInput +type MigrationItem = original.MigrationItem +type MigrationItemCollection = original.MigrationItemCollection +type MigrationItemCollectionIterator = original.MigrationItemCollectionIterator +type MigrationItemCollectionPage = original.MigrationItemCollectionPage +type MigrationItemProperties = original.MigrationItemProperties +type MigrationItemsQueryParameter = original.MigrationItemsQueryParameter +type BasicMigrationProviderSpecificSettings = original.BasicMigrationProviderSpecificSettings +type MigrationProviderSpecificSettings = original.MigrationProviderSpecificSettings +type MigrationRecoveryPoint = original.MigrationRecoveryPoint +type MigrationRecoveryPointCollection = original.MigrationRecoveryPointCollection +type MigrationRecoveryPointCollectionIterator = original.MigrationRecoveryPointCollectionIterator +type MigrationRecoveryPointCollectionPage = original.MigrationRecoveryPointCollectionPage +type MigrationRecoveryPointProperties = original.MigrationRecoveryPointProperties type MobilityServiceUpdate = original.MobilityServiceUpdate type Network = original.Network type NetworkCollection = original.NetworkCollection @@ -808,6 +898,14 @@ type ReplicationJobsCancelFuture = original.ReplicationJobsCancelFuture type ReplicationJobsExportFuture = original.ReplicationJobsExportFuture type ReplicationJobsRestartFuture = original.ReplicationJobsRestartFuture type ReplicationJobsResumeFuture = original.ReplicationJobsResumeFuture +type ReplicationMigrationItemsCompleteFuture = original.ReplicationMigrationItemsCompleteFuture +type ReplicationMigrationItemsCreateFuture = original.ReplicationMigrationItemsCreateFuture +type ReplicationMigrationItemsDeleteFuture = original.ReplicationMigrationItemsDeleteFuture +type ReplicationMigrationItemsMigrateFuture = original.ReplicationMigrationItemsMigrateFuture +type ReplicationMigrationItemsRemoveFuture = original.ReplicationMigrationItemsRemoveFuture +type ReplicationMigrationItemsTestMigrateCleanupFuture = original.ReplicationMigrationItemsTestMigrateCleanupFuture +type ReplicationMigrationItemsTestMigrateFuture = original.ReplicationMigrationItemsTestMigrateFuture +type ReplicationMigrationItemsUpdateFuture = original.ReplicationMigrationItemsUpdateFuture type ReplicationNetworkMappingsCreateFuture = original.ReplicationNetworkMappingsCreateFuture type ReplicationNetworkMappingsDeleteFuture = original.ReplicationNetworkMappingsDeleteFuture type ReplicationNetworkMappingsUpdateFuture = original.ReplicationNetworkMappingsUpdateFuture @@ -858,6 +956,7 @@ type ReplicationRecoveryPlansTestFailoverCleanupFuture = original.ReplicationRec type ReplicationRecoveryPlansTestFailoverFuture = original.ReplicationRecoveryPlansTestFailoverFuture type ReplicationRecoveryPlansUnplannedFailoverFuture = original.ReplicationRecoveryPlansUnplannedFailoverFuture type ReplicationRecoveryPlansUpdateFuture = original.ReplicationRecoveryPlansUpdateFuture +type ReplicationRecoveryServicesProvidersCreateFuture = original.ReplicationRecoveryServicesProvidersCreateFuture type ReplicationRecoveryServicesProvidersDeleteFuture = original.ReplicationRecoveryServicesProvidersDeleteFuture type ReplicationRecoveryServicesProvidersPurgeFuture = original.ReplicationRecoveryServicesProvidersPurgeFuture type ReplicationRecoveryServicesProvidersRefreshProviderFuture = original.ReplicationRecoveryServicesProvidersRefreshProviderFuture @@ -911,8 +1010,18 @@ type TestFailoverCleanupInputProperties = original.TestFailoverCleanupInputPrope type TestFailoverInput = original.TestFailoverInput type TestFailoverInputProperties = original.TestFailoverInputProperties type TestFailoverJobDetails = original.TestFailoverJobDetails +type TestMigrateCleanupInput = original.TestMigrateCleanupInput +type TestMigrateCleanupInputProperties = original.TestMigrateCleanupInputProperties +type TestMigrateInput = original.TestMigrateInput +type TestMigrateInputProperties = original.TestMigrateInputProperties +type BasicTestMigrateProviderSpecificInput = original.BasicTestMigrateProviderSpecificInput +type TestMigrateProviderSpecificInput = original.TestMigrateProviderSpecificInput type UnplannedFailoverInput = original.UnplannedFailoverInput type UnplannedFailoverInputProperties = original.UnplannedFailoverInputProperties +type UpdateMigrationItemInput = original.UpdateMigrationItemInput +type UpdateMigrationItemInputProperties = original.UpdateMigrationItemInputProperties +type BasicUpdateMigrationItemProviderSpecificInput = original.BasicUpdateMigrationItemProviderSpecificInput +type UpdateMigrationItemProviderSpecificInput = original.UpdateMigrationItemProviderSpecificInput type UpdateMobilityServiceRequest = original.UpdateMobilityServiceRequest type UpdateMobilityServiceRequestProperties = original.UpdateMobilityServiceRequestProperties type UpdateNetworkMappingInput = original.UpdateNetworkMappingInput @@ -949,8 +1058,20 @@ type VmmVirtualMachineDetails = original.VmmVirtualMachineDetails type VMNicDetails = original.VMNicDetails type VMNicInputDetails = original.VMNicInputDetails type VMNicUpdatesTaskDetails = original.VMNicUpdatesTaskDetails +type VMwareCbtContainerCreationInput = original.VMwareCbtContainerCreationInput +type VMwareCbtContainerMappingInput = original.VMwareCbtContainerMappingInput +type VMwareCbtDiskInput = original.VMwareCbtDiskInput +type VMwareCbtEnableMigrationInput = original.VMwareCbtEnableMigrationInput +type VMwareCbtMigrateInput = original.VMwareCbtMigrateInput +type VMwareCbtMigrationDetails = original.VMwareCbtMigrationDetails +type VMwareCbtNicDetails = original.VMwareCbtNicDetails +type VMwareCbtNicInput = original.VMwareCbtNicInput type VMwareCbtPolicyCreationInput = original.VMwareCbtPolicyCreationInput type VmwareCbtPolicyDetails = original.VmwareCbtPolicyDetails +type VMwareCbtProtectedDiskDetails = original.VMwareCbtProtectedDiskDetails +type VMwareCbtProtectionContainerMappingDetails = original.VMwareCbtProtectionContainerMappingDetails +type VMwareCbtTestMigrateInput = original.VMwareCbtTestMigrateInput +type VMwareCbtUpdateMigrationItemInput = original.VMwareCbtUpdateMigrationItemInput type VMwareDetails = original.VMwareDetails type VMwareV2FabricCreationInput = original.VMwareV2FabricCreationInput type VMwareV2FabricSpecificDetails = original.VMwareV2FabricSpecificDetails @@ -962,6 +1083,7 @@ type ReplicationEventsClient = original.ReplicationEventsClient type ReplicationFabricsClient = original.ReplicationFabricsClient type ReplicationJobsClient = original.ReplicationJobsClient type ReplicationLogicalNetworksClient = original.ReplicationLogicalNetworksClient +type ReplicationMigrationItemsClient = original.ReplicationMigrationItemsClient type ReplicationNetworkMappingsClient = original.ReplicationNetworkMappingsClient type ReplicationNetworksClient = original.ReplicationNetworksClient type ReplicationPoliciesClient = original.ReplicationPoliciesClient @@ -983,6 +1105,12 @@ func New(subscriptionID string, resourceGroupName string, resourceName string) B func NewWithBaseURI(baseURI string, subscriptionID string, resourceGroupName string, resourceName string) BaseClient { return original.NewWithBaseURI(baseURI, subscriptionID, resourceGroupName, resourceName) } +func NewMigrationRecoveryPointsClient(subscriptionID string, resourceGroupName string, resourceName string) MigrationRecoveryPointsClient { + return original.NewMigrationRecoveryPointsClient(subscriptionID, resourceGroupName, resourceName) +} +func NewMigrationRecoveryPointsClientWithBaseURI(baseURI string, subscriptionID string, resourceGroupName string, resourceName string) MigrationRecoveryPointsClient { + return original.NewMigrationRecoveryPointsClientWithBaseURI(baseURI, subscriptionID, resourceGroupName, resourceName) +} func PossibleA2ARpRecoveryPointTypeValues() []A2ARpRecoveryPointType { return original.PossibleA2ARpRecoveryPointTypeValues() } @@ -1001,6 +1129,12 @@ func PossibleDataSyncStatusValues() []DataSyncStatus { func PossibleDisableProtectionReasonValues() []DisableProtectionReason { return original.PossibleDisableProtectionReasonValues() } +func PossibleDiskAccountTypeValues() []DiskAccountType { + return original.PossibleDiskAccountTypeValues() +} +func PossibleEthernetAddressTypeValues() []EthernetAddressType { + return original.PossibleEthernetAddressTypeValues() +} func PossibleFailoverDeploymentModelValues() []FailoverDeploymentModel { return original.PossibleFailoverDeploymentModelValues() } @@ -1010,9 +1144,6 @@ func PossibleHealthErrorCategoryValues() []HealthErrorCategory { func PossibleHyperVReplicaAzureRpRecoveryPointTypeValues() []HyperVReplicaAzureRpRecoveryPointType { return original.PossibleHyperVReplicaAzureRpRecoveryPointTypeValues() } -func PossibleIdentityProviderTypeValues() []IdentityProviderType { - return original.PossibleIdentityProviderTypeValues() -} func PossibleInMageV2RpRecoveryPointTypeValues() []InMageV2RpRecoveryPointType { return original.PossibleInMageV2RpRecoveryPointTypeValues() } @@ -1025,6 +1156,9 @@ func PossibleInstanceTypeBasicConfigurationSettingsValues() []InstanceTypeBasicC func PossibleInstanceTypeBasicDisableProtectionProviderSpecificInputValues() []InstanceTypeBasicDisableProtectionProviderSpecificInput { return original.PossibleInstanceTypeBasicDisableProtectionProviderSpecificInputValues() } +func PossibleInstanceTypeBasicEnableMigrationProviderSpecificInputValues() []InstanceTypeBasicEnableMigrationProviderSpecificInput { + return original.PossibleInstanceTypeBasicEnableMigrationProviderSpecificInputValues() +} func PossibleInstanceTypeBasicEnableProtectionProviderSpecificInputValues() []InstanceTypeBasicEnableProtectionProviderSpecificInput { return original.PossibleInstanceTypeBasicEnableProtectionProviderSpecificInputValues() } @@ -1052,6 +1186,12 @@ func PossibleInstanceTypeBasicGroupTaskDetailsValues() []InstanceTypeBasicGroupT func PossibleInstanceTypeBasicJobDetailsValues() []InstanceTypeBasicJobDetails { return original.PossibleInstanceTypeBasicJobDetailsValues() } +func PossibleInstanceTypeBasicMigrateProviderSpecificInputValues() []InstanceTypeBasicMigrateProviderSpecificInput { + return original.PossibleInstanceTypeBasicMigrateProviderSpecificInputValues() +} +func PossibleInstanceTypeBasicMigrationProviderSpecificSettingsValues() []InstanceTypeBasicMigrationProviderSpecificSettings { + return original.PossibleInstanceTypeBasicMigrationProviderSpecificSettingsValues() +} func PossibleInstanceTypeBasicNetworkMappingFabricSpecificSettingsValues() []InstanceTypeBasicNetworkMappingFabricSpecificSettings { return original.PossibleInstanceTypeBasicNetworkMappingFabricSpecificSettingsValues() } @@ -1097,12 +1237,24 @@ func PossibleInstanceTypeBasicSwitchProtectionProviderSpecificInputValues() []In func PossibleInstanceTypeBasicTaskTypeDetailsValues() []InstanceTypeBasicTaskTypeDetails { return original.PossibleInstanceTypeBasicTaskTypeDetailsValues() } +func PossibleInstanceTypeBasicTestMigrateProviderSpecificInputValues() []InstanceTypeBasicTestMigrateProviderSpecificInput { + return original.PossibleInstanceTypeBasicTestMigrateProviderSpecificInputValues() +} +func PossibleInstanceTypeBasicUpdateMigrationItemProviderSpecificInputValues() []InstanceTypeBasicUpdateMigrationItemProviderSpecificInput { + return original.PossibleInstanceTypeBasicUpdateMigrationItemProviderSpecificInputValues() +} func PossibleInstanceTypeBasicUpdateReplicationProtectedItemProviderInputValues() []InstanceTypeBasicUpdateReplicationProtectedItemProviderInput { return original.PossibleInstanceTypeBasicUpdateReplicationProtectedItemProviderInputValues() } func PossibleLicenseTypeValues() []LicenseType { return original.PossibleLicenseTypeValues() } +func PossibleMigrationItemOperationValues() []MigrationItemOperation { + return original.PossibleMigrationItemOperationValues() +} +func PossibleMigrationRecoveryPointTypeValues() []MigrationRecoveryPointType { + return original.PossibleMigrationRecoveryPointTypeValues() +} func PossibleMultiVMGroupCreateOptionValues() []MultiVMGroupCreateOption { return original.PossibleMultiVMGroupCreateOptionValues() } @@ -1187,6 +1339,12 @@ func NewReplicationLogicalNetworksClient(subscriptionID string, resourceGroupNam func NewReplicationLogicalNetworksClientWithBaseURI(baseURI string, subscriptionID string, resourceGroupName string, resourceName string) ReplicationLogicalNetworksClient { return original.NewReplicationLogicalNetworksClientWithBaseURI(baseURI, subscriptionID, resourceGroupName, resourceName) } +func NewReplicationMigrationItemsClient(subscriptionID string, resourceGroupName string, resourceName string) ReplicationMigrationItemsClient { + return original.NewReplicationMigrationItemsClient(subscriptionID, resourceGroupName, resourceName) +} +func NewReplicationMigrationItemsClientWithBaseURI(baseURI string, subscriptionID string, resourceGroupName string, resourceName string) ReplicationMigrationItemsClient { + return original.NewReplicationMigrationItemsClientWithBaseURI(baseURI, subscriptionID, resourceGroupName, resourceName) +} func NewReplicationNetworkMappingsClient(subscriptionID string, resourceGroupName string, resourceName string) ReplicationNetworkMappingsClient { return original.NewReplicationNetworkMappingsClient(subscriptionID, resourceGroupName, resourceName) } diff --git a/services/recoveryservices/mgmt/2018-01-10/siterecovery/migrationrecoverypoints.go b/services/recoveryservices/mgmt/2018-01-10/siterecovery/migrationrecoverypoints.go new file mode 100644 index 000000000000..a7b255930987 --- /dev/null +++ b/services/recoveryservices/mgmt/2018-01-10/siterecovery/migrationrecoverypoints.go @@ -0,0 +1,243 @@ +package siterecovery + +// 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" +) + +// MigrationRecoveryPointsClient is the client for the MigrationRecoveryPoints methods of the Siterecovery service. +type MigrationRecoveryPointsClient struct { + BaseClient +} + +// NewMigrationRecoveryPointsClient creates an instance of the MigrationRecoveryPointsClient client. +func NewMigrationRecoveryPointsClient(subscriptionID string, resourceGroupName string, resourceName string) MigrationRecoveryPointsClient { + return NewMigrationRecoveryPointsClientWithBaseURI(DefaultBaseURI, subscriptionID, resourceGroupName, resourceName) +} + +// NewMigrationRecoveryPointsClientWithBaseURI creates an instance of the MigrationRecoveryPointsClient client. +func NewMigrationRecoveryPointsClientWithBaseURI(baseURI string, subscriptionID string, resourceGroupName string, resourceName string) MigrationRecoveryPointsClient { + return MigrationRecoveryPointsClient{NewWithBaseURI(baseURI, subscriptionID, resourceGroupName, resourceName)} +} + +// Get sends the get request. +// Parameters: +// fabricName - fabric unique name. +// protectionContainerName - protection container name. +// migrationItemName - migration item name. +// migrationRecoveryPointName - the migration recovery point name. +func (client MigrationRecoveryPointsClient) Get(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, migrationRecoveryPointName string) (result MigrationRecoveryPoint, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MigrationRecoveryPointsClient.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, fabricName, protectionContainerName, migrationItemName, migrationRecoveryPointName) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.MigrationRecoveryPointsClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "siterecovery.MigrationRecoveryPointsClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.MigrationRecoveryPointsClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client MigrationRecoveryPointsClient) GetPreparer(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, migrationRecoveryPointName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "fabricName": autorest.Encode("path", fabricName), + "migrationItemName": autorest.Encode("path", migrationItemName), + "migrationRecoveryPointName": autorest.Encode("path", migrationRecoveryPointName), + "protectionContainerName": autorest.Encode("path", protectionContainerName), + "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), + "resourceName": autorest.Encode("path", client.ResourceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2018-01-10" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/migrationRecoveryPoints/{migrationRecoveryPointName}", 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 MigrationRecoveryPointsClient) GetSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + azure.DoRetryWithRegistration(client.Client)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client MigrationRecoveryPointsClient) GetResponder(resp *http.Response) (result MigrationRecoveryPoint, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// ListByReplicationMigrationItems sends the list by replication migration items request. +// Parameters: +// fabricName - fabric unique name. +// protectionContainerName - protection container name. +// migrationItemName - migration item name. +func (client MigrationRecoveryPointsClient) ListByReplicationMigrationItems(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string) (result MigrationRecoveryPointCollectionPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MigrationRecoveryPointsClient.ListByReplicationMigrationItems") + defer func() { + sc := -1 + if result.mrpc.Response.Response != nil { + sc = result.mrpc.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listByReplicationMigrationItemsNextResults + req, err := client.ListByReplicationMigrationItemsPreparer(ctx, fabricName, protectionContainerName, migrationItemName) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.MigrationRecoveryPointsClient", "ListByReplicationMigrationItems", nil, "Failure preparing request") + return + } + + resp, err := client.ListByReplicationMigrationItemsSender(req) + if err != nil { + result.mrpc.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "siterecovery.MigrationRecoveryPointsClient", "ListByReplicationMigrationItems", resp, "Failure sending request") + return + } + + result.mrpc, err = client.ListByReplicationMigrationItemsResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.MigrationRecoveryPointsClient", "ListByReplicationMigrationItems", resp, "Failure responding to request") + } + + return +} + +// ListByReplicationMigrationItemsPreparer prepares the ListByReplicationMigrationItems request. +func (client MigrationRecoveryPointsClient) ListByReplicationMigrationItemsPreparer(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "fabricName": autorest.Encode("path", fabricName), + "migrationItemName": autorest.Encode("path", migrationItemName), + "protectionContainerName": autorest.Encode("path", protectionContainerName), + "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), + "resourceName": autorest.Encode("path", client.ResourceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2018-01-10" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/migrationRecoveryPoints", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByReplicationMigrationItemsSender sends the ListByReplicationMigrationItems request. The method will close the +// http.Response Body if it receives an error. +func (client MigrationRecoveryPointsClient) ListByReplicationMigrationItemsSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + azure.DoRetryWithRegistration(client.Client)) +} + +// ListByReplicationMigrationItemsResponder handles the response to the ListByReplicationMigrationItems request. The method always +// closes the http.Response Body. +func (client MigrationRecoveryPointsClient) ListByReplicationMigrationItemsResponder(resp *http.Response) (result MigrationRecoveryPointCollection, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listByReplicationMigrationItemsNextResults retrieves the next set of results, if any. +func (client MigrationRecoveryPointsClient) listByReplicationMigrationItemsNextResults(ctx context.Context, lastResults MigrationRecoveryPointCollection) (result MigrationRecoveryPointCollection, err error) { + req, err := lastResults.migrationRecoveryPointCollectionPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "siterecovery.MigrationRecoveryPointsClient", "listByReplicationMigrationItemsNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListByReplicationMigrationItemsSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "siterecovery.MigrationRecoveryPointsClient", "listByReplicationMigrationItemsNextResults", resp, "Failure sending next results request") + } + result, err = client.ListByReplicationMigrationItemsResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.MigrationRecoveryPointsClient", "listByReplicationMigrationItemsNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListByReplicationMigrationItemsComplete enumerates all values, automatically crossing page boundaries as required. +func (client MigrationRecoveryPointsClient) ListByReplicationMigrationItemsComplete(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string) (result MigrationRecoveryPointCollectionIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/MigrationRecoveryPointsClient.ListByReplicationMigrationItems") + 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.ListByReplicationMigrationItems(ctx, fabricName, protectionContainerName, migrationItemName) + return +} diff --git a/services/recoveryservices/mgmt/2018-01-10/siterecovery/models.go b/services/recoveryservices/mgmt/2018-01-10/siterecovery/models.go index dceaf6887246..00e2440cceaa 100644 --- a/services/recoveryservices/mgmt/2018-01-10/siterecovery/models.go +++ b/services/recoveryservices/mgmt/2018-01-10/siterecovery/models.go @@ -131,6 +131,38 @@ func PossibleDisableProtectionReasonValues() []DisableProtectionReason { return []DisableProtectionReason{MigrationComplete, NotSpecified} } +// DiskAccountType enumerates the values for disk account type. +type DiskAccountType string + +const ( + // PremiumLRS ... + PremiumLRS DiskAccountType = "Premium_LRS" + // StandardLRS ... + StandardLRS DiskAccountType = "Standard_LRS" + // StandardSSDLRS ... + StandardSSDLRS DiskAccountType = "StandardSSD_LRS" +) + +// PossibleDiskAccountTypeValues returns an array of possible values for the DiskAccountType const type. +func PossibleDiskAccountTypeValues() []DiskAccountType { + return []DiskAccountType{PremiumLRS, StandardLRS, StandardSSDLRS} +} + +// EthernetAddressType enumerates the values for ethernet address type. +type EthernetAddressType string + +const ( + // Dynamic ... + Dynamic EthernetAddressType = "Dynamic" + // Static ... + Static EthernetAddressType = "Static" +) + +// PossibleEthernetAddressTypeValues returns an array of possible values for the EthernetAddressType const type. +func PossibleEthernetAddressTypeValues() []EthernetAddressType { + return []EthernetAddressType{Dynamic, Static} +} + // FailoverDeploymentModel enumerates the values for failover deployment model. type FailoverDeploymentModel string @@ -191,19 +223,6 @@ func PossibleHyperVReplicaAzureRpRecoveryPointTypeValues() []HyperVReplicaAzureR return []HyperVReplicaAzureRpRecoveryPointType{HyperVReplicaAzureRpRecoveryPointTypeLatest, HyperVReplicaAzureRpRecoveryPointTypeLatestApplicationConsistent, HyperVReplicaAzureRpRecoveryPointTypeLatestProcessed} } -// IdentityProviderType enumerates the values for identity provider type. -type IdentityProviderType string - -const ( - // RecoveryServicesActiveDirectory ... - RecoveryServicesActiveDirectory IdentityProviderType = "RecoveryServicesActiveDirectory" -) - -// PossibleIdentityProviderTypeValues returns an array of possible values for the IdentityProviderType const type. -func PossibleIdentityProviderTypeValues() []IdentityProviderType { - return []IdentityProviderType{RecoveryServicesActiveDirectory} -} - // InMageV2RpRecoveryPointType enumerates the values for in mage v2 rp recovery point type. type InMageV2RpRecoveryPointType string @@ -279,6 +298,22 @@ func PossibleInstanceTypeBasicDisableProtectionProviderSpecificInputValues() []I return []InstanceTypeBasicDisableProtectionProviderSpecificInput{InstanceTypeDisableProtectionProviderSpecificInput, InstanceTypeInMage} } +// InstanceTypeBasicEnableMigrationProviderSpecificInput enumerates the values for instance type basic enable +// migration provider specific input. +type InstanceTypeBasicEnableMigrationProviderSpecificInput string + +const ( + // InstanceTypeEnableMigrationProviderSpecificInput ... + InstanceTypeEnableMigrationProviderSpecificInput InstanceTypeBasicEnableMigrationProviderSpecificInput = "EnableMigrationProviderSpecificInput" + // InstanceTypeVMwareCbt ... + InstanceTypeVMwareCbt InstanceTypeBasicEnableMigrationProviderSpecificInput = "VMwareCbt" +) + +// PossibleInstanceTypeBasicEnableMigrationProviderSpecificInputValues returns an array of possible values for the InstanceTypeBasicEnableMigrationProviderSpecificInput const type. +func PossibleInstanceTypeBasicEnableMigrationProviderSpecificInputValues() []InstanceTypeBasicEnableMigrationProviderSpecificInput { + return []InstanceTypeBasicEnableMigrationProviderSpecificInput{InstanceTypeEnableMigrationProviderSpecificInput, InstanceTypeVMwareCbt} +} + // InstanceTypeBasicEnableProtectionProviderSpecificInput enumerates the values for instance type basic enable // protection provider specific input. type InstanceTypeBasicEnableProtectionProviderSpecificInput string @@ -468,6 +503,38 @@ func PossibleInstanceTypeBasicJobDetailsValues() []InstanceTypeBasicJobDetails { return []InstanceTypeBasicJobDetails{InstanceTypeAsrJobDetails, InstanceTypeExportJobDetails, InstanceTypeFailoverJobDetails, InstanceTypeJobDetails, InstanceTypeSwitchProtectionJobDetails, InstanceTypeTestFailoverJobDetails} } +// InstanceTypeBasicMigrateProviderSpecificInput enumerates the values for instance type basic migrate provider +// specific input. +type InstanceTypeBasicMigrateProviderSpecificInput string + +const ( + // InstanceTypeBasicMigrateProviderSpecificInputInstanceTypeMigrateProviderSpecificInput ... + InstanceTypeBasicMigrateProviderSpecificInputInstanceTypeMigrateProviderSpecificInput InstanceTypeBasicMigrateProviderSpecificInput = "MigrateProviderSpecificInput" + // InstanceTypeBasicMigrateProviderSpecificInputInstanceTypeVMwareCbt ... + InstanceTypeBasicMigrateProviderSpecificInputInstanceTypeVMwareCbt InstanceTypeBasicMigrateProviderSpecificInput = "VMwareCbt" +) + +// PossibleInstanceTypeBasicMigrateProviderSpecificInputValues returns an array of possible values for the InstanceTypeBasicMigrateProviderSpecificInput const type. +func PossibleInstanceTypeBasicMigrateProviderSpecificInputValues() []InstanceTypeBasicMigrateProviderSpecificInput { + return []InstanceTypeBasicMigrateProviderSpecificInput{InstanceTypeBasicMigrateProviderSpecificInputInstanceTypeMigrateProviderSpecificInput, InstanceTypeBasicMigrateProviderSpecificInputInstanceTypeVMwareCbt} +} + +// InstanceTypeBasicMigrationProviderSpecificSettings enumerates the values for instance type basic migration +// provider specific settings. +type InstanceTypeBasicMigrationProviderSpecificSettings string + +const ( + // InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeMigrationProviderSpecificSettings ... + InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeMigrationProviderSpecificSettings InstanceTypeBasicMigrationProviderSpecificSettings = "MigrationProviderSpecificSettings" + // InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeVMwareCbt ... + InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeVMwareCbt InstanceTypeBasicMigrationProviderSpecificSettings = "VMwareCbt" +) + +// PossibleInstanceTypeBasicMigrationProviderSpecificSettingsValues returns an array of possible values for the InstanceTypeBasicMigrationProviderSpecificSettings const type. +func PossibleInstanceTypeBasicMigrationProviderSpecificSettingsValues() []InstanceTypeBasicMigrationProviderSpecificSettings { + return []InstanceTypeBasicMigrationProviderSpecificSettings{InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeMigrationProviderSpecificSettings, InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeVMwareCbt} +} + // InstanceTypeBasicNetworkMappingFabricSpecificSettings enumerates the values for instance type basic network // mapping fabric specific settings. type InstanceTypeBasicNetworkMappingFabricSpecificSettings string @@ -559,11 +626,13 @@ const ( InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeA2A InstanceTypeBasicProtectionContainerMappingProviderSpecificDetails = "A2A" // InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeProtectionContainerMappingProviderSpecificDetails ... InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeProtectionContainerMappingProviderSpecificDetails InstanceTypeBasicProtectionContainerMappingProviderSpecificDetails = "ProtectionContainerMappingProviderSpecificDetails" + // InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeVMwareCbt ... + InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeVMwareCbt InstanceTypeBasicProtectionContainerMappingProviderSpecificDetails = "VMwareCbt" ) // PossibleInstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsValues returns an array of possible values for the InstanceTypeBasicProtectionContainerMappingProviderSpecificDetails const type. func PossibleInstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsValues() []InstanceTypeBasicProtectionContainerMappingProviderSpecificDetails { - return []InstanceTypeBasicProtectionContainerMappingProviderSpecificDetails{InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeA2A, InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeProtectionContainerMappingProviderSpecificDetails} + return []InstanceTypeBasicProtectionContainerMappingProviderSpecificDetails{InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeA2A, InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeProtectionContainerMappingProviderSpecificDetails, InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeVMwareCbt} } // InstanceTypeBasicProviderSpecificFailoverInput enumerates the values for instance type basic provider @@ -661,11 +730,13 @@ const ( InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A InstanceTypeBasicReplicationProviderSpecificContainerCreationInput = "A2A" // InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput ... InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput InstanceTypeBasicReplicationProviderSpecificContainerCreationInput = "ReplicationProviderSpecificContainerCreationInput" + // InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeSixcSevendaFourFiveFiveFiveZeroSixfFourThreeffAOneSixaEightebOneZeroOneaebbSevenZero ... + InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeSixcSevendaFourFiveFiveFiveZeroSixfFourThreeffAOneSixaEightebOneZeroOneaebbSevenZero InstanceTypeBasicReplicationProviderSpecificContainerCreationInput = "6c7da455-506f-43ff-a16a-8eb101aebb70" ) // PossibleInstanceTypeBasicReplicationProviderSpecificContainerCreationInputValues returns an array of possible values for the InstanceTypeBasicReplicationProviderSpecificContainerCreationInput const type. func PossibleInstanceTypeBasicReplicationProviderSpecificContainerCreationInputValues() []InstanceTypeBasicReplicationProviderSpecificContainerCreationInput { - return []InstanceTypeBasicReplicationProviderSpecificContainerCreationInput{InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A, InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput} + return []InstanceTypeBasicReplicationProviderSpecificContainerCreationInput{InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A, InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput, InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeSixcSevendaFourFiveFiveFiveZeroSixfFourThreeffAOneSixaEightebOneZeroOneaebbSevenZero} } // InstanceTypeBasicReplicationProviderSpecificContainerMappingInput enumerates the values for instance type @@ -677,11 +748,13 @@ const ( InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeA2A InstanceTypeBasicReplicationProviderSpecificContainerMappingInput = "A2A" // InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeReplicationProviderSpecificContainerMappingInput ... InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeReplicationProviderSpecificContainerMappingInput InstanceTypeBasicReplicationProviderSpecificContainerMappingInput = "ReplicationProviderSpecificContainerMappingInput" + // InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeVMwareCbt ... + InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeVMwareCbt InstanceTypeBasicReplicationProviderSpecificContainerMappingInput = "VMwareCbt" ) // PossibleInstanceTypeBasicReplicationProviderSpecificContainerMappingInputValues returns an array of possible values for the InstanceTypeBasicReplicationProviderSpecificContainerMappingInput const type. func PossibleInstanceTypeBasicReplicationProviderSpecificContainerMappingInputValues() []InstanceTypeBasicReplicationProviderSpecificContainerMappingInput { - return []InstanceTypeBasicReplicationProviderSpecificContainerMappingInput{InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeA2A, InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeReplicationProviderSpecificContainerMappingInput} + return []InstanceTypeBasicReplicationProviderSpecificContainerMappingInput{InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeA2A, InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeReplicationProviderSpecificContainerMappingInput, InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeVMwareCbt} } // InstanceTypeBasicReplicationProviderSpecificSettings enumerates the values for instance type basic @@ -795,6 +868,38 @@ func PossibleInstanceTypeBasicTaskTypeDetailsValues() []InstanceTypeBasicTaskTyp return []InstanceTypeBasicTaskTypeDetails{InstanceTypeAutomationRunbookTaskDetails, InstanceTypeConsistencyCheckTaskDetails, InstanceTypeFabricReplicationGroupTaskDetails, InstanceTypeJobTaskDetails, InstanceTypeManualActionTaskDetails, InstanceTypeScriptActionTaskDetails, InstanceTypeTaskTypeDetails, InstanceTypeVirtualMachineTaskDetails, InstanceTypeVMNicUpdatesTaskDetails} } +// InstanceTypeBasicTestMigrateProviderSpecificInput enumerates the values for instance type basic test migrate +// provider specific input. +type InstanceTypeBasicTestMigrateProviderSpecificInput string + +const ( + // InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeTestMigrateProviderSpecificInput ... + InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeTestMigrateProviderSpecificInput InstanceTypeBasicTestMigrateProviderSpecificInput = "TestMigrateProviderSpecificInput" + // InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeVMwareCbt ... + InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeVMwareCbt InstanceTypeBasicTestMigrateProviderSpecificInput = "VMwareCbt" +) + +// PossibleInstanceTypeBasicTestMigrateProviderSpecificInputValues returns an array of possible values for the InstanceTypeBasicTestMigrateProviderSpecificInput const type. +func PossibleInstanceTypeBasicTestMigrateProviderSpecificInputValues() []InstanceTypeBasicTestMigrateProviderSpecificInput { + return []InstanceTypeBasicTestMigrateProviderSpecificInput{InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeTestMigrateProviderSpecificInput, InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeVMwareCbt} +} + +// InstanceTypeBasicUpdateMigrationItemProviderSpecificInput enumerates the values for instance type basic +// update migration item provider specific input. +type InstanceTypeBasicUpdateMigrationItemProviderSpecificInput string + +const ( + // InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeUpdateMigrationItemProviderSpecificInput ... + InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeUpdateMigrationItemProviderSpecificInput InstanceTypeBasicUpdateMigrationItemProviderSpecificInput = "UpdateMigrationItemProviderSpecificInput" + // InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeVMwareCbt ... + InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeVMwareCbt InstanceTypeBasicUpdateMigrationItemProviderSpecificInput = "VMwareCbt" +) + +// PossibleInstanceTypeBasicUpdateMigrationItemProviderSpecificInputValues returns an array of possible values for the InstanceTypeBasicUpdateMigrationItemProviderSpecificInput const type. +func PossibleInstanceTypeBasicUpdateMigrationItemProviderSpecificInputValues() []InstanceTypeBasicUpdateMigrationItemProviderSpecificInput { + return []InstanceTypeBasicUpdateMigrationItemProviderSpecificInput{InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeUpdateMigrationItemProviderSpecificInput, InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeVMwareCbt} +} + // InstanceTypeBasicUpdateReplicationProtectedItemProviderInput enumerates the values for instance type basic // update replication protected item provider input. type InstanceTypeBasicUpdateReplicationProtectedItemProviderInput string @@ -832,6 +937,44 @@ func PossibleLicenseTypeValues() []LicenseType { return []LicenseType{LicenseTypeNoLicenseType, LicenseTypeNotSpecified, LicenseTypeWindowsServer} } +// MigrationItemOperation enumerates the values for migration item operation. +type MigrationItemOperation string + +const ( + // CompleteMigration ... + CompleteMigration MigrationItemOperation = "CompleteMigration" + // DisableMigration ... + DisableMigration MigrationItemOperation = "DisableMigration" + // Migrate ... + Migrate MigrationItemOperation = "Migrate" + // TestMigrate ... + TestMigrate MigrationItemOperation = "TestMigrate" + // TestMigrateCleanup ... + TestMigrateCleanup MigrationItemOperation = "TestMigrateCleanup" +) + +// PossibleMigrationItemOperationValues returns an array of possible values for the MigrationItemOperation const type. +func PossibleMigrationItemOperationValues() []MigrationItemOperation { + return []MigrationItemOperation{CompleteMigration, DisableMigration, Migrate, TestMigrate, TestMigrateCleanup} +} + +// MigrationRecoveryPointType enumerates the values for migration recovery point type. +type MigrationRecoveryPointType string + +const ( + // MigrationRecoveryPointTypeApplicationConsistent ... + MigrationRecoveryPointTypeApplicationConsistent MigrationRecoveryPointType = "ApplicationConsistent" + // MigrationRecoveryPointTypeCrashConsistent ... + MigrationRecoveryPointTypeCrashConsistent MigrationRecoveryPointType = "CrashConsistent" + // MigrationRecoveryPointTypeNotSpecified ... + MigrationRecoveryPointTypeNotSpecified MigrationRecoveryPointType = "NotSpecified" +) + +// PossibleMigrationRecoveryPointTypeValues returns an array of possible values for the MigrationRecoveryPointType const type. +func PossibleMigrationRecoveryPointTypeValues() []MigrationRecoveryPointType { + return []MigrationRecoveryPointType{MigrationRecoveryPointTypeApplicationConsistent, MigrationRecoveryPointTypeCrashConsistent, MigrationRecoveryPointTypeNotSpecified} +} + // MultiVMGroupCreateOption enumerates the values for multi vm group create option. type MultiVMGroupCreateOption string @@ -1119,7 +1262,7 @@ func (aarpi A2AApplyRecoveryPointInput) AsBasicApplyRecoveryPointProviderSpecifi // A2AContainerCreationInput a2A cloud creation input. type A2AContainerCreationInput struct { - // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput', 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A' + // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput', 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeSixcSevendaFourFiveFiveFiveZeroSixfFourThreeffAOneSixaEightebOneZeroOneaebbSevenZero' InstanceType InstanceTypeBasicReplicationProviderSpecificContainerCreationInput `json:"instanceType,omitempty"` } @@ -1138,6 +1281,11 @@ func (acci A2AContainerCreationInput) AsA2AContainerCreationInput() (*A2AContain return &acci, true } +// AsVMwareCbtContainerCreationInput is the BasicReplicationProviderSpecificContainerCreationInput implementation for A2AContainerCreationInput. +func (acci A2AContainerCreationInput) AsVMwareCbtContainerCreationInput() (*VMwareCbtContainerCreationInput, bool) { + return nil, false +} + // AsReplicationProviderSpecificContainerCreationInput is the BasicReplicationProviderSpecificContainerCreationInput implementation for A2AContainerCreationInput. func (acci A2AContainerCreationInput) AsReplicationProviderSpecificContainerCreationInput() (*ReplicationProviderSpecificContainerCreationInput, bool) { return nil, false @@ -1154,7 +1302,7 @@ type A2AContainerMappingInput struct { AgentAutoUpdateStatus AgentAutoUpdateStatus `json:"agentAutoUpdateStatus,omitempty"` // AutomationAccountArmID - The automation account arm id. AutomationAccountArmID *string `json:"automationAccountArmId,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeReplicationProviderSpecificContainerMappingInput', 'InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeA2A' + // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeReplicationProviderSpecificContainerMappingInput', 'InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicReplicationProviderSpecificContainerMappingInput `json:"instanceType,omitempty"` } @@ -1179,6 +1327,11 @@ func (acmi A2AContainerMappingInput) AsA2AContainerMappingInput() (*A2AContainer return &acmi, true } +// AsVMwareCbtContainerMappingInput is the BasicReplicationProviderSpecificContainerMappingInput implementation for A2AContainerMappingInput. +func (acmi A2AContainerMappingInput) AsVMwareCbtContainerMappingInput() (*VMwareCbtContainerMappingInput, bool) { + return nil, false +} + // AsReplicationProviderSpecificContainerMappingInput is the BasicReplicationProviderSpecificContainerMappingInput implementation for A2AContainerMappingInput. func (acmi A2AContainerMappingInput) AsReplicationProviderSpecificContainerMappingInput() (*ReplicationProviderSpecificContainerMappingInput, bool) { return nil, false @@ -1717,7 +1870,7 @@ type A2AProtectionContainerMappingDetails struct { ScheduleName *string `json:"scheduleName,omitempty"` // JobScheduleName - The job schedule arm name. JobScheduleName *string `json:"jobScheduleName,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeProtectionContainerMappingProviderSpecificDetails', 'InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeA2A' + // InstanceType - Possible values include: 'InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeProtectionContainerMappingProviderSpecificDetails', 'InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicProtectionContainerMappingProviderSpecificDetails `json:"instanceType,omitempty"` } @@ -1748,6 +1901,11 @@ func (apcmd A2AProtectionContainerMappingDetails) AsA2AProtectionContainerMappin return &apcmd, true } +// AsVMwareCbtProtectionContainerMappingDetails is the BasicProtectionContainerMappingProviderSpecificDetails implementation for A2AProtectionContainerMappingDetails. +func (apcmd A2AProtectionContainerMappingDetails) AsVMwareCbtProtectionContainerMappingDetails() (*VMwareCbtProtectionContainerMappingDetails, bool) { + return nil, false +} + // AsProtectionContainerMappingProviderSpecificDetails is the BasicProtectionContainerMappingProviderSpecificDetails implementation for A2AProtectionContainerMappingDetails. func (apcmd A2AProtectionContainerMappingDetails) AsProtectionContainerMappingProviderSpecificDetails() (*ProtectionContainerMappingProviderSpecificDetails, bool) { return nil, false @@ -2308,6 +2466,22 @@ type A2AVMManagedDiskUpdateDetails struct { RecoveryReplicaDiskAccountType *string `json:"recoveryReplicaDiskAccountType,omitempty"` } +// AddRecoveryServicesProviderInput input required to add a provider. +type AddRecoveryServicesProviderInput struct { + // Properties - The properties of an add provider request. + Properties *AddRecoveryServicesProviderInputProperties `json:"properties,omitempty"` +} + +// AddRecoveryServicesProviderInputProperties the properties of an add provider request. +type AddRecoveryServicesProviderInputProperties struct { + // MachineName - The name of the machine where the provider is getting added. + MachineName *string `json:"machineName,omitempty"` + // AuthenticationIdentityInput - The identity provider input for DRA authentication. + AuthenticationIdentityInput *IdentityProviderInput `json:"authenticationIdentityInput,omitempty"` + // ResourceAccessIdentityInput - The identity provider input for resource access. + ResourceAccessIdentityInput *IdentityProviderInput `json:"resourceAccessIdentityInput,omitempty"` +} + // AddVCenterRequest input required to add vCenter. type AddVCenterRequest struct { // Properties - The properties of an add vCenter request. @@ -3819,9 +3993,9 @@ type DiskEncryptionInfo struct { // DiskEncryptionKeyInfo disk Encryption Key Information (BitLocker Encryption Key (BEK) on Windows). type DiskEncryptionKeyInfo struct { - // SecretIdentifier - The secret url / identifier. + // SecretIdentifier - The secret url / identifier. SecretIdentifier *string `json:"secretIdentifier,omitempty"` - // KeyVaultResourceArmID - The KeyVault resource ARM id for secret. + // KeyVaultResourceArmID - The KeyVault resource ARM id for secret. KeyVaultResourceArmID *string `json:"keyVaultResourceArmId,omitempty"` } @@ -3847,6 +4021,126 @@ type Display struct { Description *string `json:"description,omitempty"` } +// EnableMigrationInput enable migration input. +type EnableMigrationInput struct { + // Properties - Enable migration input properties. + Properties *EnableMigrationInputProperties `json:"properties,omitempty"` +} + +// EnableMigrationInputProperties enable migration input properties. +type EnableMigrationInputProperties struct { + // PolicyID - The policy Id. + PolicyID *string `json:"policyId,omitempty"` + // ProviderSpecificDetails - The provider specific details. + ProviderSpecificDetails BasicEnableMigrationProviderSpecificInput `json:"providerSpecificDetails,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for EnableMigrationInputProperties struct. +func (emip *EnableMigrationInputProperties) 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 "policyId": + if v != nil { + var policyID string + err = json.Unmarshal(*v, &policyID) + if err != nil { + return err + } + emip.PolicyID = &policyID + } + case "providerSpecificDetails": + if v != nil { + providerSpecificDetails, err := unmarshalBasicEnableMigrationProviderSpecificInput(*v) + if err != nil { + return err + } + emip.ProviderSpecificDetails = providerSpecificDetails + } + } + } + + return nil +} + +// BasicEnableMigrationProviderSpecificInput enable migration provider specific input. +type BasicEnableMigrationProviderSpecificInput interface { + AsVMwareCbtEnableMigrationInput() (*VMwareCbtEnableMigrationInput, bool) + AsEnableMigrationProviderSpecificInput() (*EnableMigrationProviderSpecificInput, bool) +} + +// EnableMigrationProviderSpecificInput enable migration provider specific input. +type EnableMigrationProviderSpecificInput struct { + // InstanceType - Possible values include: 'InstanceTypeEnableMigrationProviderSpecificInput', 'InstanceTypeVMwareCbt' + InstanceType InstanceTypeBasicEnableMigrationProviderSpecificInput `json:"instanceType,omitempty"` +} + +func unmarshalBasicEnableMigrationProviderSpecificInput(body []byte) (BasicEnableMigrationProviderSpecificInput, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["instanceType"] { + case string(InstanceTypeVMwareCbt): + var vmcemi VMwareCbtEnableMigrationInput + err := json.Unmarshal(body, &vmcemi) + return vmcemi, err + default: + var empsi EnableMigrationProviderSpecificInput + err := json.Unmarshal(body, &empsi) + return empsi, err + } +} +func unmarshalBasicEnableMigrationProviderSpecificInputArray(body []byte) ([]BasicEnableMigrationProviderSpecificInput, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + empsiArray := make([]BasicEnableMigrationProviderSpecificInput, len(rawMessages)) + + for index, rawMessage := range rawMessages { + empsi, err := unmarshalBasicEnableMigrationProviderSpecificInput(*rawMessage) + if err != nil { + return nil, err + } + empsiArray[index] = empsi + } + return empsiArray, nil +} + +// MarshalJSON is the custom marshaler for EnableMigrationProviderSpecificInput. +func (empsi EnableMigrationProviderSpecificInput) MarshalJSON() ([]byte, error) { + empsi.InstanceType = InstanceTypeEnableMigrationProviderSpecificInput + objectMap := make(map[string]interface{}) + if empsi.InstanceType != "" { + objectMap["instanceType"] = empsi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsVMwareCbtEnableMigrationInput is the BasicEnableMigrationProviderSpecificInput implementation for EnableMigrationProviderSpecificInput. +func (empsi EnableMigrationProviderSpecificInput) AsVMwareCbtEnableMigrationInput() (*VMwareCbtEnableMigrationInput, bool) { + return nil, false +} + +// AsEnableMigrationProviderSpecificInput is the BasicEnableMigrationProviderSpecificInput implementation for EnableMigrationProviderSpecificInput. +func (empsi EnableMigrationProviderSpecificInput) AsEnableMigrationProviderSpecificInput() (*EnableMigrationProviderSpecificInput, bool) { + return &empsi, true +} + +// AsBasicEnableMigrationProviderSpecificInput is the BasicEnableMigrationProviderSpecificInput implementation for EnableMigrationProviderSpecificInput. +func (empsi EnableMigrationProviderSpecificInput) AsBasicEnableMigrationProviderSpecificInput() (BasicEnableMigrationProviderSpecificInput, bool) { + return &empsi, true +} + // EnableProtectionInput enable protection input. type EnableProtectionInput struct { // Properties - Enable protection input properties. @@ -7749,10 +8043,22 @@ func (hvvmd HyperVVirtualMachineDetails) AsBasicConfigurationSettings() (BasicCo return &hvvmd, true } -// IdentityInformation identity details. -type IdentityInformation struct { - // IdentityProviderType - The identity provider type. Value is the ToString() of a IdentityProviderType value. Possible values include: 'RecoveryServicesActiveDirectory' - IdentityProviderType IdentityProviderType `json:"identityProviderType,omitempty"` +// IdentityProviderDetails identity provider details. +type IdentityProviderDetails struct { + // TenantID - The tenant Id for the service principal with which the on-premise management/data plane components would communicate with our Azure services. + TenantID *string `json:"tenantId,omitempty"` + // ApplicationID - The application/client Id for the service principal with which the on-premise management/data plane components would communicate with our Azure services. + ApplicationID *string `json:"applicationId,omitempty"` + // ObjectID - The object Id of the service principal with which the on-premise management/data plane components would communicate with our Azure services. + ObjectID *string `json:"objectId,omitempty"` + // Audience - The intended Audience of the service principal with which the on-premise management/data plane components would communicate with our Azure services. + Audience *string `json:"audience,omitempty"` + // AadAuthority - The base authority for Azure Active Directory authentication. + AadAuthority *string `json:"aadAuthority,omitempty"` +} + +// IdentityProviderInput identity provider input. +type IdentityProviderInput struct { // TenantID - The tenant Id for the service principal with which the on-premise management/data plane components would communicate with our Azure services. TenantID *string `json:"tenantId,omitempty"` // ApplicationID - The application/client Id for the service principal with which the on-premise management/data plane components would communicate with our Azure services. @@ -7763,8 +8069,6 @@ type IdentityInformation struct { Audience *string `json:"audience,omitempty"` // AadAuthority - The base authority for Azure Active Directory authentication. AadAuthority *string `json:"aadAuthority,omitempty"` - // CertificateThumbprint - The certificate thumbprint. Applicable only if IdentityProviderType is RecoveryServicesActiveDirectory. - CertificateThumbprint *string `json:"certificateThumbprint,omitempty"` } // InconsistentVMDetails this class stores the monitoring details for consistency check of inconsistent @@ -10425,9 +10729,9 @@ func (jtd JobTaskDetails) AsBasicTaskTypeDetails() (BasicTaskTypeDetails, bool) // KeyEncryptionKeyInfo key Encryption Key (KEK) information. type KeyEncryptionKeyInfo struct { - // KeyIdentifier - The key url / identifier. + // KeyIdentifier - The key url / identifier. KeyIdentifier *string `json:"keyIdentifier,omitempty"` - // KeyVaultResourceArmID - The KeyVault resource ARM id for key. + // KeyVaultResourceArmID - The KeyVault resource ARM id for key. KeyVaultResourceArmID *string `json:"keyVaultResourceArmId,omitempty"` } @@ -10715,21 +11019,120 @@ type MasterTargetServer struct { MarsAgentVersionDetails *VersionDetails `json:"marsAgentVersionDetails,omitempty"` } -// MobilityServiceUpdate the Mobility Service update details. -type MobilityServiceUpdate struct { - // Version - The version of the latest update. - Version *string `json:"version,omitempty"` - // RebootStatus - The reboot status of the update - whether it is required or not. - RebootStatus *string `json:"rebootStatus,omitempty"` - // OsType - The OS type. - OsType *string `json:"osType,omitempty"` +// MigrateInput input for migrate. +type MigrateInput struct { + // Properties - Migrate input properties. + Properties *MigrateInputProperties `json:"properties,omitempty"` } -// Network network model. -type Network struct { +// MigrateInputProperties migrate input properties. +type MigrateInputProperties struct { + // ProviderSpecificDetails - The provider specific details. + ProviderSpecificDetails BasicMigrateProviderSpecificInput `json:"providerSpecificDetails,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for MigrateInputProperties struct. +func (mip *MigrateInputProperties) 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 "providerSpecificDetails": + if v != nil { + providerSpecificDetails, err := unmarshalBasicMigrateProviderSpecificInput(*v) + if err != nil { + return err + } + mip.ProviderSpecificDetails = providerSpecificDetails + } + } + } + + return nil +} + +// BasicMigrateProviderSpecificInput migrate provider specific input. +type BasicMigrateProviderSpecificInput interface { + AsVMwareCbtMigrateInput() (*VMwareCbtMigrateInput, bool) + AsMigrateProviderSpecificInput() (*MigrateProviderSpecificInput, bool) +} + +// MigrateProviderSpecificInput migrate provider specific input. +type MigrateProviderSpecificInput struct { + // InstanceType - Possible values include: 'InstanceTypeBasicMigrateProviderSpecificInputInstanceTypeMigrateProviderSpecificInput', 'InstanceTypeBasicMigrateProviderSpecificInputInstanceTypeVMwareCbt' + InstanceType InstanceTypeBasicMigrateProviderSpecificInput `json:"instanceType,omitempty"` +} + +func unmarshalBasicMigrateProviderSpecificInput(body []byte) (BasicMigrateProviderSpecificInput, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["instanceType"] { + case string(InstanceTypeBasicMigrateProviderSpecificInputInstanceTypeVMwareCbt): + var vmcmi VMwareCbtMigrateInput + err := json.Unmarshal(body, &vmcmi) + return vmcmi, err + default: + var mpsi MigrateProviderSpecificInput + err := json.Unmarshal(body, &mpsi) + return mpsi, err + } +} +func unmarshalBasicMigrateProviderSpecificInputArray(body []byte) ([]BasicMigrateProviderSpecificInput, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + mpsiArray := make([]BasicMigrateProviderSpecificInput, len(rawMessages)) + + for index, rawMessage := range rawMessages { + mpsi, err := unmarshalBasicMigrateProviderSpecificInput(*rawMessage) + if err != nil { + return nil, err + } + mpsiArray[index] = mpsi + } + return mpsiArray, nil +} + +// MarshalJSON is the custom marshaler for MigrateProviderSpecificInput. +func (mpsi MigrateProviderSpecificInput) MarshalJSON() ([]byte, error) { + mpsi.InstanceType = InstanceTypeBasicMigrateProviderSpecificInputInstanceTypeMigrateProviderSpecificInput + objectMap := make(map[string]interface{}) + if mpsi.InstanceType != "" { + objectMap["instanceType"] = mpsi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsVMwareCbtMigrateInput is the BasicMigrateProviderSpecificInput implementation for MigrateProviderSpecificInput. +func (mpsi MigrateProviderSpecificInput) AsVMwareCbtMigrateInput() (*VMwareCbtMigrateInput, bool) { + return nil, false +} + +// AsMigrateProviderSpecificInput is the BasicMigrateProviderSpecificInput implementation for MigrateProviderSpecificInput. +func (mpsi MigrateProviderSpecificInput) AsMigrateProviderSpecificInput() (*MigrateProviderSpecificInput, bool) { + return &mpsi, true +} + +// AsBasicMigrateProviderSpecificInput is the BasicMigrateProviderSpecificInput implementation for MigrateProviderSpecificInput. +func (mpsi MigrateProviderSpecificInput) AsBasicMigrateProviderSpecificInput() (BasicMigrateProviderSpecificInput, bool) { + return &mpsi, true +} + +// MigrationItem migration item. +type MigrationItem struct { autorest.Response `json:"-"` - // Properties - The Network Properties. - Properties *NetworkProperties `json:"properties,omitempty"` + // Properties - The migration item properties. + Properties *MigrationItemProperties `json:"properties,omitempty"` // ID - Resource Id ID *string `json:"id,omitempty"` // Name - Resource Name @@ -10740,26 +11143,26 @@ type Network struct { Location *string `json:"location,omitempty"` } -// NetworkCollection list of networks. -type NetworkCollection struct { +// MigrationItemCollection migration item collection. +type MigrationItemCollection struct { autorest.Response `json:"-"` - // Value - The Networks list details. - Value *[]Network `json:"value,omitempty"` + // Value - The list of migration items. + Value *[]MigrationItem `json:"value,omitempty"` // NextLink - The value of next link. NextLink *string `json:"nextLink,omitempty"` } -// NetworkCollectionIterator provides access to a complete listing of Network values. -type NetworkCollectionIterator struct { +// MigrationItemCollectionIterator provides access to a complete listing of MigrationItem values. +type MigrationItemCollectionIterator struct { i int - page NetworkCollectionPage + page MigrationItemCollectionPage } // 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 *NetworkCollectionIterator) NextWithContext(ctx context.Context) (err error) { +func (iter *MigrationItemCollectionIterator) NextWithContext(ctx context.Context) (err error) { if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/NetworkCollectionIterator.NextWithContext") + ctx = tracing.StartSpan(ctx, fqdn+"/MigrationItemCollectionIterator.NextWithContext") defer func() { sc := -1 if iter.Response().Response.Response != nil { @@ -10784,57 +11187,57 @@ func (iter *NetworkCollectionIterator) NextWithContext(ctx context.Context) (err // 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 *NetworkCollectionIterator) Next() error { +func (iter *MigrationItemCollectionIterator) Next() error { return iter.NextWithContext(context.Background()) } // NotDone returns true if the enumeration should be started or is not yet complete. -func (iter NetworkCollectionIterator) NotDone() bool { +func (iter MigrationItemCollectionIterator) 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 NetworkCollectionIterator) Response() NetworkCollection { +func (iter MigrationItemCollectionIterator) Response() MigrationItemCollection { 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 NetworkCollectionIterator) Value() Network { +func (iter MigrationItemCollectionIterator) Value() MigrationItem { if !iter.page.NotDone() { - return Network{} + return MigrationItem{} } return iter.page.Values()[iter.i] } // IsEmpty returns true if the ListResult contains no values. -func (nc NetworkCollection) IsEmpty() bool { - return nc.Value == nil || len(*nc.Value) == 0 +func (mic MigrationItemCollection) IsEmpty() bool { + return mic.Value == nil || len(*mic.Value) == 0 } -// networkCollectionPreparer prepares a request to retrieve the next set of results. +// migrationItemCollectionPreparer prepares a request to retrieve the next set of results. // It returns nil if no more results exist. -func (nc NetworkCollection) networkCollectionPreparer(ctx context.Context) (*http.Request, error) { - if nc.NextLink == nil || len(to.String(nc.NextLink)) < 1 { +func (mic MigrationItemCollection) migrationItemCollectionPreparer(ctx context.Context) (*http.Request, error) { + if mic.NextLink == nil || len(to.String(mic.NextLink)) < 1 { return nil, nil } return autorest.Prepare((&http.Request{}).WithContext(ctx), autorest.AsJSON(), autorest.AsGet(), - autorest.WithBaseURL(to.String(nc.NextLink))) + autorest.WithBaseURL(to.String(mic.NextLink))) } -// NetworkCollectionPage contains a page of Network values. -type NetworkCollectionPage struct { - fn func(context.Context, NetworkCollection) (NetworkCollection, error) - nc NetworkCollection +// MigrationItemCollectionPage contains a page of MigrationItem values. +type MigrationItemCollectionPage struct { + fn func(context.Context, MigrationItemCollection) (MigrationItemCollection, error) + mic MigrationItemCollection } // 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 *NetworkCollectionPage) NextWithContext(ctx context.Context) (err error) { +func (page *MigrationItemCollectionPage) NextWithContext(ctx context.Context) (err error) { if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/NetworkCollectionPage.NextWithContext") + ctx = tracing.StartSpan(ctx, fqdn+"/MigrationItemCollectionPage.NextWithContext") defer func() { sc := -1 if page.Response().Response.Response != nil { @@ -10843,48 +11246,309 @@ func (page *NetworkCollectionPage) NextWithContext(ctx context.Context) (err err tracing.EndSpan(ctx, sc, err) }() } - next, err := page.fn(ctx, page.nc) + next, err := page.fn(ctx, page.mic) if err != nil { return err } - page.nc = next + page.mic = 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 *NetworkCollectionPage) Next() error { +func (page *MigrationItemCollectionPage) Next() error { return page.NextWithContext(context.Background()) } // NotDone returns true if the page enumeration should be started or is not yet complete. -func (page NetworkCollectionPage) NotDone() bool { - return !page.nc.IsEmpty() +func (page MigrationItemCollectionPage) NotDone() bool { + return !page.mic.IsEmpty() } // Response returns the raw server response from the last page request. -func (page NetworkCollectionPage) Response() NetworkCollection { - return page.nc +func (page MigrationItemCollectionPage) Response() MigrationItemCollection { + return page.mic } // Values returns the slice of values for the current page or nil if there are no values. -func (page NetworkCollectionPage) Values() []Network { - if page.nc.IsEmpty() { +func (page MigrationItemCollectionPage) Values() []MigrationItem { + if page.mic.IsEmpty() { return nil } - return *page.nc.Value + return *page.mic.Value } -// NetworkMapping network Mapping model. Ideally it should have been possible to inherit this class from -// prev version in InheritedModels as long as there is no difference in structure or method signature. -// Since there were no base Models for certain fields and methods viz NetworkMappingProperties and Load -// with required return type, the class has been introduced in its entirety with references to base models -// to facilitate exensions in subsequent versions. -type NetworkMapping struct { +// MigrationItemProperties migration item properties. +type MigrationItemProperties struct { + // FriendlyName - The name. + FriendlyName *string `json:"friendlyName,omitempty"` + // PolicyID - The ARM Id of policy governing this item. + PolicyID *string `json:"policyId,omitempty"` + // PolicyFriendlyName - The name of policy governing this item. + PolicyFriendlyName *string `json:"policyFriendlyName,omitempty"` + // RecoveryServicesProviderID - The recovery services provider ARM Id. + RecoveryServicesProviderID *string `json:"recoveryServicesProviderId,omitempty"` + // MigrationState - The migration status. + MigrationState *string `json:"migrationState,omitempty"` + // MigrationStateDescription - The migration state description. + MigrationStateDescription *string `json:"migrationStateDescription,omitempty"` + // LastSuccessfulMigrateTime - The last successful migrate time. + LastSuccessfulMigrateTime *date.Time `json:"lastSuccessfulMigrateTime,omitempty"` + // LastSuccessfulTestMigrateTime - The last successful test migrate time. + LastSuccessfulTestMigrateTime *date.Time `json:"lastSuccessfulTestMigrateTime,omitempty"` + // TestMigrateState - The test migrate state. + TestMigrateState *string `json:"testMigrateState,omitempty"` + // TestMigrateStateDescription - The test migrate state description. + TestMigrateStateDescription *string `json:"testMigrateStateDescription,omitempty"` + // Health - The consolidated health. + Health *string `json:"health,omitempty"` + // HealthErrors - The list of health errors. + HealthErrors *[]HealthError `json:"healthErrors,omitempty"` + // AllowedOperations - The allowed operations on the migration item. + AllowedOperations *[]MigrationItemOperation `json:"allowedOperations,omitempty"` + // CurrentScenario - The current scenario. + CurrentScenario *CurrentScenarioDetails `json:"currentScenario,omitempty"` + // ProviderSpecificDetails - The migration provider custom settings. + ProviderSpecificDetails BasicMigrationProviderSpecificSettings `json:"providerSpecificDetails,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for MigrationItemProperties struct. +func (mip *MigrationItemProperties) 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 "friendlyName": + if v != nil { + var friendlyName string + err = json.Unmarshal(*v, &friendlyName) + if err != nil { + return err + } + mip.FriendlyName = &friendlyName + } + case "policyId": + if v != nil { + var policyID string + err = json.Unmarshal(*v, &policyID) + if err != nil { + return err + } + mip.PolicyID = &policyID + } + case "policyFriendlyName": + if v != nil { + var policyFriendlyName string + err = json.Unmarshal(*v, &policyFriendlyName) + if err != nil { + return err + } + mip.PolicyFriendlyName = &policyFriendlyName + } + case "recoveryServicesProviderId": + if v != nil { + var recoveryServicesProviderID string + err = json.Unmarshal(*v, &recoveryServicesProviderID) + if err != nil { + return err + } + mip.RecoveryServicesProviderID = &recoveryServicesProviderID + } + case "migrationState": + if v != nil { + var migrationState string + err = json.Unmarshal(*v, &migrationState) + if err != nil { + return err + } + mip.MigrationState = &migrationState + } + case "migrationStateDescription": + if v != nil { + var migrationStateDescription string + err = json.Unmarshal(*v, &migrationStateDescription) + if err != nil { + return err + } + mip.MigrationStateDescription = &migrationStateDescription + } + case "lastSuccessfulMigrateTime": + if v != nil { + var lastSuccessfulMigrateTime date.Time + err = json.Unmarshal(*v, &lastSuccessfulMigrateTime) + if err != nil { + return err + } + mip.LastSuccessfulMigrateTime = &lastSuccessfulMigrateTime + } + case "lastSuccessfulTestMigrateTime": + if v != nil { + var lastSuccessfulTestMigrateTime date.Time + err = json.Unmarshal(*v, &lastSuccessfulTestMigrateTime) + if err != nil { + return err + } + mip.LastSuccessfulTestMigrateTime = &lastSuccessfulTestMigrateTime + } + case "testMigrateState": + if v != nil { + var testMigrateState string + err = json.Unmarshal(*v, &testMigrateState) + if err != nil { + return err + } + mip.TestMigrateState = &testMigrateState + } + case "testMigrateStateDescription": + if v != nil { + var testMigrateStateDescription string + err = json.Unmarshal(*v, &testMigrateStateDescription) + if err != nil { + return err + } + mip.TestMigrateStateDescription = &testMigrateStateDescription + } + case "health": + if v != nil { + var health string + err = json.Unmarshal(*v, &health) + if err != nil { + return err + } + mip.Health = &health + } + case "healthErrors": + if v != nil { + var healthErrors []HealthError + err = json.Unmarshal(*v, &healthErrors) + if err != nil { + return err + } + mip.HealthErrors = &healthErrors + } + case "allowedOperations": + if v != nil { + var allowedOperations []MigrationItemOperation + err = json.Unmarshal(*v, &allowedOperations) + if err != nil { + return err + } + mip.AllowedOperations = &allowedOperations + } + case "currentScenario": + if v != nil { + var currentScenario CurrentScenarioDetails + err = json.Unmarshal(*v, ¤tScenario) + if err != nil { + return err + } + mip.CurrentScenario = ¤tScenario + } + case "providerSpecificDetails": + if v != nil { + providerSpecificDetails, err := unmarshalBasicMigrationProviderSpecificSettings(*v) + if err != nil { + return err + } + mip.ProviderSpecificDetails = providerSpecificDetails + } + } + } + + return nil +} + +// MigrationItemsQueryParameter query parameter to enumerate migration items. +type MigrationItemsQueryParameter struct { + // SourceFabricName - The source fabric name filter. + SourceFabricName *string `json:"sourceFabricName,omitempty"` + // InstanceType - The replication provider type. + InstanceType *string `json:"instanceType,omitempty"` +} + +// BasicMigrationProviderSpecificSettings migration provider specific settings. +type BasicMigrationProviderSpecificSettings interface { + AsVMwareCbtMigrationDetails() (*VMwareCbtMigrationDetails, bool) + AsMigrationProviderSpecificSettings() (*MigrationProviderSpecificSettings, bool) +} + +// MigrationProviderSpecificSettings migration provider specific settings. +type MigrationProviderSpecificSettings struct { + // InstanceType - Possible values include: 'InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeMigrationProviderSpecificSettings', 'InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeVMwareCbt' + InstanceType InstanceTypeBasicMigrationProviderSpecificSettings `json:"instanceType,omitempty"` +} + +func unmarshalBasicMigrationProviderSpecificSettings(body []byte) (BasicMigrationProviderSpecificSettings, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["instanceType"] { + case string(InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeVMwareCbt): + var vmcmd VMwareCbtMigrationDetails + err := json.Unmarshal(body, &vmcmd) + return vmcmd, err + default: + var mpss MigrationProviderSpecificSettings + err := json.Unmarshal(body, &mpss) + return mpss, err + } +} +func unmarshalBasicMigrationProviderSpecificSettingsArray(body []byte) ([]BasicMigrationProviderSpecificSettings, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + mpssArray := make([]BasicMigrationProviderSpecificSettings, len(rawMessages)) + + for index, rawMessage := range rawMessages { + mpss, err := unmarshalBasicMigrationProviderSpecificSettings(*rawMessage) + if err != nil { + return nil, err + } + mpssArray[index] = mpss + } + return mpssArray, nil +} + +// MarshalJSON is the custom marshaler for MigrationProviderSpecificSettings. +func (mpss MigrationProviderSpecificSettings) MarshalJSON() ([]byte, error) { + mpss.InstanceType = InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeMigrationProviderSpecificSettings + objectMap := make(map[string]interface{}) + if mpss.InstanceType != "" { + objectMap["instanceType"] = mpss.InstanceType + } + return json.Marshal(objectMap) +} + +// AsVMwareCbtMigrationDetails is the BasicMigrationProviderSpecificSettings implementation for MigrationProviderSpecificSettings. +func (mpss MigrationProviderSpecificSettings) AsVMwareCbtMigrationDetails() (*VMwareCbtMigrationDetails, bool) { + return nil, false +} + +// AsMigrationProviderSpecificSettings is the BasicMigrationProviderSpecificSettings implementation for MigrationProviderSpecificSettings. +func (mpss MigrationProviderSpecificSettings) AsMigrationProviderSpecificSettings() (*MigrationProviderSpecificSettings, bool) { + return &mpss, true +} + +// AsBasicMigrationProviderSpecificSettings is the BasicMigrationProviderSpecificSettings implementation for MigrationProviderSpecificSettings. +func (mpss MigrationProviderSpecificSettings) AsBasicMigrationProviderSpecificSettings() (BasicMigrationProviderSpecificSettings, bool) { + return &mpss, true +} + +// MigrationRecoveryPoint recovery point for a migration item. +type MigrationRecoveryPoint struct { autorest.Response `json:"-"` - // Properties - The Network Mapping Properties. - Properties *NetworkMappingProperties `json:"properties,omitempty"` + // Properties - Recovery point properties. + Properties *MigrationRecoveryPointProperties `json:"properties,omitempty"` // ID - Resource Id ID *string `json:"id,omitempty"` // Name - Resource Name @@ -10895,29 +11559,27 @@ type NetworkMapping struct { Location *string `json:"location,omitempty"` } -// NetworkMappingCollection list of network mappings. As with NetworkMapping, it should be possible to -// reuse a prev version of this class. It doesn't seem likely this class could be anything more than a -// slightly bespoke collection of NetworkMapping. Hence it makes sense to override Load with -// Base.NetworkMapping instead of existing CurrentVersion.NetworkMapping. -type NetworkMappingCollection struct { +// MigrationRecoveryPointCollection collection of migration recovery points. +type MigrationRecoveryPointCollection struct { autorest.Response `json:"-"` - // Value - The Network Mappings list. - Value *[]NetworkMapping `json:"value,omitempty"` + // Value - The migration recovery point details. + Value *[]MigrationRecoveryPoint `json:"value,omitempty"` // NextLink - The value of next link. NextLink *string `json:"nextLink,omitempty"` } -// NetworkMappingCollectionIterator provides access to a complete listing of NetworkMapping values. -type NetworkMappingCollectionIterator struct { +// MigrationRecoveryPointCollectionIterator provides access to a complete listing of MigrationRecoveryPoint +// values. +type MigrationRecoveryPointCollectionIterator struct { i int - page NetworkMappingCollectionPage + page MigrationRecoveryPointCollectionPage } // 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 *NetworkMappingCollectionIterator) NextWithContext(ctx context.Context) (err error) { +func (iter *MigrationRecoveryPointCollectionIterator) NextWithContext(ctx context.Context) (err error) { if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/NetworkMappingCollectionIterator.NextWithContext") + ctx = tracing.StartSpan(ctx, fqdn+"/MigrationRecoveryPointCollectionIterator.NextWithContext") defer func() { sc := -1 if iter.Response().Response.Response != nil { @@ -10942,57 +11604,57 @@ func (iter *NetworkMappingCollectionIterator) NextWithContext(ctx context.Contex // 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 *NetworkMappingCollectionIterator) Next() error { +func (iter *MigrationRecoveryPointCollectionIterator) Next() error { return iter.NextWithContext(context.Background()) } // NotDone returns true if the enumeration should be started or is not yet complete. -func (iter NetworkMappingCollectionIterator) NotDone() bool { +func (iter MigrationRecoveryPointCollectionIterator) 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 NetworkMappingCollectionIterator) Response() NetworkMappingCollection { +func (iter MigrationRecoveryPointCollectionIterator) Response() MigrationRecoveryPointCollection { 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 NetworkMappingCollectionIterator) Value() NetworkMapping { +func (iter MigrationRecoveryPointCollectionIterator) Value() MigrationRecoveryPoint { if !iter.page.NotDone() { - return NetworkMapping{} + return MigrationRecoveryPoint{} } return iter.page.Values()[iter.i] } // IsEmpty returns true if the ListResult contains no values. -func (nmc NetworkMappingCollection) IsEmpty() bool { - return nmc.Value == nil || len(*nmc.Value) == 0 +func (mrpc MigrationRecoveryPointCollection) IsEmpty() bool { + return mrpc.Value == nil || len(*mrpc.Value) == 0 } -// networkMappingCollectionPreparer prepares a request to retrieve the next set of results. +// migrationRecoveryPointCollectionPreparer prepares a request to retrieve the next set of results. // It returns nil if no more results exist. -func (nmc NetworkMappingCollection) networkMappingCollectionPreparer(ctx context.Context) (*http.Request, error) { - if nmc.NextLink == nil || len(to.String(nmc.NextLink)) < 1 { +func (mrpc MigrationRecoveryPointCollection) migrationRecoveryPointCollectionPreparer(ctx context.Context) (*http.Request, error) { + if mrpc.NextLink == nil || len(to.String(mrpc.NextLink)) < 1 { return nil, nil } return autorest.Prepare((&http.Request{}).WithContext(ctx), autorest.AsJSON(), autorest.AsGet(), - autorest.WithBaseURL(to.String(nmc.NextLink))) + autorest.WithBaseURL(to.String(mrpc.NextLink))) } -// NetworkMappingCollectionPage contains a page of NetworkMapping values. -type NetworkMappingCollectionPage struct { - fn func(context.Context, NetworkMappingCollection) (NetworkMappingCollection, error) - nmc NetworkMappingCollection +// MigrationRecoveryPointCollectionPage contains a page of MigrationRecoveryPoint values. +type MigrationRecoveryPointCollectionPage struct { + fn func(context.Context, MigrationRecoveryPointCollection) (MigrationRecoveryPointCollection, error) + mrpc MigrationRecoveryPointCollection } // 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 *NetworkMappingCollectionPage) NextWithContext(ctx context.Context) (err error) { +func (page *MigrationRecoveryPointCollectionPage) NextWithContext(ctx context.Context) (err error) { if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/NetworkMappingCollectionPage.NextWithContext") + ctx = tracing.StartSpan(ctx, fqdn+"/MigrationRecoveryPointCollectionPage.NextWithContext") defer func() { sc := -1 if page.Response().Response.Response != nil { @@ -11001,61 +11663,388 @@ func (page *NetworkMappingCollectionPage) NextWithContext(ctx context.Context) ( tracing.EndSpan(ctx, sc, err) }() } - next, err := page.fn(ctx, page.nmc) + next, err := page.fn(ctx, page.mrpc) if err != nil { return err } - page.nmc = next + page.mrpc = 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 *NetworkMappingCollectionPage) Next() error { +func (page *MigrationRecoveryPointCollectionPage) Next() error { return page.NextWithContext(context.Background()) } // NotDone returns true if the page enumeration should be started or is not yet complete. -func (page NetworkMappingCollectionPage) NotDone() bool { - return !page.nmc.IsEmpty() +func (page MigrationRecoveryPointCollectionPage) NotDone() bool { + return !page.mrpc.IsEmpty() } // Response returns the raw server response from the last page request. -func (page NetworkMappingCollectionPage) Response() NetworkMappingCollection { - return page.nmc +func (page MigrationRecoveryPointCollectionPage) Response() MigrationRecoveryPointCollection { + return page.mrpc } // Values returns the slice of values for the current page or nil if there are no values. -func (page NetworkMappingCollectionPage) Values() []NetworkMapping { - if page.nmc.IsEmpty() { +func (page MigrationRecoveryPointCollectionPage) Values() []MigrationRecoveryPoint { + if page.mrpc.IsEmpty() { return nil } - return *page.nmc.Value + return *page.mrpc.Value } -// BasicNetworkMappingFabricSpecificSettings network Mapping fabric specific settings. -type BasicNetworkMappingFabricSpecificSettings interface { - AsAzureToAzureNetworkMappingSettings() (*AzureToAzureNetworkMappingSettings, bool) - AsVmmToAzureNetworkMappingSettings() (*VmmToAzureNetworkMappingSettings, bool) - AsVmmToVmmNetworkMappingSettings() (*VmmToVmmNetworkMappingSettings, bool) - AsNetworkMappingFabricSpecificSettings() (*NetworkMappingFabricSpecificSettings, bool) +// MigrationRecoveryPointProperties migration item recovery point properties. +type MigrationRecoveryPointProperties struct { + // RecoveryPointTime - The recovery point time. + RecoveryPointTime *date.Time `json:"recoveryPointTime,omitempty"` + // RecoveryPointType - The recovery point type. Possible values include: 'MigrationRecoveryPointTypeNotSpecified', 'MigrationRecoveryPointTypeApplicationConsistent', 'MigrationRecoveryPointTypeCrashConsistent' + RecoveryPointType MigrationRecoveryPointType `json:"recoveryPointType,omitempty"` } -// NetworkMappingFabricSpecificSettings network Mapping fabric specific settings. -type NetworkMappingFabricSpecificSettings struct { - // InstanceType - Possible values include: 'InstanceTypeBasicNetworkMappingFabricSpecificSettingsInstanceTypeNetworkMappingFabricSpecificSettings', 'InstanceTypeBasicNetworkMappingFabricSpecificSettingsInstanceTypeAzureToAzure', 'InstanceTypeBasicNetworkMappingFabricSpecificSettingsInstanceTypeVmmToAzure', 'InstanceTypeBasicNetworkMappingFabricSpecificSettingsInstanceTypeVmmToVmm' - InstanceType InstanceTypeBasicNetworkMappingFabricSpecificSettings `json:"instanceType,omitempty"` +// MobilityServiceUpdate the Mobility Service update details. +type MobilityServiceUpdate struct { + // Version - The version of the latest update. + Version *string `json:"version,omitempty"` + // RebootStatus - The reboot status of the update - whether it is required or not. + RebootStatus *string `json:"rebootStatus,omitempty"` + // OsType - The OS type. + OsType *string `json:"osType,omitempty"` } -func unmarshalBasicNetworkMappingFabricSpecificSettings(body []byte) (BasicNetworkMappingFabricSpecificSettings, error) { - var m map[string]interface{} - err := json.Unmarshal(body, &m) - if err != nil { - return nil, err - } - - switch m["instanceType"] { +// Network network model. +type Network struct { + autorest.Response `json:"-"` + // Properties - The Network Properties. + Properties *NetworkProperties `json:"properties,omitempty"` + // ID - Resource Id + ID *string `json:"id,omitempty"` + // Name - Resource Name + Name *string `json:"name,omitempty"` + // Type - Resource Type + Type *string `json:"type,omitempty"` + // Location - Resource Location + Location *string `json:"location,omitempty"` +} + +// NetworkCollection list of networks. +type NetworkCollection struct { + autorest.Response `json:"-"` + // Value - The Networks list details. + Value *[]Network `json:"value,omitempty"` + // NextLink - The value of next link. + NextLink *string `json:"nextLink,omitempty"` +} + +// NetworkCollectionIterator provides access to a complete listing of Network values. +type NetworkCollectionIterator struct { + i int + page NetworkCollectionPage +} + +// 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 *NetworkCollectionIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/NetworkCollectionIterator.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 *NetworkCollectionIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter NetworkCollectionIterator) 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 NetworkCollectionIterator) Response() NetworkCollection { + 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 NetworkCollectionIterator) Value() Network { + if !iter.page.NotDone() { + return Network{} + } + return iter.page.Values()[iter.i] +} + +// IsEmpty returns true if the ListResult contains no values. +func (nc NetworkCollection) IsEmpty() bool { + return nc.Value == nil || len(*nc.Value) == 0 +} + +// networkCollectionPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (nc NetworkCollection) networkCollectionPreparer(ctx context.Context) (*http.Request, error) { + if nc.NextLink == nil || len(to.String(nc.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(nc.NextLink))) +} + +// NetworkCollectionPage contains a page of Network values. +type NetworkCollectionPage struct { + fn func(context.Context, NetworkCollection) (NetworkCollection, error) + nc NetworkCollection +} + +// 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 *NetworkCollectionPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/NetworkCollectionPage.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.nc) + if err != nil { + return err + } + page.nc = 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 *NetworkCollectionPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page NetworkCollectionPage) NotDone() bool { + return !page.nc.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page NetworkCollectionPage) Response() NetworkCollection { + return page.nc +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page NetworkCollectionPage) Values() []Network { + if page.nc.IsEmpty() { + return nil + } + return *page.nc.Value +} + +// NetworkMapping network Mapping model. Ideally it should have been possible to inherit this class from +// prev version in InheritedModels as long as there is no difference in structure or method signature. +// Since there were no base Models for certain fields and methods viz NetworkMappingProperties and Load +// with required return type, the class has been introduced in its entirety with references to base models +// to facilitate exensions in subsequent versions. +type NetworkMapping struct { + autorest.Response `json:"-"` + // Properties - The Network Mapping Properties. + Properties *NetworkMappingProperties `json:"properties,omitempty"` + // ID - Resource Id + ID *string `json:"id,omitempty"` + // Name - Resource Name + Name *string `json:"name,omitempty"` + // Type - Resource Type + Type *string `json:"type,omitempty"` + // Location - Resource Location + Location *string `json:"location,omitempty"` +} + +// NetworkMappingCollection list of network mappings. As with NetworkMapping, it should be possible to +// reuse a prev version of this class. It doesn't seem likely this class could be anything more than a +// slightly bespoke collection of NetworkMapping. Hence it makes sense to override Load with +// Base.NetworkMapping instead of existing CurrentVersion.NetworkMapping. +type NetworkMappingCollection struct { + autorest.Response `json:"-"` + // Value - The Network Mappings list. + Value *[]NetworkMapping `json:"value,omitempty"` + // NextLink - The value of next link. + NextLink *string `json:"nextLink,omitempty"` +} + +// NetworkMappingCollectionIterator provides access to a complete listing of NetworkMapping values. +type NetworkMappingCollectionIterator struct { + i int + page NetworkMappingCollectionPage +} + +// 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 *NetworkMappingCollectionIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/NetworkMappingCollectionIterator.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 *NetworkMappingCollectionIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter NetworkMappingCollectionIterator) 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 NetworkMappingCollectionIterator) Response() NetworkMappingCollection { + 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 NetworkMappingCollectionIterator) Value() NetworkMapping { + if !iter.page.NotDone() { + return NetworkMapping{} + } + return iter.page.Values()[iter.i] +} + +// IsEmpty returns true if the ListResult contains no values. +func (nmc NetworkMappingCollection) IsEmpty() bool { + return nmc.Value == nil || len(*nmc.Value) == 0 +} + +// networkMappingCollectionPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (nmc NetworkMappingCollection) networkMappingCollectionPreparer(ctx context.Context) (*http.Request, error) { + if nmc.NextLink == nil || len(to.String(nmc.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(nmc.NextLink))) +} + +// NetworkMappingCollectionPage contains a page of NetworkMapping values. +type NetworkMappingCollectionPage struct { + fn func(context.Context, NetworkMappingCollection) (NetworkMappingCollection, error) + nmc NetworkMappingCollection +} + +// 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 *NetworkMappingCollectionPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/NetworkMappingCollectionPage.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.nmc) + if err != nil { + return err + } + page.nmc = 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 *NetworkMappingCollectionPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page NetworkMappingCollectionPage) NotDone() bool { + return !page.nmc.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page NetworkMappingCollectionPage) Response() NetworkMappingCollection { + return page.nmc +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page NetworkMappingCollectionPage) Values() []NetworkMapping { + if page.nmc.IsEmpty() { + return nil + } + return *page.nmc.Value +} + +// BasicNetworkMappingFabricSpecificSettings network Mapping fabric specific settings. +type BasicNetworkMappingFabricSpecificSettings interface { + AsAzureToAzureNetworkMappingSettings() (*AzureToAzureNetworkMappingSettings, bool) + AsVmmToAzureNetworkMappingSettings() (*VmmToAzureNetworkMappingSettings, bool) + AsVmmToVmmNetworkMappingSettings() (*VmmToVmmNetworkMappingSettings, bool) + AsNetworkMappingFabricSpecificSettings() (*NetworkMappingFabricSpecificSettings, bool) +} + +// NetworkMappingFabricSpecificSettings network Mapping fabric specific settings. +type NetworkMappingFabricSpecificSettings struct { + // InstanceType - Possible values include: 'InstanceTypeBasicNetworkMappingFabricSpecificSettingsInstanceTypeNetworkMappingFabricSpecificSettings', 'InstanceTypeBasicNetworkMappingFabricSpecificSettingsInstanceTypeAzureToAzure', 'InstanceTypeBasicNetworkMappingFabricSpecificSettingsInstanceTypeVmmToAzure', 'InstanceTypeBasicNetworkMappingFabricSpecificSettingsInstanceTypeVmmToVmm' + InstanceType InstanceTypeBasicNetworkMappingFabricSpecificSettings `json:"instanceType,omitempty"` +} + +func unmarshalBasicNetworkMappingFabricSpecificSettings(body []byte) (BasicNetworkMappingFabricSpecificSettings, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["instanceType"] { case string(InstanceTypeBasicNetworkMappingFabricSpecificSettingsInstanceTypeAzureToAzure): var atanms AzureToAzureNetworkMappingSettings err := json.Unmarshal(body, &atanms) @@ -12745,12 +13734,13 @@ func (pcmp *ProtectionContainerMappingProperties) UnmarshalJSON(body []byte) err // BasicProtectionContainerMappingProviderSpecificDetails container mapping provider specific details. type BasicProtectionContainerMappingProviderSpecificDetails interface { AsA2AProtectionContainerMappingDetails() (*A2AProtectionContainerMappingDetails, bool) + AsVMwareCbtProtectionContainerMappingDetails() (*VMwareCbtProtectionContainerMappingDetails, bool) AsProtectionContainerMappingProviderSpecificDetails() (*ProtectionContainerMappingProviderSpecificDetails, bool) } // ProtectionContainerMappingProviderSpecificDetails container mapping provider specific details. type ProtectionContainerMappingProviderSpecificDetails struct { - // InstanceType - Possible values include: 'InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeProtectionContainerMappingProviderSpecificDetails', 'InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeA2A' + // InstanceType - Possible values include: 'InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeProtectionContainerMappingProviderSpecificDetails', 'InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicProtectionContainerMappingProviderSpecificDetails `json:"instanceType,omitempty"` } @@ -12766,6 +13756,10 @@ func unmarshalBasicProtectionContainerMappingProviderSpecificDetails(body []byte var apcmd A2AProtectionContainerMappingDetails err := json.Unmarshal(body, &apcmd) return apcmd, err + case string(InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeVMwareCbt): + var vmcpcmd VMwareCbtProtectionContainerMappingDetails + err := json.Unmarshal(body, &vmcpcmd) + return vmcpcmd, err default: var pcmpsd ProtectionContainerMappingProviderSpecificDetails err := json.Unmarshal(body, &pcmpsd) @@ -12806,6 +13800,11 @@ func (pcmpsd ProtectionContainerMappingProviderSpecificDetails) AsA2AProtectionC return nil, false } +// AsVMwareCbtProtectionContainerMappingDetails is the BasicProtectionContainerMappingProviderSpecificDetails implementation for ProtectionContainerMappingProviderSpecificDetails. +func (pcmpsd ProtectionContainerMappingProviderSpecificDetails) AsVMwareCbtProtectionContainerMappingDetails() (*VMwareCbtProtectionContainerMappingDetails, bool) { + return nil, false +} + // AsProtectionContainerMappingProviderSpecificDetails is the BasicProtectionContainerMappingProviderSpecificDetails implementation for ProtectionContainerMappingProviderSpecificDetails. func (pcmpsd ProtectionContainerMappingProviderSpecificDetails) AsProtectionContainerMappingProviderSpecificDetails() (*ProtectionContainerMappingProviderSpecificDetails, bool) { return &pcmpsd, true @@ -14707,470 +15706,692 @@ func (rspc RecoveryServicesProviderCollection) IsEmpty() bool { return rspc.Value == nil || len(*rspc.Value) == 0 } -// recoveryServicesProviderCollectionPreparer prepares a request to retrieve the next set of results. -// It returns nil if no more results exist. -func (rspc RecoveryServicesProviderCollection) recoveryServicesProviderCollectionPreparer(ctx context.Context) (*http.Request, error) { - if rspc.NextLink == nil || len(to.String(rspc.NextLink)) < 1 { - return nil, nil +// recoveryServicesProviderCollectionPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (rspc RecoveryServicesProviderCollection) recoveryServicesProviderCollectionPreparer(ctx context.Context) (*http.Request, error) { + if rspc.NextLink == nil || len(to.String(rspc.NextLink)) < 1 { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(rspc.NextLink))) +} + +// RecoveryServicesProviderCollectionPage contains a page of RecoveryServicesProvider values. +type RecoveryServicesProviderCollectionPage struct { + fn func(context.Context, RecoveryServicesProviderCollection) (RecoveryServicesProviderCollection, error) + rspc RecoveryServicesProviderCollection +} + +// 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 *RecoveryServicesProviderCollectionPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/RecoveryServicesProviderCollectionPage.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.rspc) + if err != nil { + return err + } + page.rspc = 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 *RecoveryServicesProviderCollectionPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page RecoveryServicesProviderCollectionPage) NotDone() bool { + return !page.rspc.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page RecoveryServicesProviderCollectionPage) Response() RecoveryServicesProviderCollection { + return page.rspc +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page RecoveryServicesProviderCollectionPage) Values() []RecoveryServicesProvider { + if page.rspc.IsEmpty() { + return nil + } + return *page.rspc.Value +} + +// RecoveryServicesProviderProperties recovery services provider properties. +type RecoveryServicesProviderProperties struct { + // FabricType - Type of the site. + FabricType *string `json:"fabricType,omitempty"` + // FriendlyName - Friendly name of the DRA. + FriendlyName *string `json:"friendlyName,omitempty"` + // ProviderVersion - The provider version. + ProviderVersion *string `json:"providerVersion,omitempty"` + // ServerVersion - The fabric provider. + ServerVersion *string `json:"serverVersion,omitempty"` + // ProviderVersionState - DRA version status. + ProviderVersionState *string `json:"providerVersionState,omitempty"` + // ProviderVersionExpiryDate - Expiry date of the version. + ProviderVersionExpiryDate *date.Time `json:"providerVersionExpiryDate,omitempty"` + // FabricFriendlyName - The fabric friendly name. + FabricFriendlyName *string `json:"fabricFriendlyName,omitempty"` + // LastHeartBeat - Time when last heartbeat was sent by the DRA. + LastHeartBeat *date.Time `json:"lastHeartBeat,omitempty"` + // ConnectionStatus - A value indicating whether DRA is responsive. + ConnectionStatus *string `json:"connectionStatus,omitempty"` + // ProtectedItemCount - Number of protected VMs currently managed by the DRA. + ProtectedItemCount *int32 `json:"protectedItemCount,omitempty"` + // AllowedScenarios - The scenarios allowed on this provider. + AllowedScenarios *[]string `json:"allowedScenarios,omitempty"` + // HealthErrorDetails - The recovery services provider health error details. + HealthErrorDetails *[]HealthError `json:"healthErrorDetails,omitempty"` + // DraIdentifier - The DRA Id. + DraIdentifier *string `json:"draIdentifier,omitempty"` + // AuthenticationIdentityDetails - The authentication identity details. + AuthenticationIdentityDetails *IdentityProviderDetails `json:"authenticationIdentityDetails,omitempty"` + // ResourceAccessIdentityDetails - The resource access identity details. + ResourceAccessIdentityDetails *IdentityProviderDetails `json:"resourceAccessIdentityDetails,omitempty"` + // ProviderVersionDetails - The provider version details. + ProviderVersionDetails *VersionDetails `json:"providerVersionDetails,omitempty"` +} + +// RemoveProtectionContainerMappingInput container unpairing input. +type RemoveProtectionContainerMappingInput struct { + // Properties - Configure protection input properties. + Properties *RemoveProtectionContainerMappingInputProperties `json:"properties,omitempty"` +} + +// RemoveProtectionContainerMappingInputProperties unpairing input properties. +type RemoveProtectionContainerMappingInputProperties struct { + // ProviderSpecificInput - Provider specific input for unpairing. + ProviderSpecificInput *ReplicationProviderContainerUnmappingInput `json:"providerSpecificInput,omitempty"` +} + +// RenewCertificateInput certificate renewal input. +type RenewCertificateInput struct { + // Properties - Renew certificate input properties. + Properties *RenewCertificateInputProperties `json:"properties,omitempty"` +} + +// RenewCertificateInputProperties renew Certificate input properties. +type RenewCertificateInputProperties struct { + // RenewCertificateType - Renew certificate type. + RenewCertificateType *string `json:"renewCertificateType,omitempty"` +} + +// ReplicationFabricsCheckConsistencyFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type ReplicationFabricsCheckConsistencyFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ReplicationFabricsCheckConsistencyFuture) Result(client ReplicationFabricsClient) (f Fabric, err error) { + var done bool + done, err = future.Done(client) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationFabricsCheckConsistencyFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationFabricsCheckConsistencyFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if f.Response.Response, err = future.GetResult(sender); err == nil && f.Response.Response.StatusCode != http.StatusNoContent { + f, err = client.CheckConsistencyResponder(f.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationFabricsCheckConsistencyFuture", "Result", f.Response.Response, "Failure responding to request") + } + } + return +} + +// ReplicationFabricsCreateFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type ReplicationFabricsCreateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ReplicationFabricsCreateFuture) Result(client ReplicationFabricsClient) (f Fabric, err error) { + var done bool + done, err = future.Done(client) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationFabricsCreateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationFabricsCreateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if f.Response.Response, err = future.GetResult(sender); err == nil && f.Response.Response.StatusCode != http.StatusNoContent { + f, err = client.CreateResponder(f.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationFabricsCreateFuture", "Result", f.Response.Response, "Failure responding to request") + } + } + return +} + +// ReplicationFabricsDeleteFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type ReplicationFabricsDeleteFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ReplicationFabricsDeleteFuture) Result(client ReplicationFabricsClient) (ar autorest.Response, err error) { + var done bool + done, err = future.Done(client) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationFabricsDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationFabricsDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// ReplicationFabricsMigrateToAadFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type ReplicationFabricsMigrateToAadFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ReplicationFabricsMigrateToAadFuture) Result(client ReplicationFabricsClient) (ar autorest.Response, err error) { + var done bool + done, err = future.Done(client) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationFabricsMigrateToAadFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationFabricsMigrateToAadFuture") + return + } + ar.Response = future.Response() + return +} + +// ReplicationFabricsPurgeFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type ReplicationFabricsPurgeFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ReplicationFabricsPurgeFuture) Result(client ReplicationFabricsClient) (ar autorest.Response, err error) { + var done bool + done, err = future.Done(client) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationFabricsPurgeFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationFabricsPurgeFuture") + return + } + ar.Response = future.Response() + return +} + +// ReplicationFabricsReassociateGatewayFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type ReplicationFabricsReassociateGatewayFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ReplicationFabricsReassociateGatewayFuture) Result(client ReplicationFabricsClient) (f Fabric, err error) { + var done bool + done, err = future.Done(client) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationFabricsReassociateGatewayFuture", "Result", future.Response(), "Polling failure") + return } - return autorest.Prepare((&http.Request{}).WithContext(ctx), - autorest.AsJSON(), - autorest.AsGet(), - autorest.WithBaseURL(to.String(rspc.NextLink))) + if !done { + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationFabricsReassociateGatewayFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if f.Response.Response, err = future.GetResult(sender); err == nil && f.Response.Response.StatusCode != http.StatusNoContent { + f, err = client.ReassociateGatewayResponder(f.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationFabricsReassociateGatewayFuture", "Result", f.Response.Response, "Failure responding to request") + } + } + return } -// RecoveryServicesProviderCollectionPage contains a page of RecoveryServicesProvider values. -type RecoveryServicesProviderCollectionPage struct { - fn func(context.Context, RecoveryServicesProviderCollection) (RecoveryServicesProviderCollection, error) - rspc RecoveryServicesProviderCollection +// ReplicationFabricsRenewCertificateFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type ReplicationFabricsRenewCertificateFuture struct { + azure.Future } -// 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 *RecoveryServicesProviderCollectionPage) NextWithContext(ctx context.Context) (err error) { - if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/RecoveryServicesProviderCollectionPage.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.rspc) +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ReplicationFabricsRenewCertificateFuture) Result(client ReplicationFabricsClient) (f Fabric, err error) { + var done bool + done, err = future.Done(client) if err != nil { - return err + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationFabricsRenewCertificateFuture", "Result", future.Response(), "Polling failure") + return } - page.rspc = next - return nil + if !done { + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationFabricsRenewCertificateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if f.Response.Response, err = future.GetResult(sender); err == nil && f.Response.Response.StatusCode != http.StatusNoContent { + f, err = client.RenewCertificateResponder(f.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationFabricsRenewCertificateFuture", "Result", f.Response.Response, "Failure responding to request") + } + } + return } -// 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 *RecoveryServicesProviderCollectionPage) Next() error { - return page.NextWithContext(context.Background()) +// ReplicationGroupDetails replication group details. This will be used in case of San and Wvr. +type ReplicationGroupDetails struct { + // InstanceType - Possible values include: 'InstanceTypeConfigurationSettings', 'InstanceTypeHyperVVirtualMachine', 'InstanceTypeReplicationGroupDetails', 'InstanceTypeVmmVirtualMachine', 'InstanceTypeVMwareVirtualMachine' + InstanceType InstanceTypeBasicConfigurationSettings `json:"instanceType,omitempty"` } -// NotDone returns true if the page enumeration should be started or is not yet complete. -func (page RecoveryServicesProviderCollectionPage) NotDone() bool { - return !page.rspc.IsEmpty() +// MarshalJSON is the custom marshaler for ReplicationGroupDetails. +func (rgd ReplicationGroupDetails) MarshalJSON() ([]byte, error) { + rgd.InstanceType = InstanceTypeReplicationGroupDetails + objectMap := make(map[string]interface{}) + if rgd.InstanceType != "" { + objectMap["instanceType"] = rgd.InstanceType + } + return json.Marshal(objectMap) } -// Response returns the raw server response from the last page request. -func (page RecoveryServicesProviderCollectionPage) Response() RecoveryServicesProviderCollection { - return page.rspc +// AsHyperVVirtualMachineDetails is the BasicConfigurationSettings implementation for ReplicationGroupDetails. +func (rgd ReplicationGroupDetails) AsHyperVVirtualMachineDetails() (*HyperVVirtualMachineDetails, bool) { + return nil, false } -// Values returns the slice of values for the current page or nil if there are no values. -func (page RecoveryServicesProviderCollectionPage) Values() []RecoveryServicesProvider { - if page.rspc.IsEmpty() { - return nil - } - return *page.rspc.Value +// AsReplicationGroupDetails is the BasicConfigurationSettings implementation for ReplicationGroupDetails. +func (rgd ReplicationGroupDetails) AsReplicationGroupDetails() (*ReplicationGroupDetails, bool) { + return &rgd, true } -// RecoveryServicesProviderProperties recovery services provider properties. -type RecoveryServicesProviderProperties struct { - // FabricType - Type of the site. - FabricType *string `json:"fabricType,omitempty"` - // FriendlyName - Friendly name of the DRA. - FriendlyName *string `json:"friendlyName,omitempty"` - // ProviderVersion - The provider version. - ProviderVersion *string `json:"providerVersion,omitempty"` - // ServerVersion - The fabric provider. - ServerVersion *string `json:"serverVersion,omitempty"` - // ProviderVersionState - DRA version status. - ProviderVersionState *string `json:"providerVersionState,omitempty"` - // ProviderVersionExpiryDate - Expiry date of the version. - ProviderVersionExpiryDate *date.Time `json:"providerVersionExpiryDate,omitempty"` - // FabricFriendlyName - The fabric friendly name. - FabricFriendlyName *string `json:"fabricFriendlyName,omitempty"` - // LastHeartBeat - Time when last heartbeat was sent by the DRA. - LastHeartBeat *date.Time `json:"lastHeartBeat,omitempty"` - // ConnectionStatus - A value indicating whether DRA is responsive. - ConnectionStatus *string `json:"connectionStatus,omitempty"` - // ProtectedItemCount - Number of protected VMs currently managed by the DRA. - ProtectedItemCount *int32 `json:"protectedItemCount,omitempty"` - // AllowedScenarios - The scenarios allowed on this provider. - AllowedScenarios *[]string `json:"allowedScenarios,omitempty"` - // HealthErrorDetails - The recovery services provider health error details. - HealthErrorDetails *[]HealthError `json:"healthErrorDetails,omitempty"` - // DraIdentifier - The DRA Id. - DraIdentifier *string `json:"draIdentifier,omitempty"` - // IdentityDetails - The identity details. - IdentityDetails *IdentityInformation `json:"identityDetails,omitempty"` - // ProviderVersionDetails - The provider version details. - ProviderVersionDetails *VersionDetails `json:"providerVersionDetails,omitempty"` +// AsVmmVirtualMachineDetails is the BasicConfigurationSettings implementation for ReplicationGroupDetails. +func (rgd ReplicationGroupDetails) AsVmmVirtualMachineDetails() (*VmmVirtualMachineDetails, bool) { + return nil, false } -// RemoveProtectionContainerMappingInput container unpairing input. -type RemoveProtectionContainerMappingInput struct { - // Properties - Configure protection input properties. - Properties *RemoveProtectionContainerMappingInputProperties `json:"properties,omitempty"` +// AsVMwareVirtualMachineDetails is the BasicConfigurationSettings implementation for ReplicationGroupDetails. +func (rgd ReplicationGroupDetails) AsVMwareVirtualMachineDetails() (*VMwareVirtualMachineDetails, bool) { + return nil, false } -// RemoveProtectionContainerMappingInputProperties unpairing input properties. -type RemoveProtectionContainerMappingInputProperties struct { - // ProviderSpecificInput - Provider specific input for unpairing. - ProviderSpecificInput *ReplicationProviderContainerUnmappingInput `json:"providerSpecificInput,omitempty"` +// AsConfigurationSettings is the BasicConfigurationSettings implementation for ReplicationGroupDetails. +func (rgd ReplicationGroupDetails) AsConfigurationSettings() (*ConfigurationSettings, bool) { + return nil, false } -// RenewCertificateInput certificate renewal input. -type RenewCertificateInput struct { - // Properties - Renew certificate input properties. - Properties *RenewCertificateInputProperties `json:"properties,omitempty"` +// AsBasicConfigurationSettings is the BasicConfigurationSettings implementation for ReplicationGroupDetails. +func (rgd ReplicationGroupDetails) AsBasicConfigurationSettings() (BasicConfigurationSettings, bool) { + return &rgd, true } -// RenewCertificateInputProperties renew Certificate input properties. -type RenewCertificateInputProperties struct { - // RenewCertificateType - Renew certificate type. - RenewCertificateType *string `json:"renewCertificateType,omitempty"` +// ReplicationJobsCancelFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type ReplicationJobsCancelFuture struct { + azure.Future } -// ReplicationFabricsCheckConsistencyFuture an abstraction for monitoring and retrieving the results of a -// long-running operation. -type ReplicationFabricsCheckConsistencyFuture struct { +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ReplicationJobsCancelFuture) Result(client ReplicationJobsClient) (j Job, err error) { + var done bool + done, err = future.Done(client) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationJobsCancelFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationJobsCancelFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if j.Response.Response, err = future.GetResult(sender); err == nil && j.Response.Response.StatusCode != http.StatusNoContent { + j, err = client.CancelResponder(j.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationJobsCancelFuture", "Result", j.Response.Response, "Failure responding to request") + } + } + return +} + +// ReplicationJobsExportFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type ReplicationJobsExportFuture struct { azure.Future } // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. -func (future *ReplicationFabricsCheckConsistencyFuture) Result(client ReplicationFabricsClient) (f Fabric, err error) { +func (future *ReplicationJobsExportFuture) Result(client ReplicationJobsClient) (j Job, err error) { var done bool done, err = future.Done(client) if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationFabricsCheckConsistencyFuture", "Result", future.Response(), "Polling failure") + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationJobsExportFuture", "Result", future.Response(), "Polling failure") return } if !done { - err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationFabricsCheckConsistencyFuture") + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationJobsExportFuture") return } sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) - if f.Response.Response, err = future.GetResult(sender); err == nil && f.Response.Response.StatusCode != http.StatusNoContent { - f, err = client.CheckConsistencyResponder(f.Response.Response) + if j.Response.Response, err = future.GetResult(sender); err == nil && j.Response.Response.StatusCode != http.StatusNoContent { + j, err = client.ExportResponder(j.Response.Response) if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationFabricsCheckConsistencyFuture", "Result", f.Response.Response, "Failure responding to request") + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationJobsExportFuture", "Result", j.Response.Response, "Failure responding to request") } } return } -// ReplicationFabricsCreateFuture an abstraction for monitoring and retrieving the results of a -// long-running operation. -type ReplicationFabricsCreateFuture struct { +// ReplicationJobsRestartFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type ReplicationJobsRestartFuture struct { azure.Future } // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. -func (future *ReplicationFabricsCreateFuture) Result(client ReplicationFabricsClient) (f Fabric, err error) { +func (future *ReplicationJobsRestartFuture) Result(client ReplicationJobsClient) (j Job, err error) { var done bool done, err = future.Done(client) if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationFabricsCreateFuture", "Result", future.Response(), "Polling failure") + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationJobsRestartFuture", "Result", future.Response(), "Polling failure") return } if !done { - err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationFabricsCreateFuture") + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationJobsRestartFuture") return } sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) - if f.Response.Response, err = future.GetResult(sender); err == nil && f.Response.Response.StatusCode != http.StatusNoContent { - f, err = client.CreateResponder(f.Response.Response) + if j.Response.Response, err = future.GetResult(sender); err == nil && j.Response.Response.StatusCode != http.StatusNoContent { + j, err = client.RestartResponder(j.Response.Response) if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationFabricsCreateFuture", "Result", f.Response.Response, "Failure responding to request") + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationJobsRestartFuture", "Result", j.Response.Response, "Failure responding to request") } } return } -// ReplicationFabricsDeleteFuture an abstraction for monitoring and retrieving the results of a -// long-running operation. -type ReplicationFabricsDeleteFuture struct { +// ReplicationJobsResumeFuture an abstraction for monitoring and retrieving the results of a long-running +// operation. +type ReplicationJobsResumeFuture struct { azure.Future } // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. -func (future *ReplicationFabricsDeleteFuture) Result(client ReplicationFabricsClient) (ar autorest.Response, err error) { +func (future *ReplicationJobsResumeFuture) Result(client ReplicationJobsClient) (j Job, err error) { var done bool done, err = future.Done(client) if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationFabricsDeleteFuture", "Result", future.Response(), "Polling failure") + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationJobsResumeFuture", "Result", future.Response(), "Polling failure") return } if !done { - err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationFabricsDeleteFuture") + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationJobsResumeFuture") return } - ar.Response = future.Response() + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if j.Response.Response, err = future.GetResult(sender); err == nil && j.Response.Response.StatusCode != http.StatusNoContent { + j, err = client.ResumeResponder(j.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationJobsResumeFuture", "Result", j.Response.Response, "Failure responding to request") + } + } return } -// ReplicationFabricsMigrateToAadFuture an abstraction for monitoring and retrieving the results of a +// ReplicationMigrationItemsCompleteFuture an abstraction for monitoring and retrieving the results of a // long-running operation. -type ReplicationFabricsMigrateToAadFuture struct { +type ReplicationMigrationItemsCompleteFuture struct { azure.Future } // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. -func (future *ReplicationFabricsMigrateToAadFuture) Result(client ReplicationFabricsClient) (ar autorest.Response, err error) { +func (future *ReplicationMigrationItemsCompleteFuture) Result(client ReplicationMigrationItemsClient) (mi MigrationItem, err error) { var done bool done, err = future.Done(client) if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationFabricsMigrateToAadFuture", "Result", future.Response(), "Polling failure") + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsCompleteFuture", "Result", future.Response(), "Polling failure") return } if !done { - err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationFabricsMigrateToAadFuture") + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationMigrationItemsCompleteFuture") return } - ar.Response = future.Response() + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if mi.Response.Response, err = future.GetResult(sender); err == nil && mi.Response.Response.StatusCode != http.StatusNoContent { + mi, err = client.CompleteResponder(mi.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsCompleteFuture", "Result", mi.Response.Response, "Failure responding to request") + } + } return } -// ReplicationFabricsPurgeFuture an abstraction for monitoring and retrieving the results of a long-running -// operation. -type ReplicationFabricsPurgeFuture struct { +// ReplicationMigrationItemsCreateFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type ReplicationMigrationItemsCreateFuture struct { azure.Future } // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. -func (future *ReplicationFabricsPurgeFuture) Result(client ReplicationFabricsClient) (ar autorest.Response, err error) { +func (future *ReplicationMigrationItemsCreateFuture) Result(client ReplicationMigrationItemsClient) (mi MigrationItem, err error) { var done bool done, err = future.Done(client) if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationFabricsPurgeFuture", "Result", future.Response(), "Polling failure") + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsCreateFuture", "Result", future.Response(), "Polling failure") return } if !done { - err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationFabricsPurgeFuture") + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationMigrationItemsCreateFuture") return } - ar.Response = future.Response() + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if mi.Response.Response, err = future.GetResult(sender); err == nil && mi.Response.Response.StatusCode != http.StatusNoContent { + mi, err = client.CreateResponder(mi.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsCreateFuture", "Result", mi.Response.Response, "Failure responding to request") + } + } return } -// ReplicationFabricsReassociateGatewayFuture an abstraction for monitoring and retrieving the results of a +// ReplicationMigrationItemsDeleteFuture an abstraction for monitoring and retrieving the results of a // long-running operation. -type ReplicationFabricsReassociateGatewayFuture struct { +type ReplicationMigrationItemsDeleteFuture struct { azure.Future } // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. -func (future *ReplicationFabricsReassociateGatewayFuture) Result(client ReplicationFabricsClient) (f Fabric, err error) { +func (future *ReplicationMigrationItemsDeleteFuture) Result(client ReplicationMigrationItemsClient) (ar autorest.Response, err error) { var done bool done, err = future.Done(client) if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationFabricsReassociateGatewayFuture", "Result", future.Response(), "Polling failure") + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsDeleteFuture", "Result", future.Response(), "Polling failure") return } if !done { - err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationFabricsReassociateGatewayFuture") + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationMigrationItemsDeleteFuture") return } - sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) - if f.Response.Response, err = future.GetResult(sender); err == nil && f.Response.Response.StatusCode != http.StatusNoContent { - f, err = client.ReassociateGatewayResponder(f.Response.Response) - if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationFabricsReassociateGatewayFuture", "Result", f.Response.Response, "Failure responding to request") - } - } + ar.Response = future.Response() return } -// ReplicationFabricsRenewCertificateFuture an abstraction for monitoring and retrieving the results of a +// ReplicationMigrationItemsMigrateFuture an abstraction for monitoring and retrieving the results of a // long-running operation. -type ReplicationFabricsRenewCertificateFuture struct { +type ReplicationMigrationItemsMigrateFuture struct { azure.Future } // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. -func (future *ReplicationFabricsRenewCertificateFuture) Result(client ReplicationFabricsClient) (f Fabric, err error) { +func (future *ReplicationMigrationItemsMigrateFuture) Result(client ReplicationMigrationItemsClient) (mi MigrationItem, err error) { var done bool done, err = future.Done(client) if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationFabricsRenewCertificateFuture", "Result", future.Response(), "Polling failure") + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsMigrateFuture", "Result", future.Response(), "Polling failure") return } if !done { - err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationFabricsRenewCertificateFuture") + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationMigrationItemsMigrateFuture") return } sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) - if f.Response.Response, err = future.GetResult(sender); err == nil && f.Response.Response.StatusCode != http.StatusNoContent { - f, err = client.RenewCertificateResponder(f.Response.Response) + if mi.Response.Response, err = future.GetResult(sender); err == nil && mi.Response.Response.StatusCode != http.StatusNoContent { + mi, err = client.MigrateResponder(mi.Response.Response) if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationFabricsRenewCertificateFuture", "Result", f.Response.Response, "Failure responding to request") + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsMigrateFuture", "Result", mi.Response.Response, "Failure responding to request") } } return } -// ReplicationGroupDetails replication group details. This will be used in case of San and Wvr. -type ReplicationGroupDetails struct { - // InstanceType - Possible values include: 'InstanceTypeConfigurationSettings', 'InstanceTypeHyperVVirtualMachine', 'InstanceTypeReplicationGroupDetails', 'InstanceTypeVmmVirtualMachine', 'InstanceTypeVMwareVirtualMachine' - InstanceType InstanceTypeBasicConfigurationSettings `json:"instanceType,omitempty"` -} - -// MarshalJSON is the custom marshaler for ReplicationGroupDetails. -func (rgd ReplicationGroupDetails) MarshalJSON() ([]byte, error) { - rgd.InstanceType = InstanceTypeReplicationGroupDetails - objectMap := make(map[string]interface{}) - if rgd.InstanceType != "" { - objectMap["instanceType"] = rgd.InstanceType - } - return json.Marshal(objectMap) -} - -// AsHyperVVirtualMachineDetails is the BasicConfigurationSettings implementation for ReplicationGroupDetails. -func (rgd ReplicationGroupDetails) AsHyperVVirtualMachineDetails() (*HyperVVirtualMachineDetails, bool) { - return nil, false -} - -// AsReplicationGroupDetails is the BasicConfigurationSettings implementation for ReplicationGroupDetails. -func (rgd ReplicationGroupDetails) AsReplicationGroupDetails() (*ReplicationGroupDetails, bool) { - return &rgd, true -} - -// AsVmmVirtualMachineDetails is the BasicConfigurationSettings implementation for ReplicationGroupDetails. -func (rgd ReplicationGroupDetails) AsVmmVirtualMachineDetails() (*VmmVirtualMachineDetails, bool) { - return nil, false -} - -// AsVMwareVirtualMachineDetails is the BasicConfigurationSettings implementation for ReplicationGroupDetails. -func (rgd ReplicationGroupDetails) AsVMwareVirtualMachineDetails() (*VMwareVirtualMachineDetails, bool) { - return nil, false -} - -// AsConfigurationSettings is the BasicConfigurationSettings implementation for ReplicationGroupDetails. -func (rgd ReplicationGroupDetails) AsConfigurationSettings() (*ConfigurationSettings, bool) { - return nil, false -} - -// AsBasicConfigurationSettings is the BasicConfigurationSettings implementation for ReplicationGroupDetails. -func (rgd ReplicationGroupDetails) AsBasicConfigurationSettings() (BasicConfigurationSettings, bool) { - return &rgd, true -} - -// ReplicationJobsCancelFuture an abstraction for monitoring and retrieving the results of a long-running -// operation. -type ReplicationJobsCancelFuture struct { +// ReplicationMigrationItemsRemoveFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type ReplicationMigrationItemsRemoveFuture struct { azure.Future } // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. -func (future *ReplicationJobsCancelFuture) Result(client ReplicationJobsClient) (j Job, err error) { +func (future *ReplicationMigrationItemsRemoveFuture) Result(client ReplicationMigrationItemsClient) (ar autorest.Response, err error) { var done bool done, err = future.Done(client) if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationJobsCancelFuture", "Result", future.Response(), "Polling failure") + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsRemoveFuture", "Result", future.Response(), "Polling failure") return } if !done { - err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationJobsCancelFuture") + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationMigrationItemsRemoveFuture") return } - sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) - if j.Response.Response, err = future.GetResult(sender); err == nil && j.Response.Response.StatusCode != http.StatusNoContent { - j, err = client.CancelResponder(j.Response.Response) - if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationJobsCancelFuture", "Result", j.Response.Response, "Failure responding to request") - } - } + ar.Response = future.Response() return } -// ReplicationJobsExportFuture an abstraction for monitoring and retrieving the results of a long-running -// operation. -type ReplicationJobsExportFuture struct { +// ReplicationMigrationItemsTestMigrateCleanupFuture an abstraction for monitoring and retrieving the +// results of a long-running operation. +type ReplicationMigrationItemsTestMigrateCleanupFuture struct { azure.Future } // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. -func (future *ReplicationJobsExportFuture) Result(client ReplicationJobsClient) (j Job, err error) { +func (future *ReplicationMigrationItemsTestMigrateCleanupFuture) Result(client ReplicationMigrationItemsClient) (mi MigrationItem, err error) { var done bool done, err = future.Done(client) if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationJobsExportFuture", "Result", future.Response(), "Polling failure") + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsTestMigrateCleanupFuture", "Result", future.Response(), "Polling failure") return } if !done { - err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationJobsExportFuture") + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationMigrationItemsTestMigrateCleanupFuture") return } sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) - if j.Response.Response, err = future.GetResult(sender); err == nil && j.Response.Response.StatusCode != http.StatusNoContent { - j, err = client.ExportResponder(j.Response.Response) + if mi.Response.Response, err = future.GetResult(sender); err == nil && mi.Response.Response.StatusCode != http.StatusNoContent { + mi, err = client.TestMigrateCleanupResponder(mi.Response.Response) if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationJobsExportFuture", "Result", j.Response.Response, "Failure responding to request") + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsTestMigrateCleanupFuture", "Result", mi.Response.Response, "Failure responding to request") } } return } -// ReplicationJobsRestartFuture an abstraction for monitoring and retrieving the results of a long-running -// operation. -type ReplicationJobsRestartFuture struct { +// ReplicationMigrationItemsTestMigrateFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type ReplicationMigrationItemsTestMigrateFuture struct { azure.Future } // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. -func (future *ReplicationJobsRestartFuture) Result(client ReplicationJobsClient) (j Job, err error) { +func (future *ReplicationMigrationItemsTestMigrateFuture) Result(client ReplicationMigrationItemsClient) (mi MigrationItem, err error) { var done bool done, err = future.Done(client) if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationJobsRestartFuture", "Result", future.Response(), "Polling failure") + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsTestMigrateFuture", "Result", future.Response(), "Polling failure") return } if !done { - err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationJobsRestartFuture") + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationMigrationItemsTestMigrateFuture") return } sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) - if j.Response.Response, err = future.GetResult(sender); err == nil && j.Response.Response.StatusCode != http.StatusNoContent { - j, err = client.RestartResponder(j.Response.Response) + if mi.Response.Response, err = future.GetResult(sender); err == nil && mi.Response.Response.StatusCode != http.StatusNoContent { + mi, err = client.TestMigrateResponder(mi.Response.Response) if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationJobsRestartFuture", "Result", j.Response.Response, "Failure responding to request") + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsTestMigrateFuture", "Result", mi.Response.Response, "Failure responding to request") } } return } -// ReplicationJobsResumeFuture an abstraction for monitoring and retrieving the results of a long-running -// operation. -type ReplicationJobsResumeFuture struct { +// ReplicationMigrationItemsUpdateFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type ReplicationMigrationItemsUpdateFuture struct { azure.Future } // Result returns the result of the asynchronous operation. // If the operation has not completed it will return an error. -func (future *ReplicationJobsResumeFuture) Result(client ReplicationJobsClient) (j Job, err error) { +func (future *ReplicationMigrationItemsUpdateFuture) Result(client ReplicationMigrationItemsClient) (mi MigrationItem, err error) { var done bool done, err = future.Done(client) if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationJobsResumeFuture", "Result", future.Response(), "Polling failure") + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsUpdateFuture", "Result", future.Response(), "Polling failure") return } if !done { - err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationJobsResumeFuture") + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationMigrationItemsUpdateFuture") return } sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) - if j.Response.Response, err = future.GetResult(sender); err == nil && j.Response.Response.StatusCode != http.StatusNoContent { - j, err = client.ResumeResponder(j.Response.Response) + if mi.Response.Response, err = future.GetResult(sender); err == nil && mi.Response.Response.StatusCode != http.StatusNoContent { + mi, err = client.UpdateResponder(mi.Response.Response) if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationJobsResumeFuture", "Result", j.Response.Response, "Failure responding to request") + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsUpdateFuture", "Result", mi.Response.Response, "Failure responding to request") } } return @@ -16393,12 +17614,13 @@ type ReplicationProviderContainerUnmappingInput struct { // BasicReplicationProviderSpecificContainerCreationInput provider specific input for container creation operation. type BasicReplicationProviderSpecificContainerCreationInput interface { AsA2AContainerCreationInput() (*A2AContainerCreationInput, bool) + AsVMwareCbtContainerCreationInput() (*VMwareCbtContainerCreationInput, bool) AsReplicationProviderSpecificContainerCreationInput() (*ReplicationProviderSpecificContainerCreationInput, bool) } // ReplicationProviderSpecificContainerCreationInput provider specific input for container creation operation. type ReplicationProviderSpecificContainerCreationInput struct { - // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput', 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A' + // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput', 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeSixcSevendaFourFiveFiveFiveZeroSixfFourThreeffAOneSixaEightebOneZeroOneaebbSevenZero' InstanceType InstanceTypeBasicReplicationProviderSpecificContainerCreationInput `json:"instanceType,omitempty"` } @@ -16414,6 +17636,10 @@ func unmarshalBasicReplicationProviderSpecificContainerCreationInput(body []byte var acci A2AContainerCreationInput err := json.Unmarshal(body, &acci) return acci, err + case string(InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeSixcSevendaFourFiveFiveFiveZeroSixfFourThreeffAOneSixaEightebOneZeroOneaebbSevenZero): + var vmccci VMwareCbtContainerCreationInput + err := json.Unmarshal(body, &vmccci) + return vmccci, err default: var rpscci ReplicationProviderSpecificContainerCreationInput err := json.Unmarshal(body, &rpscci) @@ -16454,6 +17680,11 @@ func (rpscci ReplicationProviderSpecificContainerCreationInput) AsA2AContainerCr return nil, false } +// AsVMwareCbtContainerCreationInput is the BasicReplicationProviderSpecificContainerCreationInput implementation for ReplicationProviderSpecificContainerCreationInput. +func (rpscci ReplicationProviderSpecificContainerCreationInput) AsVMwareCbtContainerCreationInput() (*VMwareCbtContainerCreationInput, bool) { + return nil, false +} + // AsReplicationProviderSpecificContainerCreationInput is the BasicReplicationProviderSpecificContainerCreationInput implementation for ReplicationProviderSpecificContainerCreationInput. func (rpscci ReplicationProviderSpecificContainerCreationInput) AsReplicationProviderSpecificContainerCreationInput() (*ReplicationProviderSpecificContainerCreationInput, bool) { return &rpscci, true @@ -16467,12 +17698,13 @@ func (rpscci ReplicationProviderSpecificContainerCreationInput) AsBasicReplicati // BasicReplicationProviderSpecificContainerMappingInput provider specific input for pairing operations. type BasicReplicationProviderSpecificContainerMappingInput interface { AsA2AContainerMappingInput() (*A2AContainerMappingInput, bool) + AsVMwareCbtContainerMappingInput() (*VMwareCbtContainerMappingInput, bool) AsReplicationProviderSpecificContainerMappingInput() (*ReplicationProviderSpecificContainerMappingInput, bool) } // ReplicationProviderSpecificContainerMappingInput provider specific input for pairing operations. type ReplicationProviderSpecificContainerMappingInput struct { - // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeReplicationProviderSpecificContainerMappingInput', 'InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeA2A' + // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeReplicationProviderSpecificContainerMappingInput', 'InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicReplicationProviderSpecificContainerMappingInput `json:"instanceType,omitempty"` } @@ -16488,6 +17720,10 @@ func unmarshalBasicReplicationProviderSpecificContainerMappingInput(body []byte) var acmi A2AContainerMappingInput err := json.Unmarshal(body, &acmi) return acmi, err + case string(InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeVMwareCbt): + var vmccmi VMwareCbtContainerMappingInput + err := json.Unmarshal(body, &vmccmi) + return vmccmi, err default: var rpscmi ReplicationProviderSpecificContainerMappingInput err := json.Unmarshal(body, &rpscmi) @@ -16528,6 +17764,11 @@ func (rpscmi ReplicationProviderSpecificContainerMappingInput) AsA2AContainerMap return nil, false } +// AsVMwareCbtContainerMappingInput is the BasicReplicationProviderSpecificContainerMappingInput implementation for ReplicationProviderSpecificContainerMappingInput. +func (rpscmi ReplicationProviderSpecificContainerMappingInput) AsVMwareCbtContainerMappingInput() (*VMwareCbtContainerMappingInput, bool) { + return nil, false +} + // AsReplicationProviderSpecificContainerMappingInput is the BasicReplicationProviderSpecificContainerMappingInput implementation for ReplicationProviderSpecificContainerMappingInput. func (rpscmi ReplicationProviderSpecificContainerMappingInput) AsReplicationProviderSpecificContainerMappingInput() (*ReplicationProviderSpecificContainerMappingInput, bool) { return &rpscmi, true @@ -17002,6 +18243,35 @@ func (future *ReplicationRecoveryPlansUpdateFuture) Result(client ReplicationRec return } +// ReplicationRecoveryServicesProvidersCreateFuture an abstraction for monitoring and retrieving the +// results of a long-running operation. +type ReplicationRecoveryServicesProvidersCreateFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ReplicationRecoveryServicesProvidersCreateFuture) Result(client ReplicationRecoveryServicesProvidersClient) (rsp RecoveryServicesProvider, err error) { + var done bool + done, err = future.Done(client) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationRecoveryServicesProvidersCreateFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationRecoveryServicesProvidersCreateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if rsp.Response.Response, err = future.GetResult(sender); err == nil && rsp.Response.Response.StatusCode != http.StatusNoContent { + rsp, err = client.CreateResponder(rsp.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationRecoveryServicesProvidersCreateFuture", "Result", rsp.Response.Response, "Failure responding to request") + } + } + return +} + // ReplicationRecoveryServicesProvidersDeleteFuture an abstraction for monitoring and retrieving the // results of a long-running operation. type ReplicationRecoveryServicesProvidersDeleteFuture struct { @@ -18615,6 +19885,127 @@ func (tfjd TestFailoverJobDetails) AsBasicJobDetails() (BasicJobDetails, bool) { return &tfjd, true } +// TestMigrateCleanupInput input for test migrate cleanup. +type TestMigrateCleanupInput struct { + // Properties - Test migrate cleanup input properties. + Properties *TestMigrateCleanupInputProperties `json:"properties,omitempty"` +} + +// TestMigrateCleanupInputProperties test migrate cleanup input properties. +type TestMigrateCleanupInputProperties struct { + // Comments - Test migrate cleanup comments. + Comments *string `json:"comments,omitempty"` +} + +// TestMigrateInput input for test migrate. +type TestMigrateInput struct { + // Properties - Test migrate input properties. + Properties *TestMigrateInputProperties `json:"properties,omitempty"` +} + +// TestMigrateInputProperties test migrate input properties. +type TestMigrateInputProperties struct { + // ProviderSpecificDetails - The provider specific details. + ProviderSpecificDetails BasicTestMigrateProviderSpecificInput `json:"providerSpecificDetails,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for TestMigrateInputProperties struct. +func (tmip *TestMigrateInputProperties) 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 "providerSpecificDetails": + if v != nil { + providerSpecificDetails, err := unmarshalBasicTestMigrateProviderSpecificInput(*v) + if err != nil { + return err + } + tmip.ProviderSpecificDetails = providerSpecificDetails + } + } + } + + return nil +} + +// BasicTestMigrateProviderSpecificInput test migrate provider specific input. +type BasicTestMigrateProviderSpecificInput interface { + AsVMwareCbtTestMigrateInput() (*VMwareCbtTestMigrateInput, bool) + AsTestMigrateProviderSpecificInput() (*TestMigrateProviderSpecificInput, bool) +} + +// TestMigrateProviderSpecificInput test migrate provider specific input. +type TestMigrateProviderSpecificInput struct { + // InstanceType - Possible values include: 'InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeTestMigrateProviderSpecificInput', 'InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeVMwareCbt' + InstanceType InstanceTypeBasicTestMigrateProviderSpecificInput `json:"instanceType,omitempty"` +} + +func unmarshalBasicTestMigrateProviderSpecificInput(body []byte) (BasicTestMigrateProviderSpecificInput, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["instanceType"] { + case string(InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeVMwareCbt): + var vmctmi VMwareCbtTestMigrateInput + err := json.Unmarshal(body, &vmctmi) + return vmctmi, err + default: + var tmpsi TestMigrateProviderSpecificInput + err := json.Unmarshal(body, &tmpsi) + return tmpsi, err + } +} +func unmarshalBasicTestMigrateProviderSpecificInputArray(body []byte) ([]BasicTestMigrateProviderSpecificInput, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + tmpsiArray := make([]BasicTestMigrateProviderSpecificInput, len(rawMessages)) + + for index, rawMessage := range rawMessages { + tmpsi, err := unmarshalBasicTestMigrateProviderSpecificInput(*rawMessage) + if err != nil { + return nil, err + } + tmpsiArray[index] = tmpsi + } + return tmpsiArray, nil +} + +// MarshalJSON is the custom marshaler for TestMigrateProviderSpecificInput. +func (tmpsi TestMigrateProviderSpecificInput) MarshalJSON() ([]byte, error) { + tmpsi.InstanceType = InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeTestMigrateProviderSpecificInput + objectMap := make(map[string]interface{}) + if tmpsi.InstanceType != "" { + objectMap["instanceType"] = tmpsi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsVMwareCbtTestMigrateInput is the BasicTestMigrateProviderSpecificInput implementation for TestMigrateProviderSpecificInput. +func (tmpsi TestMigrateProviderSpecificInput) AsVMwareCbtTestMigrateInput() (*VMwareCbtTestMigrateInput, bool) { + return nil, false +} + +// AsTestMigrateProviderSpecificInput is the BasicTestMigrateProviderSpecificInput implementation for TestMigrateProviderSpecificInput. +func (tmpsi TestMigrateProviderSpecificInput) AsTestMigrateProviderSpecificInput() (*TestMigrateProviderSpecificInput, bool) { + return &tmpsi, true +} + +// AsBasicTestMigrateProviderSpecificInput is the BasicTestMigrateProviderSpecificInput implementation for TestMigrateProviderSpecificInput. +func (tmpsi TestMigrateProviderSpecificInput) AsBasicTestMigrateProviderSpecificInput() (BasicTestMigrateProviderSpecificInput, bool) { + return &tmpsi, true +} + // UnplannedFailoverInput input definition for planned failover. type UnplannedFailoverInput struct { // Properties - Planned failover input properties @@ -18669,7 +20060,116 @@ func (ufip *UnplannedFailoverInputProperties) UnmarshalJSON(body []byte) error { } } - return nil + return nil +} + +// UpdateMigrationItemInput update migration item input. +type UpdateMigrationItemInput struct { + // Properties - Update migration item input properties. + Properties *UpdateMigrationItemInputProperties `json:"properties,omitempty"` +} + +// UpdateMigrationItemInputProperties update migration item input properties. +type UpdateMigrationItemInputProperties struct { + // ProviderSpecificDetails - The provider specific input to update migration item. + ProviderSpecificDetails BasicUpdateMigrationItemProviderSpecificInput `json:"providerSpecificDetails,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for UpdateMigrationItemInputProperties struct. +func (umiip *UpdateMigrationItemInputProperties) 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 "providerSpecificDetails": + if v != nil { + providerSpecificDetails, err := unmarshalBasicUpdateMigrationItemProviderSpecificInput(*v) + if err != nil { + return err + } + umiip.ProviderSpecificDetails = providerSpecificDetails + } + } + } + + return nil +} + +// BasicUpdateMigrationItemProviderSpecificInput update migration item provider specific input. +type BasicUpdateMigrationItemProviderSpecificInput interface { + AsVMwareCbtUpdateMigrationItemInput() (*VMwareCbtUpdateMigrationItemInput, bool) + AsUpdateMigrationItemProviderSpecificInput() (*UpdateMigrationItemProviderSpecificInput, bool) +} + +// UpdateMigrationItemProviderSpecificInput update migration item provider specific input. +type UpdateMigrationItemProviderSpecificInput struct { + // InstanceType - Possible values include: 'InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeUpdateMigrationItemProviderSpecificInput', 'InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeVMwareCbt' + InstanceType InstanceTypeBasicUpdateMigrationItemProviderSpecificInput `json:"instanceType,omitempty"` +} + +func unmarshalBasicUpdateMigrationItemProviderSpecificInput(body []byte) (BasicUpdateMigrationItemProviderSpecificInput, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["instanceType"] { + case string(InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeVMwareCbt): + var vmcumii VMwareCbtUpdateMigrationItemInput + err := json.Unmarshal(body, &vmcumii) + return vmcumii, err + default: + var umipsi UpdateMigrationItemProviderSpecificInput + err := json.Unmarshal(body, &umipsi) + return umipsi, err + } +} +func unmarshalBasicUpdateMigrationItemProviderSpecificInputArray(body []byte) ([]BasicUpdateMigrationItemProviderSpecificInput, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + umipsiArray := make([]BasicUpdateMigrationItemProviderSpecificInput, len(rawMessages)) + + for index, rawMessage := range rawMessages { + umipsi, err := unmarshalBasicUpdateMigrationItemProviderSpecificInput(*rawMessage) + if err != nil { + return nil, err + } + umipsiArray[index] = umipsi + } + return umipsiArray, nil +} + +// MarshalJSON is the custom marshaler for UpdateMigrationItemProviderSpecificInput. +func (umipsi UpdateMigrationItemProviderSpecificInput) MarshalJSON() ([]byte, error) { + umipsi.InstanceType = InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeUpdateMigrationItemProviderSpecificInput + objectMap := make(map[string]interface{}) + if umipsi.InstanceType != "" { + objectMap["instanceType"] = umipsi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsVMwareCbtUpdateMigrationItemInput is the BasicUpdateMigrationItemProviderSpecificInput implementation for UpdateMigrationItemProviderSpecificInput. +func (umipsi UpdateMigrationItemProviderSpecificInput) AsVMwareCbtUpdateMigrationItemInput() (*VMwareCbtUpdateMigrationItemInput, bool) { + return nil, false +} + +// AsUpdateMigrationItemProviderSpecificInput is the BasicUpdateMigrationItemProviderSpecificInput implementation for UpdateMigrationItemProviderSpecificInput. +func (umipsi UpdateMigrationItemProviderSpecificInput) AsUpdateMigrationItemProviderSpecificInput() (*UpdateMigrationItemProviderSpecificInput, bool) { + return &umipsi, true +} + +// AsBasicUpdateMigrationItemProviderSpecificInput is the BasicUpdateMigrationItemProviderSpecificInput implementation for UpdateMigrationItemProviderSpecificInput. +func (umipsi UpdateMigrationItemProviderSpecificInput) AsBasicUpdateMigrationItemProviderSpecificInput() (BasicUpdateMigrationItemProviderSpecificInput, bool) { + return &umipsi, true } // UpdateMobilityServiceRequest request to update the mobility service on a protected item. @@ -19862,10 +21362,400 @@ func (vnutd VMNicUpdatesTaskDetails) AsBasicTaskTypeDetails() (BasicTaskTypeDeta return &vnutd, true } -// VMwareCbtPolicyCreationInput vMware Cbt Policy creation input. +// VMwareCbtContainerCreationInput vMwareCbt container creation input. +type VMwareCbtContainerCreationInput struct { + // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput', 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeSixcSevendaFourFiveFiveFiveZeroSixfFourThreeffAOneSixaEightebOneZeroOneaebbSevenZero' + InstanceType InstanceTypeBasicReplicationProviderSpecificContainerCreationInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for VMwareCbtContainerCreationInput. +func (vmccci VMwareCbtContainerCreationInput) MarshalJSON() ([]byte, error) { + vmccci.InstanceType = InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeSixcSevendaFourFiveFiveFiveZeroSixfFourThreeffAOneSixaEightebOneZeroOneaebbSevenZero + objectMap := make(map[string]interface{}) + if vmccci.InstanceType != "" { + objectMap["instanceType"] = vmccci.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2AContainerCreationInput is the BasicReplicationProviderSpecificContainerCreationInput implementation for VMwareCbtContainerCreationInput. +func (vmccci VMwareCbtContainerCreationInput) AsA2AContainerCreationInput() (*A2AContainerCreationInput, bool) { + return nil, false +} + +// AsVMwareCbtContainerCreationInput is the BasicReplicationProviderSpecificContainerCreationInput implementation for VMwareCbtContainerCreationInput. +func (vmccci VMwareCbtContainerCreationInput) AsVMwareCbtContainerCreationInput() (*VMwareCbtContainerCreationInput, bool) { + return &vmccci, true +} + +// AsReplicationProviderSpecificContainerCreationInput is the BasicReplicationProviderSpecificContainerCreationInput implementation for VMwareCbtContainerCreationInput. +func (vmccci VMwareCbtContainerCreationInput) AsReplicationProviderSpecificContainerCreationInput() (*ReplicationProviderSpecificContainerCreationInput, bool) { + return nil, false +} + +// AsBasicReplicationProviderSpecificContainerCreationInput is the BasicReplicationProviderSpecificContainerCreationInput implementation for VMwareCbtContainerCreationInput. +func (vmccci VMwareCbtContainerCreationInput) AsBasicReplicationProviderSpecificContainerCreationInput() (BasicReplicationProviderSpecificContainerCreationInput, bool) { + return &vmccci, true +} + +// VMwareCbtContainerMappingInput vMwareCbt container mapping input. +type VMwareCbtContainerMappingInput struct { + // KeyVaultID - The target key vault ARM Id. + KeyVaultID *string `json:"keyVaultId,omitempty"` + // KeyVaultURI - The target key vault URL. + KeyVaultURI *string `json:"keyVaultUri,omitempty"` + // StorageAccountID - The storage account ARM Id. + StorageAccountID *string `json:"storageAccountId,omitempty"` + // StorageAccountSasSecretName - The secret name of the storage account. + StorageAccountSasSecretName *string `json:"storageAccountSasSecretName,omitempty"` + // ServiceBusConnectionStringSecretName - The secret name of the service bus connection string. + ServiceBusConnectionStringSecretName *string `json:"serviceBusConnectionStringSecretName,omitempty"` + // TargetLocation - The target location. + TargetLocation *string `json:"targetLocation,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeReplicationProviderSpecificContainerMappingInput', 'InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeVMwareCbt' + InstanceType InstanceTypeBasicReplicationProviderSpecificContainerMappingInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for VMwareCbtContainerMappingInput. +func (vmccmi VMwareCbtContainerMappingInput) MarshalJSON() ([]byte, error) { + vmccmi.InstanceType = InstanceTypeBasicReplicationProviderSpecificContainerMappingInputInstanceTypeVMwareCbt + objectMap := make(map[string]interface{}) + if vmccmi.KeyVaultID != nil { + objectMap["keyVaultId"] = vmccmi.KeyVaultID + } + if vmccmi.KeyVaultURI != nil { + objectMap["keyVaultUri"] = vmccmi.KeyVaultURI + } + if vmccmi.StorageAccountID != nil { + objectMap["storageAccountId"] = vmccmi.StorageAccountID + } + if vmccmi.StorageAccountSasSecretName != nil { + objectMap["storageAccountSasSecretName"] = vmccmi.StorageAccountSasSecretName + } + if vmccmi.ServiceBusConnectionStringSecretName != nil { + objectMap["serviceBusConnectionStringSecretName"] = vmccmi.ServiceBusConnectionStringSecretName + } + if vmccmi.TargetLocation != nil { + objectMap["targetLocation"] = vmccmi.TargetLocation + } + if vmccmi.InstanceType != "" { + objectMap["instanceType"] = vmccmi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2AContainerMappingInput is the BasicReplicationProviderSpecificContainerMappingInput implementation for VMwareCbtContainerMappingInput. +func (vmccmi VMwareCbtContainerMappingInput) AsA2AContainerMappingInput() (*A2AContainerMappingInput, bool) { + return nil, false +} + +// AsVMwareCbtContainerMappingInput is the BasicReplicationProviderSpecificContainerMappingInput implementation for VMwareCbtContainerMappingInput. +func (vmccmi VMwareCbtContainerMappingInput) AsVMwareCbtContainerMappingInput() (*VMwareCbtContainerMappingInput, bool) { + return &vmccmi, true +} + +// AsReplicationProviderSpecificContainerMappingInput is the BasicReplicationProviderSpecificContainerMappingInput implementation for VMwareCbtContainerMappingInput. +func (vmccmi VMwareCbtContainerMappingInput) AsReplicationProviderSpecificContainerMappingInput() (*ReplicationProviderSpecificContainerMappingInput, bool) { + return nil, false +} + +// AsBasicReplicationProviderSpecificContainerMappingInput is the BasicReplicationProviderSpecificContainerMappingInput implementation for VMwareCbtContainerMappingInput. +func (vmccmi VMwareCbtContainerMappingInput) AsBasicReplicationProviderSpecificContainerMappingInput() (BasicReplicationProviderSpecificContainerMappingInput, bool) { + return &vmccmi, true +} + +// VMwareCbtDiskInput vMwareCbt disk input. +type VMwareCbtDiskInput struct { + // DiskID - The disk Id. + DiskID *string `json:"diskId,omitempty"` + // IsOSDisk - A value indicating whether the disk is the OS disk. + IsOSDisk *string `json:"isOSDisk,omitempty"` + // LogStorageAccountID - The log storage account ARM Id. + LogStorageAccountID *string `json:"logStorageAccountId,omitempty"` + // LogStorageAccountSasSecretName - The key vault secret name of the log storage account. + LogStorageAccountSasSecretName *string `json:"logStorageAccountSasSecretName,omitempty"` + // DiskType - The disk type. Possible values include: 'StandardLRS', 'PremiumLRS', 'StandardSSDLRS' + DiskType DiskAccountType `json:"diskType,omitempty"` +} + +// VMwareCbtEnableMigrationInput vMwareCbt specific enable migration input. +type VMwareCbtEnableMigrationInput struct { + // VmwareMachineID - The ARM Id of the VM discovered in VMware. + VmwareMachineID *string `json:"vmwareMachineId,omitempty"` + // DisksToInclude - The disks to include list. + DisksToInclude *[]VMwareCbtDiskInput `json:"disksToInclude,omitempty"` + // LicenseType - License type. Possible values include: 'LicenseTypeNotSpecified', 'LicenseTypeNoLicenseType', 'LicenseTypeWindowsServer' + LicenseType LicenseType `json:"licenseType,omitempty"` + // DataMoverRunAsAccountID - The data mover runas account Id. + DataMoverRunAsAccountID *string `json:"dataMoverRunAsAccountId,omitempty"` + // SnapshotRunAsAccountID - The snapshot runas account Id. + SnapshotRunAsAccountID *string `json:"snapshotRunAsAccountId,omitempty"` + // TargetVMName - The target VM name. + TargetVMName *string `json:"targetVmName,omitempty"` + // TargetVMSize - The target VM size. + TargetVMSize *string `json:"targetVmSize,omitempty"` + // TargetResourceGroupID - The target resource group ARM Id. + TargetResourceGroupID *string `json:"targetResourceGroupId,omitempty"` + // TargetNetworkID - The target network ARM Id. + TargetNetworkID *string `json:"targetNetworkId,omitempty"` + // TargetSubnetName - The target subnet name. + TargetSubnetName *string `json:"targetSubnetName,omitempty"` + // TargetAvailabilitySetID - The target availability set ARM Id. + TargetAvailabilitySetID *string `json:"targetAvailabilitySetId,omitempty"` + // TargetBootDiagnosticsStorageAccountID - The target boot diagnostics storage account ARM Id. + TargetBootDiagnosticsStorageAccountID *string `json:"targetBootDiagnosticsStorageAccountId,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeEnableMigrationProviderSpecificInput', 'InstanceTypeVMwareCbt' + InstanceType InstanceTypeBasicEnableMigrationProviderSpecificInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for VMwareCbtEnableMigrationInput. +func (vmcemi VMwareCbtEnableMigrationInput) MarshalJSON() ([]byte, error) { + vmcemi.InstanceType = InstanceTypeVMwareCbt + objectMap := make(map[string]interface{}) + if vmcemi.VmwareMachineID != nil { + objectMap["vmwareMachineId"] = vmcemi.VmwareMachineID + } + if vmcemi.DisksToInclude != nil { + objectMap["disksToInclude"] = vmcemi.DisksToInclude + } + if vmcemi.LicenseType != "" { + objectMap["licenseType"] = vmcemi.LicenseType + } + if vmcemi.DataMoverRunAsAccountID != nil { + objectMap["dataMoverRunAsAccountId"] = vmcemi.DataMoverRunAsAccountID + } + if vmcemi.SnapshotRunAsAccountID != nil { + objectMap["snapshotRunAsAccountId"] = vmcemi.SnapshotRunAsAccountID + } + if vmcemi.TargetVMName != nil { + objectMap["targetVmName"] = vmcemi.TargetVMName + } + if vmcemi.TargetVMSize != nil { + objectMap["targetVmSize"] = vmcemi.TargetVMSize + } + if vmcemi.TargetResourceGroupID != nil { + objectMap["targetResourceGroupId"] = vmcemi.TargetResourceGroupID + } + if vmcemi.TargetNetworkID != nil { + objectMap["targetNetworkId"] = vmcemi.TargetNetworkID + } + if vmcemi.TargetSubnetName != nil { + objectMap["targetSubnetName"] = vmcemi.TargetSubnetName + } + if vmcemi.TargetAvailabilitySetID != nil { + objectMap["targetAvailabilitySetId"] = vmcemi.TargetAvailabilitySetID + } + if vmcemi.TargetBootDiagnosticsStorageAccountID != nil { + objectMap["targetBootDiagnosticsStorageAccountId"] = vmcemi.TargetBootDiagnosticsStorageAccountID + } + if vmcemi.InstanceType != "" { + objectMap["instanceType"] = vmcemi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsVMwareCbtEnableMigrationInput is the BasicEnableMigrationProviderSpecificInput implementation for VMwareCbtEnableMigrationInput. +func (vmcemi VMwareCbtEnableMigrationInput) AsVMwareCbtEnableMigrationInput() (*VMwareCbtEnableMigrationInput, bool) { + return &vmcemi, true +} + +// AsEnableMigrationProviderSpecificInput is the BasicEnableMigrationProviderSpecificInput implementation for VMwareCbtEnableMigrationInput. +func (vmcemi VMwareCbtEnableMigrationInput) AsEnableMigrationProviderSpecificInput() (*EnableMigrationProviderSpecificInput, bool) { + return nil, false +} + +// AsBasicEnableMigrationProviderSpecificInput is the BasicEnableMigrationProviderSpecificInput implementation for VMwareCbtEnableMigrationInput. +func (vmcemi VMwareCbtEnableMigrationInput) AsBasicEnableMigrationProviderSpecificInput() (BasicEnableMigrationProviderSpecificInput, bool) { + return &vmcemi, true +} + +// VMwareCbtMigrateInput vMwareCbt specific migrate input. +type VMwareCbtMigrateInput struct { + // PerformShutdown - A value indicating whether VM is to be shutdown. + PerformShutdown *string `json:"performShutdown,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicMigrateProviderSpecificInputInstanceTypeMigrateProviderSpecificInput', 'InstanceTypeBasicMigrateProviderSpecificInputInstanceTypeVMwareCbt' + InstanceType InstanceTypeBasicMigrateProviderSpecificInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for VMwareCbtMigrateInput. +func (vmcmi VMwareCbtMigrateInput) MarshalJSON() ([]byte, error) { + vmcmi.InstanceType = InstanceTypeBasicMigrateProviderSpecificInputInstanceTypeVMwareCbt + objectMap := make(map[string]interface{}) + if vmcmi.PerformShutdown != nil { + objectMap["performShutdown"] = vmcmi.PerformShutdown + } + if vmcmi.InstanceType != "" { + objectMap["instanceType"] = vmcmi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsVMwareCbtMigrateInput is the BasicMigrateProviderSpecificInput implementation for VMwareCbtMigrateInput. +func (vmcmi VMwareCbtMigrateInput) AsVMwareCbtMigrateInput() (*VMwareCbtMigrateInput, bool) { + return &vmcmi, true +} + +// AsMigrateProviderSpecificInput is the BasicMigrateProviderSpecificInput implementation for VMwareCbtMigrateInput. +func (vmcmi VMwareCbtMigrateInput) AsMigrateProviderSpecificInput() (*MigrateProviderSpecificInput, bool) { + return nil, false +} + +// AsBasicMigrateProviderSpecificInput is the BasicMigrateProviderSpecificInput implementation for VMwareCbtMigrateInput. +func (vmcmi VMwareCbtMigrateInput) AsBasicMigrateProviderSpecificInput() (BasicMigrateProviderSpecificInput, bool) { + return &vmcmi, true +} + +// VMwareCbtMigrationDetails vMwareCbt provider specific settings +type VMwareCbtMigrationDetails struct { + // VmwareMachineID - The ARM Id of the VM discovered in VMware. + VmwareMachineID *string `json:"vmwareMachineId,omitempty"` + // OsType - The type of the OS on the VM. + OsType *string `json:"osType,omitempty"` + // LicenseType - License Type of the VM to be used. + LicenseType *string `json:"licenseType,omitempty"` + // DataMoverRunAsAccountID - The data mover runas account Id. + DataMoverRunAsAccountID *string `json:"dataMoverRunAsAccountId,omitempty"` + // SnapshotRunAsAccountID - The snapshot runas account Id. + SnapshotRunAsAccountID *string `json:"snapshotRunAsAccountId,omitempty"` + // TargetVMName - Target VM name. + TargetVMName *string `json:"targetVmName,omitempty"` + // TargetVMSize - The target VM size. + TargetVMSize *string `json:"targetVmSize,omitempty"` + // TargetLocation - The target location. + TargetLocation *string `json:"targetLocation,omitempty"` + // TargetResourceGroupID - The target resource group Id. + TargetResourceGroupID *string `json:"targetResourceGroupId,omitempty"` + // TargetAvailabilitySetID - The target availability set Id. + TargetAvailabilitySetID *string `json:"targetAvailabilitySetId,omitempty"` + // TargetBootDiagnosticsStorageAccountID - The target boot diagnostics storage account ARM Id. + TargetBootDiagnosticsStorageAccountID *string `json:"targetBootDiagnosticsStorageAccountId,omitempty"` + // ProtectedDisks - The list of protected disks. + ProtectedDisks *[]VMwareCbtProtectedDiskDetails `json:"protectedDisks,omitempty"` + // TargetNetworkID - The target network Id. + TargetNetworkID *string `json:"targetNetworkId,omitempty"` + // VMNics - The network details. + VMNics *[]VMwareCbtNicDetails `json:"vmNics,omitempty"` + // MigrationRecoveryPointID - The recovery point Id to which the VM was migrated. + MigrationRecoveryPointID *string `json:"migrationRecoveryPointId,omitempty"` + // LastRecoveryPointReceived - The last recovery point received time. + LastRecoveryPointReceived *date.Time `json:"lastRecoveryPointReceived,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeMigrationProviderSpecificSettings', 'InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeVMwareCbt' + InstanceType InstanceTypeBasicMigrationProviderSpecificSettings `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for VMwareCbtMigrationDetails. +func (vmcmd VMwareCbtMigrationDetails) MarshalJSON() ([]byte, error) { + vmcmd.InstanceType = InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeVMwareCbt + objectMap := make(map[string]interface{}) + if vmcmd.VmwareMachineID != nil { + objectMap["vmwareMachineId"] = vmcmd.VmwareMachineID + } + if vmcmd.OsType != nil { + objectMap["osType"] = vmcmd.OsType + } + if vmcmd.LicenseType != nil { + objectMap["licenseType"] = vmcmd.LicenseType + } + if vmcmd.DataMoverRunAsAccountID != nil { + objectMap["dataMoverRunAsAccountId"] = vmcmd.DataMoverRunAsAccountID + } + if vmcmd.SnapshotRunAsAccountID != nil { + objectMap["snapshotRunAsAccountId"] = vmcmd.SnapshotRunAsAccountID + } + if vmcmd.TargetVMName != nil { + objectMap["targetVmName"] = vmcmd.TargetVMName + } + if vmcmd.TargetVMSize != nil { + objectMap["targetVmSize"] = vmcmd.TargetVMSize + } + if vmcmd.TargetLocation != nil { + objectMap["targetLocation"] = vmcmd.TargetLocation + } + if vmcmd.TargetResourceGroupID != nil { + objectMap["targetResourceGroupId"] = vmcmd.TargetResourceGroupID + } + if vmcmd.TargetAvailabilitySetID != nil { + objectMap["targetAvailabilitySetId"] = vmcmd.TargetAvailabilitySetID + } + if vmcmd.TargetBootDiagnosticsStorageAccountID != nil { + objectMap["targetBootDiagnosticsStorageAccountId"] = vmcmd.TargetBootDiagnosticsStorageAccountID + } + if vmcmd.ProtectedDisks != nil { + objectMap["protectedDisks"] = vmcmd.ProtectedDisks + } + if vmcmd.TargetNetworkID != nil { + objectMap["targetNetworkId"] = vmcmd.TargetNetworkID + } + if vmcmd.VMNics != nil { + objectMap["vmNics"] = vmcmd.VMNics + } + if vmcmd.MigrationRecoveryPointID != nil { + objectMap["migrationRecoveryPointId"] = vmcmd.MigrationRecoveryPointID + } + if vmcmd.LastRecoveryPointReceived != nil { + objectMap["lastRecoveryPointReceived"] = vmcmd.LastRecoveryPointReceived + } + if vmcmd.InstanceType != "" { + objectMap["instanceType"] = vmcmd.InstanceType + } + return json.Marshal(objectMap) +} + +// AsVMwareCbtMigrationDetails is the BasicMigrationProviderSpecificSettings implementation for VMwareCbtMigrationDetails. +func (vmcmd VMwareCbtMigrationDetails) AsVMwareCbtMigrationDetails() (*VMwareCbtMigrationDetails, bool) { + return &vmcmd, true +} + +// AsMigrationProviderSpecificSettings is the BasicMigrationProviderSpecificSettings implementation for VMwareCbtMigrationDetails. +func (vmcmd VMwareCbtMigrationDetails) AsMigrationProviderSpecificSettings() (*MigrationProviderSpecificSettings, bool) { + return nil, false +} + +// AsBasicMigrationProviderSpecificSettings is the BasicMigrationProviderSpecificSettings implementation for VMwareCbtMigrationDetails. +func (vmcmd VMwareCbtMigrationDetails) AsBasicMigrationProviderSpecificSettings() (BasicMigrationProviderSpecificSettings, bool) { + return &vmcmd, true +} + +// VMwareCbtNicDetails vMwareCbt NIC details. +type VMwareCbtNicDetails struct { + // NicID - The NIC Id. + NicID *string `json:"nicId,omitempty"` + // IsPrimaryNic - A value indicating whether this is the primary NIC. + IsPrimaryNic *string `json:"isPrimaryNic,omitempty"` + // SourceIPAddress - The source IP address. + SourceIPAddress *string `json:"sourceIPAddress,omitempty"` + // SourceIPAddressType - The source IP address type. Possible values include: 'Dynamic', 'Static' + SourceIPAddressType EthernetAddressType `json:"sourceIPAddressType,omitempty"` + // SourceNetworkID - Source network Id. + SourceNetworkID *string `json:"sourceNetworkId,omitempty"` + // TargetIPAddress - The target IP address. + TargetIPAddress *string `json:"targetIPAddress,omitempty"` + // TargetIPAddressType - The target IP address type. Possible values include: 'Dynamic', 'Static' + TargetIPAddressType EthernetAddressType `json:"targetIPAddressType,omitempty"` + // TargetSubnetName - Target subnet name. + TargetSubnetName *string `json:"targetSubnetName,omitempty"` + // IsSelectedForMigration - A value indicating whether this NIC is selected for migration. + IsSelectedForMigration *string `json:"isSelectedForMigration,omitempty"` +} + +// VMwareCbtNicInput vMwareCbt NIC input. +type VMwareCbtNicInput struct { + // NicID - The NIC Id. + NicID *string `json:"nicId,omitempty"` + // IsPrimaryNic - A value indicating whether this is the primary NIC. + IsPrimaryNic *string `json:"isPrimaryNic,omitempty"` + // TargetSubnetName - Target subnet name. + TargetSubnetName *string `json:"targetSubnetName,omitempty"` + // TargetStaticIPAddress - The static IP address. + TargetStaticIPAddress *string `json:"targetStaticIPAddress,omitempty"` + // IsSelectedForMigration - A value indicating whether this NIC is selected for migration. + IsSelectedForMigration *string `json:"isSelectedForMigration,omitempty"` +} + +// VMwareCbtPolicyCreationInput vMware Cbt policy creation input. type VMwareCbtPolicyCreationInput struct { - // RecoveryPointHistory - The duration in minutes until which the recovery points need to be stored. - RecoveryPointHistory *int32 `json:"recoveryPointHistory,omitempty"` + // RecoveryPointHistoryInMinutes - The duration in minutes until which the recovery points need to be stored. + RecoveryPointHistoryInMinutes *int32 `json:"recoveryPointHistoryInMinutes,omitempty"` // CrashConsistentFrequencyInMinutes - The crash consistent snapshot frequency (in minutes). CrashConsistentFrequencyInMinutes *int32 `json:"crashConsistentFrequencyInMinutes,omitempty"` // AppConsistentFrequencyInMinutes - The app consistent snapshot frequency (in minutes). @@ -19878,8 +21768,8 @@ type VMwareCbtPolicyCreationInput struct { func (vmcpci VMwareCbtPolicyCreationInput) MarshalJSON() ([]byte, error) { vmcpci.InstanceType = InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeVMwareCbt objectMap := make(map[string]interface{}) - if vmcpci.RecoveryPointHistory != nil { - objectMap["recoveryPointHistory"] = vmcpci.RecoveryPointHistory + if vmcpci.RecoveryPointHistoryInMinutes != nil { + objectMap["recoveryPointHistoryInMinutes"] = vmcpci.RecoveryPointHistoryInMinutes } if vmcpci.CrashConsistentFrequencyInMinutes != nil { objectMap["crashConsistentFrequencyInMinutes"] = vmcpci.CrashConsistentFrequencyInMinutes @@ -19940,10 +21830,8 @@ func (vmcpci VMwareCbtPolicyCreationInput) AsBasicPolicyProviderSpecificInput() // VmwareCbtPolicyDetails vMware Cbt specific policy details. type VmwareCbtPolicyDetails struct { - // RecoveryPointThresholdInMinutes - The recovery point threshold in minutes. - RecoveryPointThresholdInMinutes *int32 `json:"recoveryPointThresholdInMinutes,omitempty"` - // RecoveryPointHistory - The duration in minutes until which the recovery points need to be stored. - RecoveryPointHistory *int32 `json:"recoveryPointHistory,omitempty"` + // RecoveryPointHistoryInMinutes - The duration in minutes until which the recovery points need to be stored. + RecoveryPointHistoryInMinutes *int32 `json:"recoveryPointHistoryInMinutes,omitempty"` // AppConsistentFrequencyInMinutes - The app consistent snapshot frequency in minutes. AppConsistentFrequencyInMinutes *int32 `json:"appConsistentFrequencyInMinutes,omitempty"` // CrashConsistentFrequencyInMinutes - The crash consistent snapshot frequency in minutes. @@ -19956,11 +21844,8 @@ type VmwareCbtPolicyDetails struct { func (vcpd VmwareCbtPolicyDetails) MarshalJSON() ([]byte, error) { vcpd.InstanceType = InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt objectMap := make(map[string]interface{}) - if vcpd.RecoveryPointThresholdInMinutes != nil { - objectMap["recoveryPointThresholdInMinutes"] = vcpd.RecoveryPointThresholdInMinutes - } - if vcpd.RecoveryPointHistory != nil { - objectMap["recoveryPointHistory"] = vcpd.RecoveryPointHistory + if vcpd.RecoveryPointHistoryInMinutes != nil { + objectMap["recoveryPointHistoryInMinutes"] = vcpd.RecoveryPointHistoryInMinutes } if vcpd.AppConsistentFrequencyInMinutes != nil { objectMap["appConsistentFrequencyInMinutes"] = vcpd.AppConsistentFrequencyInMinutes @@ -20034,6 +21919,208 @@ func (vcpd VmwareCbtPolicyDetails) AsBasicPolicyProviderSpecificDetails() (Basic return &vcpd, true } +// VMwareCbtProtectedDiskDetails vMwareCbt protected disk details. +type VMwareCbtProtectedDiskDetails struct { + // DiskID - The disk id. + DiskID *string `json:"diskId,omitempty"` + // DiskName - The disk name. + DiskName *string `json:"diskName,omitempty"` + // DiskPath - The disk path. + DiskPath *string `json:"diskPath,omitempty"` + // IsOSDisk - A value indicating whether the disk is the OS disk. + IsOSDisk *string `json:"isOSDisk,omitempty"` + // CapacityInBytes - The disk capacity in bytes. + CapacityInBytes *int64 `json:"capacityInBytes,omitempty"` + // LogStorageAccountID - The log storage account ARM Id. + LogStorageAccountID *string `json:"logStorageAccountId,omitempty"` + // LogStorageAccountSasSecretName - The key vault secret name of the log storage account. + LogStorageAccountSasSecretName *string `json:"logStorageAccountSasSecretName,omitempty"` + // SeedManagedDiskID - The ARM Id of the seed managed disk. + SeedManagedDiskID *string `json:"seedManagedDiskId,omitempty"` + // TargetManagedDiskID - The ARM Id of the target managed disk. + TargetManagedDiskID *string `json:"targetManagedDiskId,omitempty"` + // DiskType - The disk type. + DiskType *string `json:"diskType,omitempty"` +} + +// VMwareCbtProtectionContainerMappingDetails vMwareCbt provider specific container mapping details. +type VMwareCbtProtectionContainerMappingDetails struct { + // KeyVaultID - The target key vault ARM Id. + KeyVaultID *string `json:"keyVaultId,omitempty"` + // KeyVaultURI - The target key vault URI. + KeyVaultURI *string `json:"keyVaultUri,omitempty"` + // StorageAccountID - The storage account ARM Id. + StorageAccountID *string `json:"storageAccountId,omitempty"` + // StorageAccountSasSecretName - The secret name of the storage account. + StorageAccountSasSecretName *string `json:"storageAccountSasSecretName,omitempty"` + // ServiceBusConnectionStringSecretName - The secret name of the service bus connection string. + ServiceBusConnectionStringSecretName *string `json:"serviceBusConnectionStringSecretName,omitempty"` + // TargetLocation - The target location. + TargetLocation *string `json:"targetLocation,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeProtectionContainerMappingProviderSpecificDetails', 'InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeVMwareCbt' + InstanceType InstanceTypeBasicProtectionContainerMappingProviderSpecificDetails `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for VMwareCbtProtectionContainerMappingDetails. +func (vmcpcmd VMwareCbtProtectionContainerMappingDetails) MarshalJSON() ([]byte, error) { + vmcpcmd.InstanceType = InstanceTypeBasicProtectionContainerMappingProviderSpecificDetailsInstanceTypeVMwareCbt + objectMap := make(map[string]interface{}) + if vmcpcmd.KeyVaultID != nil { + objectMap["keyVaultId"] = vmcpcmd.KeyVaultID + } + if vmcpcmd.KeyVaultURI != nil { + objectMap["keyVaultUri"] = vmcpcmd.KeyVaultURI + } + if vmcpcmd.StorageAccountID != nil { + objectMap["storageAccountId"] = vmcpcmd.StorageAccountID + } + if vmcpcmd.StorageAccountSasSecretName != nil { + objectMap["storageAccountSasSecretName"] = vmcpcmd.StorageAccountSasSecretName + } + if vmcpcmd.ServiceBusConnectionStringSecretName != nil { + objectMap["serviceBusConnectionStringSecretName"] = vmcpcmd.ServiceBusConnectionStringSecretName + } + if vmcpcmd.TargetLocation != nil { + objectMap["targetLocation"] = vmcpcmd.TargetLocation + } + if vmcpcmd.InstanceType != "" { + objectMap["instanceType"] = vmcpcmd.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2AProtectionContainerMappingDetails is the BasicProtectionContainerMappingProviderSpecificDetails implementation for VMwareCbtProtectionContainerMappingDetails. +func (vmcpcmd VMwareCbtProtectionContainerMappingDetails) AsA2AProtectionContainerMappingDetails() (*A2AProtectionContainerMappingDetails, bool) { + return nil, false +} + +// AsVMwareCbtProtectionContainerMappingDetails is the BasicProtectionContainerMappingProviderSpecificDetails implementation for VMwareCbtProtectionContainerMappingDetails. +func (vmcpcmd VMwareCbtProtectionContainerMappingDetails) AsVMwareCbtProtectionContainerMappingDetails() (*VMwareCbtProtectionContainerMappingDetails, bool) { + return &vmcpcmd, true +} + +// AsProtectionContainerMappingProviderSpecificDetails is the BasicProtectionContainerMappingProviderSpecificDetails implementation for VMwareCbtProtectionContainerMappingDetails. +func (vmcpcmd VMwareCbtProtectionContainerMappingDetails) AsProtectionContainerMappingProviderSpecificDetails() (*ProtectionContainerMappingProviderSpecificDetails, bool) { + return nil, false +} + +// AsBasicProtectionContainerMappingProviderSpecificDetails is the BasicProtectionContainerMappingProviderSpecificDetails implementation for VMwareCbtProtectionContainerMappingDetails. +func (vmcpcmd VMwareCbtProtectionContainerMappingDetails) AsBasicProtectionContainerMappingProviderSpecificDetails() (BasicProtectionContainerMappingProviderSpecificDetails, bool) { + return &vmcpcmd, true +} + +// VMwareCbtTestMigrateInput vMwareCbt specific test migrate input. +type VMwareCbtTestMigrateInput struct { + // RecoveryPointID - The recovery point Id. + RecoveryPointID *string `json:"recoveryPointId,omitempty"` + // NetworkID - The test network Id. + NetworkID *string `json:"networkId,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeTestMigrateProviderSpecificInput', 'InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeVMwareCbt' + InstanceType InstanceTypeBasicTestMigrateProviderSpecificInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for VMwareCbtTestMigrateInput. +func (vmctmi VMwareCbtTestMigrateInput) MarshalJSON() ([]byte, error) { + vmctmi.InstanceType = InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeVMwareCbt + objectMap := make(map[string]interface{}) + if vmctmi.RecoveryPointID != nil { + objectMap["recoveryPointId"] = vmctmi.RecoveryPointID + } + if vmctmi.NetworkID != nil { + objectMap["networkId"] = vmctmi.NetworkID + } + if vmctmi.InstanceType != "" { + objectMap["instanceType"] = vmctmi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsVMwareCbtTestMigrateInput is the BasicTestMigrateProviderSpecificInput implementation for VMwareCbtTestMigrateInput. +func (vmctmi VMwareCbtTestMigrateInput) AsVMwareCbtTestMigrateInput() (*VMwareCbtTestMigrateInput, bool) { + return &vmctmi, true +} + +// AsTestMigrateProviderSpecificInput is the BasicTestMigrateProviderSpecificInput implementation for VMwareCbtTestMigrateInput. +func (vmctmi VMwareCbtTestMigrateInput) AsTestMigrateProviderSpecificInput() (*TestMigrateProviderSpecificInput, bool) { + return nil, false +} + +// AsBasicTestMigrateProviderSpecificInput is the BasicTestMigrateProviderSpecificInput implementation for VMwareCbtTestMigrateInput. +func (vmctmi VMwareCbtTestMigrateInput) AsBasicTestMigrateProviderSpecificInput() (BasicTestMigrateProviderSpecificInput, bool) { + return &vmctmi, true +} + +// VMwareCbtUpdateMigrationItemInput vMwareCbt specific update migration item input. +type VMwareCbtUpdateMigrationItemInput struct { + // TargetVMName - The target VM name. + TargetVMName *string `json:"targetVmName,omitempty"` + // TargetVMSize - The target VM size. + TargetVMSize *string `json:"targetVmSize,omitempty"` + // TargetResourceGroupID - The target resource group ARM Id. + TargetResourceGroupID *string `json:"targetResourceGroupId,omitempty"` + // TargetAvailabilitySetID - The target availability set ARM Id. + TargetAvailabilitySetID *string `json:"targetAvailabilitySetId,omitempty"` + // TargetBootDiagnosticsStorageAccountID - The target boot diagnostics storage account ARM Id. + TargetBootDiagnosticsStorageAccountID *string `json:"targetBootDiagnosticsStorageAccountId,omitempty"` + // TargetNetworkID - The target network ARM Id. + TargetNetworkID *string `json:"targetNetworkId,omitempty"` + // VMNics - The list of NIC details. + VMNics *[]VMwareCbtNicInput `json:"vmNics,omitempty"` + // LicenseType - The license type. Possible values include: 'LicenseTypeNotSpecified', 'LicenseTypeNoLicenseType', 'LicenseTypeWindowsServer' + LicenseType LicenseType `json:"licenseType,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeUpdateMigrationItemProviderSpecificInput', 'InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeVMwareCbt' + InstanceType InstanceTypeBasicUpdateMigrationItemProviderSpecificInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for VMwareCbtUpdateMigrationItemInput. +func (vmcumii VMwareCbtUpdateMigrationItemInput) MarshalJSON() ([]byte, error) { + vmcumii.InstanceType = InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeVMwareCbt + objectMap := make(map[string]interface{}) + if vmcumii.TargetVMName != nil { + objectMap["targetVmName"] = vmcumii.TargetVMName + } + if vmcumii.TargetVMSize != nil { + objectMap["targetVmSize"] = vmcumii.TargetVMSize + } + if vmcumii.TargetResourceGroupID != nil { + objectMap["targetResourceGroupId"] = vmcumii.TargetResourceGroupID + } + if vmcumii.TargetAvailabilitySetID != nil { + objectMap["targetAvailabilitySetId"] = vmcumii.TargetAvailabilitySetID + } + if vmcumii.TargetBootDiagnosticsStorageAccountID != nil { + objectMap["targetBootDiagnosticsStorageAccountId"] = vmcumii.TargetBootDiagnosticsStorageAccountID + } + if vmcumii.TargetNetworkID != nil { + objectMap["targetNetworkId"] = vmcumii.TargetNetworkID + } + if vmcumii.VMNics != nil { + objectMap["vmNics"] = vmcumii.VMNics + } + if vmcumii.LicenseType != "" { + objectMap["licenseType"] = vmcumii.LicenseType + } + if vmcumii.InstanceType != "" { + objectMap["instanceType"] = vmcumii.InstanceType + } + return json.Marshal(objectMap) +} + +// AsVMwareCbtUpdateMigrationItemInput is the BasicUpdateMigrationItemProviderSpecificInput implementation for VMwareCbtUpdateMigrationItemInput. +func (vmcumii VMwareCbtUpdateMigrationItemInput) AsVMwareCbtUpdateMigrationItemInput() (*VMwareCbtUpdateMigrationItemInput, bool) { + return &vmcumii, true +} + +// AsUpdateMigrationItemProviderSpecificInput is the BasicUpdateMigrationItemProviderSpecificInput implementation for VMwareCbtUpdateMigrationItemInput. +func (vmcumii VMwareCbtUpdateMigrationItemInput) AsUpdateMigrationItemProviderSpecificInput() (*UpdateMigrationItemProviderSpecificInput, bool) { + return nil, false +} + +// AsBasicUpdateMigrationItemProviderSpecificInput is the BasicUpdateMigrationItemProviderSpecificInput implementation for VMwareCbtUpdateMigrationItemInput. +func (vmcumii VMwareCbtUpdateMigrationItemInput) AsBasicUpdateMigrationItemProviderSpecificInput() (BasicUpdateMigrationItemProviderSpecificInput, bool) { + return &vmcumii, true +} + // VMwareDetails store the fabric details specific to the VMware fabric. type VMwareDetails struct { // ProcessServers - The list of Process Servers associated with the fabric. @@ -20245,12 +22332,12 @@ func (vmd VMwareDetails) AsBasicFabricSpecificDetails() (BasicFabricSpecificDeta return &vmd, true } -// VMwareV2FabricCreationInput fabric provider specific settings. +// VMwareV2FabricCreationInput vMwareV2 fabric provider specific settings. type VMwareV2FabricCreationInput struct { - // KeyVaultURL - The Key Vault URL. - KeyVaultURL *string `json:"keyVaultUrl,omitempty"` - // KeyVaultResourceArmID - The Key Vault ARM Id. - KeyVaultResourceArmID *string `json:"keyVaultResourceArmId,omitempty"` + // VmwareSiteID - The ARM Id of the VMware site. + VmwareSiteID *string `json:"vmwareSiteId,omitempty"` + // MigrationSolutionID - The ARM Id of the migration solution. + MigrationSolutionID *string `json:"migrationSolutionId,omitempty"` // InstanceType - Possible values include: 'InstanceTypeFabricSpecificCreationInput', 'InstanceTypeAzure', 'InstanceTypeVMwareV2' InstanceType InstanceTypeBasicFabricSpecificCreationInput `json:"instanceType,omitempty"` } @@ -20259,11 +22346,11 @@ type VMwareV2FabricCreationInput struct { func (vmvfci VMwareV2FabricCreationInput) MarshalJSON() ([]byte, error) { vmvfci.InstanceType = InstanceTypeVMwareV2 objectMap := make(map[string]interface{}) - if vmvfci.KeyVaultURL != nil { - objectMap["keyVaultUrl"] = vmvfci.KeyVaultURL + if vmvfci.VmwareSiteID != nil { + objectMap["vmwareSiteId"] = vmvfci.VmwareSiteID } - if vmvfci.KeyVaultResourceArmID != nil { - objectMap["keyVaultResourceArmId"] = vmvfci.KeyVaultResourceArmID + if vmvfci.MigrationSolutionID != nil { + objectMap["migrationSolutionId"] = vmvfci.MigrationSolutionID } if vmvfci.InstanceType != "" { objectMap["instanceType"] = vmvfci.InstanceType @@ -20291,16 +22378,14 @@ func (vmvfci VMwareV2FabricCreationInput) AsBasicFabricSpecificCreationInput() ( return &vmvfci, true } -// VMwareV2FabricSpecificDetails vMwareV2 fabric Specific Details. +// VMwareV2FabricSpecificDetails vMwareV2 fabric specific details. type VMwareV2FabricSpecificDetails struct { - // SrsServiceEndpoint - The endpoint for making requests to the SRS Service. + // VmwareSiteID - The ARM Id of the VMware site. + VmwareSiteID *string `json:"vmwareSiteId,omitempty"` + // MigrationSolutionID - The Migration solution ARM Id. + MigrationSolutionID *string `json:"migrationSolutionId,omitempty"` + // SrsServiceEndpoint - The SRS service endpoint. SrsServiceEndpoint *string `json:"srsServiceEndpoint,omitempty"` - // RcmServiceEndpoint - The endpoint for making requests to the RCM Service. - RcmServiceEndpoint *string `json:"rcmServiceEndpoint,omitempty"` - // KeyVaultURL - The Key Vault URL. - KeyVaultURL *string `json:"keyVaultUrl,omitempty"` - // KeyVaultResourceArmID - The Key Vault ARM Id. - KeyVaultResourceArmID *string `json:"keyVaultResourceArmId,omitempty"` // InstanceType - Possible values include: 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeFabricSpecificDetails', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeAzure', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeHyperVSite', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMM', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMware', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMwareV2' InstanceType InstanceTypeBasicFabricSpecificDetails `json:"instanceType,omitempty"` } @@ -20309,17 +22394,14 @@ type VMwareV2FabricSpecificDetails struct { func (vmvfsd VMwareV2FabricSpecificDetails) MarshalJSON() ([]byte, error) { vmvfsd.InstanceType = InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMwareV2 objectMap := make(map[string]interface{}) - if vmvfsd.SrsServiceEndpoint != nil { - objectMap["srsServiceEndpoint"] = vmvfsd.SrsServiceEndpoint + if vmvfsd.VmwareSiteID != nil { + objectMap["vmwareSiteId"] = vmvfsd.VmwareSiteID } - if vmvfsd.RcmServiceEndpoint != nil { - objectMap["rcmServiceEndpoint"] = vmvfsd.RcmServiceEndpoint + if vmvfsd.MigrationSolutionID != nil { + objectMap["migrationSolutionId"] = vmvfsd.MigrationSolutionID } - if vmvfsd.KeyVaultURL != nil { - objectMap["keyVaultUrl"] = vmvfsd.KeyVaultURL - } - if vmvfsd.KeyVaultResourceArmID != nil { - objectMap["keyVaultResourceArmId"] = vmvfsd.KeyVaultResourceArmID + if vmvfsd.SrsServiceEndpoint != nil { + objectMap["srsServiceEndpoint"] = vmvfsd.SrsServiceEndpoint } if vmvfsd.InstanceType != "" { objectMap["instanceType"] = vmvfsd.InstanceType @@ -20378,7 +22460,7 @@ type VMwareVirtualMachineDetails struct { PoweredOn *string `json:"poweredOn,omitempty"` // VCenterInfrastructureID - The VCenter infrastructure Id. VCenterInfrastructureID *string `json:"vCenterInfrastructureId,omitempty"` - // DiscoveryType - A value inidicating the discovery type of the machine. Value can be vCenter or physical. + // DiscoveryType - A value indicating the discovery type of the machine. Value can be vCenter or physical. DiscoveryType *string `json:"discoveryType,omitempty"` // DiskDetails - The disk details. DiskDetails *[]InMageDiskDetails `json:"diskDetails,omitempty"` diff --git a/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationmigrationitems.go b/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationmigrationitems.go new file mode 100644 index 000000000000..eba2cd77e795 --- /dev/null +++ b/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationmigrationitems.go @@ -0,0 +1,1052 @@ +package siterecovery + +// 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" +) + +// ReplicationMigrationItemsClient is the client for the ReplicationMigrationItems methods of the Siterecovery service. +type ReplicationMigrationItemsClient struct { + BaseClient +} + +// NewReplicationMigrationItemsClient creates an instance of the ReplicationMigrationItemsClient client. +func NewReplicationMigrationItemsClient(subscriptionID string, resourceGroupName string, resourceName string) ReplicationMigrationItemsClient { + return NewReplicationMigrationItemsClientWithBaseURI(DefaultBaseURI, subscriptionID, resourceGroupName, resourceName) +} + +// NewReplicationMigrationItemsClientWithBaseURI creates an instance of the ReplicationMigrationItemsClient client. +func NewReplicationMigrationItemsClientWithBaseURI(baseURI string, subscriptionID string, resourceGroupName string, resourceName string) ReplicationMigrationItemsClient { + return ReplicationMigrationItemsClient{NewWithBaseURI(baseURI, subscriptionID, resourceGroupName, resourceName)} +} + +// Complete the operation to initiate complete migration of the item. +// Parameters: +// fabricName - fabric name. +// protectionContainerName - protection container name. +// migrationItemName - migration item name. +func (client ReplicationMigrationItemsClient) Complete(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string) (result ReplicationMigrationItemsCompleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationMigrationItemsClient.Complete") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.CompletePreparer(ctx, fabricName, protectionContainerName, migrationItemName) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "Complete", nil, "Failure preparing request") + return + } + + result, err = client.CompleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "Complete", result.Response(), "Failure sending request") + return + } + + return +} + +// CompletePreparer prepares the Complete request. +func (client ReplicationMigrationItemsClient) CompletePreparer(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "fabricName": autorest.Encode("path", fabricName), + "migrationItemName": autorest.Encode("path", migrationItemName), + "protectionContainerName": autorest.Encode("path", protectionContainerName), + "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), + "resourceName": autorest.Encode("path", client.ResourceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2018-01-10" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/complete", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CompleteSender sends the Complete request. The method will close the +// http.Response Body if it receives an error. +func (client ReplicationMigrationItemsClient) CompleteSender(req *http.Request) (future ReplicationMigrationItemsCompleteFuture, err error) { + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, + azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CompleteResponder handles the response to the Complete request. The method always +// closes the http.Response Body. +func (client ReplicationMigrationItemsClient) CompleteResponder(resp *http.Response) (result MigrationItem, 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 +} + +// Create the operation to create an ASR migration item (enable migration). +// Parameters: +// fabricName - fabric name. +// protectionContainerName - protection container name. +// migrationItemName - migration item name. +// input - enable migration input. +func (client ReplicationMigrationItemsClient) Create(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, input EnableMigrationInput) (result ReplicationMigrationItemsCreateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationMigrationItemsClient.Create") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: input, + Constraints: []validation.Constraint{{Target: "input.Properties", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "input.Properties.PolicyID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "input.Properties.ProviderSpecificDetails", Name: validation.Null, Rule: true, Chain: nil}, + }}}}}); err != nil { + return result, validation.NewError("siterecovery.ReplicationMigrationItemsClient", "Create", err.Error()) + } + + req, err := client.CreatePreparer(ctx, fabricName, protectionContainerName, migrationItemName, input) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "Create", nil, "Failure preparing request") + return + } + + result, err = client.CreateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "Create", result.Response(), "Failure sending request") + return + } + + return +} + +// CreatePreparer prepares the Create request. +func (client ReplicationMigrationItemsClient) CreatePreparer(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, input EnableMigrationInput) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "fabricName": autorest.Encode("path", fabricName), + "migrationItemName": autorest.Encode("path", migrationItemName), + "protectionContainerName": autorest.Encode("path", protectionContainerName), + "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), + "resourceName": autorest.Encode("path", client.ResourceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2018-01-10" + 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.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}", pathParameters), + autorest.WithJSON(input), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateSender sends the Create request. The method will close the +// http.Response Body if it receives an error. +func (client ReplicationMigrationItemsClient) CreateSender(req *http.Request) (future ReplicationMigrationItemsCreateFuture, err error) { + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, + azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateResponder handles the response to the Create request. The method always +// closes the http.Response Body. +func (client ReplicationMigrationItemsClient) CreateResponder(resp *http.Response) (result MigrationItem, 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 the operation to purge an ASR migration item. This operation will force delete the migration item. Use the +// remove operation on migration item to perform a clean disable migration for the item. +// Parameters: +// fabricName - fabric name. +// protectionContainerName - protection container name. +// migrationItemName - migration item name. +func (client ReplicationMigrationItemsClient) Delete(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string) (result ReplicationMigrationItemsDeleteFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationMigrationItemsClient.Delete") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.DeletePreparer(ctx, fabricName, protectionContainerName, migrationItemName) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "Delete", nil, "Failure preparing request") + return + } + + result, err = client.DeleteSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "Delete", result.Response(), "Failure sending request") + return + } + + return +} + +// DeletePreparer prepares the Delete request. +func (client ReplicationMigrationItemsClient) DeletePreparer(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "fabricName": autorest.Encode("path", fabricName), + "migrationItemName": autorest.Encode("path", migrationItemName), + "protectionContainerName": autorest.Encode("path", protectionContainerName), + "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), + "resourceName": autorest.Encode("path", client.ResourceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2018-01-10" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsDelete(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}", 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 ReplicationMigrationItemsClient) DeleteSender(req *http.Request) (future ReplicationMigrationItemsDeleteFuture, err error) { + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, + azure.DoRetryWithRegistration(client.Client)) + 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 ReplicationMigrationItemsClient) 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: +// fabricName - fabric unique name. +// protectionContainerName - protection container name. +// migrationItemName - migration item name. +func (client ReplicationMigrationItemsClient) Get(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string) (result MigrationItem, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationMigrationItemsClient.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, fabricName, protectionContainerName, migrationItemName) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "Get", nil, "Failure preparing request") + return + } + + resp, err := client.GetSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "Get", resp, "Failure responding to request") + } + + return +} + +// GetPreparer prepares the Get request. +func (client ReplicationMigrationItemsClient) GetPreparer(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "fabricName": autorest.Encode("path", fabricName), + "migrationItemName": autorest.Encode("path", migrationItemName), + "protectionContainerName": autorest.Encode("path", protectionContainerName), + "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), + "resourceName": autorest.Encode("path", client.ResourceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2018-01-10" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}", 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 ReplicationMigrationItemsClient) GetSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + azure.DoRetryWithRegistration(client.Client)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client ReplicationMigrationItemsClient) GetResponder(resp *http.Response) (result MigrationItem, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List sends the list request. +// Parameters: +// skipToken - the pagination token. +// filter - oData filter options. +func (client ReplicationMigrationItemsClient) List(ctx context.Context, skipToken string, filter string) (result MigrationItemCollectionPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationMigrationItemsClient.List") + defer func() { + sc := -1 + if result.mic.Response.Response != nil { + sc = result.mic.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listNextResults + req, err := client.ListPreparer(ctx, skipToken, filter) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.mic.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "List", resp, "Failure sending request") + return + } + + result.mic, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "List", resp, "Failure responding to request") + } + + return +} + +// ListPreparer prepares the List request. +func (client ReplicationMigrationItemsClient) ListPreparer(ctx context.Context, skipToken string, filter string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), + "resourceName": autorest.Encode("path", client.ResourceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2018-01-10" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + if len(skipToken) > 0 { + queryParameters["skipToken"] = autorest.Encode("query", skipToken) + } + if len(filter) > 0 { + queryParameters["$filter"] = autorest.Encode("query", filter) + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationMigrationItems", pathParameters), + 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 ReplicationMigrationItemsClient) ListSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + azure.DoRetryWithRegistration(client.Client)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client ReplicationMigrationItemsClient) ListResponder(resp *http.Response) (result MigrationItemCollection, 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 ReplicationMigrationItemsClient) listNextResults(ctx context.Context, lastResults MigrationItemCollection) (result MigrationItemCollection, err error) { + req, err := lastResults.migrationItemCollectionPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "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, "siterecovery.ReplicationMigrationItemsClient", "listNextResults", resp, "Failure sending next results request") + } + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "listNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListComplete enumerates all values, automatically crossing page boundaries as required. +func (client ReplicationMigrationItemsClient) ListComplete(ctx context.Context, skipToken string, filter string) (result MigrationItemCollectionIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationMigrationItemsClient.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, skipToken, filter) + return +} + +// ListByReplicationProtectionContainers gets the list of ASR migration items in the protection container. +// Parameters: +// fabricName - fabric name. +// protectionContainerName - protection container name. +func (client ReplicationMigrationItemsClient) ListByReplicationProtectionContainers(ctx context.Context, fabricName string, protectionContainerName string) (result MigrationItemCollectionPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationMigrationItemsClient.ListByReplicationProtectionContainers") + defer func() { + sc := -1 + if result.mic.Response.Response != nil { + sc = result.mic.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listByReplicationProtectionContainersNextResults + req, err := client.ListByReplicationProtectionContainersPreparer(ctx, fabricName, protectionContainerName) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "ListByReplicationProtectionContainers", nil, "Failure preparing request") + return + } + + resp, err := client.ListByReplicationProtectionContainersSender(req) + if err != nil { + result.mic.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "ListByReplicationProtectionContainers", resp, "Failure sending request") + return + } + + result.mic, err = client.ListByReplicationProtectionContainersResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "ListByReplicationProtectionContainers", resp, "Failure responding to request") + } + + return +} + +// ListByReplicationProtectionContainersPreparer prepares the ListByReplicationProtectionContainers request. +func (client ReplicationMigrationItemsClient) ListByReplicationProtectionContainersPreparer(ctx context.Context, fabricName string, protectionContainerName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "fabricName": autorest.Encode("path", fabricName), + "protectionContainerName": autorest.Encode("path", protectionContainerName), + "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), + "resourceName": autorest.Encode("path", client.ResourceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2018-01-10" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsGet(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ListByReplicationProtectionContainersSender sends the ListByReplicationProtectionContainers request. The method will close the +// http.Response Body if it receives an error. +func (client ReplicationMigrationItemsClient) ListByReplicationProtectionContainersSender(req *http.Request) (*http.Response, error) { + return autorest.SendWithSender(client, req, + azure.DoRetryWithRegistration(client.Client)) +} + +// ListByReplicationProtectionContainersResponder handles the response to the ListByReplicationProtectionContainers request. The method always +// closes the http.Response Body. +func (client ReplicationMigrationItemsClient) ListByReplicationProtectionContainersResponder(resp *http.Response) (result MigrationItemCollection, err error) { + err = autorest.Respond( + resp, + client.ByInspecting(), + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// listByReplicationProtectionContainersNextResults retrieves the next set of results, if any. +func (client ReplicationMigrationItemsClient) listByReplicationProtectionContainersNextResults(ctx context.Context, lastResults MigrationItemCollection) (result MigrationItemCollection, err error) { + req, err := lastResults.migrationItemCollectionPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "listByReplicationProtectionContainersNextResults", nil, "Failure preparing next results request") + } + if req == nil { + return + } + resp, err := client.ListByReplicationProtectionContainersSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + return result, autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "listByReplicationProtectionContainersNextResults", resp, "Failure sending next results request") + } + result, err = client.ListByReplicationProtectionContainersResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "listByReplicationProtectionContainersNextResults", resp, "Failure responding to next results request") + } + return +} + +// ListByReplicationProtectionContainersComplete enumerates all values, automatically crossing page boundaries as required. +func (client ReplicationMigrationItemsClient) ListByReplicationProtectionContainersComplete(ctx context.Context, fabricName string, protectionContainerName string) (result MigrationItemCollectionIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationMigrationItemsClient.ListByReplicationProtectionContainers") + 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.ListByReplicationProtectionContainers(ctx, fabricName, protectionContainerName) + return +} + +// Migrate the operation to initiate migration of the item. +// Parameters: +// fabricName - fabric name. +// protectionContainerName - protection container name. +// migrationItemName - migration item name. +// migrateInput - migrate input. +func (client ReplicationMigrationItemsClient) Migrate(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, migrateInput MigrateInput) (result ReplicationMigrationItemsMigrateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationMigrationItemsClient.Migrate") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: migrateInput, + Constraints: []validation.Constraint{{Target: "migrateInput.Properties", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "migrateInput.Properties.ProviderSpecificDetails", Name: validation.Null, Rule: true, Chain: nil}}}}}}); err != nil { + return result, validation.NewError("siterecovery.ReplicationMigrationItemsClient", "Migrate", err.Error()) + } + + req, err := client.MigratePreparer(ctx, fabricName, protectionContainerName, migrationItemName, migrateInput) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "Migrate", nil, "Failure preparing request") + return + } + + result, err = client.MigrateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "Migrate", result.Response(), "Failure sending request") + return + } + + return +} + +// MigratePreparer prepares the Migrate request. +func (client ReplicationMigrationItemsClient) MigratePreparer(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, migrateInput MigrateInput) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "fabricName": autorest.Encode("path", fabricName), + "migrationItemName": autorest.Encode("path", migrationItemName), + "protectionContainerName": autorest.Encode("path", protectionContainerName), + "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), + "resourceName": autorest.Encode("path", client.ResourceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2018-01-10" + 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.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/migrate", pathParameters), + autorest.WithJSON(migrateInput), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// MigrateSender sends the Migrate request. The method will close the +// http.Response Body if it receives an error. +func (client ReplicationMigrationItemsClient) MigrateSender(req *http.Request) (future ReplicationMigrationItemsMigrateFuture, err error) { + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, + azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// MigrateResponder handles the response to the Migrate request. The method always +// closes the http.Response Body. +func (client ReplicationMigrationItemsClient) MigrateResponder(resp *http.Response) (result MigrationItem, 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 +} + +// Remove the operation to disable an ASR migration item. +// Parameters: +// fabricName - fabric name. +// protectionContainerName - protection container name. +// migrationItemName - migration item name. +func (client ReplicationMigrationItemsClient) Remove(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string) (result ReplicationMigrationItemsRemoveFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationMigrationItemsClient.Remove") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.RemovePreparer(ctx, fabricName, protectionContainerName, migrationItemName) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "Remove", nil, "Failure preparing request") + return + } + + result, err = client.RemoveSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "Remove", result.Response(), "Failure sending request") + return + } + + return +} + +// RemovePreparer prepares the Remove request. +func (client ReplicationMigrationItemsClient) RemovePreparer(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "fabricName": autorest.Encode("path", fabricName), + "migrationItemName": autorest.Encode("path", migrationItemName), + "protectionContainerName": autorest.Encode("path", protectionContainerName), + "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), + "resourceName": autorest.Encode("path", client.ResourceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2018-01-10" + queryParameters := map[string]interface{}{ + "api-version": APIVersion, + } + + preparer := autorest.CreatePreparer( + autorest.AsPost(), + autorest.WithBaseURL(client.BaseURI), + autorest.WithPathParameters("/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/remove", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RemoveSender sends the Remove request. The method will close the +// http.Response Body if it receives an error. +func (client ReplicationMigrationItemsClient) RemoveSender(req *http.Request) (future ReplicationMigrationItemsRemoveFuture, err error) { + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, + azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// RemoveResponder handles the response to the Remove request. The method always +// closes the http.Response Body. +func (client ReplicationMigrationItemsClient) RemoveResponder(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 +} + +// TestMigrate the operation to initiate test migration of the item. +// Parameters: +// fabricName - fabric name. +// protectionContainerName - protection container name. +// migrationItemName - migration item name. +// testMigrateInput - test migrate input. +func (client ReplicationMigrationItemsClient) TestMigrate(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, testMigrateInput TestMigrateInput) (result ReplicationMigrationItemsTestMigrateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationMigrationItemsClient.TestMigrate") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: testMigrateInput, + Constraints: []validation.Constraint{{Target: "testMigrateInput.Properties", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "testMigrateInput.Properties.ProviderSpecificDetails", Name: validation.Null, Rule: true, Chain: nil}}}}}}); err != nil { + return result, validation.NewError("siterecovery.ReplicationMigrationItemsClient", "TestMigrate", err.Error()) + } + + req, err := client.TestMigratePreparer(ctx, fabricName, protectionContainerName, migrationItemName, testMigrateInput) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "TestMigrate", nil, "Failure preparing request") + return + } + + result, err = client.TestMigrateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "TestMigrate", result.Response(), "Failure sending request") + return + } + + return +} + +// TestMigratePreparer prepares the TestMigrate request. +func (client ReplicationMigrationItemsClient) TestMigratePreparer(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, testMigrateInput TestMigrateInput) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "fabricName": autorest.Encode("path", fabricName), + "migrationItemName": autorest.Encode("path", migrationItemName), + "protectionContainerName": autorest.Encode("path", protectionContainerName), + "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), + "resourceName": autorest.Encode("path", client.ResourceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2018-01-10" + 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.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/testMigrate", pathParameters), + autorest.WithJSON(testMigrateInput), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// TestMigrateSender sends the TestMigrate request. The method will close the +// http.Response Body if it receives an error. +func (client ReplicationMigrationItemsClient) TestMigrateSender(req *http.Request) (future ReplicationMigrationItemsTestMigrateFuture, err error) { + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, + azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// TestMigrateResponder handles the response to the TestMigrate request. The method always +// closes the http.Response Body. +func (client ReplicationMigrationItemsClient) TestMigrateResponder(resp *http.Response) (result MigrationItem, 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 +} + +// TestMigrateCleanup the operation to initiate test migrate cleanup. +// Parameters: +// fabricName - fabric name. +// protectionContainerName - protection container name. +// migrationItemName - migration item name. +// testMigrateCleanupInput - test migrate cleanup input. +func (client ReplicationMigrationItemsClient) TestMigrateCleanup(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, testMigrateCleanupInput TestMigrateCleanupInput) (result ReplicationMigrationItemsTestMigrateCleanupFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationMigrationItemsClient.TestMigrateCleanup") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: testMigrateCleanupInput, + Constraints: []validation.Constraint{{Target: "testMigrateCleanupInput.Properties", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { + return result, validation.NewError("siterecovery.ReplicationMigrationItemsClient", "TestMigrateCleanup", err.Error()) + } + + req, err := client.TestMigrateCleanupPreparer(ctx, fabricName, protectionContainerName, migrationItemName, testMigrateCleanupInput) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "TestMigrateCleanup", nil, "Failure preparing request") + return + } + + result, err = client.TestMigrateCleanupSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "TestMigrateCleanup", result.Response(), "Failure sending request") + return + } + + return +} + +// TestMigrateCleanupPreparer prepares the TestMigrateCleanup request. +func (client ReplicationMigrationItemsClient) TestMigrateCleanupPreparer(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, testMigrateCleanupInput TestMigrateCleanupInput) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "fabricName": autorest.Encode("path", fabricName), + "migrationItemName": autorest.Encode("path", migrationItemName), + "protectionContainerName": autorest.Encode("path", protectionContainerName), + "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), + "resourceName": autorest.Encode("path", client.ResourceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2018-01-10" + 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.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}/testMigrateCleanup", pathParameters), + autorest.WithJSON(testMigrateCleanupInput), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// TestMigrateCleanupSender sends the TestMigrateCleanup request. The method will close the +// http.Response Body if it receives an error. +func (client ReplicationMigrationItemsClient) TestMigrateCleanupSender(req *http.Request) (future ReplicationMigrationItemsTestMigrateCleanupFuture, err error) { + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, + azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// TestMigrateCleanupResponder handles the response to the TestMigrateCleanup request. The method always +// closes the http.Response Body. +func (client ReplicationMigrationItemsClient) TestMigrateCleanupResponder(resp *http.Response) (result MigrationItem, 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 +} + +// Update the operation to update the recovery settings of an ASR migration item. +// Parameters: +// fabricName - fabric name. +// protectionContainerName - protection container name. +// migrationItemName - migration item name. +// input - update migration item input. +func (client ReplicationMigrationItemsClient) Update(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, input UpdateMigrationItemInput) (result ReplicationMigrationItemsUpdateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationMigrationItemsClient.Update") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.UpdatePreparer(ctx, fabricName, protectionContainerName, migrationItemName, input) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "Update", nil, "Failure preparing request") + return + } + + result, err = client.UpdateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "Update", result.Response(), "Failure sending request") + return + } + + return +} + +// UpdatePreparer prepares the Update request. +func (client ReplicationMigrationItemsClient) UpdatePreparer(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, input UpdateMigrationItemInput) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "fabricName": autorest.Encode("path", fabricName), + "migrationItemName": autorest.Encode("path", migrationItemName), + "protectionContainerName": autorest.Encode("path", protectionContainerName), + "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), + "resourceName": autorest.Encode("path", client.ResourceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2018-01-10" + 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.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationProtectionContainers/{protectionContainerName}/replicationMigrationItems/{migrationItemName}", pathParameters), + autorest.WithJSON(input), + 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 ReplicationMigrationItemsClient) UpdateSender(req *http.Request) (future ReplicationMigrationItemsUpdateFuture, err error) { + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, + azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// UpdateResponder handles the response to the Update request. The method always +// closes the http.Response Body. +func (client ReplicationMigrationItemsClient) UpdateResponder(resp *http.Response) (result MigrationItem, 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 +} diff --git a/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationrecoveryservicesproviders.go b/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationrecoveryservicesproviders.go index d93d683484bf..3302380d8d0b 100644 --- a/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationrecoveryservicesproviders.go +++ b/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationrecoveryservicesproviders.go @@ -21,6 +21,7 @@ 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" ) @@ -43,6 +44,110 @@ func NewReplicationRecoveryServicesProvidersClientWithBaseURI(baseURI string, su return ReplicationRecoveryServicesProvidersClient{NewWithBaseURI(baseURI, subscriptionID, resourceGroupName, resourceName)} } +// Create the operation to add a recovery services provider. +// Parameters: +// fabricName - fabric name. +// providerName - recovery services provider name. +// addProviderInput - add provider input. +func (client ReplicationRecoveryServicesProvidersClient) Create(ctx context.Context, fabricName string, providerName string, addProviderInput AddRecoveryServicesProviderInput) (result ReplicationRecoveryServicesProvidersCreateFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationRecoveryServicesProvidersClient.Create") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: addProviderInput, + Constraints: []validation.Constraint{{Target: "addProviderInput.Properties", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "addProviderInput.Properties.MachineName", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "addProviderInput.Properties.AuthenticationIdentityInput", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "addProviderInput.Properties.AuthenticationIdentityInput.TenantID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "addProviderInput.Properties.AuthenticationIdentityInput.ApplicationID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "addProviderInput.Properties.AuthenticationIdentityInput.ObjectID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "addProviderInput.Properties.AuthenticationIdentityInput.Audience", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "addProviderInput.Properties.AuthenticationIdentityInput.AadAuthority", Name: validation.Null, Rule: true, Chain: nil}, + }}, + {Target: "addProviderInput.Properties.ResourceAccessIdentityInput", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "addProviderInput.Properties.ResourceAccessIdentityInput.TenantID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "addProviderInput.Properties.ResourceAccessIdentityInput.ApplicationID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "addProviderInput.Properties.ResourceAccessIdentityInput.ObjectID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "addProviderInput.Properties.ResourceAccessIdentityInput.Audience", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "addProviderInput.Properties.ResourceAccessIdentityInput.AadAuthority", Name: validation.Null, Rule: true, Chain: nil}, + }}, + }}}}}); err != nil { + return result, validation.NewError("siterecovery.ReplicationRecoveryServicesProvidersClient", "Create", err.Error()) + } + + req, err := client.CreatePreparer(ctx, fabricName, providerName, addProviderInput) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationRecoveryServicesProvidersClient", "Create", nil, "Failure preparing request") + return + } + + result, err = client.CreateSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationRecoveryServicesProvidersClient", "Create", result.Response(), "Failure sending request") + return + } + + return +} + +// CreatePreparer prepares the Create request. +func (client ReplicationRecoveryServicesProvidersClient) CreatePreparer(ctx context.Context, fabricName string, providerName string, addProviderInput AddRecoveryServicesProviderInput) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "fabricName": autorest.Encode("path", fabricName), + "providerName": autorest.Encode("path", providerName), + "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), + "resourceName": autorest.Encode("path", client.ResourceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2018-01-10" + 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.RecoveryServices/vaults/{resourceName}/replicationFabrics/{fabricName}/replicationRecoveryServicesProviders/{providerName}", pathParameters), + autorest.WithJSON(addProviderInput), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// CreateSender sends the Create request. The method will close the +// http.Response Body if it receives an error. +func (client ReplicationRecoveryServicesProvidersClient) CreateSender(req *http.Request) (future ReplicationRecoveryServicesProvidersCreateFuture, err error) { + var resp *http.Response + resp, err = autorest.SendWithSender(client, req, + azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// CreateResponder handles the response to the Create request. The method always +// closes the http.Response Body. +func (client ReplicationRecoveryServicesProvidersClient) CreateResponder(resp *http.Response) (result RecoveryServicesProvider, 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 the operation to removes/delete(unregister) a recovery services provider from the vault // Parameters: // fabricName - fabric name.