From 681b72654ebf404769a04330927595e366cd837e Mon Sep 17 00:00:00 2001 From: Mitch Drage Date: Thu, 28 Jan 2021 13:55:54 +1100 Subject: [PATCH 1/4] Resolves issue 10346 --- .../backup_policy_vm_resource_test.go | 2 +- .../backup_protected_vm_resource_test.go | 108 ++---------------- 2 files changed, 9 insertions(+), 101 deletions(-) diff --git a/azurerm/internal/services/recoveryservices/backup_policy_vm_resource_test.go b/azurerm/internal/services/recoveryservices/backup_policy_vm_resource_test.go index 91c2fbbf64f4..e70ae85fddb8 100644 --- a/azurerm/internal/services/recoveryservices/backup_policy_vm_resource_test.go +++ b/azurerm/internal/services/recoveryservices/backup_policy_vm_resource_test.go @@ -347,7 +347,7 @@ resource "azurerm_backup_policy_vm" "import" { count = 10 } } -`, r.template(data)) +`, r.basicDaily(data)) } func (r BackupProtectionPolicyVMResource) basicWeekly(data acceptance.TestData) string { diff --git a/azurerm/internal/services/recoveryservices/backup_protected_vm_resource_test.go b/azurerm/internal/services/recoveryservices/backup_protected_vm_resource_test.go index f6c0760839d8..baecaaebf860 100644 --- a/azurerm/internal/services/recoveryservices/backup_protected_vm_resource_test.go +++ b/azurerm/internal/services/recoveryservices/backup_protected_vm_resource_test.go @@ -105,12 +105,12 @@ func TestAccBackupProtectedVm_updateBackupPolicyId(t *testing.T) { // Backup policy link will need to be removed first so the VM's backup policy subsequently reverts to Default // Azure API is quite sensitive, adding the step to control resource cleanup order ResourceName: fBackupPolicyResourceName, - Config: r.withVM(data), + Config: r.withBasePolicy(data), }, { // Then VM can be removed ResourceName: virtualMachine, - Config: r.withSecondPolicy(data), + Config: r.withBasePolicy(data), }, { // Remove backup policies and vault @@ -161,7 +161,7 @@ resource "azurerm_subnet" "test" { name = "acctest_subnet" virtual_network_name = azurerm_virtual_network.test.name resource_group_name = azurerm_resource_group.test.name - address_prefix = "10.0.10.0/24" + address_prefixes = ["10.0.10.0/24"] } resource "azurerm_network_interface" "test" { @@ -310,7 +310,7 @@ resource "azurerm_subnet" "test" { name = "acctest_subnet" virtual_network_name = azurerm_virtual_network.test.name resource_group_name = azurerm_resource_group.test.name - address_prefix = "10.0.10.0/24" + address_prefixes = ["10.0.10.0/24"] } resource "azurerm_network_interface" "test" { @@ -354,45 +354,7 @@ resource "azurerm_managed_disk" "test" { } // For update backup policy id test -func (r BackupProtectedVmResource) withVault(data acceptance.TestData) string { - return fmt.Sprintf(` -%s - -resource "azurerm_recovery_services_vault" "test" { - name = "acctest-%d" - location = azurerm_resource_group.test.location - resource_group_name = azurerm_resource_group.test.name - sku = "Standard" - - soft_delete_enabled = false -} -`, r.base(data), data.RandomInteger) -} - -// For update backup policy id test -func (r BackupProtectedVmResource) withFirstPolicy(data acceptance.TestData) string { - return fmt.Sprintf(` -%s - -resource "azurerm_backup_policy_vm" "test" { - name = "acctest-%d" - resource_group_name = azurerm_resource_group.test.name - recovery_vault_name = azurerm_recovery_services_vault.test.name - - backup { - frequency = "Daily" - time = "23:00" - } - - retention_daily { - count = 10 - } -} -`, r.withVault(data), data.RandomInteger) -} - -// For update backup policy id test -func (r BackupProtectedVmResource) withSecondPolicy(data acceptance.TestData) string { +func (r BackupProtectedVmResource) withBasePolicy(data acceptance.TestData) string { return fmt.Sprintf(` %s @@ -410,61 +372,7 @@ resource "azurerm_backup_policy_vm" "test_change_backup" { count = 15 } } -`, r.withFirstPolicy(data), data.RandomInteger) -} - -// For update backup policy id test -func (r BackupProtectedVmResource) withVM(data acceptance.TestData) string { - return fmt.Sprintf(` -%s - -resource "azurerm_virtual_machine" "test" { - name = "acctestvm-%d" - location = azurerm_resource_group.test.location - resource_group_name = azurerm_resource_group.test.name - vm_size = "Standard_A0" - network_interface_ids = [azurerm_network_interface.test.id] - delete_os_disk_on_termination = true - - storage_image_reference { - publisher = "Canonical" - offer = "UbuntuServer" - sku = "16.04-LTS" - version = "latest" - } - - storage_os_disk { - name = "acctest-osdisk" - managed_disk_type = "Standard_LRS" - caching = "ReadWrite" - create_option = "FromImage" - } - - storage_data_disk { - name = "acctest-datadisk" - managed_disk_id = azurerm_managed_disk.test.id - managed_disk_type = "Standard_LRS" - disk_size_gb = azurerm_managed_disk.test.disk_size_gb - create_option = "Attach" - lun = 0 - } - - os_profile { - computer_name = "acctest" - admin_username = "vmadmin" - admin_password = "Password123!@#" - } - - os_profile_linux_config { - disable_password_authentication = false - } - - boot_diagnostics { - enabled = true - storage_uri = azurerm_storage_account.test.primary_blob_endpoint - } -} -`, r.withSecondPolicy(data), data.RandomInteger) +`, r.base(data), data.RandomInteger) } // For update backup policy id test @@ -478,7 +386,7 @@ resource "azurerm_backup_protected_vm" "test" { source_vm_id = azurerm_virtual_machine.test.id backup_policy_id = azurerm_backup_policy_vm.test.id } -`, r.withVM(data)) +`, r.withBasePolicy(data)) } // For update backup policy id test @@ -492,7 +400,7 @@ resource "azurerm_backup_protected_vm" "test" { source_vm_id = azurerm_virtual_machine.test.id backup_policy_id = azurerm_backup_policy_vm.test_change_backup.id } -`, r.withVM(data)) +`, r.withBasePolicy(data)) } func (r BackupProtectedVmResource) requiresImport(data acceptance.TestData) string { From c36bfd22ec4f06e749ebb34d371f4fa256359d90 Mon Sep 17 00:00:00 2001 From: Mitch Drage Date: Fri, 29 Jan 2021 14:00:39 +1100 Subject: [PATCH 2/4] Bump azure-sdk-for-go/recoveryservices from 2018-01-10 to 2018-07-10 --- .../recoveryservices/client/client.go | 2 +- .../site_recovery_fabric_resource.go | 2 +- .../site_recovery_network_mapping_resource.go | 2 +- ...y_protection_container_mapping_resource.go | 2 +- ..._recovery_protection_container_resource.go | 2 +- .../site_recovery_replicated_vm_resource.go | 2 +- ...te_recovery_replication_policy_resource.go | 2 +- .../mgmt/2018-01-10/siterecovery/CHANGELOG.md | 36 - .../mgmt/2018-07-10/siterecovery/CHANGELOG.md | 567 ++ .../siterecovery/client.go | 2 +- .../siterecovery/enums.go | 512 +- .../siterecovery/migrationrecoverypoints.go | 4 +- .../siterecovery/models.go | 7255 +++++++++++++++-- .../siterecovery/operations.go | 2 +- .../siterecovery/recoverypoints.go | 4 +- .../siterecovery/replicationalertsettings.go | 6 +- .../replicationeligibilityresults.go | 194 + .../siterecovery/replicationevents.go | 4 +- .../siterecovery/replicationfabrics.go | 18 +- .../siterecovery/replicationjobs.go | 12 +- .../replicationlogicalnetworks.go | 4 +- .../siterecovery/replicationmigrationitems.go | 112 +- .../replicationnetworkmappings.go | 12 +- .../siterecovery/replicationnetworks.go | 6 +- .../siterecovery/replicationpolicies.go | 10 +- .../replicationprotectableitems.go | 4 +- .../siterecovery/replicationprotecteditems.go | 278 +- .../replicationprotectioncontainermappings.go | 14 +- .../replicationprotectioncontainers.go | 14 +- .../replicationprotectionintents.go | 314 + .../siterecovery/replicationrecoveryplans.go | 22 +- .../replicationrecoveryservicesproviders.go | 21 +- ...eplicationstorageclassificationmappings.go | 10 +- .../replicationstorageclassifications.go | 6 +- .../siterecovery/replicationvaulthealth.go | 4 +- .../siterecovery/replicationvaultsetting.go | 321 + .../siterecovery/replicationvcenters.go | 12 +- .../siterecoveryapi/interfaces.go | 348 + .../siterecovery/supportedoperatingsystems.go | 116 + .../siterecovery/targetcomputesizes.go | 2 +- .../siterecovery/version.go | 2 +- vendor/modules.txt | 2 +- 42 files changed, 9098 insertions(+), 1166 deletions(-) delete mode 100644 vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/CHANGELOG.md create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/CHANGELOG.md rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/client.go (98%) rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/enums.go (71%) rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/migrationrecoverypoints.go (99%) rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/models.go (76%) rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/operations.go (99%) rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/recoverypoints.go (99%) rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/replicationalertsettings.go (99%) create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationeligibilityresults.go rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/replicationevents.go (99%) rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/replicationfabrics.go (99%) rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/replicationjobs.go (99%) rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/replicationlogicalnetworks.go (99%) rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/replicationmigrationitems.go (89%) rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/replicationnetworkmappings.go (99%) rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/replicationnetworks.go (99%) rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/replicationpolicies.go (99%) rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/replicationprotectableitems.go (99%) rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/replicationprotecteditems.go (84%) rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/replicationprotectioncontainermappings.go (99%) rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/replicationprotectioncontainers.go (99%) create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationprotectionintents.go rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/replicationrecoveryplans.go (99%) rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/replicationrecoveryservicesproviders.go (96%) rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/replicationstorageclassificationmappings.go (99%) rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/replicationstorageclassifications.go (99%) rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/replicationvaulthealth.go (99%) create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationvaultsetting.go rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/replicationvcenters.go (99%) create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/siterecoveryapi/interfaces.go create mode 100644 vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/supportedoperatingsystems.go rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/targetcomputesizes.go (99%) rename vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/{2018-01-10 => 2018-07-10}/siterecovery/version.go (94%) diff --git a/azurerm/internal/services/recoveryservices/client/client.go b/azurerm/internal/services/recoveryservices/client/client.go index c757041481a9..62a33448fb82 100644 --- a/azurerm/internal/services/recoveryservices/client/client.go +++ b/azurerm/internal/services/recoveryservices/client/client.go @@ -2,7 +2,7 @@ package client import ( "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2016-06-01/recoveryservices" - "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery" + "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery" "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2019-05-13/backup" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/common" ) diff --git a/azurerm/internal/services/recoveryservices/site_recovery_fabric_resource.go b/azurerm/internal/services/recoveryservices/site_recovery_fabric_resource.go index 872e4d5bd30e..3503b599361f 100644 --- a/azurerm/internal/services/recoveryservices/site_recovery_fabric_resource.go +++ b/azurerm/internal/services/recoveryservices/site_recovery_fabric_resource.go @@ -4,7 +4,7 @@ import ( "fmt" "time" - "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery" + "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/helper/validation" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/azure" diff --git a/azurerm/internal/services/recoveryservices/site_recovery_network_mapping_resource.go b/azurerm/internal/services/recoveryservices/site_recovery_network_mapping_resource.go index a64e7d02a4d4..205db53db74f 100644 --- a/azurerm/internal/services/recoveryservices/site_recovery_network_mapping_resource.go +++ b/azurerm/internal/services/recoveryservices/site_recovery_network_mapping_resource.go @@ -5,7 +5,7 @@ import ( "net/http" "time" - "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery" + "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/helper/validation" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/azure" diff --git a/azurerm/internal/services/recoveryservices/site_recovery_protection_container_mapping_resource.go b/azurerm/internal/services/recoveryservices/site_recovery_protection_container_mapping_resource.go index 4ce60fcf0058..c71413e1a290 100644 --- a/azurerm/internal/services/recoveryservices/site_recovery_protection_container_mapping_resource.go +++ b/azurerm/internal/services/recoveryservices/site_recovery_protection_container_mapping_resource.go @@ -4,7 +4,7 @@ import ( "fmt" "time" - "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery" + "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/helper/validation" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/azure" diff --git a/azurerm/internal/services/recoveryservices/site_recovery_protection_container_resource.go b/azurerm/internal/services/recoveryservices/site_recovery_protection_container_resource.go index 4cb435456f48..ab904cd887d0 100644 --- a/azurerm/internal/services/recoveryservices/site_recovery_protection_container_resource.go +++ b/azurerm/internal/services/recoveryservices/site_recovery_protection_container_resource.go @@ -4,7 +4,7 @@ import ( "fmt" "time" - "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery" + "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/helper/validation" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/azure" diff --git a/azurerm/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go b/azurerm/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go index 89d61d2397e1..f80377745a81 100644 --- a/azurerm/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go +++ b/azurerm/internal/services/recoveryservices/site_recovery_replicated_vm_resource.go @@ -8,7 +8,7 @@ import ( "time" "github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2020-06-01/compute" - "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery" + "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/helper/validation" diff --git a/azurerm/internal/services/recoveryservices/site_recovery_replication_policy_resource.go b/azurerm/internal/services/recoveryservices/site_recovery_replication_policy_resource.go index 11ebd8737307..d98b92a81913 100644 --- a/azurerm/internal/services/recoveryservices/site_recovery_replication_policy_resource.go +++ b/azurerm/internal/services/recoveryservices/site_recovery_replication_policy_resource.go @@ -4,7 +4,7 @@ import ( "fmt" "time" - "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery" + "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/helper/validation" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/azure" diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/CHANGELOG.md b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/CHANGELOG.md deleted file mode 100644 index d2711e864bd2..000000000000 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/CHANGELOG.md +++ /dev/null @@ -1,36 +0,0 @@ -Generated from https://github.com/Azure/azure-rest-api-specs/tree/3c764635e7d442b3e74caf593029fcd440b3ef82 - -Code generator @microsoft.azure/autorest.go@~2.1.161 - -## Breaking Changes - -- Function `NewMigrationItemCollectionPage` parameter(s) have been changed from `(func(context.Context, MigrationItemCollection) (MigrationItemCollection, error))` to `(MigrationItemCollection, func(context.Context, MigrationItemCollection) (MigrationItemCollection, error))` -- Function `NewTargetComputeSizeCollectionPage` parameter(s) have been changed from `(func(context.Context, TargetComputeSizeCollection) (TargetComputeSizeCollection, error))` to `(TargetComputeSizeCollection, func(context.Context, TargetComputeSizeCollection) (TargetComputeSizeCollection, error))` -- Function `NewStorageClassificationCollectionPage` parameter(s) have been changed from `(func(context.Context, StorageClassificationCollection) (StorageClassificationCollection, error))` to `(StorageClassificationCollection, func(context.Context, StorageClassificationCollection) (StorageClassificationCollection, error))` -- Function `NewLogicalNetworkCollectionPage` parameter(s) have been changed from `(func(context.Context, LogicalNetworkCollection) (LogicalNetworkCollection, error))` to `(LogicalNetworkCollection, func(context.Context, LogicalNetworkCollection) (LogicalNetworkCollection, error))` -- Function `NewNetworkCollectionPage` parameter(s) have been changed from `(func(context.Context, NetworkCollection) (NetworkCollection, error))` to `(NetworkCollection, func(context.Context, NetworkCollection) (NetworkCollection, error))` -- Function `NewNetworkMappingCollectionPage` parameter(s) have been changed from `(func(context.Context, NetworkMappingCollection) (NetworkMappingCollection, error))` to `(NetworkMappingCollection, func(context.Context, NetworkMappingCollection) (NetworkMappingCollection, error))` -- Function `NewRecoveryPointCollectionPage` parameter(s) have been changed from `(func(context.Context, RecoveryPointCollection) (RecoveryPointCollection, error))` to `(RecoveryPointCollection, func(context.Context, RecoveryPointCollection) (RecoveryPointCollection, error))` -- Function `NewProtectableItemCollectionPage` parameter(s) have been changed from `(func(context.Context, ProtectableItemCollection) (ProtectableItemCollection, error))` to `(ProtectableItemCollection, func(context.Context, ProtectableItemCollection) (ProtectableItemCollection, error))` -- Function `NewProtectionContainerCollectionPage` parameter(s) have been changed from `(func(context.Context, ProtectionContainerCollection) (ProtectionContainerCollection, error))` to `(ProtectionContainerCollection, func(context.Context, ProtectionContainerCollection) (ProtectionContainerCollection, error))` -- Function `NewJobCollectionPage` parameter(s) have been changed from `(func(context.Context, JobCollection) (JobCollection, error))` to `(JobCollection, func(context.Context, JobCollection) (JobCollection, error))` -- Function `NewFabricCollectionPage` parameter(s) have been changed from `(func(context.Context, FabricCollection) (FabricCollection, error))` to `(FabricCollection, func(context.Context, FabricCollection) (FabricCollection, error))` -- Function `NewAlertCollectionPage` parameter(s) have been changed from `(func(context.Context, AlertCollection) (AlertCollection, error))` to `(AlertCollection, func(context.Context, AlertCollection) (AlertCollection, error))` -- Function `NewRecoveryPlanCollectionPage` parameter(s) have been changed from `(func(context.Context, RecoveryPlanCollection) (RecoveryPlanCollection, error))` to `(RecoveryPlanCollection, func(context.Context, RecoveryPlanCollection) (RecoveryPlanCollection, error))` -- Function `NewOperationsDiscoveryCollectionPage` parameter(s) have been changed from `(func(context.Context, OperationsDiscoveryCollection) (OperationsDiscoveryCollection, error))` to `(OperationsDiscoveryCollection, func(context.Context, OperationsDiscoveryCollection) (OperationsDiscoveryCollection, error))` -- Function `NewStorageClassificationMappingCollectionPage` parameter(s) have been changed from `(func(context.Context, StorageClassificationMappingCollection) (StorageClassificationMappingCollection, error))` to `(StorageClassificationMappingCollection, func(context.Context, StorageClassificationMappingCollection) (StorageClassificationMappingCollection, error))` -- Function `NewReplicationProtectedItemCollectionPage` parameter(s) have been changed from `(func(context.Context, ReplicationProtectedItemCollection) (ReplicationProtectedItemCollection, error))` to `(ReplicationProtectedItemCollection, func(context.Context, ReplicationProtectedItemCollection) (ReplicationProtectedItemCollection, error))` -- Function `NewVCenterCollectionPage` parameter(s) have been changed from `(func(context.Context, VCenterCollection) (VCenterCollection, error))` to `(VCenterCollection, func(context.Context, VCenterCollection) (VCenterCollection, error))` -- Function `NewEventCollectionPage` parameter(s) have been changed from `(func(context.Context, EventCollection) (EventCollection, error))` to `(EventCollection, func(context.Context, EventCollection) (EventCollection, error))` -- Function `NewMigrationRecoveryPointCollectionPage` parameter(s) have been changed from `(func(context.Context, MigrationRecoveryPointCollection) (MigrationRecoveryPointCollection, error))` to `(MigrationRecoveryPointCollection, func(context.Context, MigrationRecoveryPointCollection) (MigrationRecoveryPointCollection, error))` -- Function `NewProtectionContainerMappingCollectionPage` parameter(s) have been changed from `(func(context.Context, ProtectionContainerMappingCollection) (ProtectionContainerMappingCollection, error))` to `(ProtectionContainerMappingCollection, func(context.Context, ProtectionContainerMappingCollection) (ProtectionContainerMappingCollection, error))` -- Function `NewRecoveryServicesProviderCollectionPage` parameter(s) have been changed from `(func(context.Context, RecoveryServicesProviderCollection) (RecoveryServicesProviderCollection, error))` to `(RecoveryServicesProviderCollection, func(context.Context, RecoveryServicesProviderCollection) (RecoveryServicesProviderCollection, error))` -- Function `NewPolicyCollectionPage` parameter(s) have been changed from `(func(context.Context, PolicyCollection) (PolicyCollection, error))` to `(PolicyCollection, func(context.Context, PolicyCollection) (PolicyCollection, error))` - -## New Content - -- New field `TargetGeneration` in struct `VMwareCbtMigrationDetails` -- New field `FirmwareType` in struct `VMwareCbtMigrationDetails` -- New field `TargetAvailabilityZone` in struct `VMwareCbtMigrationDetails` -- New field `TargetAvailabilityZone` in struct `VMwareCbtEnableMigrationInput` -- New field `TargetAvailabilityZone` in struct `VMwareCbtUpdateMigrationItemInput` diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/CHANGELOG.md b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/CHANGELOG.md new file mode 100644 index 000000000000..a673837e335e --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/CHANGELOG.md @@ -0,0 +1,567 @@ +Generated from https://github.com/Azure/azure-rest-api-specs/tree/3c764635e7d442b3e74caf593029fcd440b3ef82 + +Code generator @microsoft.azure/autorest.go@~2.1.161 + +## Breaking Changes + +- Const `Unknown` type has been changed from `PresenceStatus` to `AgentUpgradeBlockedReason` +- Function `NewLogicalNetworkCollectionPage` parameter(s) have been changed from `(func(context.Context, LogicalNetworkCollection) (LogicalNetworkCollection, error))` to `(LogicalNetworkCollection, func(context.Context, LogicalNetworkCollection) (LogicalNetworkCollection, error))` +- Function `NewMigrationRecoveryPointCollectionPage` parameter(s) have been changed from `(func(context.Context, MigrationRecoveryPointCollection) (MigrationRecoveryPointCollection, error))` to `(MigrationRecoveryPointCollection, func(context.Context, MigrationRecoveryPointCollection) (MigrationRecoveryPointCollection, error))` +- Function `NewFabricCollectionPage` parameter(s) have been changed from `(func(context.Context, FabricCollection) (FabricCollection, error))` to `(FabricCollection, func(context.Context, FabricCollection) (FabricCollection, error))` +- Function `NewNetworkMappingCollectionPage` parameter(s) have been changed from `(func(context.Context, NetworkMappingCollection) (NetworkMappingCollection, error))` to `(NetworkMappingCollection, func(context.Context, NetworkMappingCollection) (NetworkMappingCollection, error))` +- Function `NewNetworkCollectionPage` parameter(s) have been changed from `(func(context.Context, NetworkCollection) (NetworkCollection, error))` to `(NetworkCollection, func(context.Context, NetworkCollection) (NetworkCollection, error))` +- Function `NewProtectionContainerCollectionPage` parameter(s) have been changed from `(func(context.Context, ProtectionContainerCollection) (ProtectionContainerCollection, error))` to `(ProtectionContainerCollection, func(context.Context, ProtectionContainerCollection) (ProtectionContainerCollection, error))` +- Function `NewRecoveryServicesProviderCollectionPage` parameter(s) have been changed from `(func(context.Context, RecoveryServicesProviderCollection) (RecoveryServicesProviderCollection, error))` to `(RecoveryServicesProviderCollection, func(context.Context, RecoveryServicesProviderCollection) (RecoveryServicesProviderCollection, error))` +- Function `NewVaultSettingCollectionPage` parameter(s) have been changed from `(func(context.Context, VaultSettingCollection) (VaultSettingCollection, error))` to `(VaultSettingCollection, func(context.Context, VaultSettingCollection) (VaultSettingCollection, error))` +- Function `NewJobCollectionPage` parameter(s) have been changed from `(func(context.Context, JobCollection) (JobCollection, error))` to `(JobCollection, func(context.Context, JobCollection) (JobCollection, error))` +- Function `NewAlertCollectionPage` parameter(s) have been changed from `(func(context.Context, AlertCollection) (AlertCollection, error))` to `(AlertCollection, func(context.Context, AlertCollection) (AlertCollection, error))` +- Function `NewVCenterCollectionPage` parameter(s) have been changed from `(func(context.Context, VCenterCollection) (VCenterCollection, error))` to `(VCenterCollection, func(context.Context, VCenterCollection) (VCenterCollection, error))` +- Function `NewReplicationProtectedItemCollectionPage` parameter(s) have been changed from `(func(context.Context, ReplicationProtectedItemCollection) (ReplicationProtectedItemCollection, error))` to `(ReplicationProtectedItemCollection, func(context.Context, ReplicationProtectedItemCollection) (ReplicationProtectedItemCollection, error))` +- Function `NewStorageClassificationCollectionPage` parameter(s) have been changed from `(func(context.Context, StorageClassificationCollection) (StorageClassificationCollection, error))` to `(StorageClassificationCollection, func(context.Context, StorageClassificationCollection) (StorageClassificationCollection, error))` +- Function `NewPolicyCollectionPage` parameter(s) have been changed from `(func(context.Context, PolicyCollection) (PolicyCollection, error))` to `(PolicyCollection, func(context.Context, PolicyCollection) (PolicyCollection, error))` +- Function `NewOperationsDiscoveryCollectionPage` parameter(s) have been changed from `(func(context.Context, OperationsDiscoveryCollection) (OperationsDiscoveryCollection, error))` to `(OperationsDiscoveryCollection, func(context.Context, OperationsDiscoveryCollection) (OperationsDiscoveryCollection, error))` +- Function `NewProtectionContainerMappingCollectionPage` parameter(s) have been changed from `(func(context.Context, ProtectionContainerMappingCollection) (ProtectionContainerMappingCollection, error))` to `(ProtectionContainerMappingCollection, func(context.Context, ProtectionContainerMappingCollection) (ProtectionContainerMappingCollection, error))` +- Function `NewStorageClassificationMappingCollectionPage` parameter(s) have been changed from `(func(context.Context, StorageClassificationMappingCollection) (StorageClassificationMappingCollection, error))` to `(StorageClassificationMappingCollection, func(context.Context, StorageClassificationMappingCollection) (StorageClassificationMappingCollection, error))` +- Function `NewEventCollectionPage` parameter(s) have been changed from `(func(context.Context, EventCollection) (EventCollection, error))` to `(EventCollection, func(context.Context, EventCollection) (EventCollection, error))` +- Function `NewRecoveryPlanCollectionPage` parameter(s) have been changed from `(func(context.Context, RecoveryPlanCollection) (RecoveryPlanCollection, error))` to `(RecoveryPlanCollection, func(context.Context, RecoveryPlanCollection) (RecoveryPlanCollection, error))` +- Function `NewTargetComputeSizeCollectionPage` parameter(s) have been changed from `(func(context.Context, TargetComputeSizeCollection) (TargetComputeSizeCollection, error))` to `(TargetComputeSizeCollection, func(context.Context, TargetComputeSizeCollection) (TargetComputeSizeCollection, error))` +- Function `NewRecoveryPointCollectionPage` parameter(s) have been changed from `(func(context.Context, RecoveryPointCollection) (RecoveryPointCollection, error))` to `(RecoveryPointCollection, func(context.Context, RecoveryPointCollection) (RecoveryPointCollection, error))` +- Function `NewMigrationItemCollectionPage` parameter(s) have been changed from `(func(context.Context, MigrationItemCollection) (MigrationItemCollection, error))` to `(MigrationItemCollection, func(context.Context, MigrationItemCollection) (MigrationItemCollection, error))` +- Function `NewProtectableItemCollectionPage` parameter(s) have been changed from `(func(context.Context, ProtectableItemCollection) (ProtectableItemCollection, error))` to `(ProtectableItemCollection, func(context.Context, ProtectableItemCollection) (ProtectableItemCollection, error))` +- Type of `TestFailoverInputProperties.ProviderSpecificDetails` has been changed from `BasicProviderSpecificFailoverInput` to `BasicTestFailoverProviderSpecificInput` +- Type of `UnplannedFailoverInputProperties.ProviderSpecificDetails` has been changed from `BasicProviderSpecificFailoverInput` to `BasicUnplannedFailoverProviderSpecificInput` +- Const `NotPresent` has been removed +- Const `Present` has been removed + +## New Content + +- New const `MobilityAgentUpgradeStateCommit` +- New const `AutoProtectionOfDataDiskDisabled` +- New const `AvailabilitySet` +- New const `RebootRequired` +- New const `InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageRcm` +- New const `ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetailsResourceTypeRecoveryProximityPlacementGroupCustomDetails` +- New const `NotProtected` +- New const `ResourceTypeBasicRecoveryResourceGroupCustomDetailsResourceTypeRecoveryResourceGroupCustomDetails` +- New const `IncompatibleApplianceVersion` +- New const `DistroIsNotReported` +- New const `PresenceStatusNotPresent` +- New const `InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageAzureV2` +- New const `ResourceTypeBasicStorageAccountCustomDetailsResourceTypeExisting` +- New const `InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageRcm` +- New const `RecoveryPlanPointTypeLatestApplicationConsistent` +- New const `InstanceTypeBasicFabricSpecificDetailsInstanceTypeInMageRcm` +- New const `InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMage` +- New const `MissingUpgradePath` +- New const `AutoProtectionOfDataDiskEnabled` +- New const `RecoveryPlanPointTypeLatestProcessed` +- New const `RecoveryPlanPointTypeLatest` +- New const `ResourceTypeBasicStorageAccountCustomDetailsResourceTypeStorageAccountCustomDetails` +- New const `PresenceStatusPresent` +- New const `InstanceTypeBasicCreateProtectionIntentProviderSpecificDetailsInstanceTypeA2A` +- New const `MobilityAgentUpgradeStateStarted` +- New const `InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure` +- New const `InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageAzureV2` +- New const `InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageRcm` +- New const `ResourceTypeBasicRecoveryAvailabilitySetCustomDetailsResourceTypeExisting` +- New const `ResourceTypeProtectionProfileCustomDetails` +- New const `InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeInMageRcm` +- New const `MobilityAgentUpgradeStateNone` +- New const `InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeUnplannedFailoverProviderSpecificInput` +- New const `InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageRcm` +- New const `UnsupportedProtectionScenario` +- New const `ResourceTypeBasicRecoveryResourceGroupCustomDetailsResourceTypeExisting` +- New const `ResyncStateNone` +- New const `ResourceTypeNew` +- New const `InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeTestFailoverProviderSpecificInput` +- New const `ResourceTypeBasicRecoveryVirtualNetworkCustomDetailsResourceTypeRecoveryVirtualNetworkCustomDetails` +- New const `InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettingsInstanceTypeA2A` +- New const `ResourceTypeBasicRecoveryAvailabilitySetCustomDetailsResourceTypeRecoveryAvailabilitySetCustomDetails` +- New const `MobilityAgentUpgradeStateCompleted` +- New const `ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetailsResourceTypeExisting` +- New const `InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageRcm` +- New const `InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure` +- New const `AgentNoHeartbeat` +- New const `AlreadyOnLatestVersion` +- New const `ResourceTypeBasicRecoveryVirtualNetworkCustomDetailsResourceTypeExisting` +- New const `DistroNotSupportedForUpgrade` +- New const `InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageRcm` +- New const `InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeInMageRcm` +- New const `InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMage` +- New const `RcmProxyNoHeartbeat` +- New const `ResourceTypeExisting` +- New const `InstanceTypeInMageRcm` +- New const `RecoveryPlanPointTypeLatestCrashConsistent` +- New const `InvalidDriverVersion` +- New const `InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageRcm` +- New const `InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeA2A` +- New const `AutoProtectionOfDataDiskStatusEnabled` +- New const `InvalidAgentVersion` +- New const `InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageRcm` +- New const `AvailabilityZone` +- New const `ResyncStateStartedResynchronization` +- New const `ResyncStatePreparedForResynchronization` +- New const `ProcessServerNoHeartbeat` +- New const `InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettingsInstanceTypeReplicationProtectionIntentProviderSpecificSettings` +- New const `InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageRcm` +- New const `Single` +- New const `AutoProtectionOfDataDiskStatusDisabled` +- New const `InstanceTypeBasicCreateProtectionIntentProviderSpecificDetailsInstanceTypeCreateProtectionIntentProviderSpecificDetails` +- New const `PresenceStatusUnknown` +- New const `InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeA2A` +- New function `InMageAzureV2UnplannedFailoverInput.AsBasicUnplannedFailoverProviderSpecificInput() (BasicUnplannedFailoverProviderSpecificInput, bool)` +- New function `InMageUnplannedFailoverInput.MarshalJSON() ([]byte, error)` +- New function `A2AUnplannedFailoverInput.AsBasicUnplannedFailoverProviderSpecificInput() (BasicUnplannedFailoverProviderSpecificInput, bool)` +- New function `TestFailoverProviderSpecificInput.AsHyperVReplicaAzureTestFailoverInput() (*HyperVReplicaAzureTestFailoverInput, bool)` +- New function `InMageRcmPolicyDetails.AsA2APolicyDetails() (*A2APolicyDetails, bool)` +- New function `RcmAzureMigrationPolicyDetails.AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool)` +- New function `RecoveryVirtualNetworkCustomDetails.AsRecoveryVirtualNetworkCustomDetails() (*RecoveryVirtualNetworkCustomDetails, bool)` +- New function `InMageRcmApplyRecoveryPointInput.AsInMageAzureV2ApplyRecoveryPointInput() (*InMageAzureV2ApplyRecoveryPointInput, bool)` +- New function `*ReplicationProtectionIntentCollectionPage.Next() error` +- New function `NewReplicationProtectionIntentsClient(string, string, string) ReplicationProtectionIntentsClient` +- New function `UnplannedFailoverProviderSpecificInput.AsInMageUnplannedFailoverInput() (*InMageUnplannedFailoverInput, bool)` +- New function `InMageAzureV2EventDetails.AsInMageRcmEventDetails() (*InMageRcmEventDetails, bool)` +- New function `InMageRcmPolicyDetails.AsHyperVReplicaPolicyDetails() (*HyperVReplicaPolicyDetails, bool)` +- New function `InMageRcmReplicationDetails.AsInMageAzureV2ReplicationDetails() (*InMageAzureV2ReplicationDetails, bool)` +- New function `InMageRcmEnableProtectionInput.AsInMageRcmEnableProtectionInput() (*InMageRcmEnableProtectionInput, bool)` +- New function `HyperVReplicaAzureTestFailoverInput.AsInMageAzureV2TestFailoverInput() (*InMageAzureV2TestFailoverInput, bool)` +- New function `InMageRcmPolicyDetails.AsHyperVReplicaAzurePolicyDetails() (*HyperVReplicaAzurePolicyDetails, bool)` +- New function `InMageRcmReplicationDetails.AsHyperVReplicaReplicationDetails() (*HyperVReplicaReplicationDetails, bool)` +- New function `InMageRcmFabricSpecificDetails.AsHyperVSiteDetails() (*HyperVSiteDetails, bool)` +- New function `NewReplicationProtectionIntentsClientWithBaseURI(string, string, string, string) ReplicationProtectionIntentsClient` +- New function `ExistingStorageAccount.AsStorageAccountCustomDetails() (*StorageAccountCustomDetails, bool)` +- New function `A2ACreateProtectionIntentInput.AsCreateProtectionIntentProviderSpecificDetails() (*CreateProtectionIntentProviderSpecificDetails, bool)` +- New function `HyperVReplicaAzureTestFailoverInput.AsHyperVReplicaAzureTestFailoverInput() (*HyperVReplicaAzureTestFailoverInput, bool)` +- New function `PossibleResourceTypeBasicStorageAccountCustomDetailsValues() []ResourceTypeBasicStorageAccountCustomDetails` +- New function `ExistingRecoveryAvailabilitySet.AsExistingRecoveryAvailabilitySet() (*ExistingRecoveryAvailabilitySet, bool)` +- New function `InMageRcmTestFailoverInput.AsHyperVReplicaAzureTestFailoverInput() (*HyperVReplicaAzureTestFailoverInput, bool)` +- New function `AzureFabricSpecificDetails.AsInMageRcmFabricSpecificDetails() (*InMageRcmFabricSpecificDetails, bool)` +- New function `CreateProtectionIntentProviderSpecificDetails.AsBasicCreateProtectionIntentProviderSpecificDetails() (BasicCreateProtectionIntentProviderSpecificDetails, bool)` +- New function `InMageRcmTestFailoverInput.MarshalJSON() ([]byte, error)` +- New function `InMageRcmRecoveryPointDetails.AsBasicProviderSpecificRecoveryPointDetails() (BasicProviderSpecificRecoveryPointDetails, bool)` +- New function `ProtectionProfileCustomDetails.AsProtectionProfileCustomDetails() (*ProtectionProfileCustomDetails, bool)` +- New function `InMageRcmUpdateReplicationProtectedItemInput.AsInMageAzureV2UpdateReplicationProtectedItemInput() (*InMageAzureV2UpdateReplicationProtectedItemInput, bool)` +- New function `RecoveryVirtualNetworkCustomDetails.AsExistingRecoveryVirtualNetwork() (*ExistingRecoveryVirtualNetwork, bool)` +- New function `InMageTestFailoverInput.MarshalJSON() ([]byte, error)` +- New function `ExistingRecoveryProximityPlacementGroup.AsBasicRecoveryProximityPlacementGroupCustomDetails() (BasicRecoveryProximityPlacementGroupCustomDetails, bool)` +- New function `HyperVReplicaAzureTestFailoverInput.AsInMageTestFailoverInput() (*InMageTestFailoverInput, bool)` +- New function `InMageRcmReplicationDetails.AsBasicReplicationProviderSpecificSettings() (BasicReplicationProviderSpecificSettings, bool)` +- New function `HyperVReplicaBlueReplicationDetails.AsInMageRcmReplicationDetails() (*InMageRcmReplicationDetails, bool)` +- New function `RecoveryPlanInMageRcmFailoverInput.MarshalJSON() ([]byte, error)` +- New function `InMageTestFailoverInput.AsHyperVReplicaAzureTestFailoverInput() (*HyperVReplicaAzureTestFailoverInput, bool)` +- New function `InMageRcmTestFailoverInput.AsA2ATestFailoverInput() (*A2ATestFailoverInput, bool)` +- New function `HyperVReplicaAzureUnplannedFailoverInput.AsBasicUnplannedFailoverProviderSpecificInput() (BasicUnplannedFailoverProviderSpecificInput, bool)` +- New function `ReplicationProtectionIntentsClient.CreatePreparer(context.Context, string, CreateProtectionIntentInput) (*http.Request, error)` +- New function `CreateProtectionIntentProviderSpecificDetails.AsCreateProtectionIntentProviderSpecificDetails() (*CreateProtectionIntentProviderSpecificDetails, bool)` +- New function `ReplicationProtectionIntentProviderSpecificSettings.AsBasicReplicationProtectionIntentProviderSpecificSettings() (BasicReplicationProtectionIntentProviderSpecificSettings, bool)` +- New function `InMageTestFailoverInput.AsInMageRcmTestFailoverInput() (*InMageRcmTestFailoverInput, bool)` +- New function `VMwareCbtPolicyCreationInput.AsInMageRcmPolicyCreationInput() (*InMageRcmPolicyCreationInput, bool)` +- New function `InMageRcmPolicyCreationInput.AsInMagePolicyInput() (*InMagePolicyInput, bool)` +- New function `InMageRcmReplicationDetails.AsHyperVReplicaBaseReplicationDetails() (*HyperVReplicaBaseReplicationDetails, bool)` +- New function `ExistingRecoveryProximityPlacementGroup.MarshalJSON() ([]byte, error)` +- New function `InMageRcmEnableProtectionInput.MarshalJSON() ([]byte, error)` +- New function `A2ATestFailoverInput.AsBasicTestFailoverProviderSpecificInput() (BasicTestFailoverProviderSpecificInput, bool)` +- New function `InMageRcmLastAgentUpgradeErrorDetails.MarshalJSON() ([]byte, error)` +- New function `InMageRcmEventDetails.AsHyperVReplica2012EventDetails() (*HyperVReplica2012EventDetails, bool)` +- New function `InMageRcmUnplannedFailoverInput.AsInMageAzureV2UnplannedFailoverInput() (*InMageAzureV2UnplannedFailoverInput, bool)` +- New function `A2ATestFailoverInput.AsInMageAzureV2TestFailoverInput() (*InMageAzureV2TestFailoverInput, bool)` +- New function `InMageRcmReplicationDetails.AsInMageRcmReplicationDetails() (*InMageRcmReplicationDetails, bool)` +- New function `ReplicationProtectionIntentCollectionPage.Response() ReplicationProtectionIntentCollection` +- New function `StorageAccountCustomDetails.AsExistingStorageAccount() (*ExistingStorageAccount, bool)` +- New function `ReplicationProtectionIntentProviderSpecificSettings.MarshalJSON() ([]byte, error)` +- New function `PossibleMobilityAgentUpgradeStateValues() []MobilityAgentUpgradeState` +- New function `A2AUnplannedFailoverInput.AsA2AUnplannedFailoverInput() (*A2AUnplannedFailoverInput, bool)` +- New function `InMageAzureV2TestFailoverInput.MarshalJSON() ([]byte, error)` +- New function `InMageRcmFabricSpecificDetails.AsVMwareV2FabricSpecificDetails() (*VMwareV2FabricSpecificDetails, bool)` +- New function `RecoveryAvailabilitySetCustomDetails.AsBasicRecoveryAvailabilitySetCustomDetails() (BasicRecoveryAvailabilitySetCustomDetails, bool)` +- New function `ReplicationProtectionIntentCollection.IsEmpty() bool` +- New function `A2AReplicationIntentDetails.AsBasicReplicationProtectionIntentProviderSpecificSettings() (BasicReplicationProtectionIntentProviderSpecificSettings, bool)` +- New function `RecoveryPlanInMageRcmFailoverInput.AsRecoveryPlanInMageFailoverInput() (*RecoveryPlanInMageFailoverInput, bool)` +- New function `RecoveryProximityPlacementGroupCustomDetails.AsBasicRecoveryProximityPlacementGroupCustomDetails() (BasicRecoveryProximityPlacementGroupCustomDetails, bool)` +- New function `InMageRcmTestFailoverInput.AsInMageTestFailoverInput() (*InMageTestFailoverInput, bool)` +- New function `ProtectionProfileCustomDetails.AsBasicProtectionProfileCustomDetails() (BasicProtectionProfileCustomDetails, bool)` +- New function `InMageAzureV2PolicyInput.AsInMageRcmPolicyCreationInput() (*InMageRcmPolicyCreationInput, bool)` +- New function `ReplicationProtectionIntentsClient.Get(context.Context, string) (ReplicationProtectionIntent, error)` +- New function `InMageRcmUpdateReplicationProtectedItemInput.AsA2AUpdateReplicationProtectedItemInput() (*A2AUpdateReplicationProtectedItemInput, bool)` +- New function `ExistingRecoveryRecoveryResourceGroup.AsRecoveryResourceGroupCustomDetails() (*RecoveryResourceGroupCustomDetails, bool)` +- New function `InMageRcmFabricSpecificDetails.AsInMageRcmFabricSpecificDetails() (*InMageRcmFabricSpecificDetails, bool)` +- New function `A2ARecoveryPointDetails.AsInMageRcmRecoveryPointDetails() (*InMageRcmRecoveryPointDetails, bool)` +- New function `RecoveryPlanInMageRcmFailoverInput.AsRecoveryPlanInMageRcmFailoverInput() (*RecoveryPlanInMageRcmFailoverInput, bool)` +- New function `ReplicationProtectionIntentProviderSpecificSettings.AsReplicationProtectionIntentProviderSpecificSettings() (*ReplicationProtectionIntentProviderSpecificSettings, bool)` +- New function `HyperVReplicaBluePolicyDetails.AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool)` +- New function `TestFailoverProviderSpecificInput.MarshalJSON() ([]byte, error)` +- New function `RecoveryResourceGroupCustomDetails.MarshalJSON() ([]byte, error)` +- New function `InMageRcmEventDetails.AsInMageAzureV2EventDetails() (*InMageAzureV2EventDetails, bool)` +- New function `InMageRcmUnplannedFailoverInput.AsBasicUnplannedFailoverProviderSpecificInput() (BasicUnplannedFailoverProviderSpecificInput, bool)` +- New function `RecoveryPlanInMageFailoverInput.AsRecoveryPlanInMageRcmFailoverInput() (*RecoveryPlanInMageRcmFailoverInput, bool)` +- New function `A2AUnplannedFailoverInput.AsInMageUnplannedFailoverInput() (*InMageUnplannedFailoverInput, bool)` +- New function `RecoveryAvailabilitySetCustomDetails.MarshalJSON() ([]byte, error)` +- New function `HyperVSiteDetails.AsInMageRcmFabricSpecificDetails() (*InMageRcmFabricSpecificDetails, bool)` +- New function `RecoveryPlanInMageRcmFailoverInput.AsRecoveryPlanA2AFailoverInput() (*RecoveryPlanA2AFailoverInput, bool)` +- New function `InMageRcmPolicyDetails.AsHyperVReplicaBasePolicyDetails() (*HyperVReplicaBasePolicyDetails, bool)` +- New function `HyperVReplicaAzureUpdateReplicationProtectedItemInput.AsInMageRcmUpdateReplicationProtectedItemInput() (*InMageRcmUpdateReplicationProtectedItemInput, bool)` +- New function `InMageRcmReplicationDetails.AsInMageReplicationDetails() (*InMageReplicationDetails, bool)` +- New function `ExistingProtectionProfile.AsNewProtectionProfile() (*NewProtectionProfile, bool)` +- New function `HyperVReplicaBasePolicyDetails.AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool)` +- New function `ExistingRecoveryAvailabilitySet.AsBasicRecoveryAvailabilitySetCustomDetails() (BasicRecoveryAvailabilitySetCustomDetails, bool)` +- New function `A2AEnableProtectionInput.AsInMageRcmEnableProtectionInput() (*InMageRcmEnableProtectionInput, bool)` +- New function `PolicyProviderSpecificDetails.AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool)` +- New function `HyperVReplicaAzurePolicyDetails.AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool)` +- New function `A2AReplicationIntentDetails.MarshalJSON() ([]byte, error)` +- New function `InMagePolicyDetails.AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool)` +- New function `PossibleResourceTypeBasicRecoveryProximityPlacementGroupCustomDetailsValues() []ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetails` +- New function `InMageEnableProtectionInput.AsInMageRcmEnableProtectionInput() (*InMageRcmEnableProtectionInput, bool)` +- New function `CreateProtectionIntentProviderSpecificDetails.MarshalJSON() ([]byte, error)` +- New function `InMageRcmTestFailoverInput.AsBasicTestFailoverProviderSpecificInput() (BasicTestFailoverProviderSpecificInput, bool)` +- New function `InMageRcmEventDetails.AsBasicEventProviderSpecificDetails() (BasicEventProviderSpecificDetails, bool)` +- New function `InMageRcmEnableProtectionInput.AsBasicEnableProtectionProviderSpecificInput() (BasicEnableProtectionProviderSpecificInput, bool)` +- New function `InMageRcmPolicyCreationInput.AsPolicyProviderSpecificInput() (*PolicyProviderSpecificInput, bool)` +- New function `*ReplicationProtectionIntentCollectionIterator.NextWithContext(context.Context) error` +- New function `VMwareV2FabricCreationInput.AsInMageRcmFabricCreationInput() (*InMageRcmFabricCreationInput, bool)` +- New function `ReplicationProtectionIntentCollectionIterator.Response() ReplicationProtectionIntentCollection` +- New function `PossibleAgentUpgradeBlockedReasonValues() []AgentUpgradeBlockedReason` +- New function `InMageRcmApplyRecoveryPointInput.AsBasicApplyRecoveryPointProviderSpecificInput() (BasicApplyRecoveryPointProviderSpecificInput, bool)` +- New function `RecoveryPlanHyperVReplicaAzureFailbackInput.AsRecoveryPlanInMageRcmFailoverInput() (*RecoveryPlanInMageRcmFailoverInput, bool)` +- New function `SanEnableProtectionInput.AsInMageRcmEnableProtectionInput() (*InMageRcmEnableProtectionInput, bool)` +- New function `*ReplicationProtectionIntentProperties.UnmarshalJSON([]byte) error` +- New function `A2AUnplannedFailoverInput.AsInMageAzureV2UnplannedFailoverInput() (*InMageAzureV2UnplannedFailoverInput, bool)` +- New function `InMageRcmEventDetails.AsHyperVReplicaAzureEventDetails() (*HyperVReplicaAzureEventDetails, bool)` +- New function `ReplicationProtectionIntentsClient.GetResponder(*http.Response) (ReplicationProtectionIntent, error)` +- New function `PossibleInstanceTypeBasicTestFailoverProviderSpecificInputValues() []InstanceTypeBasicTestFailoverProviderSpecificInput` +- New function `RecoveryPlanInMageAzureV2FailoverInput.AsRecoveryPlanInMageRcmFailoverInput() (*RecoveryPlanInMageRcmFailoverInput, bool)` +- New function `InMageBasePolicyDetails.AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool)` +- New function `PossibleResourceTypeBasicRecoveryResourceGroupCustomDetailsValues() []ResourceTypeBasicRecoveryResourceGroupCustomDetails` +- New function `InMageAzureV2TestFailoverInput.AsInMageAzureV2TestFailoverInput() (*InMageAzureV2TestFailoverInput, bool)` +- New function `HyperVReplicaAzureTestFailoverInput.MarshalJSON() ([]byte, error)` +- New function `InMageTestFailoverInput.AsA2ATestFailoverInput() (*A2ATestFailoverInput, bool)` +- New function `PossibleRecoveryPlanPointTypeValues() []RecoveryPlanPointType` +- New function `InMageRcmEventDetails.AsEventProviderSpecificDetails() (*EventProviderSpecificDetails, bool)` +- New function `InMageRcmRecoveryPointDetails.AsA2ARecoveryPointDetails() (*A2ARecoveryPointDetails, bool)` +- New function `TestFailoverProviderSpecificInput.AsTestFailoverProviderSpecificInput() (*TestFailoverProviderSpecificInput, bool)` +- New function `InMageRcmEnableProtectionInput.AsEnableProtectionProviderSpecificInput() (*EnableProtectionProviderSpecificInput, bool)` +- New function `HyperVReplicaPolicyDetails.AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool)` +- New function `InMageUnplannedFailoverInput.AsHyperVReplicaAzureUnplannedFailoverInput() (*HyperVReplicaAzureUnplannedFailoverInput, bool)` +- New function `ExistingRecoveryVirtualNetwork.AsBasicRecoveryVirtualNetworkCustomDetails() (BasicRecoveryVirtualNetworkCustomDetails, bool)` +- New function `InMageRcmPolicyCreationInput.AsA2APolicyCreationInput() (*A2APolicyCreationInput, bool)` +- New function `InMageUnplannedFailoverInput.AsInMageAzureV2UnplannedFailoverInput() (*InMageAzureV2UnplannedFailoverInput, bool)` +- New function `InMageRcmUpdateReplicationProtectedItemInput.AsInMageRcmUpdateReplicationProtectedItemInput() (*InMageRcmUpdateReplicationProtectedItemInput, bool)` +- New function `UnplannedFailoverProviderSpecificInput.AsUnplannedFailoverProviderSpecificInput() (*UnplannedFailoverProviderSpecificInput, bool)` +- New function `InMageRcmPolicyCreationInput.MarshalJSON() ([]byte, error)` +- New function `A2ACreateProtectionIntentInput.AsA2ACreateProtectionIntentInput() (*A2ACreateProtectionIntentInput, bool)` +- New function `InMageRcmFabricCreationInput.AsAzureFabricCreationInput() (*AzureFabricCreationInput, bool)` +- New function `InMageRcmUpdateReplicationProtectedItemInput.AsBasicUpdateReplicationProtectedItemProviderInput() (BasicUpdateReplicationProtectedItemProviderInput, bool)` +- New function `RecoveryPlanA2AFailoverInput.AsRecoveryPlanInMageRcmFailoverInput() (*RecoveryPlanInMageRcmFailoverInput, bool)` +- New function `A2AEventDetails.AsInMageRcmEventDetails() (*InMageRcmEventDetails, bool)` +- New function `ExistingStorageAccount.AsBasicStorageAccountCustomDetails() (BasicStorageAccountCustomDetails, bool)` +- New function `A2APolicyDetails.AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool)` +- New function `InMageRcmEnableProtectionInput.AsInMageAzureV2EnableProtectionInput() (*InMageAzureV2EnableProtectionInput, bool)` +- New function `PossibleResourceTypeBasicRecoveryAvailabilitySetCustomDetailsValues() []ResourceTypeBasicRecoveryAvailabilitySetCustomDetails` +- New function `RecoveryProximityPlacementGroupCustomDetails.MarshalJSON() ([]byte, error)` +- New function `RecoveryPlanInMageRcmFailoverInput.AsRecoveryPlanHyperVReplicaAzureFailbackInput() (*RecoveryPlanHyperVReplicaAzureFailbackInput, bool)` +- New function `A2AUpdateReplicationProtectedItemInput.AsInMageRcmUpdateReplicationProtectedItemInput() (*InMageRcmUpdateReplicationProtectedItemInput, bool)` +- New function `RecoveryResourceGroupCustomDetails.AsRecoveryResourceGroupCustomDetails() (*RecoveryResourceGroupCustomDetails, bool)` +- New function `HyperVReplicaPolicyInput.AsInMageRcmPolicyCreationInput() (*InMageRcmPolicyCreationInput, bool)` +- New function `InMageAzureV2RecoveryPointDetails.AsInMageRcmRecoveryPointDetails() (*InMageRcmRecoveryPointDetails, bool)` +- New function `InMageRcmPolicyCreationInput.AsInMageAzureV2PolicyInput() (*InMageAzureV2PolicyInput, bool)` +- New function `ReplicationProtectionIntentsClient.CreateSender(*http.Request) (*http.Response, error)` +- New function `ExistingProtectionProfile.AsExistingProtectionProfile() (*ExistingProtectionProfile, bool)` +- New function `A2AReplicationIntentDetails.AsReplicationProtectionIntentProviderSpecificSettings() (*ReplicationProtectionIntentProviderSpecificSettings, bool)` +- New function `A2ATestFailoverInput.AsInMageRcmTestFailoverInput() (*InMageRcmTestFailoverInput, bool)` +- New function `AzureFabricCreationInput.AsInMageRcmFabricCreationInput() (*InMageRcmFabricCreationInput, bool)` +- New function `InMageAzureV2TestFailoverInput.AsInMageRcmTestFailoverInput() (*InMageRcmTestFailoverInput, bool)` +- New function `VmwareCbtPolicyDetails.AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool)` +- New function `ReplicationProtectionIntentsClient.ListPreparer(context.Context) (*http.Request, error)` +- New function `ReplicationProtectionIntentsClient.ListResponder(*http.Response) (ReplicationProtectionIntentCollection, error)` +- New function `NewProtectionProfile.AsExistingProtectionProfile() (*ExistingProtectionProfile, bool)` +- New function `A2ATestFailoverInput.AsA2ATestFailoverInput() (*A2ATestFailoverInput, bool)` +- New function `UpdateReplicationProtectedItemProviderInput.AsInMageRcmUpdateReplicationProtectedItemInput() (*InMageRcmUpdateReplicationProtectedItemInput, bool)` +- New function `InMageRcmTestFailoverInput.AsTestFailoverProviderSpecificInput() (*TestFailoverProviderSpecificInput, bool)` +- New function `FabricSpecificCreationInput.AsInMageRcmFabricCreationInput() (*InMageRcmFabricCreationInput, bool)` +- New function `A2AUnplannedFailoverInput.MarshalJSON() ([]byte, error)` +- New function `UnplannedFailoverProviderSpecificInput.MarshalJSON() ([]byte, error)` +- New function `ReplicationProtectionIntentsClient.CreateResponder(*http.Response) (ReplicationProtectionIntent, error)` +- New function `ExistingRecoveryVirtualNetwork.AsExistingRecoveryVirtualNetwork() (*ExistingRecoveryVirtualNetwork, bool)` +- New function `InMageRcmFabricCreationInput.AsFabricSpecificCreationInput() (*FabricSpecificCreationInput, bool)` +- New function `ReplicationProtectionIntentCollectionPage.Values() []ReplicationProtectionIntent` +- New function `ReplicationProtectionIntentCollectionIterator.Value() ReplicationProtectionIntent` +- New function `ExistingRecoveryRecoveryResourceGroup.AsExistingRecoveryRecoveryResourceGroup() (*ExistingRecoveryRecoveryResourceGroup, bool)` +- New function `InMageRcmFabricSpecificDetails.AsVMwareDetails() (*VMwareDetails, bool)` +- New function `HyperVReplicaAzureEnableProtectionInput.AsInMageRcmEnableProtectionInput() (*InMageRcmEnableProtectionInput, bool)` +- New function `ExistingProtectionProfile.AsBasicProtectionProfileCustomDetails() (BasicProtectionProfileCustomDetails, bool)` +- New function `InMageRcmReplicationDetails.AsHyperVReplicaAzureReplicationDetails() (*HyperVReplicaAzureReplicationDetails, bool)` +- New function `ExistingStorageAccount.AsExistingStorageAccount() (*ExistingStorageAccount, bool)` +- New function `InMageRcmPolicyCreationInput.AsVMwareCbtPolicyCreationInput() (*VMwareCbtPolicyCreationInput, bool)` +- New function `InMageRcmPolicyDetails.AsHyperVReplicaBluePolicyDetails() (*HyperVReplicaBluePolicyDetails, bool)` +- New function `TestFailoverProviderSpecificInput.AsInMageAzureV2TestFailoverInput() (*InMageAzureV2TestFailoverInput, bool)` +- New function `EventProviderSpecificDetails.AsInMageRcmEventDetails() (*InMageRcmEventDetails, bool)` +- New function `NewProtectionProfile.AsBasicProtectionProfileCustomDetails() (BasicProtectionProfileCustomDetails, bool)` +- New function `RecoveryProximityPlacementGroupCustomDetails.AsExistingRecoveryProximityPlacementGroup() (*ExistingRecoveryProximityPlacementGroup, bool)` +- New function `*A2ACreateProtectionIntentInput.UnmarshalJSON([]byte) error` +- New function `RecoveryPlanInMageRcmFailoverInput.AsBasicRecoveryPlanProviderSpecificFailoverInput() (BasicRecoveryPlanProviderSpecificFailoverInput, bool)` +- New function `A2AApplyRecoveryPointInput.AsInMageRcmApplyRecoveryPointInput() (*InMageRcmApplyRecoveryPointInput, bool)` +- New function `PolicyProviderSpecificInput.AsInMageRcmPolicyCreationInput() (*InMageRcmPolicyCreationInput, bool)` +- New function `InMageRcmAgentUpgradeBlockingErrorDetails.MarshalJSON() ([]byte, error)` +- New function `VmmDetails.AsInMageRcmFabricSpecificDetails() (*InMageRcmFabricSpecificDetails, bool)` +- New function `HyperVReplicaReplicationDetails.AsInMageRcmReplicationDetails() (*InMageRcmReplicationDetails, bool)` +- New function `RecoveryPlanHyperVReplicaAzureFailoverInput.AsRecoveryPlanInMageRcmFailoverInput() (*RecoveryPlanInMageRcmFailoverInput, bool)` +- New function `HyperVReplicaAzureTestFailoverInput.AsA2ATestFailoverInput() (*A2ATestFailoverInput, bool)` +- New function `InMageRcmPolicyDetails.AsVmwareCbtPolicyDetails() (*VmwareCbtPolicyDetails, bool)` +- New function `InMageRcmPolicyDetails.AsInMagePolicyDetails() (*InMagePolicyDetails, bool)` +- New function `A2ATestFailoverInput.AsTestFailoverProviderSpecificInput() (*TestFailoverProviderSpecificInput, bool)` +- New function `HyperVReplicaAzureApplyRecoveryPointInput.AsInMageRcmApplyRecoveryPointInput() (*InMageRcmApplyRecoveryPointInput, bool)` +- New function `A2APolicyCreationInput.AsInMageRcmPolicyCreationInput() (*InMageRcmPolicyCreationInput, bool)` +- New function `PossibleAutoProtectionOfDataDiskValues() []AutoProtectionOfDataDisk` +- New function `A2AUnplannedFailoverInput.AsUnplannedFailoverProviderSpecificInput() (*UnplannedFailoverProviderSpecificInput, bool)` +- New function `HyperVReplicaAzureTestFailoverInput.AsInMageRcmTestFailoverInput() (*InMageRcmTestFailoverInput, bool)` +- New function `HyperVReplica2012R2EventDetails.AsInMageRcmEventDetails() (*InMageRcmEventDetails, bool)` +- New function `InMageAzureV2TestFailoverInput.AsInMageTestFailoverInput() (*InMageTestFailoverInput, bool)` +- New function `CreateProtectionIntentProviderSpecificDetails.AsA2ACreateProtectionIntentInput() (*A2ACreateProtectionIntentInput, bool)` +- New function `VMwareV2FabricSpecificDetails.AsInMageRcmFabricSpecificDetails() (*InMageRcmFabricSpecificDetails, bool)` +- New function `InMageAzureV2TestFailoverInput.AsBasicTestFailoverProviderSpecificInput() (BasicTestFailoverProviderSpecificInput, bool)` +- New function `ReplicationProtectionIntentsClient.GetSender(*http.Request) (*http.Response, error)` +- New function `NewProtectionProfile.MarshalJSON() ([]byte, error)` +- New function `UnplannedFailoverProviderSpecificInput.AsHyperVReplicaAzureUnplannedFailoverInput() (*HyperVReplicaAzureUnplannedFailoverInput, bool)` +- New function `ExistingRecoveryRecoveryResourceGroup.AsBasicRecoveryResourceGroupCustomDetails() (BasicRecoveryResourceGroupCustomDetails, bool)` +- New function `NewReplicationProtectionIntentCollectionIterator(ReplicationProtectionIntentCollectionPage) ReplicationProtectionIntentCollectionIterator` +- New function `NewProtectionProfile.AsProtectionProfileCustomDetails() (*ProtectionProfileCustomDetails, bool)` +- New function `PossibleAutoProtectionOfDataDiskStatusValues() []AutoProtectionOfDataDiskStatus` +- New function `ExistingRecoveryProximityPlacementGroup.AsRecoveryProximityPlacementGroupCustomDetails() (*RecoveryProximityPlacementGroupCustomDetails, bool)` +- New function `InMageRcmEnableProtectionInput.AsInMageEnableProtectionInput() (*InMageEnableProtectionInput, bool)` +- New function `InMageRcmUnplannedFailoverInput.AsUnplannedFailoverProviderSpecificInput() (*UnplannedFailoverProviderSpecificInput, bool)` +- New function `ReplicationProviderSpecificSettings.AsInMageRcmReplicationDetails() (*InMageRcmReplicationDetails, bool)` +- New function `ReplicationProtectionIntentProviderSpecificSettings.AsA2AReplicationIntentDetails() (*A2AReplicationIntentDetails, bool)` +- New function `HyperVReplicaAzureUnplannedFailoverInput.MarshalJSON() ([]byte, error)` +- New function `InMageAzureV2EnableProtectionInput.AsInMageRcmEnableProtectionInput() (*InMageRcmEnableProtectionInput, bool)` +- New function `InMageRcmUpdateReplicationProtectedItemInput.AsUpdateReplicationProtectedItemProviderInput() (*UpdateReplicationProtectedItemProviderInput, bool)` +- New function `InMageRcmEnableProtectionInput.AsHyperVReplicaAzureEnableProtectionInput() (*HyperVReplicaAzureEnableProtectionInput, bool)` +- New function `InMageRcmUnplannedFailoverInput.AsHyperVReplicaAzureUnplannedFailoverInput() (*HyperVReplicaAzureUnplannedFailoverInput, bool)` +- New function `InMageRcmPolicyDetails.AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool)` +- New function `ProtectionProfileCustomDetails.AsExistingProtectionProfile() (*ExistingProtectionProfile, bool)` +- New function `TestFailoverProviderSpecificInput.AsA2ATestFailoverInput() (*A2ATestFailoverInput, bool)` +- New function `InMageRcmUnplannedFailoverInput.MarshalJSON() ([]byte, error)` +- New function `ProviderSpecificRecoveryPointDetails.AsInMageRcmRecoveryPointDetails() (*InMageRcmRecoveryPointDetails, bool)` +- New function `ExistingRecoveryAvailabilitySet.MarshalJSON() ([]byte, error)` +- New function `InMageUnplannedFailoverInput.AsBasicUnplannedFailoverProviderSpecificInput() (BasicUnplannedFailoverProviderSpecificInput, bool)` +- New function `A2ATestFailoverInput.MarshalJSON() ([]byte, error)` +- New function `ReplicationProtectionIntentsClient.ListSender(*http.Request) (*http.Response, error)` +- New function `ExistingStorageAccount.MarshalJSON() ([]byte, error)` +- New function `InMageRcmFabricSpecificDetails.AsBasicFabricSpecificDetails() (BasicFabricSpecificDetails, bool)` +- New function `StorageAccountCustomDetails.MarshalJSON() ([]byte, error)` +- New function `InMageReplicationDetails.AsInMageRcmReplicationDetails() (*InMageRcmReplicationDetails, bool)` +- New function `StorageAccountCustomDetails.AsBasicStorageAccountCustomDetails() (BasicStorageAccountCustomDetails, bool)` +- New function `ReplicationProtectionIntentsClient.GetPreparer(context.Context, string) (*http.Request, error)` +- New function `InMageRcmPolicyCreationInput.AsHyperVReplicaBluePolicyInput() (*HyperVReplicaBluePolicyInput, bool)` +- New function `InMageRcmUpdateReplicationProtectedItemInput.AsHyperVReplicaAzureUpdateReplicationProtectedItemInput() (*HyperVReplicaAzureUpdateReplicationProtectedItemInput, bool)` +- New function `NewReplicationProtectionIntentCollectionPage(ReplicationProtectionIntentCollection, func(context.Context, ReplicationProtectionIntentCollection) (ReplicationProtectionIntentCollection, error)) ReplicationProtectionIntentCollectionPage` +- New function `InMageRcmEventDetails.MarshalJSON() ([]byte, error)` +- New function `PossibleInstanceTypeBasicUnplannedFailoverProviderSpecificInputValues() []InstanceTypeBasicUnplannedFailoverProviderSpecificInput` +- New function `RecoveryResourceGroupCustomDetails.AsExistingRecoveryRecoveryResourceGroup() (*ExistingRecoveryRecoveryResourceGroup, bool)` +- New function `A2ATestFailoverInput.AsHyperVReplicaAzureTestFailoverInput() (*HyperVReplicaAzureTestFailoverInput, bool)` +- New function `InMageRcmFabricCreationInput.MarshalJSON() ([]byte, error)` +- New function `HyperVReplicaBaseEventDetails.AsInMageRcmEventDetails() (*InMageRcmEventDetails, bool)` +- New function `A2ATestFailoverInput.AsInMageTestFailoverInput() (*InMageTestFailoverInput, bool)` +- New function `InMageRcmReplicationDetails.AsReplicationProviderSpecificSettings() (*ReplicationProviderSpecificSettings, bool)` +- New function `InMageRcmUnplannedFailoverInput.AsA2AUnplannedFailoverInput() (*A2AUnplannedFailoverInput, bool)` +- New function `PossibleResourceTypeValues() []ResourceType` +- New function `ApplyRecoveryPointProviderSpecificInput.AsInMageRcmApplyRecoveryPointInput() (*InMageRcmApplyRecoveryPointInput, bool)` +- New function `InMageRcmPolicyCreationInput.AsHyperVReplicaPolicyInput() (*HyperVReplicaPolicyInput, bool)` +- New function `InMageRcmPolicyCreationInput.AsHyperVReplicaAzurePolicyInput() (*HyperVReplicaAzurePolicyInput, bool)` +- New function `HyperVReplicaAzureEventDetails.AsInMageRcmEventDetails() (*InMageRcmEventDetails, bool)` +- New function `ReplicationProtectionIntentCollectionPage.NotDone() bool` +- New function `ExistingRecoveryRecoveryResourceGroup.MarshalJSON() ([]byte, error)` +- New function `HyperVReplicaAzureReplicationDetails.AsInMageRcmReplicationDetails() (*InMageRcmReplicationDetails, bool)` +- New function `InMageTestFailoverInput.AsTestFailoverProviderSpecificInput() (*TestFailoverProviderSpecificInput, bool)` +- New function `PossibleInstanceTypeBasicReplicationProtectionIntentProviderSpecificSettingsValues() []InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettings` +- New function `PossibleA2ARecoveryAvailabilityTypeValues() []A2ARecoveryAvailabilityType` +- New function `HyperVReplicaAzureUnplannedFailoverInput.AsInMageAzureV2UnplannedFailoverInput() (*InMageAzureV2UnplannedFailoverInput, bool)` +- New function `HyperVReplicaAzureUnplannedFailoverInput.AsA2AUnplannedFailoverInput() (*A2AUnplannedFailoverInput, bool)` +- New function `A2ACreateProtectionIntentInput.AsBasicCreateProtectionIntentProviderSpecificDetails() (BasicCreateProtectionIntentProviderSpecificDetails, bool)` +- New function `InMageRcmFabricCreationInput.AsVMwareV2FabricCreationInput() (*VMwareV2FabricCreationInput, bool)` +- New function `RecoveryPlanProviderSpecificFailoverInput.AsRecoveryPlanInMageRcmFailoverInput() (*RecoveryPlanInMageRcmFailoverInput, bool)` +- New function `ReplicationProtectionIntentsClient.Create(context.Context, string, CreateProtectionIntentInput) (ReplicationProtectionIntent, error)` +- New function `RecoveryPlanInMageRcmFailoverInput.AsRecoveryPlanHyperVReplicaAzureFailoverInput() (*RecoveryPlanHyperVReplicaAzureFailoverInput, bool)` +- New function `*A2AProtectionIntentDiskInputDetails.UnmarshalJSON([]byte) error` +- New function `ReplicationProtectionIntent.MarshalJSON() ([]byte, error)` +- New function `InMageRcmFabricCreationInput.AsInMageRcmFabricCreationInput() (*InMageRcmFabricCreationInput, bool)` +- New function `InMageUnplannedFailoverInput.AsInMageUnplannedFailoverInput() (*InMageUnplannedFailoverInput, bool)` +- New function `ReplicationProtectionIntentsClient.List(context.Context) (ReplicationProtectionIntentCollectionPage, error)` +- New function `InMagePolicyInput.AsInMageRcmPolicyCreationInput() (*InMageRcmPolicyCreationInput, bool)` +- New function `InMageTestFailoverInput.AsBasicTestFailoverProviderSpecificInput() (BasicTestFailoverProviderSpecificInput, bool)` +- New function `HyperVReplicaBluePolicyInput.AsInMageRcmPolicyCreationInput() (*InMageRcmPolicyCreationInput, bool)` +- New function `*A2AProtectionIntentManagedDiskInputDetails.UnmarshalJSON([]byte) error` +- New function `RecoveryVirtualNetworkCustomDetails.MarshalJSON() ([]byte, error)` +- New function `UnplannedFailoverProviderSpecificInput.AsBasicUnplannedFailoverProviderSpecificInput() (BasicUnplannedFailoverProviderSpecificInput, bool)` +- New function `HyperVReplicaAzureUnplannedFailoverInput.AsUnplannedFailoverProviderSpecificInput() (*UnplannedFailoverProviderSpecificInput, bool)` +- New function `InMageRcmPolicyDetails.AsBasicPolicyProviderSpecificDetails() (BasicPolicyProviderSpecificDetails, bool)` +- New function `RecoveryPlanInMageRcmFailoverInput.AsRecoveryPlanInMageAzureV2FailoverInput() (*RecoveryPlanInMageAzureV2FailoverInput, bool)` +- New function `RecoveryResourceGroupCustomDetails.AsBasicRecoveryResourceGroupCustomDetails() (BasicRecoveryResourceGroupCustomDetails, bool)` +- New function `ExistingProtectionProfile.MarshalJSON() ([]byte, error)` +- New function `InMageRcmFabricSpecificDetails.AsFabricSpecificDetails() (*FabricSpecificDetails, bool)` +- New function `InMageRcmPolicyDetails.AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool)` +- New function `ExistingRecoveryVirtualNetwork.AsRecoveryVirtualNetworkCustomDetails() (*RecoveryVirtualNetworkCustomDetails, bool)` +- New function `HyperVReplica2012EventDetails.AsInMageRcmEventDetails() (*InMageRcmEventDetails, bool)` +- New function `StorageAccountCustomDetails.AsStorageAccountCustomDetails() (*StorageAccountCustomDetails, bool)` +- New function `*ReplicationProtectionIntentCollectionPage.NextWithContext(context.Context) error` +- New function `PossibleInstanceTypeBasicCreateProtectionIntentProviderSpecificDetailsValues() []InstanceTypeBasicCreateProtectionIntentProviderSpecificDetails` +- New function `InMageRcmFabricSpecificDetails.AsAzureFabricSpecificDetails() (*AzureFabricSpecificDetails, bool)` +- New function `RecoveryProximityPlacementGroupCustomDetails.AsRecoveryProximityPlacementGroupCustomDetails() (*RecoveryProximityPlacementGroupCustomDetails, bool)` +- New function `InMageUnplannedFailoverInput.AsA2AUnplannedFailoverInput() (*A2AUnplannedFailoverInput, bool)` +- New function `ReplicationProtectionIntentsClient.ListComplete(context.Context) (ReplicationProtectionIntentCollectionIterator, error)` +- New function `InMageRcmTestFailoverInput.AsInMageAzureV2TestFailoverInput() (*InMageAzureV2TestFailoverInput, bool)` +- New function `InMageRcmReplicationDetails.MarshalJSON() ([]byte, error)` +- New function `PossibleResourceTypeBasicRecoveryVirtualNetworkCustomDetailsValues() []ResourceTypeBasicRecoveryVirtualNetworkCustomDetails` +- New function `InMageAzureV2TestFailoverInput.AsA2ATestFailoverInput() (*A2ATestFailoverInput, bool)` +- New function `InMageRcmFabricSpecificDetails.AsVmmDetails() (*VmmDetails, bool)` +- New function `HyperVReplicaAzureTestFailoverInput.AsBasicTestFailoverProviderSpecificInput() (BasicTestFailoverProviderSpecificInput, bool)` +- New function `InMageAzureV2UnplannedFailoverInput.AsInMageRcmUnplannedFailoverInput() (*InMageRcmUnplannedFailoverInput, bool)` +- New function `InMageRcmApplyRecoveryPointInput.AsInMageRcmApplyRecoveryPointInput() (*InMageRcmApplyRecoveryPointInput, bool)` +- New function `UnplannedFailoverProviderSpecificInput.AsInMageRcmUnplannedFailoverInput() (*InMageRcmUnplannedFailoverInput, bool)` +- New function `TestFailoverProviderSpecificInput.AsBasicTestFailoverProviderSpecificInput() (BasicTestFailoverProviderSpecificInput, bool)` +- New function `InMageAzureV2TestFailoverInput.AsHyperVReplicaAzureTestFailoverInput() (*HyperVReplicaAzureTestFailoverInput, bool)` +- New function `HyperVReplicaBaseReplicationDetails.AsInMageRcmReplicationDetails() (*InMageRcmReplicationDetails, bool)` +- New function `HyperVReplicaAzurePolicyInput.AsInMageRcmPolicyCreationInput() (*InMageRcmPolicyCreationInput, bool)` +- New function `InMageRcmEventDetails.AsHyperVReplica2012R2EventDetails() (*HyperVReplica2012R2EventDetails, bool)` +- New function `InMageAzureV2UnplannedFailoverInput.AsHyperVReplicaAzureUnplannedFailoverInput() (*HyperVReplicaAzureUnplannedFailoverInput, bool)` +- New function `InMageAzureV2PolicyDetails.AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool)` +- New function `InMageTestFailoverInput.AsInMageTestFailoverInput() (*InMageTestFailoverInput, bool)` +- New function `InMageRcmFabricSpecificDetails.MarshalJSON() ([]byte, error)` +- New function `InMageRcmApplyRecoveryPointInput.AsA2AApplyRecoveryPointInput() (*A2AApplyRecoveryPointInput, bool)` +- New function `RecoveryVirtualNetworkCustomDetails.AsBasicRecoveryVirtualNetworkCustomDetails() (BasicRecoveryVirtualNetworkCustomDetails, bool)` +- New function `InMageRcmUpdateReplicationProtectedItemInput.MarshalJSON() ([]byte, error)` +- New function `TestFailoverProviderSpecificInput.AsInMageTestFailoverInput() (*InMageTestFailoverInput, bool)` +- New function `*ReplicationProtectionIntentCollectionIterator.Next() error` +- New function `InMageAzureV2UnplannedFailoverInput.AsInMageUnplannedFailoverInput() (*InMageUnplannedFailoverInput, bool)` +- New function `FabricSpecificDetails.AsInMageRcmFabricSpecificDetails() (*InMageRcmFabricSpecificDetails, bool)` +- New function `ExistingRecoveryAvailabilitySet.AsRecoveryAvailabilitySetCustomDetails() (*RecoveryAvailabilitySetCustomDetails, bool)` +- New function `ExistingRecoveryProximityPlacementGroup.AsExistingRecoveryProximityPlacementGroup() (*ExistingRecoveryProximityPlacementGroup, bool)` +- New function `InMageRcmReplicationDetails.AsHyperVReplicaBlueReplicationDetails() (*HyperVReplicaBlueReplicationDetails, bool)` +- New function `HyperVReplicaAzureTestFailoverInput.AsTestFailoverProviderSpecificInput() (*TestFailoverProviderSpecificInput, bool)` +- New function `ProtectionProfileCustomDetails.MarshalJSON() ([]byte, error)` +- New function `InMageRcmPolicyDetails.AsPolicyProviderSpecificDetails() (*PolicyProviderSpecificDetails, bool)` +- New function `InMageRcmApplyRecoveryPointInput.AsHyperVReplicaAzureApplyRecoveryPointInput() (*HyperVReplicaAzureApplyRecoveryPointInput, bool)` +- New function `InMageUnplannedFailoverInput.AsInMageRcmUnplannedFailoverInput() (*InMageRcmUnplannedFailoverInput, bool)` +- New function `InMageRcmRecoveryPointDetails.AsInMageAzureV2RecoveryPointDetails() (*InMageAzureV2RecoveryPointDetails, bool)` +- New function `ReplicationProtectionIntentCollectionIterator.NotDone() bool` +- New function `A2AReplicationDetails.AsInMageRcmReplicationDetails() (*InMageRcmReplicationDetails, bool)` +- New function `InMageRcmPolicyDetails.AsInMageBasePolicyDetails() (*InMageBasePolicyDetails, bool)` +- New function `A2AUnplannedFailoverInput.AsHyperVReplicaAzureUnplannedFailoverInput() (*HyperVReplicaAzureUnplannedFailoverInput, bool)` +- New function `A2AReplicationIntentDetails.AsA2AReplicationIntentDetails() (*A2AReplicationIntentDetails, bool)` +- New function `InMageAzureV2UnplannedFailoverInput.AsA2AUnplannedFailoverInput() (*A2AUnplannedFailoverInput, bool)` +- New function `InMageRcmEnableProtectionInput.AsSanEnableProtectionInput() (*SanEnableProtectionInput, bool)` +- New function `InMageRcmEventDetails.AsA2AEventDetails() (*A2AEventDetails, bool)` +- New function `InMageRcmRecoveryPointDetails.MarshalJSON() ([]byte, error)` +- New function `InMageAzureV2UnplannedFailoverInput.MarshalJSON() ([]byte, error)` +- New function `InMageAzureV2ReplicationDetails.AsInMageRcmReplicationDetails() (*InMageRcmReplicationDetails, bool)` +- New function `A2AUnplannedFailoverInput.AsInMageRcmUnplannedFailoverInput() (*InMageRcmUnplannedFailoverInput, bool)` +- New function `ExistingRecoveryVirtualNetwork.MarshalJSON() ([]byte, error)` +- New function `TestFailoverProviderSpecificInput.AsInMageRcmTestFailoverInput() (*InMageRcmTestFailoverInput, bool)` +- New function `InMageRcmEventDetails.AsHyperVReplicaBaseEventDetails() (*HyperVReplicaBaseEventDetails, bool)` +- New function `InMageRcmFabricCreationInput.AsBasicFabricSpecificCreationInput() (BasicFabricSpecificCreationInput, bool)` +- New function `InMageRcmApplyRecoveryPointInput.MarshalJSON() ([]byte, error)` +- New function `HyperVReplicaAzureUnplannedFailoverInput.AsHyperVReplicaAzureUnplannedFailoverInput() (*HyperVReplicaAzureUnplannedFailoverInput, bool)` +- New function `InMageRcmReplicationDetails.AsA2AReplicationDetails() (*A2AReplicationDetails, bool)` +- New function `InMageAzureV2ApplyRecoveryPointInput.AsInMageRcmApplyRecoveryPointInput() (*InMageRcmApplyRecoveryPointInput, bool)` +- New function `InMageRcmRecoveryPointDetails.AsProviderSpecificRecoveryPointDetails() (*ProviderSpecificRecoveryPointDetails, bool)` +- New function `UnplannedFailoverProviderSpecificInput.AsA2AUnplannedFailoverInput() (*A2AUnplannedFailoverInput, bool)` +- New function `InMageRcmPolicyDetails.MarshalJSON() ([]byte, error)` +- New function `InMageAzureV2UpdateReplicationProtectedItemInput.AsInMageRcmUpdateReplicationProtectedItemInput() (*InMageRcmUpdateReplicationProtectedItemInput, bool)` +- New function `InMageRcmRecoveryPointDetails.AsInMageRcmRecoveryPointDetails() (*InMageRcmRecoveryPointDetails, bool)` +- New function `InMageAzureV2TestFailoverInput.AsTestFailoverProviderSpecificInput() (*TestFailoverProviderSpecificInput, bool)` +- New function `InMageRcmPolicyCreationInput.AsBasicPolicyProviderSpecificInput() (BasicPolicyProviderSpecificInput, bool)` +- New function `InMageAzureV2UnplannedFailoverInput.AsUnplannedFailoverProviderSpecificInput() (*UnplannedFailoverProviderSpecificInput, bool)` +- New function `ExistingProtectionProfile.AsProtectionProfileCustomDetails() (*ProtectionProfileCustomDetails, bool)` +- New function `HyperVReplicaAzureUnplannedFailoverInput.AsInMageRcmUnplannedFailoverInput() (*InMageRcmUnplannedFailoverInput, bool)` +- New function `PossibleResyncStateValues() []ResyncState` +- New function `InMageTestFailoverInput.AsInMageAzureV2TestFailoverInput() (*InMageAzureV2TestFailoverInput, bool)` +- New function `InMageRcmPolicyDetails.AsInMageAzureV2PolicyDetails() (*InMageAzureV2PolicyDetails, bool)` +- New function `HyperVReplicaAzureUnplannedFailoverInput.AsInMageUnplannedFailoverInput() (*InMageUnplannedFailoverInput, bool)` +- New function `InMageRcmUnplannedFailoverInput.AsInMageRcmUnplannedFailoverInput() (*InMageRcmUnplannedFailoverInput, bool)` +- New function `InMageRcmUnplannedFailoverInput.AsInMageUnplannedFailoverInput() (*InMageUnplannedFailoverInput, bool)` +- New function `ProtectionProfileCustomDetails.AsNewProtectionProfile() (*NewProtectionProfile, bool)` +- New function `EnableProtectionProviderSpecificInput.AsInMageRcmEnableProtectionInput() (*InMageRcmEnableProtectionInput, bool)` +- New function `NewProtectionProfile.AsNewProtectionProfile() (*NewProtectionProfile, bool)` +- New function `ReplicationProtectionIntentProperties.MarshalJSON() ([]byte, error)` +- New function `InMageRcmEventDetails.AsInMageRcmEventDetails() (*InMageRcmEventDetails, bool)` +- New function `InMageRcmEnableProtectionInput.AsA2AEnableProtectionInput() (*A2AEnableProtectionInput, bool)` +- New function `InMageUnplannedFailoverInput.AsUnplannedFailoverProviderSpecificInput() (*UnplannedFailoverProviderSpecificInput, bool)` +- New function `RecoveryAvailabilitySetCustomDetails.AsExistingRecoveryAvailabilitySet() (*ExistingRecoveryAvailabilitySet, bool)` +- New function `InMageRcmTestFailoverInput.AsInMageRcmTestFailoverInput() (*InMageRcmTestFailoverInput, bool)` +- New function `*CreateProtectionIntentProperties.UnmarshalJSON([]byte) error` +- New function `InMageRcmPolicyCreationInput.AsInMageRcmPolicyCreationInput() (*InMageRcmPolicyCreationInput, bool)` +- New function `VMwareDetails.AsInMageRcmFabricSpecificDetails() (*InMageRcmFabricSpecificDetails, bool)` +- New function `InMageAzureV2UnplannedFailoverInput.AsInMageAzureV2UnplannedFailoverInput() (*InMageAzureV2UnplannedFailoverInput, bool)` +- New function `UnplannedFailoverProviderSpecificInput.AsInMageAzureV2UnplannedFailoverInput() (*InMageAzureV2UnplannedFailoverInput, bool)` +- New function `InMageRcmApplyRecoveryPointInput.AsApplyRecoveryPointProviderSpecificInput() (*ApplyRecoveryPointProviderSpecificInput, bool)` +- New function `RecoveryPlanInMageRcmFailoverInput.AsRecoveryPlanProviderSpecificFailoverInput() (*RecoveryPlanProviderSpecificFailoverInput, bool)` +- New function `A2ACreateProtectionIntentInput.MarshalJSON() ([]byte, error)` +- New function `RecoveryAvailabilitySetCustomDetails.AsRecoveryAvailabilitySetCustomDetails() (*RecoveryAvailabilitySetCustomDetails, bool)` +- New struct `A2ACreateProtectionIntentInput` +- New struct `A2AProtectionIntentDiskInputDetails` +- New struct `A2AProtectionIntentManagedDiskInputDetails` +- New struct `A2AReplicationIntentDetails` +- New struct `A2ATestFailoverInput` +- New struct `A2AUnplannedFailoverInput` +- New struct `A2AVMDiskDetails` +- New struct `A2AVMManagedDiskDetails` +- New struct `AgentDetails` +- New struct `AgentDiskDetails` +- New struct `CreateProtectionIntentInput` +- New struct `CreateProtectionIntentProperties` +- New struct `CreateProtectionIntentProviderSpecificDetails` +- New struct `DraDetails` +- New struct `ExistingProtectionProfile` +- New struct `ExistingRecoveryAvailabilitySet` +- New struct `ExistingRecoveryProximityPlacementGroup` +- New struct `ExistingRecoveryRecoveryResourceGroup` +- New struct `ExistingRecoveryVirtualNetwork` +- New struct `ExistingStorageAccount` +- New struct `HyperVReplicaAzureTestFailoverInput` +- New struct `HyperVReplicaAzureUnplannedFailoverInput` +- New struct `InMageAzureV2TestFailoverInput` +- New struct `InMageAzureV2UnplannedFailoverInput` +- New struct `InMageRcmAgentUpgradeBlockingErrorDetails` +- New struct `InMageRcmApplyRecoveryPointInput` +- New struct `InMageRcmDiskInput` +- New struct `InMageRcmDisksDefaultInput` +- New struct `InMageRcmEnableProtectionInput` +- New struct `InMageRcmEventDetails` +- New struct `InMageRcmFabricCreationInput` +- New struct `InMageRcmFabricSpecificDetails` +- New struct `InMageRcmLastAgentUpgradeErrorDetails` +- New struct `InMageRcmMobilityAgentDetails` +- New struct `InMageRcmNicDetails` +- New struct `InMageRcmNicInput` +- New struct `InMageRcmPolicyCreationInput` +- New struct `InMageRcmPolicyDetails` +- New struct `InMageRcmProtectedDiskDetails` +- New struct `InMageRcmRecoveryPointDetails` +- New struct `InMageRcmReplicationDetails` +- New struct `InMageRcmTestFailoverInput` +- New struct `InMageRcmUnplannedFailoverInput` +- New struct `InMageRcmUpdateReplicationProtectedItemInput` +- New struct `InMageTestFailoverInput` +- New struct `InMageUnplannedFailoverInput` +- New struct `NewProtectionProfile` +- New struct `ProcessServerDetails` +- New struct `ProtectionProfileCustomDetails` +- New struct `PushInstallerDetails` +- New struct `RcmProxyDetails` +- New struct `RecoveryAvailabilitySetCustomDetails` +- New struct `RecoveryPlanInMageRcmFailoverInput` +- New struct `RecoveryProximityPlacementGroupCustomDetails` +- New struct `RecoveryResourceGroupCustomDetails` +- New struct `RecoveryVirtualNetworkCustomDetails` +- New struct `ReplicationAgentDetails` +- New struct `ReplicationProtectionIntent` +- New struct `ReplicationProtectionIntentCollection` +- New struct `ReplicationProtectionIntentCollectionIterator` +- New struct `ReplicationProtectionIntentCollectionPage` +- New struct `ReplicationProtectionIntentProperties` +- New struct `ReplicationProtectionIntentProviderSpecificSettings` +- New struct `ReplicationProtectionIntentsClient` +- New struct `ReprotectAgentDetails` +- New struct `StorageAccountCustomDetails` +- New struct `TestFailoverProviderSpecificInput` +- New struct `UnplannedFailoverProviderSpecificInput` +- New field `MachineID` in struct `AddRecoveryServicesProviderInputProperties` +- New field `DataPlaneAuthenticationIdentityInput` in struct `AddRecoveryServicesProviderInputProperties` diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/client.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/client.go similarity index 98% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/client.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/client.go index 652a55ddb391..05a81c1c6578 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/client.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/client.go @@ -1,4 +1,4 @@ -// Package siterecovery implements the Azure ARM Siterecovery service API version 2018-01-10. +// Package siterecovery implements the Azure ARM Siterecovery service API version 2018-07-10. // // package siterecovery diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/enums.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/enums.go similarity index 71% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/enums.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/enums.go index f80b97e26291..3ec5ae7da329 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/enums.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/enums.go @@ -17,6 +17,23 @@ package siterecovery // Code generated by Microsoft (R) AutoRest Code Generator. // Changes may cause incorrect behavior and will be lost if the code is regenerated. +// A2ARecoveryAvailabilityType enumerates the values for a2a recovery availability type. +type A2ARecoveryAvailabilityType string + +const ( + // AvailabilitySet ... + AvailabilitySet A2ARecoveryAvailabilityType = "AvailabilitySet" + // AvailabilityZone ... + AvailabilityZone A2ARecoveryAvailabilityType = "AvailabilityZone" + // Single ... + Single A2ARecoveryAvailabilityType = "Single" +) + +// PossibleA2ARecoveryAvailabilityTypeValues returns an array of possible values for the A2ARecoveryAvailabilityType const type. +func PossibleA2ARecoveryAvailabilityTypeValues() []A2ARecoveryAvailabilityType { + return []A2ARecoveryAvailabilityType{AvailabilitySet, AvailabilityZone, Single} +} + // A2ARpRecoveryPointType enumerates the values for a2a rp recovery point type. type A2ARpRecoveryPointType string @@ -51,6 +68,45 @@ func PossibleAgentAutoUpdateStatusValues() []AgentAutoUpdateStatus { return []AgentAutoUpdateStatus{Disabled, Enabled} } +// AgentUpgradeBlockedReason enumerates the values for agent upgrade blocked reason. +type AgentUpgradeBlockedReason string + +const ( + // AgentNoHeartbeat ... + AgentNoHeartbeat AgentUpgradeBlockedReason = "AgentNoHeartbeat" + // AlreadyOnLatestVersion ... + AlreadyOnLatestVersion AgentUpgradeBlockedReason = "AlreadyOnLatestVersion" + // DistroIsNotReported ... + DistroIsNotReported AgentUpgradeBlockedReason = "DistroIsNotReported" + // DistroNotSupportedForUpgrade ... + DistroNotSupportedForUpgrade AgentUpgradeBlockedReason = "DistroNotSupportedForUpgrade" + // IncompatibleApplianceVersion ... + IncompatibleApplianceVersion AgentUpgradeBlockedReason = "IncompatibleApplianceVersion" + // InvalidAgentVersion ... + InvalidAgentVersion AgentUpgradeBlockedReason = "InvalidAgentVersion" + // InvalidDriverVersion ... + InvalidDriverVersion AgentUpgradeBlockedReason = "InvalidDriverVersion" + // MissingUpgradePath ... + MissingUpgradePath AgentUpgradeBlockedReason = "MissingUpgradePath" + // NotProtected ... + NotProtected AgentUpgradeBlockedReason = "NotProtected" + // ProcessServerNoHeartbeat ... + ProcessServerNoHeartbeat AgentUpgradeBlockedReason = "ProcessServerNoHeartbeat" + // RcmProxyNoHeartbeat ... + RcmProxyNoHeartbeat AgentUpgradeBlockedReason = "RcmProxyNoHeartbeat" + // RebootRequired ... + RebootRequired AgentUpgradeBlockedReason = "RebootRequired" + // Unknown ... + Unknown AgentUpgradeBlockedReason = "Unknown" + // UnsupportedProtectionScenario ... + UnsupportedProtectionScenario AgentUpgradeBlockedReason = "UnsupportedProtectionScenario" +) + +// PossibleAgentUpgradeBlockedReasonValues returns an array of possible values for the AgentUpgradeBlockedReason const type. +func PossibleAgentUpgradeBlockedReasonValues() []AgentUpgradeBlockedReason { + return []AgentUpgradeBlockedReason{AgentNoHeartbeat, AlreadyOnLatestVersion, DistroIsNotReported, DistroNotSupportedForUpgrade, IncompatibleApplianceVersion, InvalidAgentVersion, InvalidDriverVersion, MissingUpgradePath, NotProtected, ProcessServerNoHeartbeat, RcmProxyNoHeartbeat, RebootRequired, Unknown, UnsupportedProtectionScenario} +} + // AgentVersionStatus enumerates the values for agent version status. type AgentVersionStatus string @@ -87,6 +143,36 @@ func PossibleAlternateLocationRecoveryOptionValues() []AlternateLocationRecovery return []AlternateLocationRecoveryOption{CreateVMIfNotFound, NoAction} } +// AutoProtectionOfDataDisk enumerates the values for auto protection of data disk. +type AutoProtectionOfDataDisk string + +const ( + // AutoProtectionOfDataDiskDisabled ... + AutoProtectionOfDataDiskDisabled AutoProtectionOfDataDisk = "Disabled" + // AutoProtectionOfDataDiskEnabled ... + AutoProtectionOfDataDiskEnabled AutoProtectionOfDataDisk = "Enabled" +) + +// PossibleAutoProtectionOfDataDiskValues returns an array of possible values for the AutoProtectionOfDataDisk const type. +func PossibleAutoProtectionOfDataDiskValues() []AutoProtectionOfDataDisk { + return []AutoProtectionOfDataDisk{AutoProtectionOfDataDiskDisabled, AutoProtectionOfDataDiskEnabled} +} + +// AutoProtectionOfDataDiskStatus enumerates the values for auto protection of data disk status. +type AutoProtectionOfDataDiskStatus string + +const ( + // AutoProtectionOfDataDiskStatusDisabled ... + AutoProtectionOfDataDiskStatusDisabled AutoProtectionOfDataDiskStatus = "Disabled" + // AutoProtectionOfDataDiskStatusEnabled ... + AutoProtectionOfDataDiskStatusEnabled AutoProtectionOfDataDiskStatus = "Enabled" +) + +// PossibleAutoProtectionOfDataDiskStatusValues returns an array of possible values for the AutoProtectionOfDataDiskStatus const type. +func PossibleAutoProtectionOfDataDiskStatusValues() []AutoProtectionOfDataDiskStatus { + return []AutoProtectionOfDataDiskStatus{AutoProtectionOfDataDiskStatusDisabled, AutoProtectionOfDataDiskStatusEnabled} +} + // DataSyncStatus enumerates the values for data sync status. type DataSyncStatus string @@ -134,6 +220,23 @@ func PossibleDiskAccountTypeValues() []DiskAccountType { return []DiskAccountType{PremiumLRS, StandardLRS, StandardSSDLRS} } +// DiskType enumerates the values for disk type. +type DiskType string + +const ( + // DiskTypePremiumLRS ... + DiskTypePremiumLRS DiskType = "Premium_LRS" + // DiskTypeStandardLRS ... + DiskTypeStandardLRS DiskType = "Standard_LRS" + // DiskTypeStandardSSDLRS ... + DiskTypeStandardSSDLRS DiskType = "StandardSSD_LRS" +) + +// PossibleDiskTypeValues returns an array of possible values for the DiskType const type. +func PossibleDiskTypeValues() []DiskType { + return []DiskType{DiskTypePremiumLRS, DiskTypeStandardLRS, DiskTypeStandardSSDLRS} +} + // EthernetAddressType enumerates the values for ethernet address type. type EthernetAddressType string @@ -191,6 +294,21 @@ func PossibleHealthErrorCategoryValues() []HealthErrorCategory { return []HealthErrorCategory{AgentAutoUpdate, Configuration, FabricInfrastructure, None, Replication, TestFailover, VersionExpiry} } +// HealthErrorCustomerResolvability enumerates the values for health error customer resolvability. +type HealthErrorCustomerResolvability string + +const ( + // Allowed ... + Allowed HealthErrorCustomerResolvability = "Allowed" + // NotAllowed ... + NotAllowed HealthErrorCustomerResolvability = "NotAllowed" +) + +// PossibleHealthErrorCustomerResolvabilityValues returns an array of possible values for the HealthErrorCustomerResolvability const type. +func PossibleHealthErrorCustomerResolvabilityValues() []HealthErrorCustomerResolvability { + return []HealthErrorCustomerResolvability{Allowed, NotAllowed} +} + // HyperVReplicaAzureRpRecoveryPointType enumerates the values for hyper v replica azure rp recovery point // type. type HyperVReplicaAzureRpRecoveryPointType string @@ -234,17 +352,35 @@ type InstanceType string const ( // InstanceTypeA2A ... InstanceTypeA2A InstanceType = "A2A" - // InstanceTypeApplyRecoveryPointProviderSpecificInput ... - InstanceTypeApplyRecoveryPointProviderSpecificInput InstanceType = "ApplyRecoveryPointProviderSpecificInput" - // InstanceTypeHyperVReplicaAzure ... - InstanceTypeHyperVReplicaAzure InstanceType = "HyperVReplicaAzure" - // InstanceTypeInMageAzureV2 ... - InstanceTypeInMageAzureV2 InstanceType = "InMageAzureV2" + // InstanceTypeAddDisksProviderSpecificInput ... + InstanceTypeAddDisksProviderSpecificInput InstanceType = "AddDisksProviderSpecificInput" ) // PossibleInstanceTypeValues returns an array of possible values for the InstanceType const type. func PossibleInstanceTypeValues() []InstanceType { - return []InstanceType{InstanceTypeA2A, InstanceTypeApplyRecoveryPointProviderSpecificInput, InstanceTypeHyperVReplicaAzure, InstanceTypeInMageAzureV2} + return []InstanceType{InstanceTypeA2A, InstanceTypeAddDisksProviderSpecificInput} +} + +// InstanceTypeBasicApplyRecoveryPointProviderSpecificInput enumerates the values for instance type basic apply +// recovery point provider specific input. +type InstanceTypeBasicApplyRecoveryPointProviderSpecificInput string + +const ( + // InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeA2A ... + InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeA2A InstanceTypeBasicApplyRecoveryPointProviderSpecificInput = "A2A" + // InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeApplyRecoveryPointProviderSpecificInput ... + InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeApplyRecoveryPointProviderSpecificInput InstanceTypeBasicApplyRecoveryPointProviderSpecificInput = "ApplyRecoveryPointProviderSpecificInput" + // InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeHyperVReplicaAzure ... + InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeHyperVReplicaAzure InstanceTypeBasicApplyRecoveryPointProviderSpecificInput = "HyperVReplicaAzure" + // InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeInMageAzureV2 ... + InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeInMageAzureV2 InstanceTypeBasicApplyRecoveryPointProviderSpecificInput = "InMageAzureV2" + // InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeInMageRcm ... + InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeInMageRcm InstanceTypeBasicApplyRecoveryPointProviderSpecificInput = "InMageRcm" +) + +// PossibleInstanceTypeBasicApplyRecoveryPointProviderSpecificInputValues returns an array of possible values for the InstanceTypeBasicApplyRecoveryPointProviderSpecificInput const type. +func PossibleInstanceTypeBasicApplyRecoveryPointProviderSpecificInputValues() []InstanceTypeBasicApplyRecoveryPointProviderSpecificInput { + return []InstanceTypeBasicApplyRecoveryPointProviderSpecificInput{InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeA2A, InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeApplyRecoveryPointProviderSpecificInput, InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeHyperVReplicaAzure, InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeInMageAzureV2, InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeInMageRcm} } // InstanceTypeBasicConfigurationSettings enumerates the values for instance type basic configuration settings. @@ -268,6 +404,22 @@ func PossibleInstanceTypeBasicConfigurationSettingsValues() []InstanceTypeBasicC return []InstanceTypeBasicConfigurationSettings{InstanceTypeConfigurationSettings, InstanceTypeHyperVVirtualMachine, InstanceTypeReplicationGroupDetails, InstanceTypeVmmVirtualMachine, InstanceTypeVMwareVirtualMachine} } +// InstanceTypeBasicCreateProtectionIntentProviderSpecificDetails enumerates the values for instance type basic +// create protection intent provider specific details. +type InstanceTypeBasicCreateProtectionIntentProviderSpecificDetails string + +const ( + // InstanceTypeBasicCreateProtectionIntentProviderSpecificDetailsInstanceTypeA2A ... + InstanceTypeBasicCreateProtectionIntentProviderSpecificDetailsInstanceTypeA2A InstanceTypeBasicCreateProtectionIntentProviderSpecificDetails = "A2A" + // InstanceTypeBasicCreateProtectionIntentProviderSpecificDetailsInstanceTypeCreateProtectionIntentProviderSpecificDetails ... + InstanceTypeBasicCreateProtectionIntentProviderSpecificDetailsInstanceTypeCreateProtectionIntentProviderSpecificDetails InstanceTypeBasicCreateProtectionIntentProviderSpecificDetails = "CreateProtectionIntentProviderSpecificDetails" +) + +// PossibleInstanceTypeBasicCreateProtectionIntentProviderSpecificDetailsValues returns an array of possible values for the InstanceTypeBasicCreateProtectionIntentProviderSpecificDetails const type. +func PossibleInstanceTypeBasicCreateProtectionIntentProviderSpecificDetailsValues() []InstanceTypeBasicCreateProtectionIntentProviderSpecificDetails { + return []InstanceTypeBasicCreateProtectionIntentProviderSpecificDetails{InstanceTypeBasicCreateProtectionIntentProviderSpecificDetailsInstanceTypeA2A, InstanceTypeBasicCreateProtectionIntentProviderSpecificDetailsInstanceTypeCreateProtectionIntentProviderSpecificDetails} +} + // InstanceTypeBasicDisableProtectionProviderSpecificInput enumerates the values for instance type basic // disable protection provider specific input. type InstanceTypeBasicDisableProtectionProviderSpecificInput string @@ -315,13 +467,15 @@ const ( InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMage InstanceTypeBasicEnableProtectionProviderSpecificInput = "InMage" // InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageAzureV2 ... InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageAzureV2 InstanceTypeBasicEnableProtectionProviderSpecificInput = "InMageAzureV2" + // InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageRcm ... + InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageRcm InstanceTypeBasicEnableProtectionProviderSpecificInput = "InMageRcm" // InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeSan ... InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeSan InstanceTypeBasicEnableProtectionProviderSpecificInput = "San" ) // PossibleInstanceTypeBasicEnableProtectionProviderSpecificInputValues returns an array of possible values for the InstanceTypeBasicEnableProtectionProviderSpecificInput const type. func PossibleInstanceTypeBasicEnableProtectionProviderSpecificInputValues() []InstanceTypeBasicEnableProtectionProviderSpecificInput { - return []InstanceTypeBasicEnableProtectionProviderSpecificInput{InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeA2A, InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeEnableProtectionProviderSpecificInput, InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeHyperVReplicaAzure, InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMage, InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageAzureV2, InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeSan} + return []InstanceTypeBasicEnableProtectionProviderSpecificInput{InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeA2A, InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeEnableProtectionProviderSpecificInput, InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeHyperVReplicaAzure, InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMage, InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageAzureV2, InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageRcm, InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeSan} } // InstanceTypeBasicEventProviderSpecificDetails enumerates the values for instance type basic event provider @@ -343,13 +497,13 @@ const ( InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaBaseEventDetails InstanceTypeBasicEventProviderSpecificDetails = "HyperVReplicaBaseEventDetails" // InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageAzureV2 ... InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageAzureV2 InstanceTypeBasicEventProviderSpecificDetails = "InMageAzureV2" - // InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeVMwareCbt ... - InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeVMwareCbt InstanceTypeBasicEventProviderSpecificDetails = "VMwareCbt" + // InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageRcm ... + InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageRcm InstanceTypeBasicEventProviderSpecificDetails = "InMageRcm" ) // PossibleInstanceTypeBasicEventProviderSpecificDetailsValues returns an array of possible values for the InstanceTypeBasicEventProviderSpecificDetails const type. func PossibleInstanceTypeBasicEventProviderSpecificDetailsValues() []InstanceTypeBasicEventProviderSpecificDetails { - return []InstanceTypeBasicEventProviderSpecificDetails{InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeA2A, InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeEventProviderSpecificDetails, InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012, InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012R2, InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaAzure, InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaBaseEventDetails, InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageAzureV2, InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeVMwareCbt} + return []InstanceTypeBasicEventProviderSpecificDetails{InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeA2A, InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeEventProviderSpecificDetails, InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012, InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012R2, InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaAzure, InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaBaseEventDetails, InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageAzureV2, InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageRcm} } // InstanceTypeBasicEventSpecificDetails enumerates the values for instance type basic event specific details. @@ -396,13 +550,15 @@ const ( InstanceTypeAzure InstanceTypeBasicFabricSpecificCreationInput = "Azure" // InstanceTypeFabricSpecificCreationInput ... InstanceTypeFabricSpecificCreationInput InstanceTypeBasicFabricSpecificCreationInput = "FabricSpecificCreationInput" + // InstanceTypeInMageRcm ... + InstanceTypeInMageRcm InstanceTypeBasicFabricSpecificCreationInput = "InMageRcm" // InstanceTypeVMwareV2 ... InstanceTypeVMwareV2 InstanceTypeBasicFabricSpecificCreationInput = "VMwareV2" ) // PossibleInstanceTypeBasicFabricSpecificCreationInputValues returns an array of possible values for the InstanceTypeBasicFabricSpecificCreationInput const type. func PossibleInstanceTypeBasicFabricSpecificCreationInputValues() []InstanceTypeBasicFabricSpecificCreationInput { - return []InstanceTypeBasicFabricSpecificCreationInput{InstanceTypeAzure, InstanceTypeFabricSpecificCreationInput, InstanceTypeVMwareV2} + return []InstanceTypeBasicFabricSpecificCreationInput{InstanceTypeAzure, InstanceTypeFabricSpecificCreationInput, InstanceTypeInMageRcm, InstanceTypeVMwareV2} } // InstanceTypeBasicFabricSpecificDetails enumerates the values for instance type basic fabric specific @@ -416,6 +572,8 @@ const ( InstanceTypeBasicFabricSpecificDetailsInstanceTypeFabricSpecificDetails InstanceTypeBasicFabricSpecificDetails = "FabricSpecificDetails" // InstanceTypeBasicFabricSpecificDetailsInstanceTypeHyperVSite ... InstanceTypeBasicFabricSpecificDetailsInstanceTypeHyperVSite InstanceTypeBasicFabricSpecificDetails = "HyperVSite" + // InstanceTypeBasicFabricSpecificDetailsInstanceTypeInMageRcm ... + InstanceTypeBasicFabricSpecificDetailsInstanceTypeInMageRcm InstanceTypeBasicFabricSpecificDetails = "InMageRcm" // InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMM ... InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMM InstanceTypeBasicFabricSpecificDetails = "VMM" // InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMware ... @@ -426,7 +584,7 @@ const ( // PossibleInstanceTypeBasicFabricSpecificDetailsValues returns an array of possible values for the InstanceTypeBasicFabricSpecificDetails const type. func PossibleInstanceTypeBasicFabricSpecificDetailsValues() []InstanceTypeBasicFabricSpecificDetails { - return []InstanceTypeBasicFabricSpecificDetails{InstanceTypeBasicFabricSpecificDetailsInstanceTypeAzure, InstanceTypeBasicFabricSpecificDetailsInstanceTypeFabricSpecificDetails, InstanceTypeBasicFabricSpecificDetailsInstanceTypeHyperVSite, InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMM, InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMware, InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMwareV2} + return []InstanceTypeBasicFabricSpecificDetails{InstanceTypeBasicFabricSpecificDetailsInstanceTypeAzure, InstanceTypeBasicFabricSpecificDetailsInstanceTypeFabricSpecificDetails, InstanceTypeBasicFabricSpecificDetailsInstanceTypeHyperVSite, InstanceTypeBasicFabricSpecificDetailsInstanceTypeInMageRcm, InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMM, InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMware, InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMwareV2} } // InstanceTypeBasicFabricSpecificUpdateNetworkMappingInput enumerates the values for instance type basic @@ -564,6 +722,8 @@ const ( InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2 InstanceTypeBasicPolicyProviderSpecificDetails = "InMageAzureV2" // InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails ... InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails InstanceTypeBasicPolicyProviderSpecificDetails = "InMageBasePolicyDetails" + // InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageRcm ... + InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageRcm InstanceTypeBasicPolicyProviderSpecificDetails = "InMageRcm" // InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails ... InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails InstanceTypeBasicPolicyProviderSpecificDetails = "PolicyProviderSpecificDetails" // InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration ... @@ -574,7 +734,7 @@ const ( // PossibleInstanceTypeBasicPolicyProviderSpecificDetailsValues returns an array of possible values for the InstanceTypeBasicPolicyProviderSpecificDetails const type. func PossibleInstanceTypeBasicPolicyProviderSpecificDetailsValues() []InstanceTypeBasicPolicyProviderSpecificDetails { - return []InstanceTypeBasicPolicyProviderSpecificDetails{InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A, InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012, InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2, InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure, InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails, InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage, InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2, InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails, InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails, InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration, InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt} + return []InstanceTypeBasicPolicyProviderSpecificDetails{InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A, InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012, InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2, InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure, InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails, InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage, InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2, InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails, InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageRcm, InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails, InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration, InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt} } // InstanceTypeBasicPolicyProviderSpecificInput enumerates the values for instance type basic policy provider @@ -594,6 +754,8 @@ const ( InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMage InstanceTypeBasicPolicyProviderSpecificInput = "InMage" // InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageAzureV2 ... InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageAzureV2 InstanceTypeBasicPolicyProviderSpecificInput = "InMageAzureV2" + // InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageRcm ... + InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageRcm InstanceTypeBasicPolicyProviderSpecificInput = "InMageRcm" // InstanceTypeBasicPolicyProviderSpecificInputInstanceTypePolicyProviderSpecificInput ... InstanceTypeBasicPolicyProviderSpecificInputInstanceTypePolicyProviderSpecificInput InstanceTypeBasicPolicyProviderSpecificInput = "PolicyProviderSpecificInput" // InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeVMwareCbt ... @@ -602,7 +764,7 @@ const ( // PossibleInstanceTypeBasicPolicyProviderSpecificInputValues returns an array of possible values for the InstanceTypeBasicPolicyProviderSpecificInput const type. func PossibleInstanceTypeBasicPolicyProviderSpecificInputValues() []InstanceTypeBasicPolicyProviderSpecificInput { - return []InstanceTypeBasicPolicyProviderSpecificInput{InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeA2A, InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012, InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2, InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure, InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMage, InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageAzureV2, InstanceTypeBasicPolicyProviderSpecificInputInstanceTypePolicyProviderSpecificInput, InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeVMwareCbt} + return []InstanceTypeBasicPolicyProviderSpecificInput{InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeA2A, InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012, InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2, InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure, InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMage, InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageAzureV2, InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageRcm, InstanceTypeBasicPolicyProviderSpecificInputInstanceTypePolicyProviderSpecificInput, InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeVMwareCbt} } // InstanceTypeBasicProtectionContainerMappingProviderSpecificDetails enumerates the values for instance type @@ -656,13 +818,15 @@ const ( InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeA2A InstanceTypeBasicProviderSpecificRecoveryPointDetails = "A2A" // InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeInMageAzureV2 ... InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeInMageAzureV2 InstanceTypeBasicProviderSpecificRecoveryPointDetails = "InMageAzureV2" + // InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeInMageRcm ... + InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeInMageRcm InstanceTypeBasicProviderSpecificRecoveryPointDetails = "InMageRcm" // InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeProviderSpecificRecoveryPointDetails ... InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeProviderSpecificRecoveryPointDetails InstanceTypeBasicProviderSpecificRecoveryPointDetails = "ProviderSpecificRecoveryPointDetails" ) // PossibleInstanceTypeBasicProviderSpecificRecoveryPointDetailsValues returns an array of possible values for the InstanceTypeBasicProviderSpecificRecoveryPointDetails const type. func PossibleInstanceTypeBasicProviderSpecificRecoveryPointDetailsValues() []InstanceTypeBasicProviderSpecificRecoveryPointDetails { - return []InstanceTypeBasicProviderSpecificRecoveryPointDetails{InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeA2A, InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeInMageAzureV2, InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeProviderSpecificRecoveryPointDetails} + return []InstanceTypeBasicProviderSpecificRecoveryPointDetails{InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeA2A, InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeInMageAzureV2, InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeInMageRcm, InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeProviderSpecificRecoveryPointDetails} } // InstanceTypeBasicRecoveryPlanActionDetails enumerates the values for instance type basic recovery plan @@ -685,6 +849,22 @@ func PossibleInstanceTypeBasicRecoveryPlanActionDetailsValues() []InstanceTypeBa return []InstanceTypeBasicRecoveryPlanActionDetails{InstanceTypeAutomationRunbookActionDetails, InstanceTypeManualActionDetails, InstanceTypeRecoveryPlanActionDetails, InstanceTypeScriptActionDetails} } +// InstanceTypeBasicRecoveryPlanProviderSpecificDetails enumerates the values for instance type basic recovery +// plan provider specific details. +type InstanceTypeBasicRecoveryPlanProviderSpecificDetails string + +const ( + // InstanceTypeBasicRecoveryPlanProviderSpecificDetailsInstanceTypeA2A ... + InstanceTypeBasicRecoveryPlanProviderSpecificDetailsInstanceTypeA2A InstanceTypeBasicRecoveryPlanProviderSpecificDetails = "A2A" + // InstanceTypeBasicRecoveryPlanProviderSpecificDetailsInstanceTypeRecoveryPlanProviderSpecificDetails ... + InstanceTypeBasicRecoveryPlanProviderSpecificDetailsInstanceTypeRecoveryPlanProviderSpecificDetails InstanceTypeBasicRecoveryPlanProviderSpecificDetails = "RecoveryPlanProviderSpecificDetails" +) + +// PossibleInstanceTypeBasicRecoveryPlanProviderSpecificDetailsValues returns an array of possible values for the InstanceTypeBasicRecoveryPlanProviderSpecificDetails const type. +func PossibleInstanceTypeBasicRecoveryPlanProviderSpecificDetailsValues() []InstanceTypeBasicRecoveryPlanProviderSpecificDetails { + return []InstanceTypeBasicRecoveryPlanProviderSpecificDetails{InstanceTypeBasicRecoveryPlanProviderSpecificDetailsInstanceTypeA2A, InstanceTypeBasicRecoveryPlanProviderSpecificDetailsInstanceTypeRecoveryPlanProviderSpecificDetails} +} + // InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInput enumerates the values for instance type basic // recovery plan provider specific failover input. type InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInput string @@ -700,13 +880,63 @@ const ( InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMage InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInput = "InMage" // InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageAzureV2 ... InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageAzureV2 InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInput = "InMageAzureV2" + // InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageRcm ... + InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageRcm InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInput = "InMageRcm" // InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeRecoveryPlanProviderSpecificFailoverInput ... InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeRecoveryPlanProviderSpecificFailoverInput InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInput = "RecoveryPlanProviderSpecificFailoverInput" ) // PossibleInstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputValues returns an array of possible values for the InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInput const type. func PossibleInstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputValues() []InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInput { - return []InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInput{InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeA2A, InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure, InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback, InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMage, InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageAzureV2, InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeRecoveryPlanProviderSpecificFailoverInput} + return []InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInput{InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeA2A, InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure, InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback, InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMage, InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageAzureV2, InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageRcm, InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeRecoveryPlanProviderSpecificFailoverInput} +} + +// InstanceTypeBasicRecoveryPlanProviderSpecificInput enumerates the values for instance type basic recovery +// plan provider specific input. +type InstanceTypeBasicRecoveryPlanProviderSpecificInput string + +const ( + // InstanceTypeBasicRecoveryPlanProviderSpecificInputInstanceTypeA2A ... + InstanceTypeBasicRecoveryPlanProviderSpecificInputInstanceTypeA2A InstanceTypeBasicRecoveryPlanProviderSpecificInput = "A2A" + // InstanceTypeBasicRecoveryPlanProviderSpecificInputInstanceTypeRecoveryPlanProviderSpecificInput ... + InstanceTypeBasicRecoveryPlanProviderSpecificInputInstanceTypeRecoveryPlanProviderSpecificInput InstanceTypeBasicRecoveryPlanProviderSpecificInput = "RecoveryPlanProviderSpecificInput" +) + +// PossibleInstanceTypeBasicRecoveryPlanProviderSpecificInputValues returns an array of possible values for the InstanceTypeBasicRecoveryPlanProviderSpecificInput const type. +func PossibleInstanceTypeBasicRecoveryPlanProviderSpecificInputValues() []InstanceTypeBasicRecoveryPlanProviderSpecificInput { + return []InstanceTypeBasicRecoveryPlanProviderSpecificInput{InstanceTypeBasicRecoveryPlanProviderSpecificInputInstanceTypeA2A, InstanceTypeBasicRecoveryPlanProviderSpecificInputInstanceTypeRecoveryPlanProviderSpecificInput} +} + +// InstanceTypeBasicRemoveDisksProviderSpecificInput enumerates the values for instance type basic remove disks +// provider specific input. +type InstanceTypeBasicRemoveDisksProviderSpecificInput string + +const ( + // InstanceTypeBasicRemoveDisksProviderSpecificInputInstanceTypeA2A ... + InstanceTypeBasicRemoveDisksProviderSpecificInputInstanceTypeA2A InstanceTypeBasicRemoveDisksProviderSpecificInput = "A2A" + // InstanceTypeBasicRemoveDisksProviderSpecificInputInstanceTypeRemoveDisksProviderSpecificInput ... + InstanceTypeBasicRemoveDisksProviderSpecificInputInstanceTypeRemoveDisksProviderSpecificInput InstanceTypeBasicRemoveDisksProviderSpecificInput = "RemoveDisksProviderSpecificInput" +) + +// PossibleInstanceTypeBasicRemoveDisksProviderSpecificInputValues returns an array of possible values for the InstanceTypeBasicRemoveDisksProviderSpecificInput const type. +func PossibleInstanceTypeBasicRemoveDisksProviderSpecificInputValues() []InstanceTypeBasicRemoveDisksProviderSpecificInput { + return []InstanceTypeBasicRemoveDisksProviderSpecificInput{InstanceTypeBasicRemoveDisksProviderSpecificInputInstanceTypeA2A, InstanceTypeBasicRemoveDisksProviderSpecificInputInstanceTypeRemoveDisksProviderSpecificInput} +} + +// InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettings enumerates the values for instance type +// basic replication protection intent provider specific settings. +type InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettings string + +const ( + // InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettingsInstanceTypeA2A ... + InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettingsInstanceTypeA2A InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettings = "A2A" + // InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettingsInstanceTypeReplicationProtectionIntentProviderSpecificSettings ... + InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettingsInstanceTypeReplicationProtectionIntentProviderSpecificSettings InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettings = "ReplicationProtectionIntentProviderSpecificSettings" +) + +// PossibleInstanceTypeBasicReplicationProtectionIntentProviderSpecificSettingsValues returns an array of possible values for the InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettings const type. +func PossibleInstanceTypeBasicReplicationProtectionIntentProviderSpecificSettingsValues() []InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettings { + return []InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettings{InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettingsInstanceTypeA2A, InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettingsInstanceTypeReplicationProtectionIntentProviderSpecificSettings} } // InstanceTypeBasicReplicationProviderSpecificContainerCreationInput enumerates the values for instance type @@ -718,13 +948,13 @@ const ( InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A InstanceTypeBasicReplicationProviderSpecificContainerCreationInput = "A2A" // InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput ... InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput InstanceTypeBasicReplicationProviderSpecificContainerCreationInput = "ReplicationProviderSpecificContainerCreationInput" - // InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeVMwareCbt ... - InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeVMwareCbt InstanceTypeBasicReplicationProviderSpecificContainerCreationInput = "VMwareCbt" + // 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, InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeVMwareCbt} + return []InstanceTypeBasicReplicationProviderSpecificContainerCreationInput{InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A, InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput, InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeSixcSevendaFourFiveFiveFiveZeroSixfFourThreeffAOneSixaEightebOneZeroOneaebbSevenZero} } // InstanceTypeBasicReplicationProviderSpecificContainerMappingInput enumerates the values for instance type @@ -764,13 +994,15 @@ const ( InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage InstanceTypeBasicReplicationProviderSpecificSettings = "InMage" // InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2 ... InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2 InstanceTypeBasicReplicationProviderSpecificSettings = "InMageAzureV2" + // InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageRcm ... + InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageRcm InstanceTypeBasicReplicationProviderSpecificSettings = "InMageRcm" // InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeReplicationProviderSpecificSettings ... InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeReplicationProviderSpecificSettings InstanceTypeBasicReplicationProviderSpecificSettings = "ReplicationProviderSpecificSettings" ) // PossibleInstanceTypeBasicReplicationProviderSpecificSettingsValues returns an array of possible values for the InstanceTypeBasicReplicationProviderSpecificSettings const type. func PossibleInstanceTypeBasicReplicationProviderSpecificSettingsValues() []InstanceTypeBasicReplicationProviderSpecificSettings { - return []InstanceTypeBasicReplicationProviderSpecificSettings{InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeA2A, InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012, InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2, InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure, InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails, InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage, InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2, InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeReplicationProviderSpecificSettings} + return []InstanceTypeBasicReplicationProviderSpecificSettings{InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeA2A, InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012, InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2, InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure, InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails, InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage, InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2, InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageRcm, InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeReplicationProviderSpecificSettings} } // InstanceTypeBasicReplicationProviderSpecificUpdateContainerMappingInput enumerates the values for instance @@ -789,22 +1021,6 @@ func PossibleInstanceTypeBasicReplicationProviderSpecificUpdateContainerMappingI return []InstanceTypeBasicReplicationProviderSpecificUpdateContainerMappingInput{InstanceTypeBasicReplicationProviderSpecificUpdateContainerMappingInputInstanceTypeA2A, InstanceTypeBasicReplicationProviderSpecificUpdateContainerMappingInputInstanceTypeReplicationProviderSpecificUpdateContainerMappingInput} } -// InstanceTypeBasicResyncProviderSpecificInput enumerates the values for instance type basic resync provider -// specific input. -type InstanceTypeBasicResyncProviderSpecificInput string - -const ( - // InstanceTypeBasicResyncProviderSpecificInputInstanceTypeResyncProviderSpecificInput ... - InstanceTypeBasicResyncProviderSpecificInputInstanceTypeResyncProviderSpecificInput InstanceTypeBasicResyncProviderSpecificInput = "ResyncProviderSpecificInput" - // InstanceTypeBasicResyncProviderSpecificInputInstanceTypeVMwareCbt ... - InstanceTypeBasicResyncProviderSpecificInputInstanceTypeVMwareCbt InstanceTypeBasicResyncProviderSpecificInput = "VMwareCbt" -) - -// PossibleInstanceTypeBasicResyncProviderSpecificInputValues returns an array of possible values for the InstanceTypeBasicResyncProviderSpecificInput const type. -func PossibleInstanceTypeBasicResyncProviderSpecificInputValues() []InstanceTypeBasicResyncProviderSpecificInput { - return []InstanceTypeBasicResyncProviderSpecificInput{InstanceTypeBasicResyncProviderSpecificInputInstanceTypeResyncProviderSpecificInput, InstanceTypeBasicResyncProviderSpecificInputInstanceTypeVMwareCbt} -} - // InstanceTypeBasicReverseReplicationProviderSpecificInput enumerates the values for instance type basic // reverse replication provider specific input. type InstanceTypeBasicReverseReplicationProviderSpecificInput string @@ -872,6 +1088,30 @@ func PossibleInstanceTypeBasicTaskTypeDetailsValues() []InstanceTypeBasicTaskTyp return []InstanceTypeBasicTaskTypeDetails{InstanceTypeAutomationRunbookTaskDetails, InstanceTypeConsistencyCheckTaskDetails, InstanceTypeFabricReplicationGroupTaskDetails, InstanceTypeJobTaskDetails, InstanceTypeManualActionTaskDetails, InstanceTypeScriptActionTaskDetails, InstanceTypeTaskTypeDetails, InstanceTypeVirtualMachineTaskDetails, InstanceTypeVMNicUpdatesTaskDetails} } +// InstanceTypeBasicTestFailoverProviderSpecificInput enumerates the values for instance type basic test +// failover provider specific input. +type InstanceTypeBasicTestFailoverProviderSpecificInput string + +const ( + // InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeA2A ... + InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeA2A InstanceTypeBasicTestFailoverProviderSpecificInput = "A2A" + // InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure ... + InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure InstanceTypeBasicTestFailoverProviderSpecificInput = "HyperVReplicaAzure" + // InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMage ... + InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMage InstanceTypeBasicTestFailoverProviderSpecificInput = "InMage" + // InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageAzureV2 ... + InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageAzureV2 InstanceTypeBasicTestFailoverProviderSpecificInput = "InMageAzureV2" + // InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageRcm ... + InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageRcm InstanceTypeBasicTestFailoverProviderSpecificInput = "InMageRcm" + // InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeTestFailoverProviderSpecificInput ... + InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeTestFailoverProviderSpecificInput InstanceTypeBasicTestFailoverProviderSpecificInput = "TestFailoverProviderSpecificInput" +) + +// PossibleInstanceTypeBasicTestFailoverProviderSpecificInputValues returns an array of possible values for the InstanceTypeBasicTestFailoverProviderSpecificInput const type. +func PossibleInstanceTypeBasicTestFailoverProviderSpecificInputValues() []InstanceTypeBasicTestFailoverProviderSpecificInput { + return []InstanceTypeBasicTestFailoverProviderSpecificInput{InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeA2A, InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure, InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMage, InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageAzureV2, InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageRcm, InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeTestFailoverProviderSpecificInput} +} + // InstanceTypeBasicTestMigrateProviderSpecificInput enumerates the values for instance type basic test migrate // provider specific input. type InstanceTypeBasicTestMigrateProviderSpecificInput string @@ -888,6 +1128,30 @@ func PossibleInstanceTypeBasicTestMigrateProviderSpecificInputValues() []Instanc return []InstanceTypeBasicTestMigrateProviderSpecificInput{InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeTestMigrateProviderSpecificInput, InstanceTypeBasicTestMigrateProviderSpecificInputInstanceTypeVMwareCbt} } +// InstanceTypeBasicUnplannedFailoverProviderSpecificInput enumerates the values for instance type basic +// unplanned failover provider specific input. +type InstanceTypeBasicUnplannedFailoverProviderSpecificInput string + +const ( + // InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeA2A ... + InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeA2A InstanceTypeBasicUnplannedFailoverProviderSpecificInput = "A2A" + // InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure ... + InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure InstanceTypeBasicUnplannedFailoverProviderSpecificInput = "HyperVReplicaAzure" + // InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMage ... + InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMage InstanceTypeBasicUnplannedFailoverProviderSpecificInput = "InMage" + // InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageAzureV2 ... + InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageAzureV2 InstanceTypeBasicUnplannedFailoverProviderSpecificInput = "InMageAzureV2" + // InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageRcm ... + InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageRcm InstanceTypeBasicUnplannedFailoverProviderSpecificInput = "InMageRcm" + // InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeUnplannedFailoverProviderSpecificInput ... + InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeUnplannedFailoverProviderSpecificInput InstanceTypeBasicUnplannedFailoverProviderSpecificInput = "UnplannedFailoverProviderSpecificInput" +) + +// PossibleInstanceTypeBasicUnplannedFailoverProviderSpecificInputValues returns an array of possible values for the InstanceTypeBasicUnplannedFailoverProviderSpecificInput const type. +func PossibleInstanceTypeBasicUnplannedFailoverProviderSpecificInputValues() []InstanceTypeBasicUnplannedFailoverProviderSpecificInput { + return []InstanceTypeBasicUnplannedFailoverProviderSpecificInput{InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeA2A, InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure, InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMage, InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageAzureV2, InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageRcm, InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeUnplannedFailoverProviderSpecificInput} +} + // InstanceTypeBasicUpdateMigrationItemProviderSpecificInput enumerates the values for instance type basic // update migration item provider specific input. type InstanceTypeBasicUpdateMigrationItemProviderSpecificInput string @@ -915,13 +1179,15 @@ const ( InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeHyperVReplicaAzure InstanceTypeBasicUpdateReplicationProtectedItemProviderInput = "HyperVReplicaAzure" // InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageAzureV2 ... InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageAzureV2 InstanceTypeBasicUpdateReplicationProtectedItemProviderInput = "InMageAzureV2" + // InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageRcm ... + InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageRcm InstanceTypeBasicUpdateReplicationProtectedItemProviderInput = "InMageRcm" // InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeUpdateReplicationProtectedItemProviderInput ... InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeUpdateReplicationProtectedItemProviderInput InstanceTypeBasicUpdateReplicationProtectedItemProviderInput = "UpdateReplicationProtectedItemProviderInput" ) // PossibleInstanceTypeBasicUpdateReplicationProtectedItemProviderInputValues returns an array of possible values for the InstanceTypeBasicUpdateReplicationProtectedItemProviderInput const type. func PossibleInstanceTypeBasicUpdateReplicationProtectedItemProviderInputValues() []InstanceTypeBasicUpdateReplicationProtectedItemProviderInput { - return []InstanceTypeBasicUpdateReplicationProtectedItemProviderInput{InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeA2A, InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeHyperVReplicaAzure, InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageAzureV2, InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeUpdateReplicationProtectedItemProviderInput} + return []InstanceTypeBasicUpdateReplicationProtectedItemProviderInput{InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeA2A, InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeHyperVReplicaAzure, InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageAzureV2, InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageRcm, InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeUpdateReplicationProtectedItemProviderInput} } // LicenseType enumerates the values for license type. @@ -949,8 +1215,6 @@ const ( DisableMigration MigrationItemOperation = "DisableMigration" // Migrate ... Migrate MigrationItemOperation = "Migrate" - // StartResync ... - StartResync MigrationItemOperation = "StartResync" // TestMigrate ... TestMigrate MigrationItemOperation = "TestMigrate" // TestMigrateCleanup ... @@ -959,7 +1223,7 @@ const ( // PossibleMigrationItemOperationValues returns an array of possible values for the MigrationItemOperation const type. func PossibleMigrationItemOperationValues() []MigrationItemOperation { - return []MigrationItemOperation{DisableMigration, Migrate, StartResync, TestMigrate, TestMigrateCleanup} + return []MigrationItemOperation{DisableMigration, Migrate, TestMigrate, TestMigrateCleanup} } // MigrationRecoveryPointType enumerates the values for migration recovery point type. @@ -1012,6 +1276,25 @@ func PossibleMigrationStateValues() []MigrationState { return []MigrationState{MigrationStateDisableMigrationFailed, MigrationStateDisableMigrationInProgress, MigrationStateEnableMigrationFailed, MigrationStateEnableMigrationInProgress, MigrationStateInitialSeedingFailed, MigrationStateInitialSeedingInProgress, MigrationStateMigrationFailed, MigrationStateMigrationInProgress, MigrationStateMigrationSucceeded, MigrationStateNone, MigrationStateReplicating} } +// MobilityAgentUpgradeState enumerates the values for mobility agent upgrade state. +type MobilityAgentUpgradeState string + +const ( + // MobilityAgentUpgradeStateCommit ... + MobilityAgentUpgradeStateCommit MobilityAgentUpgradeState = "Commit" + // MobilityAgentUpgradeStateCompleted ... + MobilityAgentUpgradeStateCompleted MobilityAgentUpgradeState = "Completed" + // MobilityAgentUpgradeStateNone ... + MobilityAgentUpgradeStateNone MobilityAgentUpgradeState = "None" + // MobilityAgentUpgradeStateStarted ... + MobilityAgentUpgradeStateStarted MobilityAgentUpgradeState = "Started" +) + +// PossibleMobilityAgentUpgradeStateValues returns an array of possible values for the MobilityAgentUpgradeState const type. +func PossibleMobilityAgentUpgradeStateValues() []MobilityAgentUpgradeState { + return []MobilityAgentUpgradeState{MobilityAgentUpgradeStateCommit, MobilityAgentUpgradeStateCompleted, MobilityAgentUpgradeStateNone, MobilityAgentUpgradeStateStarted} +} + // MultiVMGroupCreateOption enumerates the values for multi vm group create option. type MultiVMGroupCreateOption string @@ -1076,17 +1359,17 @@ func PossiblePossibleOperationsDirectionsValues() []PossibleOperationsDirections type PresenceStatus string const ( - // NotPresent ... - NotPresent PresenceStatus = "NotPresent" - // Present ... - Present PresenceStatus = "Present" - // Unknown ... - Unknown PresenceStatus = "Unknown" + // PresenceStatusNotPresent ... + PresenceStatusNotPresent PresenceStatus = "NotPresent" + // PresenceStatusPresent ... + PresenceStatusPresent PresenceStatus = "Present" + // PresenceStatusUnknown ... + PresenceStatusUnknown PresenceStatus = "Unknown" ) // PossiblePresenceStatusValues returns an array of possible values for the PresenceStatus const type. func PossiblePresenceStatusValues() []PresenceStatus { - return []PresenceStatus{NotPresent, Present, Unknown} + return []PresenceStatus{PresenceStatusNotPresent, PresenceStatusPresent, PresenceStatusUnknown} } // ProtectionHealth enumerates the values for protection health. @@ -1140,6 +1423,25 @@ func PossibleRecoveryPlanGroupTypeValues() []RecoveryPlanGroupType { return []RecoveryPlanGroupType{Boot, Failover, Shutdown} } +// RecoveryPlanPointType enumerates the values for recovery plan point type. +type RecoveryPlanPointType string + +const ( + // RecoveryPlanPointTypeLatest ... + RecoveryPlanPointTypeLatest RecoveryPlanPointType = "Latest" + // RecoveryPlanPointTypeLatestApplicationConsistent ... + RecoveryPlanPointTypeLatestApplicationConsistent RecoveryPlanPointType = "LatestApplicationConsistent" + // RecoveryPlanPointTypeLatestCrashConsistent ... + RecoveryPlanPointTypeLatestCrashConsistent RecoveryPlanPointType = "LatestCrashConsistent" + // RecoveryPlanPointTypeLatestProcessed ... + RecoveryPlanPointTypeLatestProcessed RecoveryPlanPointType = "LatestProcessed" +) + +// PossibleRecoveryPlanPointTypeValues returns an array of possible values for the RecoveryPlanPointType const type. +func PossibleRecoveryPlanPointTypeValues() []RecoveryPlanPointType { + return []RecoveryPlanPointType{RecoveryPlanPointTypeLatest, RecoveryPlanPointTypeLatestApplicationConsistent, RecoveryPlanPointTypeLatestCrashConsistent, RecoveryPlanPointTypeLatestProcessed} +} + // RecoveryPointSyncType enumerates the values for recovery point sync type. type RecoveryPointSyncType string @@ -1209,6 +1511,103 @@ func PossibleReplicationProtectedItemOperationValues() []ReplicationProtectedIte return []ReplicationProtectedItemOperation{ReplicationProtectedItemOperationChangePit, ReplicationProtectedItemOperationCommit, ReplicationProtectedItemOperationCompleteMigration, ReplicationProtectedItemOperationDisableProtection, ReplicationProtectedItemOperationFailback, ReplicationProtectedItemOperationFinalizeFailback, ReplicationProtectedItemOperationPlannedFailover, ReplicationProtectedItemOperationRepairReplication, ReplicationProtectedItemOperationReverseReplicate, ReplicationProtectedItemOperationSwitchProtection, ReplicationProtectedItemOperationTestFailover, ReplicationProtectedItemOperationTestFailoverCleanup, ReplicationProtectedItemOperationUnplannedFailover} } +// ResourceType enumerates the values for resource type. +type ResourceType string + +const ( + // ResourceTypeExisting ... + ResourceTypeExisting ResourceType = "Existing" + // ResourceTypeNew ... + ResourceTypeNew ResourceType = "New" + // ResourceTypeProtectionProfileCustomDetails ... + ResourceTypeProtectionProfileCustomDetails ResourceType = "ProtectionProfileCustomDetails" +) + +// PossibleResourceTypeValues returns an array of possible values for the ResourceType const type. +func PossibleResourceTypeValues() []ResourceType { + return []ResourceType{ResourceTypeExisting, ResourceTypeNew, ResourceTypeProtectionProfileCustomDetails} +} + +// ResourceTypeBasicRecoveryAvailabilitySetCustomDetails enumerates the values for resource type basic recovery +// availability set custom details. +type ResourceTypeBasicRecoveryAvailabilitySetCustomDetails string + +const ( + // ResourceTypeBasicRecoveryAvailabilitySetCustomDetailsResourceTypeExisting ... + ResourceTypeBasicRecoveryAvailabilitySetCustomDetailsResourceTypeExisting ResourceTypeBasicRecoveryAvailabilitySetCustomDetails = "Existing" + // ResourceTypeBasicRecoveryAvailabilitySetCustomDetailsResourceTypeRecoveryAvailabilitySetCustomDetails ... + ResourceTypeBasicRecoveryAvailabilitySetCustomDetailsResourceTypeRecoveryAvailabilitySetCustomDetails ResourceTypeBasicRecoveryAvailabilitySetCustomDetails = "RecoveryAvailabilitySetCustomDetails" +) + +// PossibleResourceTypeBasicRecoveryAvailabilitySetCustomDetailsValues returns an array of possible values for the ResourceTypeBasicRecoveryAvailabilitySetCustomDetails const type. +func PossibleResourceTypeBasicRecoveryAvailabilitySetCustomDetailsValues() []ResourceTypeBasicRecoveryAvailabilitySetCustomDetails { + return []ResourceTypeBasicRecoveryAvailabilitySetCustomDetails{ResourceTypeBasicRecoveryAvailabilitySetCustomDetailsResourceTypeExisting, ResourceTypeBasicRecoveryAvailabilitySetCustomDetailsResourceTypeRecoveryAvailabilitySetCustomDetails} +} + +// ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetails enumerates the values for resource type basic +// recovery proximity placement group custom details. +type ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetails string + +const ( + // ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetailsResourceTypeExisting ... + ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetailsResourceTypeExisting ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetails = "Existing" + // ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetailsResourceTypeRecoveryProximityPlacementGroupCustomDetails ... + ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetailsResourceTypeRecoveryProximityPlacementGroupCustomDetails ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetails = "RecoveryProximityPlacementGroupCustomDetails" +) + +// PossibleResourceTypeBasicRecoveryProximityPlacementGroupCustomDetailsValues returns an array of possible values for the ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetails const type. +func PossibleResourceTypeBasicRecoveryProximityPlacementGroupCustomDetailsValues() []ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetails { + return []ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetails{ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetailsResourceTypeExisting, ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetailsResourceTypeRecoveryProximityPlacementGroupCustomDetails} +} + +// ResourceTypeBasicRecoveryResourceGroupCustomDetails enumerates the values for resource type basic recovery +// resource group custom details. +type ResourceTypeBasicRecoveryResourceGroupCustomDetails string + +const ( + // ResourceTypeBasicRecoveryResourceGroupCustomDetailsResourceTypeExisting ... + ResourceTypeBasicRecoveryResourceGroupCustomDetailsResourceTypeExisting ResourceTypeBasicRecoveryResourceGroupCustomDetails = "Existing" + // ResourceTypeBasicRecoveryResourceGroupCustomDetailsResourceTypeRecoveryResourceGroupCustomDetails ... + ResourceTypeBasicRecoveryResourceGroupCustomDetailsResourceTypeRecoveryResourceGroupCustomDetails ResourceTypeBasicRecoveryResourceGroupCustomDetails = "RecoveryResourceGroupCustomDetails" +) + +// PossibleResourceTypeBasicRecoveryResourceGroupCustomDetailsValues returns an array of possible values for the ResourceTypeBasicRecoveryResourceGroupCustomDetails const type. +func PossibleResourceTypeBasicRecoveryResourceGroupCustomDetailsValues() []ResourceTypeBasicRecoveryResourceGroupCustomDetails { + return []ResourceTypeBasicRecoveryResourceGroupCustomDetails{ResourceTypeBasicRecoveryResourceGroupCustomDetailsResourceTypeExisting, ResourceTypeBasicRecoveryResourceGroupCustomDetailsResourceTypeRecoveryResourceGroupCustomDetails} +} + +// ResourceTypeBasicRecoveryVirtualNetworkCustomDetails enumerates the values for resource type basic recovery +// virtual network custom details. +type ResourceTypeBasicRecoveryVirtualNetworkCustomDetails string + +const ( + // ResourceTypeBasicRecoveryVirtualNetworkCustomDetailsResourceTypeExisting ... + ResourceTypeBasicRecoveryVirtualNetworkCustomDetailsResourceTypeExisting ResourceTypeBasicRecoveryVirtualNetworkCustomDetails = "Existing" + // ResourceTypeBasicRecoveryVirtualNetworkCustomDetailsResourceTypeRecoveryVirtualNetworkCustomDetails ... + ResourceTypeBasicRecoveryVirtualNetworkCustomDetailsResourceTypeRecoveryVirtualNetworkCustomDetails ResourceTypeBasicRecoveryVirtualNetworkCustomDetails = "RecoveryVirtualNetworkCustomDetails" +) + +// PossibleResourceTypeBasicRecoveryVirtualNetworkCustomDetailsValues returns an array of possible values for the ResourceTypeBasicRecoveryVirtualNetworkCustomDetails const type. +func PossibleResourceTypeBasicRecoveryVirtualNetworkCustomDetailsValues() []ResourceTypeBasicRecoveryVirtualNetworkCustomDetails { + return []ResourceTypeBasicRecoveryVirtualNetworkCustomDetails{ResourceTypeBasicRecoveryVirtualNetworkCustomDetailsResourceTypeExisting, ResourceTypeBasicRecoveryVirtualNetworkCustomDetailsResourceTypeRecoveryVirtualNetworkCustomDetails} +} + +// ResourceTypeBasicStorageAccountCustomDetails enumerates the values for resource type basic storage account +// custom details. +type ResourceTypeBasicStorageAccountCustomDetails string + +const ( + // ResourceTypeBasicStorageAccountCustomDetailsResourceTypeExisting ... + ResourceTypeBasicStorageAccountCustomDetailsResourceTypeExisting ResourceTypeBasicStorageAccountCustomDetails = "Existing" + // ResourceTypeBasicStorageAccountCustomDetailsResourceTypeStorageAccountCustomDetails ... + ResourceTypeBasicStorageAccountCustomDetailsResourceTypeStorageAccountCustomDetails ResourceTypeBasicStorageAccountCustomDetails = "StorageAccountCustomDetails" +) + +// PossibleResourceTypeBasicStorageAccountCustomDetailsValues returns an array of possible values for the ResourceTypeBasicStorageAccountCustomDetails const type. +func PossibleResourceTypeBasicStorageAccountCustomDetailsValues() []ResourceTypeBasicStorageAccountCustomDetails { + return []ResourceTypeBasicStorageAccountCustomDetails{ResourceTypeBasicStorageAccountCustomDetailsResourceTypeExisting, ResourceTypeBasicStorageAccountCustomDetailsResourceTypeStorageAccountCustomDetails} +} + // ResyncState enumerates the values for resync state. type ResyncState string @@ -1312,3 +1711,20 @@ const ( func PossibleTestMigrationStateValues() []TestMigrationState { return []TestMigrationState{TestMigrationStateNone, TestMigrationStateTestMigrationCleanupInProgress, TestMigrationStateTestMigrationFailed, TestMigrationStateTestMigrationInProgress, TestMigrationStateTestMigrationSucceeded} } + +// VMEncryptionType enumerates the values for vm encryption type. +type VMEncryptionType string + +const ( + // NotEncrypted ... + NotEncrypted VMEncryptionType = "NotEncrypted" + // OnePassEncrypted ... + OnePassEncrypted VMEncryptionType = "OnePassEncrypted" + // TwoPassEncrypted ... + TwoPassEncrypted VMEncryptionType = "TwoPassEncrypted" +) + +// PossibleVMEncryptionTypeValues returns an array of possible values for the VMEncryptionType const type. +func PossibleVMEncryptionTypeValues() []VMEncryptionType { + return []VMEncryptionType{NotEncrypted, OnePassEncrypted, TwoPassEncrypted} +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/migrationrecoverypoints.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/migrationrecoverypoints.go similarity index 99% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/migrationrecoverypoints.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/migrationrecoverypoints.go index 7becafb8506a..e38ffd5d93e2 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/migrationrecoverypoints.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/migrationrecoverypoints.go @@ -93,7 +93,7 @@ func (client MigrationRecoveryPointsClient) GetPreparer(ctx context.Context, fab "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -177,7 +177,7 @@ func (client MigrationRecoveryPointsClient) ListByReplicationMigrationItemsPrepa "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/models.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/models.go similarity index 76% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/models.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/models.go index 8aa3ad311c3d..d215ed521620 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/models.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/models.go @@ -29,17 +29,58 @@ import ( ) // The package's fully qualified name. -const fqdn = "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery" +const fqdn = "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery" + +// A2AAddDisksInput a2A add disk(s) input. +type A2AAddDisksInput struct { + // VMDisks - The list of vm disk details. + VMDisks *[]A2AVMDiskInputDetails `json:"vmDisks,omitempty"` + // VMManagedDisks - The list of vm managed disk details. + VMManagedDisks *[]A2AVMManagedDiskInputDetails `json:"vmManagedDisks,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeAddDisksProviderSpecificInput', 'InstanceTypeA2A' + InstanceType InstanceType `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for A2AAddDisksInput. +func (aadi A2AAddDisksInput) MarshalJSON() ([]byte, error) { + aadi.InstanceType = InstanceTypeA2A + objectMap := make(map[string]interface{}) + if aadi.VMDisks != nil { + objectMap["vmDisks"] = aadi.VMDisks + } + if aadi.VMManagedDisks != nil { + objectMap["vmManagedDisks"] = aadi.VMManagedDisks + } + if aadi.InstanceType != "" { + objectMap["instanceType"] = aadi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2AAddDisksInput is the BasicAddDisksProviderSpecificInput implementation for A2AAddDisksInput. +func (aadi A2AAddDisksInput) AsA2AAddDisksInput() (*A2AAddDisksInput, bool) { + return &aadi, true +} + +// AsAddDisksProviderSpecificInput is the BasicAddDisksProviderSpecificInput implementation for A2AAddDisksInput. +func (aadi A2AAddDisksInput) AsAddDisksProviderSpecificInput() (*AddDisksProviderSpecificInput, bool) { + return nil, false +} + +// AsBasicAddDisksProviderSpecificInput is the BasicAddDisksProviderSpecificInput implementation for A2AAddDisksInput. +func (aadi A2AAddDisksInput) AsBasicAddDisksProviderSpecificInput() (BasicAddDisksProviderSpecificInput, bool) { + return &aadi, true +} // A2AApplyRecoveryPointInput applyRecoveryPoint input specific to A2A provider. type A2AApplyRecoveryPointInput struct { - // InstanceType - Possible values include: 'InstanceTypeApplyRecoveryPointProviderSpecificInput', 'InstanceTypeA2A', 'InstanceTypeHyperVReplicaAzure', 'InstanceTypeInMageAzureV2' - InstanceType InstanceType `json:"instanceType,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeApplyRecoveryPointProviderSpecificInput', 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeInMageRcm' + InstanceType InstanceTypeBasicApplyRecoveryPointProviderSpecificInput `json:"instanceType,omitempty"` } // MarshalJSON is the custom marshaler for A2AApplyRecoveryPointInput. func (aarpi A2AApplyRecoveryPointInput) MarshalJSON() ([]byte, error) { - aarpi.InstanceType = InstanceTypeA2A + aarpi.InstanceType = InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeA2A objectMap := make(map[string]interface{}) if aarpi.InstanceType != "" { objectMap["instanceType"] = aarpi.InstanceType @@ -62,6 +103,11 @@ func (aarpi A2AApplyRecoveryPointInput) AsInMageAzureV2ApplyRecoveryPointInput() return nil, false } +// AsInMageRcmApplyRecoveryPointInput is the BasicApplyRecoveryPointProviderSpecificInput implementation for A2AApplyRecoveryPointInput. +func (aarpi A2AApplyRecoveryPointInput) AsInMageRcmApplyRecoveryPointInput() (*InMageRcmApplyRecoveryPointInput, bool) { + return nil, false +} + // AsApplyRecoveryPointProviderSpecificInput is the BasicApplyRecoveryPointProviderSpecificInput implementation for A2AApplyRecoveryPointInput. func (aarpi A2AApplyRecoveryPointInput) AsApplyRecoveryPointProviderSpecificInput() (*ApplyRecoveryPointProviderSpecificInput, bool) { return nil, false @@ -74,7 +120,7 @@ func (aarpi A2AApplyRecoveryPointInput) AsBasicApplyRecoveryPointProviderSpecifi // A2AContainerCreationInput a2A cloud creation input. type A2AContainerCreationInput struct { - // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput', 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput', 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeSixcSevendaFourFiveFiveFiveZeroSixfFourThreeffAOneSixaEightebOneZeroOneaebbSevenZero' InstanceType InstanceTypeBasicReplicationProviderSpecificContainerCreationInput `json:"instanceType,omitempty"` } @@ -154,6 +200,309 @@ func (acmi A2AContainerMappingInput) AsBasicReplicationProviderSpecificContainer return &acmi, true } +// A2ACreateProtectionIntentInput a2A create protection intent input. +type A2ACreateProtectionIntentInput struct { + // FabricObjectID - The fabric specific object Id of the virtual machine. + FabricObjectID *string `json:"fabricObjectId,omitempty"` + // PrimaryLocation - The primary location for the virtual machine. + PrimaryLocation *string `json:"primaryLocation,omitempty"` + // RecoveryLocation - The recovery location for the virtual machine. + RecoveryLocation *string `json:"recoveryLocation,omitempty"` + // RecoverySubscriptionID - The recovery subscription Id of the virtual machine. + RecoverySubscriptionID *string `json:"recoverySubscriptionId,omitempty"` + // RecoveryAvailabilityType - The recovery availability type of the virtual machine. Possible values include: 'Single', 'AvailabilitySet', 'AvailabilityZone' + RecoveryAvailabilityType A2ARecoveryAvailabilityType `json:"recoveryAvailabilityType,omitempty"` + // ProtectionProfileCustomInput - The protection profile custom inputs. + ProtectionProfileCustomInput BasicProtectionProfileCustomDetails `json:"protectionProfileCustomInput,omitempty"` + // RecoveryResourceGroupID - The recovery resource group Id. Valid for V2 scenarios. + RecoveryResourceGroupID *string `json:"recoveryResourceGroupId,omitempty"` + // PrimaryStagingStorageAccountCustomInput - The primary staging storage account input. + PrimaryStagingStorageAccountCustomInput BasicStorageAccountCustomDetails `json:"primaryStagingStorageAccountCustomInput,omitempty"` + // RecoveryAvailabilitySetCustomInput - The recovery availability set input. + RecoveryAvailabilitySetCustomInput BasicRecoveryAvailabilitySetCustomDetails `json:"recoveryAvailabilitySetCustomInput,omitempty"` + // RecoveryVirtualNetworkCustomInput - The recovery virtual network input. + RecoveryVirtualNetworkCustomInput BasicRecoveryVirtualNetworkCustomDetails `json:"recoveryVirtualNetworkCustomInput,omitempty"` + // RecoveryProximityPlacementGroupCustomInput - The recovery proximity placement group custom input. + RecoveryProximityPlacementGroupCustomInput BasicRecoveryProximityPlacementGroupCustomDetails `json:"recoveryProximityPlacementGroupCustomInput,omitempty"` + // AutoProtectionOfDataDisk - A value indicating whether the auto protection is enabled. Possible values include: 'AutoProtectionOfDataDiskDisabled', 'AutoProtectionOfDataDiskEnabled' + AutoProtectionOfDataDisk AutoProtectionOfDataDisk `json:"autoProtectionOfDataDisk,omitempty"` + // VMDisks - The list of vm disk inputs. + VMDisks *[]A2AProtectionIntentDiskInputDetails `json:"vmDisks,omitempty"` + // VMManagedDisks - The list of vm managed disk inputs. + VMManagedDisks *[]A2AProtectionIntentManagedDiskInputDetails `json:"vmManagedDisks,omitempty"` + // MultiVMGroupName - The multi vm group name. + MultiVMGroupName *string `json:"multiVmGroupName,omitempty"` + // MultiVMGroupID - The multi vm group id. + MultiVMGroupID *string `json:"multiVmGroupId,omitempty"` + // RecoveryBootDiagStorageAccount - The boot diagnostic storage account. + RecoveryBootDiagStorageAccount BasicStorageAccountCustomDetails `json:"recoveryBootDiagStorageAccount,omitempty"` + // DiskEncryptionInfo - The recovery disk encryption information (for two pass flows). + DiskEncryptionInfo *DiskEncryptionInfo `json:"diskEncryptionInfo,omitempty"` + // RecoveryAvailabilityZone - The recovery availability zone. + RecoveryAvailabilityZone *string `json:"recoveryAvailabilityZone,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicCreateProtectionIntentProviderSpecificDetailsInstanceTypeCreateProtectionIntentProviderSpecificDetails', 'InstanceTypeBasicCreateProtectionIntentProviderSpecificDetailsInstanceTypeA2A' + InstanceType InstanceTypeBasicCreateProtectionIntentProviderSpecificDetails `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for A2ACreateProtectionIntentInput. +func (acpii A2ACreateProtectionIntentInput) MarshalJSON() ([]byte, error) { + acpii.InstanceType = InstanceTypeBasicCreateProtectionIntentProviderSpecificDetailsInstanceTypeA2A + objectMap := make(map[string]interface{}) + if acpii.FabricObjectID != nil { + objectMap["fabricObjectId"] = acpii.FabricObjectID + } + if acpii.PrimaryLocation != nil { + objectMap["primaryLocation"] = acpii.PrimaryLocation + } + if acpii.RecoveryLocation != nil { + objectMap["recoveryLocation"] = acpii.RecoveryLocation + } + if acpii.RecoverySubscriptionID != nil { + objectMap["recoverySubscriptionId"] = acpii.RecoverySubscriptionID + } + if acpii.RecoveryAvailabilityType != "" { + objectMap["recoveryAvailabilityType"] = acpii.RecoveryAvailabilityType + } + objectMap["protectionProfileCustomInput"] = acpii.ProtectionProfileCustomInput + if acpii.RecoveryResourceGroupID != nil { + objectMap["recoveryResourceGroupId"] = acpii.RecoveryResourceGroupID + } + objectMap["primaryStagingStorageAccountCustomInput"] = acpii.PrimaryStagingStorageAccountCustomInput + objectMap["recoveryAvailabilitySetCustomInput"] = acpii.RecoveryAvailabilitySetCustomInput + objectMap["recoveryVirtualNetworkCustomInput"] = acpii.RecoveryVirtualNetworkCustomInput + objectMap["recoveryProximityPlacementGroupCustomInput"] = acpii.RecoveryProximityPlacementGroupCustomInput + if acpii.AutoProtectionOfDataDisk != "" { + objectMap["autoProtectionOfDataDisk"] = acpii.AutoProtectionOfDataDisk + } + if acpii.VMDisks != nil { + objectMap["vmDisks"] = acpii.VMDisks + } + if acpii.VMManagedDisks != nil { + objectMap["vmManagedDisks"] = acpii.VMManagedDisks + } + if acpii.MultiVMGroupName != nil { + objectMap["multiVmGroupName"] = acpii.MultiVMGroupName + } + if acpii.MultiVMGroupID != nil { + objectMap["multiVmGroupId"] = acpii.MultiVMGroupID + } + objectMap["recoveryBootDiagStorageAccount"] = acpii.RecoveryBootDiagStorageAccount + if acpii.DiskEncryptionInfo != nil { + objectMap["diskEncryptionInfo"] = acpii.DiskEncryptionInfo + } + if acpii.RecoveryAvailabilityZone != nil { + objectMap["recoveryAvailabilityZone"] = acpii.RecoveryAvailabilityZone + } + if acpii.InstanceType != "" { + objectMap["instanceType"] = acpii.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2ACreateProtectionIntentInput is the BasicCreateProtectionIntentProviderSpecificDetails implementation for A2ACreateProtectionIntentInput. +func (acpii A2ACreateProtectionIntentInput) AsA2ACreateProtectionIntentInput() (*A2ACreateProtectionIntentInput, bool) { + return &acpii, true +} + +// AsCreateProtectionIntentProviderSpecificDetails is the BasicCreateProtectionIntentProviderSpecificDetails implementation for A2ACreateProtectionIntentInput. +func (acpii A2ACreateProtectionIntentInput) AsCreateProtectionIntentProviderSpecificDetails() (*CreateProtectionIntentProviderSpecificDetails, bool) { + return nil, false +} + +// AsBasicCreateProtectionIntentProviderSpecificDetails is the BasicCreateProtectionIntentProviderSpecificDetails implementation for A2ACreateProtectionIntentInput. +func (acpii A2ACreateProtectionIntentInput) AsBasicCreateProtectionIntentProviderSpecificDetails() (BasicCreateProtectionIntentProviderSpecificDetails, bool) { + return &acpii, true +} + +// UnmarshalJSON is the custom unmarshaler for A2ACreateProtectionIntentInput struct. +func (acpii *A2ACreateProtectionIntentInput) 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 "fabricObjectId": + if v != nil { + var fabricObjectID string + err = json.Unmarshal(*v, &fabricObjectID) + if err != nil { + return err + } + acpii.FabricObjectID = &fabricObjectID + } + case "primaryLocation": + if v != nil { + var primaryLocation string + err = json.Unmarshal(*v, &primaryLocation) + if err != nil { + return err + } + acpii.PrimaryLocation = &primaryLocation + } + case "recoveryLocation": + if v != nil { + var recoveryLocation string + err = json.Unmarshal(*v, &recoveryLocation) + if err != nil { + return err + } + acpii.RecoveryLocation = &recoveryLocation + } + case "recoverySubscriptionId": + if v != nil { + var recoverySubscriptionID string + err = json.Unmarshal(*v, &recoverySubscriptionID) + if err != nil { + return err + } + acpii.RecoverySubscriptionID = &recoverySubscriptionID + } + case "recoveryAvailabilityType": + if v != nil { + var recoveryAvailabilityType A2ARecoveryAvailabilityType + err = json.Unmarshal(*v, &recoveryAvailabilityType) + if err != nil { + return err + } + acpii.RecoveryAvailabilityType = recoveryAvailabilityType + } + case "protectionProfileCustomInput": + if v != nil { + protectionProfileCustomInput, err := unmarshalBasicProtectionProfileCustomDetails(*v) + if err != nil { + return err + } + acpii.ProtectionProfileCustomInput = protectionProfileCustomInput + } + case "recoveryResourceGroupId": + if v != nil { + var recoveryResourceGroupID string + err = json.Unmarshal(*v, &recoveryResourceGroupID) + if err != nil { + return err + } + acpii.RecoveryResourceGroupID = &recoveryResourceGroupID + } + case "primaryStagingStorageAccountCustomInput": + if v != nil { + primaryStagingStorageAccountCustomInput, err := unmarshalBasicStorageAccountCustomDetails(*v) + if err != nil { + return err + } + acpii.PrimaryStagingStorageAccountCustomInput = primaryStagingStorageAccountCustomInput + } + case "recoveryAvailabilitySetCustomInput": + if v != nil { + recoveryAvailabilitySetCustomInput, err := unmarshalBasicRecoveryAvailabilitySetCustomDetails(*v) + if err != nil { + return err + } + acpii.RecoveryAvailabilitySetCustomInput = recoveryAvailabilitySetCustomInput + } + case "recoveryVirtualNetworkCustomInput": + if v != nil { + recoveryVirtualNetworkCustomInput, err := unmarshalBasicRecoveryVirtualNetworkCustomDetails(*v) + if err != nil { + return err + } + acpii.RecoveryVirtualNetworkCustomInput = recoveryVirtualNetworkCustomInput + } + case "recoveryProximityPlacementGroupCustomInput": + if v != nil { + recoveryProximityPlacementGroupCustomInput, err := unmarshalBasicRecoveryProximityPlacementGroupCustomDetails(*v) + if err != nil { + return err + } + acpii.RecoveryProximityPlacementGroupCustomInput = recoveryProximityPlacementGroupCustomInput + } + case "autoProtectionOfDataDisk": + if v != nil { + var autoProtectionOfDataDisk AutoProtectionOfDataDisk + err = json.Unmarshal(*v, &autoProtectionOfDataDisk) + if err != nil { + return err + } + acpii.AutoProtectionOfDataDisk = autoProtectionOfDataDisk + } + case "vmDisks": + if v != nil { + var VMDisks []A2AProtectionIntentDiskInputDetails + err = json.Unmarshal(*v, &VMDisks) + if err != nil { + return err + } + acpii.VMDisks = &VMDisks + } + case "vmManagedDisks": + if v != nil { + var VMManagedDisks []A2AProtectionIntentManagedDiskInputDetails + err = json.Unmarshal(*v, &VMManagedDisks) + if err != nil { + return err + } + acpii.VMManagedDisks = &VMManagedDisks + } + case "multiVmGroupName": + if v != nil { + var multiVMGroupName string + err = json.Unmarshal(*v, &multiVMGroupName) + if err != nil { + return err + } + acpii.MultiVMGroupName = &multiVMGroupName + } + case "multiVmGroupId": + if v != nil { + var multiVMGroupID string + err = json.Unmarshal(*v, &multiVMGroupID) + if err != nil { + return err + } + acpii.MultiVMGroupID = &multiVMGroupID + } + case "recoveryBootDiagStorageAccount": + if v != nil { + recoveryBootDiagStorageAccount, err := unmarshalBasicStorageAccountCustomDetails(*v) + if err != nil { + return err + } + acpii.RecoveryBootDiagStorageAccount = recoveryBootDiagStorageAccount + } + case "diskEncryptionInfo": + if v != nil { + var diskEncryptionInfo DiskEncryptionInfo + err = json.Unmarshal(*v, &diskEncryptionInfo) + if err != nil { + return err + } + acpii.DiskEncryptionInfo = &diskEncryptionInfo + } + case "recoveryAvailabilityZone": + if v != nil { + var recoveryAvailabilityZone string + err = json.Unmarshal(*v, &recoveryAvailabilityZone) + if err != nil { + return err + } + acpii.RecoveryAvailabilityZone = &recoveryAvailabilityZone + } + case "instanceType": + if v != nil { + var instanceType InstanceTypeBasicCreateProtectionIntentProviderSpecificDetails + err = json.Unmarshal(*v, &instanceType) + if err != nil { + return err + } + acpii.InstanceType = instanceType + } + } + } + + return nil +} + // A2AEnableProtectionInput a2A enable protection input. type A2AEnableProtectionInput struct { // FabricObjectID - The fabric specific object Id of the virtual machine. @@ -166,6 +515,8 @@ type A2AEnableProtectionInput struct { RecoveryCloudServiceID *string `json:"recoveryCloudServiceId,omitempty"` // RecoveryAvailabilitySetID - The recovery availability set Id. RecoveryAvailabilitySetID *string `json:"recoveryAvailabilitySetId,omitempty"` + // RecoveryProximityPlacementGroupID - The recovery proximity placement group Id. + RecoveryProximityPlacementGroupID *string `json:"recoveryProximityPlacementGroupId,omitempty"` // VMDisks - The list of vm disk details. VMDisks *[]A2AVMDiskInputDetails `json:"vmDisks,omitempty"` // VMManagedDisks - The list of vm managed disk details. @@ -176,7 +527,13 @@ type A2AEnableProtectionInput struct { RecoveryBootDiagStorageAccountID *string `json:"recoveryBootDiagStorageAccountId,omitempty"` // DiskEncryptionInfo - The recovery disk encryption information. DiskEncryptionInfo *DiskEncryptionInfo `json:"diskEncryptionInfo,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeEnableProtectionProviderSpecificInput', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeSan' + // RecoveryAvailabilityZone - The recovery availability zone. + RecoveryAvailabilityZone *string `json:"recoveryAvailabilityZone,omitempty"` + // RecoveryAzureNetworkID - The recovery Azure virtual network ARM id. + RecoveryAzureNetworkID *string `json:"recoveryAzureNetworkId,omitempty"` + // RecoverySubnetName - The recovery subnet name. + RecoverySubnetName *string `json:"recoverySubnetName,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeEnableProtectionProviderSpecificInput', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeSan' InstanceType InstanceTypeBasicEnableProtectionProviderSpecificInput `json:"instanceType,omitempty"` } @@ -199,6 +556,9 @@ func (aepi A2AEnableProtectionInput) MarshalJSON() ([]byte, error) { if aepi.RecoveryAvailabilitySetID != nil { objectMap["recoveryAvailabilitySetId"] = aepi.RecoveryAvailabilitySetID } + if aepi.RecoveryProximityPlacementGroupID != nil { + objectMap["recoveryProximityPlacementGroupId"] = aepi.RecoveryProximityPlacementGroupID + } if aepi.VMDisks != nil { objectMap["vmDisks"] = aepi.VMDisks } @@ -214,6 +574,15 @@ func (aepi A2AEnableProtectionInput) MarshalJSON() ([]byte, error) { if aepi.DiskEncryptionInfo != nil { objectMap["diskEncryptionInfo"] = aepi.DiskEncryptionInfo } + if aepi.RecoveryAvailabilityZone != nil { + objectMap["recoveryAvailabilityZone"] = aepi.RecoveryAvailabilityZone + } + if aepi.RecoveryAzureNetworkID != nil { + objectMap["recoveryAzureNetworkId"] = aepi.RecoveryAzureNetworkID + } + if aepi.RecoverySubnetName != nil { + objectMap["recoverySubnetName"] = aepi.RecoverySubnetName + } if aepi.InstanceType != "" { objectMap["instanceType"] = aepi.InstanceType } @@ -240,6 +609,11 @@ func (aepi A2AEnableProtectionInput) AsInMageEnableProtectionInput() (*InMageEna return nil, false } +// AsInMageRcmEnableProtectionInput is the BasicEnableProtectionProviderSpecificInput implementation for A2AEnableProtectionInput. +func (aepi A2AEnableProtectionInput) AsInMageRcmEnableProtectionInput() (*InMageRcmEnableProtectionInput, bool) { + return nil, false +} + // AsSanEnableProtectionInput is the BasicEnableProtectionProviderSpecificInput implementation for A2AEnableProtectionInput. func (aepi A2AEnableProtectionInput) AsSanEnableProtectionInput() (*SanEnableProtectionInput, bool) { return nil, false @@ -269,7 +643,7 @@ type A2AEventDetails struct { RemoteFabricName *string `json:"remoteFabricName,omitempty"` // RemoteFabricLocation - Remote fabric location. RemoteFabricLocation *string `json:"remoteFabricLocation,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeEventProviderSpecificDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaBaseEventDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeEventProviderSpecificDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaBaseEventDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageRcm' InstanceType InstanceTypeBasicEventProviderSpecificDetails `json:"instanceType,omitempty"` } @@ -331,8 +705,8 @@ func (aed A2AEventDetails) AsInMageAzureV2EventDetails() (*InMageAzureV2EventDet return nil, false } -// AsVMwareCbtEventDetails is the BasicEventProviderSpecificDetails implementation for A2AEventDetails. -func (aed A2AEventDetails) AsVMwareCbtEventDetails() (*VMwareCbtEventDetails, bool) { +// AsInMageRcmEventDetails is the BasicEventProviderSpecificDetails implementation for A2AEventDetails. +func (aed A2AEventDetails) AsInMageRcmEventDetails() (*InMageRcmEventDetails, bool) { return nil, false } @@ -417,7 +791,7 @@ type A2APolicyCreationInput struct { AppConsistentFrequencyInMinutes *int32 `json:"appConsistentFrequencyInMinutes,omitempty"` // MultiVMSyncStatus - A value indicating whether multi-VM sync has to be enabled. Value should be 'Enabled' or 'Disabled'. Possible values include: 'Enable', 'Disable' MultiVMSyncStatus SetMultiVMSyncStatus `json:"multiVmSyncStatus,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypePolicyProviderSpecificInput', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypePolicyProviderSpecificInput', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicPolicyProviderSpecificInput `json:"instanceType,omitempty"` } @@ -473,6 +847,11 @@ func (apci A2APolicyCreationInput) AsInMagePolicyInput() (*InMagePolicyInput, bo return nil, false } +// AsInMageRcmPolicyCreationInput is the BasicPolicyProviderSpecificInput implementation for A2APolicyCreationInput. +func (apci A2APolicyCreationInput) AsInMageRcmPolicyCreationInput() (*InMageRcmPolicyCreationInput, bool) { + return nil, false +} + // AsVMwareCbtPolicyCreationInput is the BasicPolicyProviderSpecificInput implementation for A2APolicyCreationInput. func (apci A2APolicyCreationInput) AsVMwareCbtPolicyCreationInput() (*VMwareCbtPolicyCreationInput, bool) { return nil, false @@ -500,7 +879,7 @@ type A2APolicyDetails struct { MultiVMSyncStatus *string `json:"multiVmSyncStatus,omitempty"` // CrashConsistentFrequencyInMinutes - The crash consistent snapshot frequency in minutes. CrashConsistentFrequencyInMinutes *int32 `json:"crashConsistentFrequencyInMinutes,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageRcm', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicPolicyProviderSpecificDetails `json:"instanceType,omitempty"` } @@ -569,6 +948,11 @@ func (apd A2APolicyDetails) AsInMagePolicyDetails() (*InMagePolicyDetails, bool) return nil, false } +// AsInMageRcmPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for A2APolicyDetails. +func (apd A2APolicyDetails) AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool) { + return nil, false +} + // AsRcmAzureMigrationPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for A2APolicyDetails. func (apd A2APolicyDetails) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) { return nil, false @@ -617,6 +1001,10 @@ type A2AProtectedDiskDetails struct { DataPendingInStagingStorageAccountInMB *float64 `json:"dataPendingInStagingStorageAccountInMB,omitempty"` // DataPendingAtSourceAgentInMB - The data pending at source virtual machine in MB. DataPendingAtSourceAgentInMB *float64 `json:"dataPendingAtSourceAgentInMB,omitempty"` + // DiskState - The disk state. + DiskState *string `json:"diskState,omitempty"` + // AllowedDiskLevelOperation - The disk level operations list. + AllowedDiskLevelOperation *[]string `json:"allowedDiskLevelOperation,omitempty"` // IsDiskEncrypted - A value indicating whether vm has encrypted os disk or not. IsDiskEncrypted *bool `json:"isDiskEncrypted,omitempty"` // SecretIdentifier - The secret URL / identifier (BEK). @@ -645,6 +1033,8 @@ type A2AProtectedManagedDiskDetails struct { RecoveryReplicaDiskAccountType *string `json:"recoveryReplicaDiskAccountType,omitempty"` // RecoveryTargetDiskAccountType - The target disk type after failover. Its an optional value and will be same as source disk type if not user provided. RecoveryTargetDiskAccountType *string `json:"recoveryTargetDiskAccountType,omitempty"` + // RecoveryDiskEncryptionSetID - The recovery disk encryption set Id. + RecoveryDiskEncryptionSetID *string `json:"recoveryDiskEncryptionSetId,omitempty"` // DiskName - The disk name. DiskName *string `json:"diskName,omitempty"` // DiskCapacityInBytes - The disk capacity in bytes. @@ -663,6 +1053,10 @@ type A2AProtectedManagedDiskDetails struct { DataPendingInStagingStorageAccountInMB *float64 `json:"dataPendingInStagingStorageAccountInMB,omitempty"` // DataPendingAtSourceAgentInMB - The data pending at source virtual machine in MB. DataPendingAtSourceAgentInMB *float64 `json:"dataPendingAtSourceAgentInMB,omitempty"` + // DiskState - The disk state. + DiskState *string `json:"diskState,omitempty"` + // AllowedDiskLevelOperation - The disk level operations list. + AllowedDiskLevelOperation *[]string `json:"allowedDiskLevelOperation,omitempty"` // IsDiskEncrypted - A value indicating whether vm has encrypted os disk or not. IsDiskEncrypted *bool `json:"isDiskEncrypted,omitempty"` // SecretIdentifier - The secret URL / identifier (BEK). @@ -675,6 +1069,10 @@ type A2AProtectedManagedDiskDetails struct { KeyIdentifier *string `json:"keyIdentifier,omitempty"` // KekKeyVaultArmID - The KeyVault resource id for key (KEK). KekKeyVaultArmID *string `json:"kekKeyVaultArmId,omitempty"` + // FailoverDiskName - The failover name for the managed disk. + FailoverDiskName *string `json:"failoverDiskName,omitempty"` + // TfoDiskName - The test failover name for the managed disk. + TfoDiskName *string `json:"tfoDiskName,omitempty"` } // A2AProtectionContainerMappingDetails a2A provider specific settings. @@ -733,54 +1131,257 @@ func (apcmd A2AProtectionContainerMappingDetails) AsBasicProtectionContainerMapp return &apcmd, true } -// A2ARecoveryPointDetails a2A provider specific recovery point details. -type A2ARecoveryPointDetails struct { - // RecoveryPointSyncType - A value indicating whether the recovery point is multi VM consistent. Possible values include: 'MultiVMSyncRecoveryPoint', 'PerVMRecoveryPoint' - RecoveryPointSyncType RecoveryPointSyncType `json:"recoveryPointSyncType,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeProviderSpecificRecoveryPointDetails', 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeA2A', 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeInMageAzureV2' - InstanceType InstanceTypeBasicProviderSpecificRecoveryPointDetails `json:"instanceType,omitempty"` +// A2AProtectionIntentDiskInputDetails azure VM disk input details. +type A2AProtectionIntentDiskInputDetails struct { + // DiskURI - The disk Uri. + DiskURI *string `json:"diskUri,omitempty"` + // RecoveryAzureStorageAccountCustomInput - The recovery VHD storage account input. + RecoveryAzureStorageAccountCustomInput BasicStorageAccountCustomDetails `json:"recoveryAzureStorageAccountCustomInput,omitempty"` + // PrimaryStagingStorageAccountCustomInput - The primary staging storage account input. + PrimaryStagingStorageAccountCustomInput BasicStorageAccountCustomDetails `json:"primaryStagingStorageAccountCustomInput,omitempty"` } -// MarshalJSON is the custom marshaler for A2ARecoveryPointDetails. -func (arpd A2ARecoveryPointDetails) MarshalJSON() ([]byte, error) { - arpd.InstanceType = InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeA2A - objectMap := make(map[string]interface{}) - if arpd.RecoveryPointSyncType != "" { - objectMap["recoveryPointSyncType"] = arpd.RecoveryPointSyncType +// UnmarshalJSON is the custom unmarshaler for A2AProtectionIntentDiskInputDetails struct. +func (apidid *A2AProtectionIntentDiskInputDetails) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err } - if arpd.InstanceType != "" { - objectMap["instanceType"] = arpd.InstanceType + for k, v := range m { + switch k { + case "diskUri": + if v != nil { + var diskURI string + err = json.Unmarshal(*v, &diskURI) + if err != nil { + return err + } + apidid.DiskURI = &diskURI + } + case "recoveryAzureStorageAccountCustomInput": + if v != nil { + recoveryAzureStorageAccountCustomInput, err := unmarshalBasicStorageAccountCustomDetails(*v) + if err != nil { + return err + } + apidid.RecoveryAzureStorageAccountCustomInput = recoveryAzureStorageAccountCustomInput + } + case "primaryStagingStorageAccountCustomInput": + if v != nil { + primaryStagingStorageAccountCustomInput, err := unmarshalBasicStorageAccountCustomDetails(*v) + if err != nil { + return err + } + apidid.PrimaryStagingStorageAccountCustomInput = primaryStagingStorageAccountCustomInput + } + } } - return json.Marshal(objectMap) -} - -// AsA2ARecoveryPointDetails is the BasicProviderSpecificRecoveryPointDetails implementation for A2ARecoveryPointDetails. -func (arpd A2ARecoveryPointDetails) AsA2ARecoveryPointDetails() (*A2ARecoveryPointDetails, bool) { - return &arpd, true -} - -// AsInMageAzureV2RecoveryPointDetails is the BasicProviderSpecificRecoveryPointDetails implementation for A2ARecoveryPointDetails. -func (arpd A2ARecoveryPointDetails) AsInMageAzureV2RecoveryPointDetails() (*InMageAzureV2RecoveryPointDetails, bool) { - return nil, false -} -// AsProviderSpecificRecoveryPointDetails is the BasicProviderSpecificRecoveryPointDetails implementation for A2ARecoveryPointDetails. -func (arpd A2ARecoveryPointDetails) AsProviderSpecificRecoveryPointDetails() (*ProviderSpecificRecoveryPointDetails, bool) { - return nil, false + return nil } -// AsBasicProviderSpecificRecoveryPointDetails is the BasicProviderSpecificRecoveryPointDetails implementation for A2ARecoveryPointDetails. -func (arpd A2ARecoveryPointDetails) AsBasicProviderSpecificRecoveryPointDetails() (BasicProviderSpecificRecoveryPointDetails, bool) { - return &arpd, true +// A2AProtectionIntentManagedDiskInputDetails azure VM managed disk input details. +type A2AProtectionIntentManagedDiskInputDetails struct { + // DiskID - The disk Id. + DiskID *string `json:"diskId,omitempty"` + // PrimaryStagingStorageAccountCustomInput - The primary staging storage account input. + PrimaryStagingStorageAccountCustomInput BasicStorageAccountCustomDetails `json:"primaryStagingStorageAccountCustomInput,omitempty"` + // RecoveryResourceGroupCustomInput - The recovery resource group input. + RecoveryResourceGroupCustomInput BasicRecoveryResourceGroupCustomDetails `json:"recoveryResourceGroupCustomInput,omitempty"` + // RecoveryReplicaDiskAccountType - The replica disk type. Its an optional value and will be same as source disk type if not user provided. + RecoveryReplicaDiskAccountType *string `json:"recoveryReplicaDiskAccountType,omitempty"` + // RecoveryTargetDiskAccountType - The target disk type after failover. Its an optional value and will be same as source disk type if not user provided. + RecoveryTargetDiskAccountType *string `json:"recoveryTargetDiskAccountType,omitempty"` + // RecoveryDiskEncryptionSetID - The recovery disk encryption set Id. + RecoveryDiskEncryptionSetID *string `json:"recoveryDiskEncryptionSetId,omitempty"` + // DiskEncryptionInfo - The recovery disk encryption information (for one / single pass flows). + DiskEncryptionInfo *DiskEncryptionInfo `json:"diskEncryptionInfo,omitempty"` } -// A2AReplicationDetails a2A provider specific settings. -type A2AReplicationDetails struct { - // FabricObjectID - The fabric specific object Id of the virtual machine. - FabricObjectID *string `json:"fabricObjectId,omitempty"` - // MultiVMGroupID - The multi vm group Id. - MultiVMGroupID *string `json:"multiVmGroupId,omitempty"` - // MultiVMGroupName - The multi vm group name. +// UnmarshalJSON is the custom unmarshaler for A2AProtectionIntentManagedDiskInputDetails struct. +func (apimdid *A2AProtectionIntentManagedDiskInputDetails) 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 "diskId": + if v != nil { + var diskID string + err = json.Unmarshal(*v, &diskID) + if err != nil { + return err + } + apimdid.DiskID = &diskID + } + case "primaryStagingStorageAccountCustomInput": + if v != nil { + primaryStagingStorageAccountCustomInput, err := unmarshalBasicStorageAccountCustomDetails(*v) + if err != nil { + return err + } + apimdid.PrimaryStagingStorageAccountCustomInput = primaryStagingStorageAccountCustomInput + } + case "recoveryResourceGroupCustomInput": + if v != nil { + recoveryResourceGroupCustomInput, err := unmarshalBasicRecoveryResourceGroupCustomDetails(*v) + if err != nil { + return err + } + apimdid.RecoveryResourceGroupCustomInput = recoveryResourceGroupCustomInput + } + case "recoveryReplicaDiskAccountType": + if v != nil { + var recoveryReplicaDiskAccountType string + err = json.Unmarshal(*v, &recoveryReplicaDiskAccountType) + if err != nil { + return err + } + apimdid.RecoveryReplicaDiskAccountType = &recoveryReplicaDiskAccountType + } + case "recoveryTargetDiskAccountType": + if v != nil { + var recoveryTargetDiskAccountType string + err = json.Unmarshal(*v, &recoveryTargetDiskAccountType) + if err != nil { + return err + } + apimdid.RecoveryTargetDiskAccountType = &recoveryTargetDiskAccountType + } + case "recoveryDiskEncryptionSetId": + if v != nil { + var recoveryDiskEncryptionSetID string + err = json.Unmarshal(*v, &recoveryDiskEncryptionSetID) + if err != nil { + return err + } + apimdid.RecoveryDiskEncryptionSetID = &recoveryDiskEncryptionSetID + } + case "diskEncryptionInfo": + if v != nil { + var diskEncryptionInfo DiskEncryptionInfo + err = json.Unmarshal(*v, &diskEncryptionInfo) + if err != nil { + return err + } + apimdid.DiskEncryptionInfo = &diskEncryptionInfo + } + } + } + + return nil +} + +// A2ARecoveryPointDetails a2A provider specific recovery point details. +type A2ARecoveryPointDetails struct { + // RecoveryPointSyncType - A value indicating whether the recovery point is multi VM consistent. Possible values include: 'MultiVMSyncRecoveryPoint', 'PerVMRecoveryPoint' + RecoveryPointSyncType RecoveryPointSyncType `json:"recoveryPointSyncType,omitempty"` + // Disks - List of disk ids representing a recovery point. + Disks *[]string `json:"disks,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeProviderSpecificRecoveryPointDetails', 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeA2A', 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeInMageRcm' + InstanceType InstanceTypeBasicProviderSpecificRecoveryPointDetails `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for A2ARecoveryPointDetails. +func (arpd A2ARecoveryPointDetails) MarshalJSON() ([]byte, error) { + arpd.InstanceType = InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeA2A + objectMap := make(map[string]interface{}) + if arpd.RecoveryPointSyncType != "" { + objectMap["recoveryPointSyncType"] = arpd.RecoveryPointSyncType + } + if arpd.Disks != nil { + objectMap["disks"] = arpd.Disks + } + if arpd.InstanceType != "" { + objectMap["instanceType"] = arpd.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2ARecoveryPointDetails is the BasicProviderSpecificRecoveryPointDetails implementation for A2ARecoveryPointDetails. +func (arpd A2ARecoveryPointDetails) AsA2ARecoveryPointDetails() (*A2ARecoveryPointDetails, bool) { + return &arpd, true +} + +// AsInMageAzureV2RecoveryPointDetails is the BasicProviderSpecificRecoveryPointDetails implementation for A2ARecoveryPointDetails. +func (arpd A2ARecoveryPointDetails) AsInMageAzureV2RecoveryPointDetails() (*InMageAzureV2RecoveryPointDetails, bool) { + return nil, false +} + +// AsInMageRcmRecoveryPointDetails is the BasicProviderSpecificRecoveryPointDetails implementation for A2ARecoveryPointDetails. +func (arpd A2ARecoveryPointDetails) AsInMageRcmRecoveryPointDetails() (*InMageRcmRecoveryPointDetails, bool) { + return nil, false +} + +// AsProviderSpecificRecoveryPointDetails is the BasicProviderSpecificRecoveryPointDetails implementation for A2ARecoveryPointDetails. +func (arpd A2ARecoveryPointDetails) AsProviderSpecificRecoveryPointDetails() (*ProviderSpecificRecoveryPointDetails, bool) { + return nil, false +} + +// AsBasicProviderSpecificRecoveryPointDetails is the BasicProviderSpecificRecoveryPointDetails implementation for A2ARecoveryPointDetails. +func (arpd A2ARecoveryPointDetails) AsBasicProviderSpecificRecoveryPointDetails() (BasicProviderSpecificRecoveryPointDetails, bool) { + return &arpd, true +} + +// A2ARemoveDisksInput a2A remove disk(s) input. +type A2ARemoveDisksInput struct { + // VMDisksUris - The list of vm disk vhd URIs. + VMDisksUris *[]string `json:"vmDisksUris,omitempty"` + // VMManagedDisksIds - The list of vm managed disk Ids. + VMManagedDisksIds *[]string `json:"vmManagedDisksIds,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicRemoveDisksProviderSpecificInputInstanceTypeRemoveDisksProviderSpecificInput', 'InstanceTypeBasicRemoveDisksProviderSpecificInputInstanceTypeA2A' + InstanceType InstanceTypeBasicRemoveDisksProviderSpecificInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for A2ARemoveDisksInput. +func (ardi A2ARemoveDisksInput) MarshalJSON() ([]byte, error) { + ardi.InstanceType = InstanceTypeBasicRemoveDisksProviderSpecificInputInstanceTypeA2A + objectMap := make(map[string]interface{}) + if ardi.VMDisksUris != nil { + objectMap["vmDisksUris"] = ardi.VMDisksUris + } + if ardi.VMManagedDisksIds != nil { + objectMap["vmManagedDisksIds"] = ardi.VMManagedDisksIds + } + if ardi.InstanceType != "" { + objectMap["instanceType"] = ardi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2ARemoveDisksInput is the BasicRemoveDisksProviderSpecificInput implementation for A2ARemoveDisksInput. +func (ardi A2ARemoveDisksInput) AsA2ARemoveDisksInput() (*A2ARemoveDisksInput, bool) { + return &ardi, true +} + +// AsRemoveDisksProviderSpecificInput is the BasicRemoveDisksProviderSpecificInput implementation for A2ARemoveDisksInput. +func (ardi A2ARemoveDisksInput) AsRemoveDisksProviderSpecificInput() (*RemoveDisksProviderSpecificInput, bool) { + return nil, false +} + +// AsBasicRemoveDisksProviderSpecificInput is the BasicRemoveDisksProviderSpecificInput implementation for A2ARemoveDisksInput. +func (ardi A2ARemoveDisksInput) AsBasicRemoveDisksProviderSpecificInput() (BasicRemoveDisksProviderSpecificInput, bool) { + return &ardi, true +} + +// A2AReplicationDetails a2A provider specific settings. +type A2AReplicationDetails struct { + // FabricObjectID - The fabric specific object Id of the virtual machine. + FabricObjectID *string `json:"fabricObjectId,omitempty"` + // InitialPrimaryFabricLocation - READ-ONLY; The initial primary fabric location. + InitialPrimaryFabricLocation *string `json:"initialPrimaryFabricLocation,omitempty"` + // InitialRecoveryFabricLocation - READ-ONLY; The initial recovery fabric location. + InitialRecoveryFabricLocation *string `json:"initialRecoveryFabricLocation,omitempty"` + // InitialPrimaryZone - READ-ONLY; The initial primary availability zone. + InitialPrimaryZone *string `json:"initialPrimaryZone,omitempty"` + // InitialRecoveryZone - READ-ONLY; The initial recovery availability zone. + InitialRecoveryZone *string `json:"initialRecoveryZone,omitempty"` + // MultiVMGroupID - The multi vm group Id. + MultiVMGroupID *string `json:"multiVmGroupId,omitempty"` + // MultiVMGroupName - The multi vm group name. MultiVMGroupName *string `json:"multiVmGroupName,omitempty"` // MultiVMGroupCreateOption - Whether Multi VM group is auto created or specified by user. Possible values include: 'AutoCreated', 'UserSpecified' MultiVMGroupCreateOption MultiVMGroupCreateOption `json:"multiVmGroupCreateOption,omitempty"` @@ -788,6 +1389,8 @@ type A2AReplicationDetails struct { ManagementID *string `json:"managementId,omitempty"` // ProtectedDisks - The list of protected disks. ProtectedDisks *[]A2AProtectedDiskDetails `json:"protectedDisks,omitempty"` + // UnprotectedDisks - The list of unprotected disks. + UnprotectedDisks *[]A2AUnprotectedDiskDetails `json:"unprotectedDisks,omitempty"` // ProtectedManagedDisks - The list of protected managed disks. ProtectedManagedDisks *[]A2AProtectedManagedDiskDetails `json:"protectedManagedDisks,omitempty"` // RecoveryBootDiagStorageAccountID - The recovery boot diagnostic storage account Arm Id. @@ -810,6 +1413,8 @@ type A2AReplicationDetails struct { RecoveryAvailabilitySet *string `json:"recoveryAvailabilitySet,omitempty"` // SelectedRecoveryAzureNetworkID - The recovery virtual network. SelectedRecoveryAzureNetworkID *string `json:"selectedRecoveryAzureNetworkId,omitempty"` + // SelectedTfoAzureNetworkID - The test failover virtual network. + SelectedTfoAzureNetworkID *string `json:"selectedTfoAzureNetworkId,omitempty"` // VMNics - The virtual machine nic details. VMNics *[]VMNicDetails `json:"vmNics,omitempty"` // VMSyncedConfigDetails - The synced configuration details. @@ -838,7 +1443,15 @@ type A2AReplicationDetails struct { RpoInSeconds *int64 `json:"rpoInSeconds,omitempty"` // LastRpoCalculatedTime - The time (in UTC) when the last RPO value was calculated by Protection Service. LastRpoCalculatedTime *date.Time `json:"lastRpoCalculatedTime,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeReplicationProviderSpecificSettings', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage' + // RecoveryAvailabilityZone - The recovery availability zone. + RecoveryAvailabilityZone *string `json:"recoveryAvailabilityZone,omitempty"` + // VMEncryptionType - READ-ONLY; The encryption type of the VM. Possible values include: 'NotEncrypted', 'OnePassEncrypted', 'TwoPassEncrypted' + VMEncryptionType VMEncryptionType `json:"vmEncryptionType,omitempty"` + // TfoAzureVMName - The test failover VM name. + TfoAzureVMName *string `json:"tfoAzureVMName,omitempty"` + // RecoveryProximityPlacementGroupID - The recovery proximity placement group Id. + RecoveryProximityPlacementGroupID *string `json:"recoveryProximityPlacementGroupId,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeReplicationProviderSpecificSettings', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageRcm', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage' InstanceType InstanceTypeBasicReplicationProviderSpecificSettings `json:"instanceType,omitempty"` } @@ -864,6 +1477,9 @@ func (ard A2AReplicationDetails) MarshalJSON() ([]byte, error) { if ard.ProtectedDisks != nil { objectMap["protectedDisks"] = ard.ProtectedDisks } + if ard.UnprotectedDisks != nil { + objectMap["unprotectedDisks"] = ard.UnprotectedDisks + } if ard.ProtectedManagedDisks != nil { objectMap["protectedManagedDisks"] = ard.ProtectedManagedDisks } @@ -897,6 +1513,9 @@ func (ard A2AReplicationDetails) MarshalJSON() ([]byte, error) { if ard.SelectedRecoveryAzureNetworkID != nil { objectMap["selectedRecoveryAzureNetworkId"] = ard.SelectedRecoveryAzureNetworkID } + if ard.SelectedTfoAzureNetworkID != nil { + objectMap["selectedTfoAzureNetworkId"] = ard.SelectedTfoAzureNetworkID + } if ard.VMNics != nil { objectMap["vmNics"] = ard.VMNics } @@ -939,6 +1558,15 @@ func (ard A2AReplicationDetails) MarshalJSON() ([]byte, error) { if ard.LastRpoCalculatedTime != nil { objectMap["lastRpoCalculatedTime"] = ard.LastRpoCalculatedTime } + if ard.RecoveryAvailabilityZone != nil { + objectMap["recoveryAvailabilityZone"] = ard.RecoveryAvailabilityZone + } + if ard.TfoAzureVMName != nil { + objectMap["tfoAzureVMName"] = ard.TfoAzureVMName + } + if ard.RecoveryProximityPlacementGroupID != nil { + objectMap["recoveryProximityPlacementGroupId"] = ard.RecoveryProximityPlacementGroupID + } if ard.InstanceType != "" { objectMap["instanceType"] = ard.InstanceType } @@ -975,6 +1603,11 @@ func (ard A2AReplicationDetails) AsInMageAzureV2ReplicationDetails() (*InMageAzu return nil, false } +// AsInMageRcmReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for A2AReplicationDetails. +func (ard A2AReplicationDetails) AsInMageRcmReplicationDetails() (*InMageRcmReplicationDetails, bool) { + return nil, false +} + // AsInMageReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for A2AReplicationDetails. func (ard A2AReplicationDetails) AsInMageReplicationDetails() (*InMageReplicationDetails, bool) { return nil, false @@ -990,6 +1623,147 @@ func (ard A2AReplicationDetails) AsBasicReplicationProviderSpecificSettings() (B return &ard, true } +// A2AReplicationIntentDetails a2A provider specific settings. +type A2AReplicationIntentDetails struct { + // FabricObjectID - The fabric specific object Id of the virtual machine. + FabricObjectID *string `json:"fabricObjectId,omitempty"` + // PolicyID - The ID of Policy governing this PE. + PolicyID *string `json:"policyId,omitempty"` + // PrimaryLocation - The primary location for the virtual machine. + PrimaryLocation *string `json:"primaryLocation,omitempty"` + // RecoveryLocation - The recovery location for the virtual machine. + RecoveryLocation *string `json:"recoveryLocation,omitempty"` + // RecoverySubscriptionID - The recovery subscription Id of the virtual machine. + RecoverySubscriptionID *string `json:"recoverySubscriptionId,omitempty"` + // PrimaryFabricFriendlyName - The recovery fabric Name. + PrimaryFabricFriendlyName *string `json:"primaryFabricFriendlyName,omitempty"` + // RecoveryFabricFriendlyName - The recovery fabric Name. + RecoveryFabricFriendlyName *string `json:"recoveryFabricFriendlyName,omitempty"` + // PrimaryContainerFriendlyName - The primary container Name. + PrimaryContainerFriendlyName *string `json:"primaryContainerFriendlyName,omitempty"` + // RecoveryContainerFriendlyName - The recovery container Name. + RecoveryContainerFriendlyName *string `json:"recoveryContainerFriendlyName,omitempty"` + // RecoveryAvailabilityType - The recovery availability type of the virtual machine. + RecoveryAvailabilityType *string `json:"recoveryAvailabilityType,omitempty"` + // VMDisks - The list of vm disk details. + VMDisks *[]A2AVMDiskDetails `json:"vmDisks,omitempty"` + // VMManagedDisks - The list of vm managed disk details. + VMManagedDisks *[]A2AVMManagedDiskDetails `json:"vmManagedDisks,omitempty"` + // RecoveryResourceGroupID - The recovery resource group id. + RecoveryResourceGroupID *string `json:"recoveryResourceGroupId,omitempty"` + // RecoveryAvailabilitySetID - The recovery availability set Id. + RecoveryAvailabilitySetID *string `json:"recoveryAvailabilitySetId,omitempty"` + // RecoveryVirtualNetworkID - The recovery virtual network Id. + RecoveryVirtualNetworkID *string `json:"recoveryVirtualNetworkId,omitempty"` + // RecoveryProximityPlacementGroupID - The recovery proximity placement group custom details. + RecoveryProximityPlacementGroupID *string `json:"recoveryProximityPlacementGroupId,omitempty"` + // AutoProtectionOfDataDiskStatus - A value indicating whether the auto protection is enabled. Possible values include: 'AutoProtectionOfDataDiskStatusDisabled', 'AutoProtectionOfDataDiskStatusEnabled' + AutoProtectionOfDataDiskStatus AutoProtectionOfDataDiskStatus `json:"autoProtectionOfDataDiskStatus,omitempty"` + // MultiVMGroupName - The multi vm group name. + MultiVMGroupName *string `json:"multiVmGroupName,omitempty"` + // MultiVMGroupID - The multi vm group id. + MultiVMGroupID *string `json:"multiVmGroupId,omitempty"` + // RecoveryBootDiagStorageAccountID - The boot diagnostic storage account. + RecoveryBootDiagStorageAccountID *string `json:"recoveryBootDiagStorageAccountId,omitempty"` + // DiskEncryptionInfo - The recovery disk encryption information (for two pass flows). + DiskEncryptionInfo *DiskEncryptionInfo `json:"diskEncryptionInfo,omitempty"` + // RecoveryAvailabilityZone - The recovery availability zone. + RecoveryAvailabilityZone *string `json:"recoveryAvailabilityZone,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettingsInstanceTypeReplicationProtectionIntentProviderSpecificSettings', 'InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettingsInstanceTypeA2A' + InstanceType InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettings `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for A2AReplicationIntentDetails. +func (arid A2AReplicationIntentDetails) MarshalJSON() ([]byte, error) { + arid.InstanceType = InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettingsInstanceTypeA2A + objectMap := make(map[string]interface{}) + if arid.FabricObjectID != nil { + objectMap["fabricObjectId"] = arid.FabricObjectID + } + if arid.PolicyID != nil { + objectMap["policyId"] = arid.PolicyID + } + if arid.PrimaryLocation != nil { + objectMap["primaryLocation"] = arid.PrimaryLocation + } + if arid.RecoveryLocation != nil { + objectMap["recoveryLocation"] = arid.RecoveryLocation + } + if arid.RecoverySubscriptionID != nil { + objectMap["recoverySubscriptionId"] = arid.RecoverySubscriptionID + } + if arid.PrimaryFabricFriendlyName != nil { + objectMap["primaryFabricFriendlyName"] = arid.PrimaryFabricFriendlyName + } + if arid.RecoveryFabricFriendlyName != nil { + objectMap["recoveryFabricFriendlyName"] = arid.RecoveryFabricFriendlyName + } + if arid.PrimaryContainerFriendlyName != nil { + objectMap["primaryContainerFriendlyName"] = arid.PrimaryContainerFriendlyName + } + if arid.RecoveryContainerFriendlyName != nil { + objectMap["recoveryContainerFriendlyName"] = arid.RecoveryContainerFriendlyName + } + if arid.RecoveryAvailabilityType != nil { + objectMap["recoveryAvailabilityType"] = arid.RecoveryAvailabilityType + } + if arid.VMDisks != nil { + objectMap["vmDisks"] = arid.VMDisks + } + if arid.VMManagedDisks != nil { + objectMap["vmManagedDisks"] = arid.VMManagedDisks + } + if arid.RecoveryResourceGroupID != nil { + objectMap["recoveryResourceGroupId"] = arid.RecoveryResourceGroupID + } + if arid.RecoveryAvailabilitySetID != nil { + objectMap["recoveryAvailabilitySetId"] = arid.RecoveryAvailabilitySetID + } + if arid.RecoveryVirtualNetworkID != nil { + objectMap["recoveryVirtualNetworkId"] = arid.RecoveryVirtualNetworkID + } + if arid.RecoveryProximityPlacementGroupID != nil { + objectMap["recoveryProximityPlacementGroupId"] = arid.RecoveryProximityPlacementGroupID + } + if arid.AutoProtectionOfDataDiskStatus != "" { + objectMap["autoProtectionOfDataDiskStatus"] = arid.AutoProtectionOfDataDiskStatus + } + if arid.MultiVMGroupName != nil { + objectMap["multiVmGroupName"] = arid.MultiVMGroupName + } + if arid.MultiVMGroupID != nil { + objectMap["multiVmGroupId"] = arid.MultiVMGroupID + } + if arid.RecoveryBootDiagStorageAccountID != nil { + objectMap["recoveryBootDiagStorageAccountId"] = arid.RecoveryBootDiagStorageAccountID + } + if arid.DiskEncryptionInfo != nil { + objectMap["diskEncryptionInfo"] = arid.DiskEncryptionInfo + } + if arid.RecoveryAvailabilityZone != nil { + objectMap["recoveryAvailabilityZone"] = arid.RecoveryAvailabilityZone + } + if arid.InstanceType != "" { + objectMap["instanceType"] = arid.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2AReplicationIntentDetails is the BasicReplicationProtectionIntentProviderSpecificSettings implementation for A2AReplicationIntentDetails. +func (arid A2AReplicationIntentDetails) AsA2AReplicationIntentDetails() (*A2AReplicationIntentDetails, bool) { + return &arid, true +} + +// AsReplicationProtectionIntentProviderSpecificSettings is the BasicReplicationProtectionIntentProviderSpecificSettings implementation for A2AReplicationIntentDetails. +func (arid A2AReplicationIntentDetails) AsReplicationProtectionIntentProviderSpecificSettings() (*ReplicationProtectionIntentProviderSpecificSettings, bool) { + return nil, false +} + +// AsBasicReplicationProtectionIntentProviderSpecificSettings is the BasicReplicationProtectionIntentProviderSpecificSettings implementation for A2AReplicationIntentDetails. +func (arid A2AReplicationIntentDetails) AsBasicReplicationProtectionIntentProviderSpecificSettings() (BasicReplicationProtectionIntentProviderSpecificSettings, bool) { + return &arid, true +} + // A2AReprotectInput azure specific reprotect input. type A2AReprotectInput struct { // RecoveryContainerID - The recovery container Id. @@ -1080,6 +1854,8 @@ type A2ASwitchProtectionInput struct { RecoveryCloudServiceID *string `json:"recoveryCloudServiceId,omitempty"` // RecoveryAvailabilitySetID - The recovery availability set. RecoveryAvailabilitySetID *string `json:"recoveryAvailabilitySetId,omitempty"` + // RecoveryProximityPlacementGroupID - The recovery proximity placement group Id. + RecoveryProximityPlacementGroupID *string `json:"recoveryProximityPlacementGroupId,omitempty"` // PolicyID - The Policy Id. PolicyID *string `json:"policyId,omitempty"` // RecoveryBootDiagStorageAccountID - The boot diagnostic storage account. @@ -1112,6 +1888,9 @@ func (aspi A2ASwitchProtectionInput) MarshalJSON() ([]byte, error) { if aspi.RecoveryAvailabilitySetID != nil { objectMap["recoveryAvailabilitySetId"] = aspi.RecoveryAvailabilitySetID } + if aspi.RecoveryProximityPlacementGroupID != nil { + objectMap["recoveryProximityPlacementGroupId"] = aspi.RecoveryProximityPlacementGroupID + } if aspi.PolicyID != nil { objectMap["policyId"] = aspi.PolicyID } @@ -1142,6 +1921,134 @@ func (aspi A2ASwitchProtectionInput) AsBasicSwitchProtectionProviderSpecificInpu return &aspi, true } +// A2ATestFailoverInput a2A provider specific input for test failover. +type A2ATestFailoverInput struct { + // RecoveryPointID - The recovery point id to be passed to test failover to a particular recovery point. In case of latest recovery point, null should be passed. + RecoveryPointID *string `json:"recoveryPointId,omitempty"` + // CloudServiceCreationOption - A value indicating whether to use recovery cloud service for TFO or not. + CloudServiceCreationOption *string `json:"cloudServiceCreationOption,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeTestFailoverProviderSpecificInput', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMage' + InstanceType InstanceTypeBasicTestFailoverProviderSpecificInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for A2ATestFailoverInput. +func (atfi A2ATestFailoverInput) MarshalJSON() ([]byte, error) { + atfi.InstanceType = InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeA2A + objectMap := make(map[string]interface{}) + if atfi.RecoveryPointID != nil { + objectMap["recoveryPointId"] = atfi.RecoveryPointID + } + if atfi.CloudServiceCreationOption != nil { + objectMap["cloudServiceCreationOption"] = atfi.CloudServiceCreationOption + } + if atfi.InstanceType != "" { + objectMap["instanceType"] = atfi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2ATestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for A2ATestFailoverInput. +func (atfi A2ATestFailoverInput) AsA2ATestFailoverInput() (*A2ATestFailoverInput, bool) { + return &atfi, true +} + +// AsHyperVReplicaAzureTestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for A2ATestFailoverInput. +func (atfi A2ATestFailoverInput) AsHyperVReplicaAzureTestFailoverInput() (*HyperVReplicaAzureTestFailoverInput, bool) { + return nil, false +} + +// AsInMageAzureV2TestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for A2ATestFailoverInput. +func (atfi A2ATestFailoverInput) AsInMageAzureV2TestFailoverInput() (*InMageAzureV2TestFailoverInput, bool) { + return nil, false +} + +// AsInMageRcmTestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for A2ATestFailoverInput. +func (atfi A2ATestFailoverInput) AsInMageRcmTestFailoverInput() (*InMageRcmTestFailoverInput, bool) { + return nil, false +} + +// AsInMageTestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for A2ATestFailoverInput. +func (atfi A2ATestFailoverInput) AsInMageTestFailoverInput() (*InMageTestFailoverInput, bool) { + return nil, false +} + +// AsTestFailoverProviderSpecificInput is the BasicTestFailoverProviderSpecificInput implementation for A2ATestFailoverInput. +func (atfi A2ATestFailoverInput) AsTestFailoverProviderSpecificInput() (*TestFailoverProviderSpecificInput, bool) { + return nil, false +} + +// AsBasicTestFailoverProviderSpecificInput is the BasicTestFailoverProviderSpecificInput implementation for A2ATestFailoverInput. +func (atfi A2ATestFailoverInput) AsBasicTestFailoverProviderSpecificInput() (BasicTestFailoverProviderSpecificInput, bool) { + return &atfi, true +} + +// A2AUnplannedFailoverInput a2A provider specific input for unplanned failover. +type A2AUnplannedFailoverInput struct { + // RecoveryPointID - The recovery point id to be passed to failover to a particular recovery point. In case of latest recovery point, null should be passed. + RecoveryPointID *string `json:"recoveryPointId,omitempty"` + // CloudServiceCreationOption - A value indicating whether to use recovery cloud service for failover or not. + CloudServiceCreationOption *string `json:"cloudServiceCreationOption,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeUnplannedFailoverProviderSpecificInput', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMage' + InstanceType InstanceTypeBasicUnplannedFailoverProviderSpecificInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for A2AUnplannedFailoverInput. +func (aufi A2AUnplannedFailoverInput) MarshalJSON() ([]byte, error) { + aufi.InstanceType = InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeA2A + objectMap := make(map[string]interface{}) + if aufi.RecoveryPointID != nil { + objectMap["recoveryPointId"] = aufi.RecoveryPointID + } + if aufi.CloudServiceCreationOption != nil { + objectMap["cloudServiceCreationOption"] = aufi.CloudServiceCreationOption + } + if aufi.InstanceType != "" { + objectMap["instanceType"] = aufi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2AUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for A2AUnplannedFailoverInput. +func (aufi A2AUnplannedFailoverInput) AsA2AUnplannedFailoverInput() (*A2AUnplannedFailoverInput, bool) { + return &aufi, true +} + +// AsHyperVReplicaAzureUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for A2AUnplannedFailoverInput. +func (aufi A2AUnplannedFailoverInput) AsHyperVReplicaAzureUnplannedFailoverInput() (*HyperVReplicaAzureUnplannedFailoverInput, bool) { + return nil, false +} + +// AsInMageAzureV2UnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for A2AUnplannedFailoverInput. +func (aufi A2AUnplannedFailoverInput) AsInMageAzureV2UnplannedFailoverInput() (*InMageAzureV2UnplannedFailoverInput, bool) { + return nil, false +} + +// AsInMageRcmUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for A2AUnplannedFailoverInput. +func (aufi A2AUnplannedFailoverInput) AsInMageRcmUnplannedFailoverInput() (*InMageRcmUnplannedFailoverInput, bool) { + return nil, false +} + +// AsInMageUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for A2AUnplannedFailoverInput. +func (aufi A2AUnplannedFailoverInput) AsInMageUnplannedFailoverInput() (*InMageUnplannedFailoverInput, bool) { + return nil, false +} + +// AsUnplannedFailoverProviderSpecificInput is the BasicUnplannedFailoverProviderSpecificInput implementation for A2AUnplannedFailoverInput. +func (aufi A2AUnplannedFailoverInput) AsUnplannedFailoverProviderSpecificInput() (*UnplannedFailoverProviderSpecificInput, bool) { + return nil, false +} + +// AsBasicUnplannedFailoverProviderSpecificInput is the BasicUnplannedFailoverProviderSpecificInput implementation for A2AUnplannedFailoverInput. +func (aufi A2AUnplannedFailoverInput) AsBasicUnplannedFailoverProviderSpecificInput() (BasicUnplannedFailoverProviderSpecificInput, bool) { + return &aufi, true +} + +// A2AUnprotectedDiskDetails a2A unprotected disk details. +type A2AUnprotectedDiskDetails struct { + // DiskLunID - The source lun Id for the data disk. + DiskLunID *int32 `json:"diskLunId,omitempty"` +} + // A2AUpdateContainerMappingInput a2A update protection container mapping. type A2AUpdateContainerMappingInput struct { // AgentAutoUpdateStatus - A value indicating whether the auto update is enabled. Possible values include: 'Disabled', 'Enabled' @@ -1195,7 +2102,11 @@ type A2AUpdateReplicationProtectedItemInput struct { RecoveryBootDiagStorageAccountID *string `json:"recoveryBootDiagStorageAccountId,omitempty"` // DiskEncryptionInfo - The recovery os disk encryption information. DiskEncryptionInfo *DiskEncryptionInfo `json:"diskEncryptionInfo,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeUpdateReplicationProtectedItemProviderInput', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeA2A', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageAzureV2' + // RecoveryProximityPlacementGroupID - The recovery proximity placement group Id. + RecoveryProximityPlacementGroupID *string `json:"recoveryProximityPlacementGroupId,omitempty"` + // TfoAzureVMName - The user given name for test failover VM. + TfoAzureVMName *string `json:"tfoAzureVMName,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeUpdateReplicationProtectedItemProviderInput', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeA2A', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageRcm' InstanceType InstanceTypeBasicUpdateReplicationProtectedItemProviderInput `json:"instanceType,omitempty"` } @@ -1218,6 +2129,12 @@ func (aurpii A2AUpdateReplicationProtectedItemInput) MarshalJSON() ([]byte, erro if aurpii.DiskEncryptionInfo != nil { objectMap["diskEncryptionInfo"] = aurpii.DiskEncryptionInfo } + if aurpii.RecoveryProximityPlacementGroupID != nil { + objectMap["recoveryProximityPlacementGroupId"] = aurpii.RecoveryProximityPlacementGroupID + } + if aurpii.TfoAzureVMName != nil { + objectMap["tfoAzureVMName"] = aurpii.TfoAzureVMName + } if aurpii.InstanceType != "" { objectMap["instanceType"] = aurpii.InstanceType } @@ -1239,6 +2156,11 @@ func (aurpii A2AUpdateReplicationProtectedItemInput) AsInMageAzureV2UpdateReplic return nil, false } +// AsInMageRcmUpdateReplicationProtectedItemInput is the BasicUpdateReplicationProtectedItemProviderInput implementation for A2AUpdateReplicationProtectedItemInput. +func (aurpii A2AUpdateReplicationProtectedItemInput) AsInMageRcmUpdateReplicationProtectedItemInput() (*InMageRcmUpdateReplicationProtectedItemInput, bool) { + return nil, false +} + // AsUpdateReplicationProtectedItemProviderInput is the BasicUpdateReplicationProtectedItemProviderInput implementation for A2AUpdateReplicationProtectedItemInput. func (aurpii A2AUpdateReplicationProtectedItemInput) AsUpdateReplicationProtectedItemProviderInput() (*UpdateReplicationProtectedItemProviderInput, bool) { return nil, false @@ -1249,6 +2171,16 @@ func (aurpii A2AUpdateReplicationProtectedItemInput) AsBasicUpdateReplicationPro return &aurpii, true } +// A2AVMDiskDetails azure VM disk details. +type A2AVMDiskDetails struct { + // DiskURI - The disk Uri. + DiskURI *string `json:"diskUri,omitempty"` + // RecoveryAzureStorageAccountID - The recovery VHD storage account Id. + RecoveryAzureStorageAccountID *string `json:"recoveryAzureStorageAccountId,omitempty"` + // PrimaryStagingAzureStorageAccountID - The primary staging storage account Id. + PrimaryStagingAzureStorageAccountID *string `json:"primaryStagingAzureStorageAccountId,omitempty"` +} + // A2AVMDiskInputDetails azure VM disk input details. type A2AVMDiskInputDetails struct { // DiskURI - The disk Uri. @@ -1259,8 +2191,26 @@ type A2AVMDiskInputDetails struct { PrimaryStagingAzureStorageAccountID *string `json:"primaryStagingAzureStorageAccountId,omitempty"` } -// A2AVMManagedDiskInputDetails azure VM managed disk input details. -type A2AVMManagedDiskInputDetails struct { +// A2AVMManagedDiskDetails azure VM managed disk input details. +type A2AVMManagedDiskDetails struct { + // DiskID - The disk Id. + DiskID *string `json:"diskId,omitempty"` + // PrimaryStagingAzureStorageAccountID - The primary staging storage account Arm Id. + PrimaryStagingAzureStorageAccountID *string `json:"primaryStagingAzureStorageAccountId,omitempty"` + // RecoveryResourceGroupID - The target resource group Arm Id. + RecoveryResourceGroupID *string `json:"recoveryResourceGroupId,omitempty"` + // RecoveryReplicaDiskAccountType - The replica disk type. + RecoveryReplicaDiskAccountType *string `json:"recoveryReplicaDiskAccountType,omitempty"` + // RecoveryTargetDiskAccountType - The target disk type after failover. + RecoveryTargetDiskAccountType *string `json:"recoveryTargetDiskAccountType,omitempty"` + // RecoveryDiskEncryptionSetID - The recovery disk encryption set Id. + RecoveryDiskEncryptionSetID *string `json:"recoveryDiskEncryptionSetId,omitempty"` + // DiskEncryptionInfo - The recovery disk encryption information (for one / single pass flows). + DiskEncryptionInfo *DiskEncryptionInfo `json:"diskEncryptionInfo,omitempty"` +} + +// A2AVMManagedDiskInputDetails azure VM managed disk input details. +type A2AVMManagedDiskInputDetails struct { // DiskID - The disk Id. DiskID *string `json:"diskId,omitempty"` // PrimaryStagingAzureStorageAccountID - The primary staging storage account Arm Id. @@ -1271,6 +2221,10 @@ type A2AVMManagedDiskInputDetails struct { RecoveryReplicaDiskAccountType *string `json:"recoveryReplicaDiskAccountType,omitempty"` // RecoveryTargetDiskAccountType - The target disk type after failover. Its an optional value and will be same as source disk type if not user provided. RecoveryTargetDiskAccountType *string `json:"recoveryTargetDiskAccountType,omitempty"` + // RecoveryDiskEncryptionSetID - The recovery disk encryption set Id. + RecoveryDiskEncryptionSetID *string `json:"recoveryDiskEncryptionSetId,omitempty"` + // DiskEncryptionInfo - The recovery disk encryption information (for one / single pass flows). + DiskEncryptionInfo *DiskEncryptionInfo `json:"diskEncryptionInfo,omitempty"` } // A2AVMManagedDiskUpdateDetails azure VM managed disk update input details. @@ -1281,6 +2235,121 @@ type A2AVMManagedDiskUpdateDetails struct { RecoveryTargetDiskAccountType *string `json:"recoveryTargetDiskAccountType,omitempty"` // RecoveryReplicaDiskAccountType - The replica disk type before failover. RecoveryReplicaDiskAccountType *string `json:"recoveryReplicaDiskAccountType,omitempty"` + // DiskEncryptionInfo - The recovery disk encryption information (for one / single pass flows). + DiskEncryptionInfo *DiskEncryptionInfo `json:"diskEncryptionInfo,omitempty"` + // FailoverDiskName - The target disk name for unplanned failover operation. + FailoverDiskName *string `json:"failoverDiskName,omitempty"` + // TfoDiskName - The target disk name for test failover operation. + TfoDiskName *string `json:"tfoDiskName,omitempty"` +} + +// AddDisksInput input for add disk(s) operation. +type AddDisksInput struct { + // Properties - Add disks input properties. + Properties *AddDisksInputProperties `json:"properties,omitempty"` +} + +// AddDisksInputProperties add Disks input properties. +type AddDisksInputProperties struct { + // ProviderSpecificDetails - The ReplicationProviderInput. For HyperVReplicaAzure provider, it will be AzureEnableProtectionInput object. For San provider, it will be SanEnableProtectionInput object. For HyperVReplicaAzure provider, it can be null. + ProviderSpecificDetails BasicAddDisksProviderSpecificInput `json:"providerSpecificDetails,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for AddDisksInputProperties struct. +func (adip *AddDisksInputProperties) 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 := unmarshalBasicAddDisksProviderSpecificInput(*v) + if err != nil { + return err + } + adip.ProviderSpecificDetails = providerSpecificDetails + } + } + } + + return nil +} + +// BasicAddDisksProviderSpecificInput add Disks provider specific input. +type BasicAddDisksProviderSpecificInput interface { + AsA2AAddDisksInput() (*A2AAddDisksInput, bool) + AsAddDisksProviderSpecificInput() (*AddDisksProviderSpecificInput, bool) +} + +// AddDisksProviderSpecificInput add Disks provider specific input. +type AddDisksProviderSpecificInput struct { + // InstanceType - Possible values include: 'InstanceTypeAddDisksProviderSpecificInput', 'InstanceTypeA2A' + InstanceType InstanceType `json:"instanceType,omitempty"` +} + +func unmarshalBasicAddDisksProviderSpecificInput(body []byte) (BasicAddDisksProviderSpecificInput, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["instanceType"] { + case string(InstanceTypeA2A): + var aadi A2AAddDisksInput + err := json.Unmarshal(body, &aadi) + return aadi, err + default: + var adpsi AddDisksProviderSpecificInput + err := json.Unmarshal(body, &adpsi) + return adpsi, err + } +} +func unmarshalBasicAddDisksProviderSpecificInputArray(body []byte) ([]BasicAddDisksProviderSpecificInput, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + adpsiArray := make([]BasicAddDisksProviderSpecificInput, len(rawMessages)) + + for index, rawMessage := range rawMessages { + adpsi, err := unmarshalBasicAddDisksProviderSpecificInput(*rawMessage) + if err != nil { + return nil, err + } + adpsiArray[index] = adpsi + } + return adpsiArray, nil +} + +// MarshalJSON is the custom marshaler for AddDisksProviderSpecificInput. +func (adpsi AddDisksProviderSpecificInput) MarshalJSON() ([]byte, error) { + adpsi.InstanceType = InstanceTypeAddDisksProviderSpecificInput + objectMap := make(map[string]interface{}) + if adpsi.InstanceType != "" { + objectMap["instanceType"] = adpsi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2AAddDisksInput is the BasicAddDisksProviderSpecificInput implementation for AddDisksProviderSpecificInput. +func (adpsi AddDisksProviderSpecificInput) AsA2AAddDisksInput() (*A2AAddDisksInput, bool) { + return nil, false +} + +// AsAddDisksProviderSpecificInput is the BasicAddDisksProviderSpecificInput implementation for AddDisksProviderSpecificInput. +func (adpsi AddDisksProviderSpecificInput) AsAddDisksProviderSpecificInput() (*AddDisksProviderSpecificInput, bool) { + return &adpsi, true +} + +// AsBasicAddDisksProviderSpecificInput is the BasicAddDisksProviderSpecificInput implementation for AddDisksProviderSpecificInput. +func (adpsi AddDisksProviderSpecificInput) AsBasicAddDisksProviderSpecificInput() (BasicAddDisksProviderSpecificInput, bool) { + return &adpsi, true } // AddRecoveryServicesProviderInput input required to add a provider. @@ -1293,10 +2362,14 @@ type AddRecoveryServicesProviderInput struct { type AddRecoveryServicesProviderInputProperties struct { // MachineName - The name of the machine where the provider is getting added. MachineName *string `json:"machineName,omitempty"` + // MachineID - The Id of the machine where the provider is getting added. + MachineID *string `json:"machineId,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"` + // DataPlaneAuthenticationIdentityInput - The identity provider input for data plane authentication. + DataPlaneAuthenticationIdentityInput *IdentityProviderInput `json:"dataPlaneAuthenticationIdentityInput,omitempty"` } // AddVCenterRequest input required to add vCenter. @@ -1319,6 +2392,34 @@ type AddVCenterRequestProperties struct { RunAsAccountID *string `json:"runAsAccountId,omitempty"` } +// AgentDetails agent details. +type AgentDetails struct { + // AgentID - READ-ONLY; The Id of the agent running on the server. + AgentID *string `json:"agentId,omitempty"` + // MachineID - READ-ONLY; The Id of the machine to which the agent is registered. + MachineID *string `json:"machineId,omitempty"` + // BiosID - READ-ONLY; The machine BIOS Id. + BiosID *string `json:"biosId,omitempty"` + // Fqdn - READ-ONLY; The machine FQDN. + Fqdn *string `json:"fqdn,omitempty"` + // Disks - READ-ONLY; The details of agent disks. + Disks *[]AgentDiskDetails `json:"disks,omitempty"` +} + +// AgentDiskDetails agent disk details. +type AgentDiskDetails struct { + // DiskID - READ-ONLY; The disk Id. + DiskID *string `json:"diskId,omitempty"` + // DiskName - READ-ONLY; The disk name. + DiskName *string `json:"diskName,omitempty"` + // IsOSDisk - READ-ONLY; A value indicating whether the disk is the OS disk. + IsOSDisk *string `json:"isOSDisk,omitempty"` + // CapacityInBytes - READ-ONLY; The disk capacity in bytes. + CapacityInBytes *int64 `json:"capacityInBytes,omitempty"` + // LunID - READ-ONLY; The lun of disk. + LunID *int32 `json:"lunId,omitempty"` +} + // Alert implements the Alert class. type Alert struct { autorest.Response `json:"-"` @@ -1566,13 +2667,14 @@ type BasicApplyRecoveryPointProviderSpecificInput interface { AsA2AApplyRecoveryPointInput() (*A2AApplyRecoveryPointInput, bool) AsHyperVReplicaAzureApplyRecoveryPointInput() (*HyperVReplicaAzureApplyRecoveryPointInput, bool) AsInMageAzureV2ApplyRecoveryPointInput() (*InMageAzureV2ApplyRecoveryPointInput, bool) + AsInMageRcmApplyRecoveryPointInput() (*InMageRcmApplyRecoveryPointInput, bool) AsApplyRecoveryPointProviderSpecificInput() (*ApplyRecoveryPointProviderSpecificInput, bool) } // ApplyRecoveryPointProviderSpecificInput provider specific input for apply recovery point. type ApplyRecoveryPointProviderSpecificInput struct { - // InstanceType - Possible values include: 'InstanceTypeApplyRecoveryPointProviderSpecificInput', 'InstanceTypeA2A', 'InstanceTypeHyperVReplicaAzure', 'InstanceTypeInMageAzureV2' - InstanceType InstanceType `json:"instanceType,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeApplyRecoveryPointProviderSpecificInput', 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeInMageRcm' + InstanceType InstanceTypeBasicApplyRecoveryPointProviderSpecificInput `json:"instanceType,omitempty"` } func unmarshalBasicApplyRecoveryPointProviderSpecificInput(body []byte) (BasicApplyRecoveryPointProviderSpecificInput, error) { @@ -1583,18 +2685,22 @@ func unmarshalBasicApplyRecoveryPointProviderSpecificInput(body []byte) (BasicAp } switch m["instanceType"] { - case string(InstanceTypeA2A): + case string(InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeA2A): var aarpi A2AApplyRecoveryPointInput err := json.Unmarshal(body, &aarpi) return aarpi, err - case string(InstanceTypeHyperVReplicaAzure): + case string(InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeHyperVReplicaAzure): var hvraarpi HyperVReplicaAzureApplyRecoveryPointInput err := json.Unmarshal(body, &hvraarpi) return hvraarpi, err - case string(InstanceTypeInMageAzureV2): + case string(InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeInMageAzureV2): var imavarpi InMageAzureV2ApplyRecoveryPointInput err := json.Unmarshal(body, &imavarpi) return imavarpi, err + case string(InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeInMageRcm): + var imrarpi InMageRcmApplyRecoveryPointInput + err := json.Unmarshal(body, &imrarpi) + return imrarpi, err default: var arppsi ApplyRecoveryPointProviderSpecificInput err := json.Unmarshal(body, &arppsi) @@ -1622,7 +2728,7 @@ func unmarshalBasicApplyRecoveryPointProviderSpecificInputArray(body []byte) ([] // MarshalJSON is the custom marshaler for ApplyRecoveryPointProviderSpecificInput. func (arppsi ApplyRecoveryPointProviderSpecificInput) MarshalJSON() ([]byte, error) { - arppsi.InstanceType = InstanceTypeApplyRecoveryPointProviderSpecificInput + arppsi.InstanceType = InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeApplyRecoveryPointProviderSpecificInput objectMap := make(map[string]interface{}) if arppsi.InstanceType != "" { objectMap["instanceType"] = arppsi.InstanceType @@ -1645,6 +2751,11 @@ func (arppsi ApplyRecoveryPointProviderSpecificInput) AsInMageAzureV2ApplyRecove return nil, false } +// AsInMageRcmApplyRecoveryPointInput is the BasicApplyRecoveryPointProviderSpecificInput implementation for ApplyRecoveryPointProviderSpecificInput. +func (arppsi ApplyRecoveryPointProviderSpecificInput) AsInMageRcmApplyRecoveryPointInput() (*InMageRcmApplyRecoveryPointInput, bool) { + return nil, false +} + // AsApplyRecoveryPointProviderSpecificInput is the BasicApplyRecoveryPointProviderSpecificInput implementation for ApplyRecoveryPointProviderSpecificInput. func (arppsi ApplyRecoveryPointProviderSpecificInput) AsApplyRecoveryPointProviderSpecificInput() (*ApplyRecoveryPointProviderSpecificInput, bool) { return &arppsi, true @@ -1975,7 +3086,7 @@ func (artd AutomationRunbookTaskDetails) AsBasicTaskTypeDetails() (BasicTaskType type AzureFabricCreationInput struct { // Location - The Location. Location *string `json:"location,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeFabricSpecificCreationInput', 'InstanceTypeAzure', 'InstanceTypeVMwareV2' + // InstanceType - Possible values include: 'InstanceTypeFabricSpecificCreationInput', 'InstanceTypeAzure', 'InstanceTypeInMageRcm', 'InstanceTypeVMwareV2' InstanceType InstanceTypeBasicFabricSpecificCreationInput `json:"instanceType,omitempty"` } @@ -1997,6 +3108,11 @@ func (afci AzureFabricCreationInput) AsAzureFabricCreationInput() (*AzureFabricC return &afci, true } +// AsInMageRcmFabricCreationInput is the BasicFabricSpecificCreationInput implementation for AzureFabricCreationInput. +func (afci AzureFabricCreationInput) AsInMageRcmFabricCreationInput() (*InMageRcmFabricCreationInput, bool) { + return nil, false +} + // AsVMwareV2FabricCreationInput is the BasicFabricSpecificCreationInput implementation for AzureFabricCreationInput. func (afci AzureFabricCreationInput) AsVMwareV2FabricCreationInput() (*VMwareV2FabricCreationInput, bool) { return nil, false @@ -2018,7 +3134,7 @@ type AzureFabricSpecificDetails struct { Location *string `json:"location,omitempty"` // ContainerIds - The container Ids for the Azure fabric. ContainerIds *[]string `json:"containerIds,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeFabricSpecificDetails', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeAzure', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeHyperVSite', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMM', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMware', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMwareV2' + // InstanceType - Possible values include: 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeFabricSpecificDetails', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeAzure', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeHyperVSite', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeInMageRcm', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMM', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMware', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMwareV2' InstanceType InstanceTypeBasicFabricSpecificDetails `json:"instanceType,omitempty"` } @@ -2048,6 +3164,11 @@ func (afsd AzureFabricSpecificDetails) AsHyperVSiteDetails() (*HyperVSiteDetails return nil, false } +// AsInMageRcmFabricSpecificDetails is the BasicFabricSpecificDetails implementation for AzureFabricSpecificDetails. +func (afsd AzureFabricSpecificDetails) AsInMageRcmFabricSpecificDetails() (*InMageRcmFabricSpecificDetails, bool) { + return nil, false +} + // AsVmmDetails is the BasicFabricSpecificDetails implementation for AzureFabricSpecificDetails. func (afsd AzureFabricSpecificDetails) AsVmmDetails() (*VmmDetails, bool) { return nil, false @@ -2221,8 +3342,6 @@ func (ataunmi AzureToAzureUpdateNetworkMappingInput) AsBasicFabricSpecificUpdate type AzureToAzureVMSyncedConfigDetails struct { // Tags - The Azure VM tags. Tags map[string]*string `json:"tags"` - // RoleAssignments - The Azure role assignments. - RoleAssignments *[]RoleAssignment `json:"roleAssignments,omitempty"` // InputEndpoints - The Azure VM input endpoints. InputEndpoints *[]InputEndpoint `json:"inputEndpoints,omitempty"` } @@ -2233,9 +3352,6 @@ func (atavscd AzureToAzureVMSyncedConfigDetails) MarshalJSON() ([]byte, error) { if atavscd.Tags != nil { objectMap["tags"] = atavscd.Tags } - if atavscd.RoleAssignments != nil { - objectMap["roleAssignments"] = atavscd.RoleAssignments - } if atavscd.InputEndpoints != nil { objectMap["inputEndpoints"] = atavscd.InputEndpoints } @@ -2248,6 +3364,8 @@ type AzureVMDiskDetails struct { VhdType *string `json:"vhdType,omitempty"` // VhdID - The VHD id. VhdID *string `json:"vhdId,omitempty"` + // DiskID - The disk resource id. + DiskID *string `json:"diskId,omitempty"` // VhdName - VHD name. VhdName *string `json:"vhdName,omitempty"` // MaxSizeMB - Max side in MB. @@ -2258,6 +3376,8 @@ type AzureVMDiskDetails struct { TargetDiskName *string `json:"targetDiskName,omitempty"` // LunID - Ordinal\LunId of the disk for the Azure VM. LunID *string `json:"lunId,omitempty"` + // DiskEncryptionSetID - The DiskEncryptionSet ARM ID. + DiskEncryptionSetID *string `json:"diskEncryptionSetId,omitempty"` } // ComputeSizeErrorDetails represents the error used to indicate why the target compute size is not @@ -2645,6 +3765,115 @@ func (cpcmip *CreateProtectionContainerMappingInputProperties) UnmarshalJSON(bod return nil } +// CreateProtectionIntentInput create protection intent input. +type CreateProtectionIntentInput struct { + // Properties - Create protection intent input properties. + Properties *CreateProtectionIntentProperties `json:"properties,omitempty"` +} + +// CreateProtectionIntentProperties create protection intent input properties. +type CreateProtectionIntentProperties struct { + // ProviderSpecificDetails - The ReplicationProviderInput. For A2A provider, it will be A2ACreateProtectionIntentInput object. For other providers, it can be null. + ProviderSpecificDetails BasicCreateProtectionIntentProviderSpecificDetails `json:"providerSpecificDetails,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for CreateProtectionIntentProperties struct. +func (cpip *CreateProtectionIntentProperties) 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 := unmarshalBasicCreateProtectionIntentProviderSpecificDetails(*v) + if err != nil { + return err + } + cpip.ProviderSpecificDetails = providerSpecificDetails + } + } + } + + return nil +} + +// BasicCreateProtectionIntentProviderSpecificDetails create protection intent provider specific input. +type BasicCreateProtectionIntentProviderSpecificDetails interface { + AsA2ACreateProtectionIntentInput() (*A2ACreateProtectionIntentInput, bool) + AsCreateProtectionIntentProviderSpecificDetails() (*CreateProtectionIntentProviderSpecificDetails, bool) +} + +// CreateProtectionIntentProviderSpecificDetails create protection intent provider specific input. +type CreateProtectionIntentProviderSpecificDetails struct { + // InstanceType - Possible values include: 'InstanceTypeBasicCreateProtectionIntentProviderSpecificDetailsInstanceTypeCreateProtectionIntentProviderSpecificDetails', 'InstanceTypeBasicCreateProtectionIntentProviderSpecificDetailsInstanceTypeA2A' + InstanceType InstanceTypeBasicCreateProtectionIntentProviderSpecificDetails `json:"instanceType,omitempty"` +} + +func unmarshalBasicCreateProtectionIntentProviderSpecificDetails(body []byte) (BasicCreateProtectionIntentProviderSpecificDetails, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["instanceType"] { + case string(InstanceTypeBasicCreateProtectionIntentProviderSpecificDetailsInstanceTypeA2A): + var acpii A2ACreateProtectionIntentInput + err := json.Unmarshal(body, &acpii) + return acpii, err + default: + var cpipsd CreateProtectionIntentProviderSpecificDetails + err := json.Unmarshal(body, &cpipsd) + return cpipsd, err + } +} +func unmarshalBasicCreateProtectionIntentProviderSpecificDetailsArray(body []byte) ([]BasicCreateProtectionIntentProviderSpecificDetails, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + cpipsdArray := make([]BasicCreateProtectionIntentProviderSpecificDetails, len(rawMessages)) + + for index, rawMessage := range rawMessages { + cpipsd, err := unmarshalBasicCreateProtectionIntentProviderSpecificDetails(*rawMessage) + if err != nil { + return nil, err + } + cpipsdArray[index] = cpipsd + } + return cpipsdArray, nil +} + +// MarshalJSON is the custom marshaler for CreateProtectionIntentProviderSpecificDetails. +func (cpipsd CreateProtectionIntentProviderSpecificDetails) MarshalJSON() ([]byte, error) { + cpipsd.InstanceType = InstanceTypeBasicCreateProtectionIntentProviderSpecificDetailsInstanceTypeCreateProtectionIntentProviderSpecificDetails + objectMap := make(map[string]interface{}) + if cpipsd.InstanceType != "" { + objectMap["instanceType"] = cpipsd.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2ACreateProtectionIntentInput is the BasicCreateProtectionIntentProviderSpecificDetails implementation for CreateProtectionIntentProviderSpecificDetails. +func (cpipsd CreateProtectionIntentProviderSpecificDetails) AsA2ACreateProtectionIntentInput() (*A2ACreateProtectionIntentInput, bool) { + return nil, false +} + +// AsCreateProtectionIntentProviderSpecificDetails is the BasicCreateProtectionIntentProviderSpecificDetails implementation for CreateProtectionIntentProviderSpecificDetails. +func (cpipsd CreateProtectionIntentProviderSpecificDetails) AsCreateProtectionIntentProviderSpecificDetails() (*CreateProtectionIntentProviderSpecificDetails, bool) { + return &cpipsd, true +} + +// AsBasicCreateProtectionIntentProviderSpecificDetails is the BasicCreateProtectionIntentProviderSpecificDetails implementation for CreateProtectionIntentProviderSpecificDetails. +func (cpipsd CreateProtectionIntentProviderSpecificDetails) AsBasicCreateProtectionIntentProviderSpecificDetails() (BasicCreateProtectionIntentProviderSpecificDetails, bool) { + return &cpipsd, true +} + // CreateRecoveryPlanInput create recovery plan input class. type CreateRecoveryPlanInput struct { // Properties - Recovery plan creation properties. @@ -2661,6 +3890,67 @@ type CreateRecoveryPlanInputProperties struct { FailoverDeploymentModel FailoverDeploymentModel `json:"failoverDeploymentModel,omitempty"` // Groups - The recovery plan groups. Groups *[]RecoveryPlanGroup `json:"groups,omitempty"` + // ProviderSpecificInput - The provider specific input. + ProviderSpecificInput *[]BasicRecoveryPlanProviderSpecificInput `json:"providerSpecificInput,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for CreateRecoveryPlanInputProperties struct. +func (crpip *CreateRecoveryPlanInputProperties) 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 "primaryFabricId": + if v != nil { + var primaryFabricID string + err = json.Unmarshal(*v, &primaryFabricID) + if err != nil { + return err + } + crpip.PrimaryFabricID = &primaryFabricID + } + case "recoveryFabricId": + if v != nil { + var recoveryFabricID string + err = json.Unmarshal(*v, &recoveryFabricID) + if err != nil { + return err + } + crpip.RecoveryFabricID = &recoveryFabricID + } + case "failoverDeploymentModel": + if v != nil { + var failoverDeploymentModel FailoverDeploymentModel + err = json.Unmarshal(*v, &failoverDeploymentModel) + if err != nil { + return err + } + crpip.FailoverDeploymentModel = failoverDeploymentModel + } + case "groups": + if v != nil { + var groups []RecoveryPlanGroup + err = json.Unmarshal(*v, &groups) + if err != nil { + return err + } + crpip.Groups = &groups + } + case "providerSpecificInput": + if v != nil { + providerSpecificInput, err := unmarshalBasicRecoveryPlanProviderSpecificInputArray(*v) + if err != nil { + return err + } + crpip.ProviderSpecificInput = &providerSpecificInput + } + } + } + + return nil } // CurrentJobDetails current job details of the migration item. @@ -2855,9 +4145,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"` } @@ -2883,6 +4173,22 @@ type Display struct { Description *string `json:"description,omitempty"` } +// DraDetails DRA details. +type DraDetails struct { + // ID - READ-ONLY; The DRA Id. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The DRA name. + Name *string `json:"name,omitempty"` + // Version - READ-ONLY; The DRA version. + Version *string `json:"version,omitempty"` + // LastHeartbeatUtc - READ-ONLY; The last heartbeat received from the DRA. + LastHeartbeatUtc *date.Time `json:"lastHeartbeatUtc,omitempty"` + // Health - READ-ONLY; The health of the DRA. Possible values include: 'ProtectionHealthNone', 'ProtectionHealthNormal', 'ProtectionHealthWarning', 'ProtectionHealthCritical' + Health ProtectionHealth `json:"health,omitempty"` + // HealthErrors - READ-ONLY; The health errors. + HealthErrors *[]HealthError `json:"healthErrors,omitempty"` +} + // EnableMigrationInput enable migration input. type EnableMigrationInput struct { // Properties - Enable migration input properties. @@ -3066,13 +4372,14 @@ type BasicEnableProtectionProviderSpecificInput interface { AsHyperVReplicaAzureEnableProtectionInput() (*HyperVReplicaAzureEnableProtectionInput, bool) AsInMageAzureV2EnableProtectionInput() (*InMageAzureV2EnableProtectionInput, bool) AsInMageEnableProtectionInput() (*InMageEnableProtectionInput, bool) + AsInMageRcmEnableProtectionInput() (*InMageRcmEnableProtectionInput, bool) AsSanEnableProtectionInput() (*SanEnableProtectionInput, bool) AsEnableProtectionProviderSpecificInput() (*EnableProtectionProviderSpecificInput, bool) } // EnableProtectionProviderSpecificInput enable protection provider specific input. type EnableProtectionProviderSpecificInput struct { - // InstanceType - Possible values include: 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeEnableProtectionProviderSpecificInput', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeSan' + // InstanceType - Possible values include: 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeEnableProtectionProviderSpecificInput', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeSan' InstanceType InstanceTypeBasicEnableProtectionProviderSpecificInput `json:"instanceType,omitempty"` } @@ -3100,6 +4407,10 @@ func unmarshalBasicEnableProtectionProviderSpecificInput(body []byte) (BasicEnab var imepi InMageEnableProtectionInput err := json.Unmarshal(body, &imepi) return imepi, err + case string(InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageRcm): + var imrepi InMageRcmEnableProtectionInput + err := json.Unmarshal(body, &imrepi) + return imrepi, err case string(InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeSan): var sepi SanEnableProtectionInput err := json.Unmarshal(body, &sepi) @@ -3159,6 +4470,11 @@ func (eppsi EnableProtectionProviderSpecificInput) AsInMageEnableProtectionInput return nil, false } +// AsInMageRcmEnableProtectionInput is the BasicEnableProtectionProviderSpecificInput implementation for EnableProtectionProviderSpecificInput. +func (eppsi EnableProtectionProviderSpecificInput) AsInMageRcmEnableProtectionInput() (*InMageRcmEnableProtectionInput, bool) { + return nil, false +} + // AsSanEnableProtectionInput is the BasicEnableProtectionProviderSpecificInput implementation for EnableProtectionProviderSpecificInput. func (eppsi EnableProtectionProviderSpecificInput) AsSanEnableProtectionInput() (*SanEnableProtectionInput, bool) { return nil, false @@ -3380,8 +4696,6 @@ type EventProperties struct { EventType *string `json:"eventType,omitempty"` // AffectedObjectFriendlyName - The friendly name of the source of the event on which it is raised (for example, VM, VMM etc). AffectedObjectFriendlyName *string `json:"affectedObjectFriendlyName,omitempty"` - // AffectedObjectCorrelationID - READ-ONLY; The affected object correlationId for the event. - AffectedObjectCorrelationID *string `json:"affectedObjectCorrelationId,omitempty"` // Severity - The severity of the event. Severity *string `json:"severity,omitempty"` // TimeOfOccurrence - The time of occurrence of the event. @@ -3396,38 +4710,6 @@ type EventProperties struct { HealthErrors *[]HealthError `json:"healthErrors,omitempty"` } -// MarshalJSON is the custom marshaler for EventProperties. -func (ep EventProperties) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - if ep.EventCode != nil { - objectMap["eventCode"] = ep.EventCode - } - if ep.Description != nil { - objectMap["description"] = ep.Description - } - if ep.EventType != nil { - objectMap["eventType"] = ep.EventType - } - if ep.AffectedObjectFriendlyName != nil { - objectMap["affectedObjectFriendlyName"] = ep.AffectedObjectFriendlyName - } - if ep.Severity != nil { - objectMap["severity"] = ep.Severity - } - if ep.TimeOfOccurrence != nil { - objectMap["timeOfOccurrence"] = ep.TimeOfOccurrence - } - if ep.FabricID != nil { - objectMap["fabricId"] = ep.FabricID - } - objectMap["providerSpecificDetails"] = ep.ProviderSpecificDetails - objectMap["eventSpecificDetails"] = ep.EventSpecificDetails - if ep.HealthErrors != nil { - objectMap["healthErrors"] = ep.HealthErrors - } - return json.Marshal(objectMap) -} - // UnmarshalJSON is the custom unmarshaler for EventProperties struct. func (ep *EventProperties) UnmarshalJSON(body []byte) error { var m map[string]*json.RawMessage @@ -3473,15 +4755,6 @@ func (ep *EventProperties) UnmarshalJSON(body []byte) error { } ep.AffectedObjectFriendlyName = &affectedObjectFriendlyName } - case "affectedObjectCorrelationId": - if v != nil { - var affectedObjectCorrelationID string - err = json.Unmarshal(*v, &affectedObjectCorrelationID) - if err != nil { - return err - } - ep.AffectedObjectCorrelationID = &affectedObjectCorrelationID - } case "severity": if v != nil { var severity string @@ -3548,13 +4821,13 @@ type BasicEventProviderSpecificDetails interface { AsHyperVReplicaAzureEventDetails() (*HyperVReplicaAzureEventDetails, bool) AsHyperVReplicaBaseEventDetails() (*HyperVReplicaBaseEventDetails, bool) AsInMageAzureV2EventDetails() (*InMageAzureV2EventDetails, bool) - AsVMwareCbtEventDetails() (*VMwareCbtEventDetails, bool) + AsInMageRcmEventDetails() (*InMageRcmEventDetails, bool) AsEventProviderSpecificDetails() (*EventProviderSpecificDetails, bool) } // EventProviderSpecificDetails model class for provider specific details for an event. type EventProviderSpecificDetails struct { - // InstanceType - Possible values include: 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeEventProviderSpecificDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaBaseEventDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeEventProviderSpecificDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaBaseEventDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageRcm' InstanceType InstanceTypeBasicEventProviderSpecificDetails `json:"instanceType,omitempty"` } @@ -3590,10 +4863,10 @@ func unmarshalBasicEventProviderSpecificDetails(body []byte) (BasicEventProvider var imaved InMageAzureV2EventDetails err := json.Unmarshal(body, &imaved) return imaved, err - case string(InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeVMwareCbt): - var vmced VMwareCbtEventDetails - err := json.Unmarshal(body, &vmced) - return vmced, err + case string(InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageRcm): + var imred InMageRcmEventDetails + err := json.Unmarshal(body, &imred) + return imred, err default: var epsd EventProviderSpecificDetails err := json.Unmarshal(body, &epsd) @@ -3659,8 +4932,8 @@ func (epsd EventProviderSpecificDetails) AsInMageAzureV2EventDetails() (*InMageA return nil, false } -// AsVMwareCbtEventDetails is the BasicEventProviderSpecificDetails implementation for EventProviderSpecificDetails. -func (epsd EventProviderSpecificDetails) AsVMwareCbtEventDetails() (*VMwareCbtEventDetails, bool) { +// AsInMageRcmEventDetails is the BasicEventProviderSpecificDetails implementation for EventProviderSpecificDetails. +func (epsd EventProviderSpecificDetails) AsInMageRcmEventDetails() (*InMageRcmEventDetails, bool) { return nil, false } @@ -3686,41 +4959,12 @@ type EventQueryParameter struct { FabricName *string `json:"fabricName,omitempty"` // AffectedObjectFriendlyName - The affected object name of the events to be queried. AffectedObjectFriendlyName *string `json:"affectedObjectFriendlyName,omitempty"` - // AffectedObjectCorrelationID - READ-ONLY; The affected object correlationId for the events to be queried. - AffectedObjectCorrelationID *string `json:"affectedObjectCorrelationId,omitempty"` // StartTime - The start time of the time range within which the events are to be queried. StartTime *date.Time `json:"startTime,omitempty"` // EndTime - The end time of the time range within which the events are to be queried. EndTime *date.Time `json:"endTime,omitempty"` } -// MarshalJSON is the custom marshaler for EventQueryParameter. -func (eqp EventQueryParameter) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - if eqp.EventCode != nil { - objectMap["eventCode"] = eqp.EventCode - } - if eqp.Severity != nil { - objectMap["severity"] = eqp.Severity - } - if eqp.EventType != nil { - objectMap["eventType"] = eqp.EventType - } - if eqp.FabricName != nil { - objectMap["fabricName"] = eqp.FabricName - } - if eqp.AffectedObjectFriendlyName != nil { - objectMap["affectedObjectFriendlyName"] = eqp.AffectedObjectFriendlyName - } - if eqp.StartTime != nil { - objectMap["startTime"] = eqp.StartTime - } - if eqp.EndTime != nil { - objectMap["endTime"] = eqp.EndTime - } - return json.Marshal(objectMap) -} - // BasicEventSpecificDetails model class for event specific details for an event. type BasicEventSpecificDetails interface { AsJobStatusEventDetails() (*JobStatusEventDetails, bool) @@ -3795,13 +5039,239 @@ func (esd EventSpecificDetails) AsBasicEventSpecificDetails() (BasicEventSpecifi return &esd, true } -// ExportJobDetails this class represents details for export jobs workflow. -type ExportJobDetails struct { - // BlobURI - BlobUri of the exported jobs. - BlobURI *string `json:"blobUri,omitempty"` - // SasToken - The sas token to access blob. - SasToken *string `json:"sasToken,omitempty"` - // AffectedObjectDetails - The affected object properties like source server, source cloud, target server, target cloud etc. based on the workflow object details. +// ExistingProtectionProfile existing storage account input. +type ExistingProtectionProfile struct { + // ProtectionProfileID - The protection profile Arm Id. Throw error, if resource does not exists. + ProtectionProfileID *string `json:"protectionProfileId,omitempty"` + // ResourceType - Possible values include: 'ResourceTypeProtectionProfileCustomDetails', 'ResourceTypeExisting', 'ResourceTypeNew' + ResourceType ResourceType `json:"resourceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for ExistingProtectionProfile. +func (epp ExistingProtectionProfile) MarshalJSON() ([]byte, error) { + epp.ResourceType = ResourceTypeExisting + objectMap := make(map[string]interface{}) + if epp.ProtectionProfileID != nil { + objectMap["protectionProfileId"] = epp.ProtectionProfileID + } + if epp.ResourceType != "" { + objectMap["resourceType"] = epp.ResourceType + } + return json.Marshal(objectMap) +} + +// AsExistingProtectionProfile is the BasicProtectionProfileCustomDetails implementation for ExistingProtectionProfile. +func (epp ExistingProtectionProfile) AsExistingProtectionProfile() (*ExistingProtectionProfile, bool) { + return &epp, true +} + +// AsNewProtectionProfile is the BasicProtectionProfileCustomDetails implementation for ExistingProtectionProfile. +func (epp ExistingProtectionProfile) AsNewProtectionProfile() (*NewProtectionProfile, bool) { + return nil, false +} + +// AsProtectionProfileCustomDetails is the BasicProtectionProfileCustomDetails implementation for ExistingProtectionProfile. +func (epp ExistingProtectionProfile) AsProtectionProfileCustomDetails() (*ProtectionProfileCustomDetails, bool) { + return nil, false +} + +// AsBasicProtectionProfileCustomDetails is the BasicProtectionProfileCustomDetails implementation for ExistingProtectionProfile. +func (epp ExistingProtectionProfile) AsBasicProtectionProfileCustomDetails() (BasicProtectionProfileCustomDetails, bool) { + return &epp, true +} + +// ExistingRecoveryAvailabilitySet existing recovery availability set input. +type ExistingRecoveryAvailabilitySet struct { + // RecoveryAvailabilitySetID - The recovery availability set Id. Will throw error, if resource does not exist. + RecoveryAvailabilitySetID *string `json:"recoveryAvailabilitySetId,omitempty"` + // ResourceType - Possible values include: 'ResourceTypeBasicRecoveryAvailabilitySetCustomDetailsResourceTypeRecoveryAvailabilitySetCustomDetails', 'ResourceTypeBasicRecoveryAvailabilitySetCustomDetailsResourceTypeExisting' + ResourceType ResourceTypeBasicRecoveryAvailabilitySetCustomDetails `json:"resourceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for ExistingRecoveryAvailabilitySet. +func (eras ExistingRecoveryAvailabilitySet) MarshalJSON() ([]byte, error) { + eras.ResourceType = ResourceTypeBasicRecoveryAvailabilitySetCustomDetailsResourceTypeExisting + objectMap := make(map[string]interface{}) + if eras.RecoveryAvailabilitySetID != nil { + objectMap["recoveryAvailabilitySetId"] = eras.RecoveryAvailabilitySetID + } + if eras.ResourceType != "" { + objectMap["resourceType"] = eras.ResourceType + } + return json.Marshal(objectMap) +} + +// AsExistingRecoveryAvailabilitySet is the BasicRecoveryAvailabilitySetCustomDetails implementation for ExistingRecoveryAvailabilitySet. +func (eras ExistingRecoveryAvailabilitySet) AsExistingRecoveryAvailabilitySet() (*ExistingRecoveryAvailabilitySet, bool) { + return &eras, true +} + +// AsRecoveryAvailabilitySetCustomDetails is the BasicRecoveryAvailabilitySetCustomDetails implementation for ExistingRecoveryAvailabilitySet. +func (eras ExistingRecoveryAvailabilitySet) AsRecoveryAvailabilitySetCustomDetails() (*RecoveryAvailabilitySetCustomDetails, bool) { + return nil, false +} + +// AsBasicRecoveryAvailabilitySetCustomDetails is the BasicRecoveryAvailabilitySetCustomDetails implementation for ExistingRecoveryAvailabilitySet. +func (eras ExistingRecoveryAvailabilitySet) AsBasicRecoveryAvailabilitySetCustomDetails() (BasicRecoveryAvailabilitySetCustomDetails, bool) { + return &eras, true +} + +// ExistingRecoveryProximityPlacementGroup existing recovery proximity placement group input. +type ExistingRecoveryProximityPlacementGroup struct { + // RecoveryProximityPlacementGroupID - The recovery proximity placement group Id. Will throw error, if resource does not exist. + RecoveryProximityPlacementGroupID *string `json:"recoveryProximityPlacementGroupId,omitempty"` + // ResourceType - Possible values include: 'ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetailsResourceTypeRecoveryProximityPlacementGroupCustomDetails', 'ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetailsResourceTypeExisting' + ResourceType ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetails `json:"resourceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for ExistingRecoveryProximityPlacementGroup. +func (erppg ExistingRecoveryProximityPlacementGroup) MarshalJSON() ([]byte, error) { + erppg.ResourceType = ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetailsResourceTypeExisting + objectMap := make(map[string]interface{}) + if erppg.RecoveryProximityPlacementGroupID != nil { + objectMap["recoveryProximityPlacementGroupId"] = erppg.RecoveryProximityPlacementGroupID + } + if erppg.ResourceType != "" { + objectMap["resourceType"] = erppg.ResourceType + } + return json.Marshal(objectMap) +} + +// AsExistingRecoveryProximityPlacementGroup is the BasicRecoveryProximityPlacementGroupCustomDetails implementation for ExistingRecoveryProximityPlacementGroup. +func (erppg ExistingRecoveryProximityPlacementGroup) AsExistingRecoveryProximityPlacementGroup() (*ExistingRecoveryProximityPlacementGroup, bool) { + return &erppg, true +} + +// AsRecoveryProximityPlacementGroupCustomDetails is the BasicRecoveryProximityPlacementGroupCustomDetails implementation for ExistingRecoveryProximityPlacementGroup. +func (erppg ExistingRecoveryProximityPlacementGroup) AsRecoveryProximityPlacementGroupCustomDetails() (*RecoveryProximityPlacementGroupCustomDetails, bool) { + return nil, false +} + +// AsBasicRecoveryProximityPlacementGroupCustomDetails is the BasicRecoveryProximityPlacementGroupCustomDetails implementation for ExistingRecoveryProximityPlacementGroup. +func (erppg ExistingRecoveryProximityPlacementGroup) AsBasicRecoveryProximityPlacementGroupCustomDetails() (BasicRecoveryProximityPlacementGroupCustomDetails, bool) { + return &erppg, true +} + +// ExistingRecoveryRecoveryResourceGroup existing recovery resource group input. +type ExistingRecoveryRecoveryResourceGroup struct { + // RecoveryResourceGroupID - The recovery resource group Id. Valid for V2 scenarios. + RecoveryResourceGroupID *string `json:"recoveryResourceGroupId,omitempty"` + // ResourceType - Possible values include: 'ResourceTypeBasicRecoveryResourceGroupCustomDetailsResourceTypeRecoveryResourceGroupCustomDetails', 'ResourceTypeBasicRecoveryResourceGroupCustomDetailsResourceTypeExisting' + ResourceType ResourceTypeBasicRecoveryResourceGroupCustomDetails `json:"resourceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for ExistingRecoveryRecoveryResourceGroup. +func (errrg ExistingRecoveryRecoveryResourceGroup) MarshalJSON() ([]byte, error) { + errrg.ResourceType = ResourceTypeBasicRecoveryResourceGroupCustomDetailsResourceTypeExisting + objectMap := make(map[string]interface{}) + if errrg.RecoveryResourceGroupID != nil { + objectMap["recoveryResourceGroupId"] = errrg.RecoveryResourceGroupID + } + if errrg.ResourceType != "" { + objectMap["resourceType"] = errrg.ResourceType + } + return json.Marshal(objectMap) +} + +// AsExistingRecoveryRecoveryResourceGroup is the BasicRecoveryResourceGroupCustomDetails implementation for ExistingRecoveryRecoveryResourceGroup. +func (errrg ExistingRecoveryRecoveryResourceGroup) AsExistingRecoveryRecoveryResourceGroup() (*ExistingRecoveryRecoveryResourceGroup, bool) { + return &errrg, true +} + +// AsRecoveryResourceGroupCustomDetails is the BasicRecoveryResourceGroupCustomDetails implementation for ExistingRecoveryRecoveryResourceGroup. +func (errrg ExistingRecoveryRecoveryResourceGroup) AsRecoveryResourceGroupCustomDetails() (*RecoveryResourceGroupCustomDetails, bool) { + return nil, false +} + +// AsBasicRecoveryResourceGroupCustomDetails is the BasicRecoveryResourceGroupCustomDetails implementation for ExistingRecoveryRecoveryResourceGroup. +func (errrg ExistingRecoveryRecoveryResourceGroup) AsBasicRecoveryResourceGroupCustomDetails() (BasicRecoveryResourceGroupCustomDetails, bool) { + return &errrg, true +} + +// ExistingRecoveryVirtualNetwork existing recovery virtual network input. +type ExistingRecoveryVirtualNetwork struct { + // RecoveryVirtualNetworkID - The recovery virtual network Id. Will throw error, if resource does not exist. + RecoveryVirtualNetworkID *string `json:"recoveryVirtualNetworkId,omitempty"` + // RecoverySubnetName - The recovery subnet name. + RecoverySubnetName *string `json:"recoverySubnetName,omitempty"` + // ResourceType - Possible values include: 'ResourceTypeBasicRecoveryVirtualNetworkCustomDetailsResourceTypeRecoveryVirtualNetworkCustomDetails', 'ResourceTypeBasicRecoveryVirtualNetworkCustomDetailsResourceTypeExisting' + ResourceType ResourceTypeBasicRecoveryVirtualNetworkCustomDetails `json:"resourceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for ExistingRecoveryVirtualNetwork. +func (ervn ExistingRecoveryVirtualNetwork) MarshalJSON() ([]byte, error) { + ervn.ResourceType = ResourceTypeBasicRecoveryVirtualNetworkCustomDetailsResourceTypeExisting + objectMap := make(map[string]interface{}) + if ervn.RecoveryVirtualNetworkID != nil { + objectMap["recoveryVirtualNetworkId"] = ervn.RecoveryVirtualNetworkID + } + if ervn.RecoverySubnetName != nil { + objectMap["recoverySubnetName"] = ervn.RecoverySubnetName + } + if ervn.ResourceType != "" { + objectMap["resourceType"] = ervn.ResourceType + } + return json.Marshal(objectMap) +} + +// AsExistingRecoveryVirtualNetwork is the BasicRecoveryVirtualNetworkCustomDetails implementation for ExistingRecoveryVirtualNetwork. +func (ervn ExistingRecoveryVirtualNetwork) AsExistingRecoveryVirtualNetwork() (*ExistingRecoveryVirtualNetwork, bool) { + return &ervn, true +} + +// AsRecoveryVirtualNetworkCustomDetails is the BasicRecoveryVirtualNetworkCustomDetails implementation for ExistingRecoveryVirtualNetwork. +func (ervn ExistingRecoveryVirtualNetwork) AsRecoveryVirtualNetworkCustomDetails() (*RecoveryVirtualNetworkCustomDetails, bool) { + return nil, false +} + +// AsBasicRecoveryVirtualNetworkCustomDetails is the BasicRecoveryVirtualNetworkCustomDetails implementation for ExistingRecoveryVirtualNetwork. +func (ervn ExistingRecoveryVirtualNetwork) AsBasicRecoveryVirtualNetworkCustomDetails() (BasicRecoveryVirtualNetworkCustomDetails, bool) { + return &ervn, true +} + +// ExistingStorageAccount existing storage account input. +type ExistingStorageAccount struct { + // AzureStorageAccountID - The storage account Arm Id. Throw error, if resource does not exists. + AzureStorageAccountID *string `json:"azureStorageAccountId,omitempty"` + // ResourceType - Possible values include: 'ResourceTypeBasicStorageAccountCustomDetailsResourceTypeStorageAccountCustomDetails', 'ResourceTypeBasicStorageAccountCustomDetailsResourceTypeExisting' + ResourceType ResourceTypeBasicStorageAccountCustomDetails `json:"resourceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for ExistingStorageAccount. +func (esa ExistingStorageAccount) MarshalJSON() ([]byte, error) { + esa.ResourceType = ResourceTypeBasicStorageAccountCustomDetailsResourceTypeExisting + objectMap := make(map[string]interface{}) + if esa.AzureStorageAccountID != nil { + objectMap["azureStorageAccountId"] = esa.AzureStorageAccountID + } + if esa.ResourceType != "" { + objectMap["resourceType"] = esa.ResourceType + } + return json.Marshal(objectMap) +} + +// AsExistingStorageAccount is the BasicStorageAccountCustomDetails implementation for ExistingStorageAccount. +func (esa ExistingStorageAccount) AsExistingStorageAccount() (*ExistingStorageAccount, bool) { + return &esa, true +} + +// AsStorageAccountCustomDetails is the BasicStorageAccountCustomDetails implementation for ExistingStorageAccount. +func (esa ExistingStorageAccount) AsStorageAccountCustomDetails() (*StorageAccountCustomDetails, bool) { + return nil, false +} + +// AsBasicStorageAccountCustomDetails is the BasicStorageAccountCustomDetails implementation for ExistingStorageAccount. +func (esa ExistingStorageAccount) AsBasicStorageAccountCustomDetails() (BasicStorageAccountCustomDetails, bool) { + return &esa, true +} + +// ExportJobDetails this class represents details for export jobs workflow. +type ExportJobDetails struct { + // BlobURI - BlobUri of the exported jobs. + BlobURI *string `json:"blobUri,omitempty"` + // SasToken - The sas token to access blob. + SasToken *string `json:"sasToken,omitempty"` + // AffectedObjectDetails - The affected object properties like source server, source cloud, target server, target cloud etc. based on the workflow object details. AffectedObjectDetails map[string]*string `json:"affectedObjectDetails"` // InstanceType - Possible values include: 'InstanceTypeJobDetails', 'InstanceTypeAsrJobDetails', 'InstanceTypeExportJobDetails', 'InstanceTypeFailoverJobDetails', 'InstanceTypeSwitchProtectionJobDetails', 'InstanceTypeTestFailoverJobDetails' InstanceType InstanceTypeBasicJobDetails `json:"instanceType,omitempty"` @@ -4366,13 +5836,14 @@ func (fscnmi FabricSpecificCreateNetworkMappingInput) AsBasicFabricSpecificCreat // BasicFabricSpecificCreationInput fabric provider specific settings. type BasicFabricSpecificCreationInput interface { AsAzureFabricCreationInput() (*AzureFabricCreationInput, bool) + AsInMageRcmFabricCreationInput() (*InMageRcmFabricCreationInput, bool) AsVMwareV2FabricCreationInput() (*VMwareV2FabricCreationInput, bool) AsFabricSpecificCreationInput() (*FabricSpecificCreationInput, bool) } // FabricSpecificCreationInput fabric provider specific settings. type FabricSpecificCreationInput struct { - // InstanceType - Possible values include: 'InstanceTypeFabricSpecificCreationInput', 'InstanceTypeAzure', 'InstanceTypeVMwareV2' + // InstanceType - Possible values include: 'InstanceTypeFabricSpecificCreationInput', 'InstanceTypeAzure', 'InstanceTypeInMageRcm', 'InstanceTypeVMwareV2' InstanceType InstanceTypeBasicFabricSpecificCreationInput `json:"instanceType,omitempty"` } @@ -4388,6 +5859,10 @@ func unmarshalBasicFabricSpecificCreationInput(body []byte) (BasicFabricSpecific var afci AzureFabricCreationInput err := json.Unmarshal(body, &afci) return afci, err + case string(InstanceTypeInMageRcm): + var imrfci InMageRcmFabricCreationInput + err := json.Unmarshal(body, &imrfci) + return imrfci, err case string(InstanceTypeVMwareV2): var vmvfci VMwareV2FabricCreationInput err := json.Unmarshal(body, &vmvfci) @@ -4432,6 +5907,11 @@ func (fsci FabricSpecificCreationInput) AsAzureFabricCreationInput() (*AzureFabr return nil, false } +// AsInMageRcmFabricCreationInput is the BasicFabricSpecificCreationInput implementation for FabricSpecificCreationInput. +func (fsci FabricSpecificCreationInput) AsInMageRcmFabricCreationInput() (*InMageRcmFabricCreationInput, bool) { + return nil, false +} + // AsVMwareV2FabricCreationInput is the BasicFabricSpecificCreationInput implementation for FabricSpecificCreationInput. func (fsci FabricSpecificCreationInput) AsVMwareV2FabricCreationInput() (*VMwareV2FabricCreationInput, bool) { return nil, false @@ -4451,6 +5931,7 @@ func (fsci FabricSpecificCreationInput) AsBasicFabricSpecificCreationInput() (Ba type BasicFabricSpecificDetails interface { AsAzureFabricSpecificDetails() (*AzureFabricSpecificDetails, bool) AsHyperVSiteDetails() (*HyperVSiteDetails, bool) + AsInMageRcmFabricSpecificDetails() (*InMageRcmFabricSpecificDetails, bool) AsVmmDetails() (*VmmDetails, bool) AsVMwareDetails() (*VMwareDetails, bool) AsVMwareV2FabricSpecificDetails() (*VMwareV2FabricSpecificDetails, bool) @@ -4459,7 +5940,7 @@ type BasicFabricSpecificDetails interface { // FabricSpecificDetails fabric specific details. type FabricSpecificDetails struct { - // InstanceType - Possible values include: 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeFabricSpecificDetails', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeAzure', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeHyperVSite', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMM', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMware', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMwareV2' + // InstanceType - Possible values include: 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeFabricSpecificDetails', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeAzure', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeHyperVSite', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeInMageRcm', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMM', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMware', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMwareV2' InstanceType InstanceTypeBasicFabricSpecificDetails `json:"instanceType,omitempty"` } @@ -4479,6 +5960,10 @@ func unmarshalBasicFabricSpecificDetails(body []byte) (BasicFabricSpecificDetail var hvsd HyperVSiteDetails err := json.Unmarshal(body, &hvsd) return hvsd, err + case string(InstanceTypeBasicFabricSpecificDetailsInstanceTypeInMageRcm): + var imrfsd InMageRcmFabricSpecificDetails + err := json.Unmarshal(body, &imrfsd) + return imrfsd, err case string(InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMM): var vd VmmDetails err := json.Unmarshal(body, &vd) @@ -4536,6 +6021,11 @@ func (fsd FabricSpecificDetails) AsHyperVSiteDetails() (*HyperVSiteDetails, bool return nil, false } +// AsInMageRcmFabricSpecificDetails is the BasicFabricSpecificDetails implementation for FabricSpecificDetails. +func (fsd FabricSpecificDetails) AsInMageRcmFabricSpecificDetails() (*InMageRcmFabricSpecificDetails, bool) { + return nil, false +} + // AsVmmDetails is the BasicFabricSpecificDetails implementation for FabricSpecificDetails. func (fsd FabricSpecificDetails) AsVmmDetails() (*VmmDetails, bool) { return nil, false @@ -4887,6 +6377,10 @@ type HealthError struct { RecoveryProviderErrorMessage *string `json:"recoveryProviderErrorMessage,omitempty"` // EntityID - ID of the entity. EntityID *string `json:"entityId,omitempty"` + // ErrorID - The health error unique id. + ErrorID *string `json:"errorId,omitempty"` + // CustomerResolvability - Value indicating whether the health error is customer resolvable. Possible values include: 'Allowed', 'NotAllowed' + CustomerResolvability HealthErrorCustomerResolvability `json:"customerResolvability,omitempty"` } // HealthErrorSummary class to define the summary of the health error details. @@ -4917,7 +6411,7 @@ type HyperVReplica2012EventDetails struct { RemoteContainerName *string `json:"remoteContainerName,omitempty"` // RemoteFabricName - The remote fabric name. RemoteFabricName *string `json:"remoteFabricName,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeEventProviderSpecificDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaBaseEventDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeEventProviderSpecificDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaBaseEventDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageRcm' InstanceType InstanceTypeBasicEventProviderSpecificDetails `json:"instanceType,omitempty"` } @@ -4973,8 +6467,8 @@ func (hvr2ed HyperVReplica2012EventDetails) AsInMageAzureV2EventDetails() (*InMa return nil, false } -// AsVMwareCbtEventDetails is the BasicEventProviderSpecificDetails implementation for HyperVReplica2012EventDetails. -func (hvr2ed HyperVReplica2012EventDetails) AsVMwareCbtEventDetails() (*VMwareCbtEventDetails, bool) { +// AsInMageRcmEventDetails is the BasicEventProviderSpecificDetails implementation for HyperVReplica2012EventDetails. +func (hvr2ed HyperVReplica2012EventDetails) AsInMageRcmEventDetails() (*InMageRcmEventDetails, bool) { return nil, false } @@ -4998,7 +6492,7 @@ type HyperVReplica2012R2EventDetails struct { RemoteContainerName *string `json:"remoteContainerName,omitempty"` // RemoteFabricName - The remote fabric name. RemoteFabricName *string `json:"remoteFabricName,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeEventProviderSpecificDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaBaseEventDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeEventProviderSpecificDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaBaseEventDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageRcm' InstanceType InstanceTypeBasicEventProviderSpecificDetails `json:"instanceType,omitempty"` } @@ -5054,8 +6548,8 @@ func (hvr2ed HyperVReplica2012R2EventDetails) AsInMageAzureV2EventDetails() (*In return nil, false } -// AsVMwareCbtEventDetails is the BasicEventProviderSpecificDetails implementation for HyperVReplica2012R2EventDetails. -func (hvr2ed HyperVReplica2012R2EventDetails) AsVMwareCbtEventDetails() (*VMwareCbtEventDetails, bool) { +// AsInMageRcmEventDetails is the BasicEventProviderSpecificDetails implementation for HyperVReplica2012R2EventDetails. +func (hvr2ed HyperVReplica2012R2EventDetails) AsInMageRcmEventDetails() (*InMageRcmEventDetails, bool) { return nil, false } @@ -5078,13 +6572,13 @@ type HyperVReplicaAzureApplyRecoveryPointInput struct { PrimaryKekCertificatePfx *string `json:"primaryKekCertificatePfx,omitempty"` // SecondaryKekCertificatePfx - The secondary kek certificate pfx. SecondaryKekCertificatePfx *string `json:"secondaryKekCertificatePfx,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeApplyRecoveryPointProviderSpecificInput', 'InstanceTypeA2A', 'InstanceTypeHyperVReplicaAzure', 'InstanceTypeInMageAzureV2' - InstanceType InstanceType `json:"instanceType,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeApplyRecoveryPointProviderSpecificInput', 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeInMageRcm' + InstanceType InstanceTypeBasicApplyRecoveryPointProviderSpecificInput `json:"instanceType,omitempty"` } // MarshalJSON is the custom marshaler for HyperVReplicaAzureApplyRecoveryPointInput. func (hvraarpi HyperVReplicaAzureApplyRecoveryPointInput) MarshalJSON() ([]byte, error) { - hvraarpi.InstanceType = InstanceTypeHyperVReplicaAzure + hvraarpi.InstanceType = InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeHyperVReplicaAzure objectMap := make(map[string]interface{}) if hvraarpi.VaultLocation != nil { objectMap["vaultLocation"] = hvraarpi.VaultLocation @@ -5116,6 +6610,11 @@ func (hvraarpi HyperVReplicaAzureApplyRecoveryPointInput) AsInMageAzureV2ApplyRe return nil, false } +// AsInMageRcmApplyRecoveryPointInput is the BasicApplyRecoveryPointProviderSpecificInput implementation for HyperVReplicaAzureApplyRecoveryPointInput. +func (hvraarpi HyperVReplicaAzureApplyRecoveryPointInput) AsInMageRcmApplyRecoveryPointInput() (*InMageRcmApplyRecoveryPointInput, bool) { + return nil, false +} + // AsApplyRecoveryPointProviderSpecificInput is the BasicApplyRecoveryPointProviderSpecificInput implementation for HyperVReplicaAzureApplyRecoveryPointInput. func (hvraarpi HyperVReplicaAzureApplyRecoveryPointInput) AsApplyRecoveryPointProviderSpecificInput() (*ApplyRecoveryPointProviderSpecificInput, bool) { return nil, false @@ -5156,7 +6655,11 @@ type HyperVReplicaAzureEnableProtectionInput struct { TargetAzureV2ResourceGroupID *string `json:"targetAzureV2ResourceGroupId,omitempty"` // UseManagedDisks - A value indicating whether managed disks should be used during failover. UseManagedDisks *string `json:"useManagedDisks,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeEnableProtectionProviderSpecificInput', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeSan' + // TargetAvailabilityZone - The target availability zone. + TargetAvailabilityZone *string `json:"targetAvailabilityZone,omitempty"` + // TargetProximityPlacementGroupID - The proximity placement group ARM Id. + TargetProximityPlacementGroupID *string `json:"targetProximityPlacementGroupId,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeEnableProtectionProviderSpecificInput', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeSan' InstanceType InstanceTypeBasicEnableProtectionProviderSpecificInput `json:"instanceType,omitempty"` } @@ -5206,6 +6709,12 @@ func (hvraepi HyperVReplicaAzureEnableProtectionInput) MarshalJSON() ([]byte, er if hvraepi.UseManagedDisks != nil { objectMap["useManagedDisks"] = hvraepi.UseManagedDisks } + if hvraepi.TargetAvailabilityZone != nil { + objectMap["targetAvailabilityZone"] = hvraepi.TargetAvailabilityZone + } + if hvraepi.TargetProximityPlacementGroupID != nil { + objectMap["targetProximityPlacementGroupId"] = hvraepi.TargetProximityPlacementGroupID + } if hvraepi.InstanceType != "" { objectMap["instanceType"] = hvraepi.InstanceType } @@ -5232,6 +6741,11 @@ func (hvraepi HyperVReplicaAzureEnableProtectionInput) AsInMageEnableProtectionI return nil, false } +// AsInMageRcmEnableProtectionInput is the BasicEnableProtectionProviderSpecificInput implementation for HyperVReplicaAzureEnableProtectionInput. +func (hvraepi HyperVReplicaAzureEnableProtectionInput) AsInMageRcmEnableProtectionInput() (*InMageRcmEnableProtectionInput, bool) { + return nil, false +} + // AsSanEnableProtectionInput is the BasicEnableProtectionProviderSpecificInput implementation for HyperVReplicaAzureEnableProtectionInput. func (hvraepi HyperVReplicaAzureEnableProtectionInput) AsSanEnableProtectionInput() (*SanEnableProtectionInput, bool) { return nil, false @@ -5255,7 +6769,7 @@ type HyperVReplicaAzureEventDetails struct { FabricName *string `json:"fabricName,omitempty"` // RemoteContainerName - The remote container name. RemoteContainerName *string `json:"remoteContainerName,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeEventProviderSpecificDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaBaseEventDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeEventProviderSpecificDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaBaseEventDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageRcm' InstanceType InstanceTypeBasicEventProviderSpecificDetails `json:"instanceType,omitempty"` } @@ -5308,8 +6822,8 @@ func (hvraed HyperVReplicaAzureEventDetails) AsInMageAzureV2EventDetails() (*InM return nil, false } -// AsVMwareCbtEventDetails is the BasicEventProviderSpecificDetails implementation for HyperVReplicaAzureEventDetails. -func (hvraed HyperVReplicaAzureEventDetails) AsVMwareCbtEventDetails() (*VMwareCbtEventDetails, bool) { +// AsInMageRcmEventDetails is the BasicEventProviderSpecificDetails implementation for HyperVReplicaAzureEventDetails. +func (hvraed HyperVReplicaAzureEventDetails) AsInMageRcmEventDetails() (*InMageRcmEventDetails, bool) { return nil, false } @@ -5474,7 +6988,7 @@ type HyperVReplicaAzurePolicyDetails struct { Encryption *string `json:"encryption,omitempty"` // ActiveStorageAccountID - The active storage account Id. ActiveStorageAccountID *string `json:"activeStorageAccountId,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageRcm', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicPolicyProviderSpecificDetails `json:"instanceType,omitempty"` } @@ -5546,6 +7060,11 @@ func (hvrapd HyperVReplicaAzurePolicyDetails) AsInMagePolicyDetails() (*InMagePo return nil, false } +// AsInMageRcmPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for HyperVReplicaAzurePolicyDetails. +func (hvrapd HyperVReplicaAzurePolicyDetails) AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool) { + return nil, false +} + // AsRcmAzureMigrationPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for HyperVReplicaAzurePolicyDetails. func (hvrapd HyperVReplicaAzurePolicyDetails) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) { return nil, false @@ -5578,7 +7097,7 @@ type HyperVReplicaAzurePolicyInput struct { OnlineReplicationStartTime *string `json:"onlineReplicationStartTime,omitempty"` // StorageAccounts - The list of storage accounts to which the VMs in the primary cloud can replicate to. StorageAccounts *[]string `json:"storageAccounts,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypePolicyProviderSpecificInput', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypePolicyProviderSpecificInput', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicPolicyProviderSpecificInput `json:"instanceType,omitempty"` } @@ -5637,6 +7156,11 @@ func (hvrapi HyperVReplicaAzurePolicyInput) AsInMagePolicyInput() (*InMagePolicy return nil, false } +// AsInMageRcmPolicyCreationInput is the BasicPolicyProviderSpecificInput implementation for HyperVReplicaAzurePolicyInput. +func (hvrapi HyperVReplicaAzurePolicyInput) AsInMageRcmPolicyCreationInput() (*InMageRcmPolicyCreationInput, bool) { + return nil, false +} + // AsVMwareCbtPolicyCreationInput is the BasicPolicyProviderSpecificInput implementation for HyperVReplicaAzurePolicyInput. func (hvrapi HyperVReplicaAzurePolicyInput) AsVMwareCbtPolicyCreationInput() (*VMwareCbtPolicyCreationInput, bool) { return nil, false @@ -5698,11 +7222,15 @@ type HyperVReplicaAzureReplicationDetails struct { RecoveryAzureResourceGroupID *string `json:"recoveryAzureResourceGroupId,omitempty"` // RecoveryAvailabilitySetID - The recovery availability set Id. RecoveryAvailabilitySetID *string `json:"recoveryAvailabilitySetId,omitempty"` + // TargetAvailabilityZone - The target availability zone. + TargetAvailabilityZone *string `json:"targetAvailabilityZone,omitempty"` + // TargetProximityPlacementGroupID - The target proximity placement group Id. + TargetProximityPlacementGroupID *string `json:"targetProximityPlacementGroupId,omitempty"` // UseManagedDisks - A value indicating whether managed disks should be used during failover. UseManagedDisks *string `json:"useManagedDisks,omitempty"` // LicenseType - License Type of the VM to be used. LicenseType *string `json:"licenseType,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeReplicationProviderSpecificSettings', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage' + // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeReplicationProviderSpecificSettings', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageRcm', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage' InstanceType InstanceTypeBasicReplicationProviderSpecificSettings `json:"instanceType,omitempty"` } @@ -5776,6 +7304,12 @@ func (hvrard HyperVReplicaAzureReplicationDetails) MarshalJSON() ([]byte, error) if hvrard.RecoveryAvailabilitySetID != nil { objectMap["recoveryAvailabilitySetId"] = hvrard.RecoveryAvailabilitySetID } + if hvrard.TargetAvailabilityZone != nil { + objectMap["targetAvailabilityZone"] = hvrard.TargetAvailabilityZone + } + if hvrard.TargetProximityPlacementGroupID != nil { + objectMap["targetProximityPlacementGroupId"] = hvrard.TargetProximityPlacementGroupID + } if hvrard.UseManagedDisks != nil { objectMap["useManagedDisks"] = hvrard.UseManagedDisks } @@ -5818,6 +7352,11 @@ func (hvrard HyperVReplicaAzureReplicationDetails) AsInMageAzureV2ReplicationDet return nil, false } +// AsInMageRcmReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for HyperVReplicaAzureReplicationDetails. +func (hvrard HyperVReplicaAzureReplicationDetails) AsInMageRcmReplicationDetails() (*InMageRcmReplicationDetails, bool) { + return nil, false +} + // AsInMageReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for HyperVReplicaAzureReplicationDetails. func (hvrard HyperVReplicaAzureReplicationDetails) AsInMageReplicationDetails() (*InMageReplicationDetails, bool) { return nil, false @@ -5909,6 +7448,148 @@ func (hvrari HyperVReplicaAzureReprotectInput) AsBasicReverseReplicationProvider return &hvrari, true } +// HyperVReplicaAzureTestFailoverInput hvrA provider specific input for test failover. +type HyperVReplicaAzureTestFailoverInput struct { + // VaultLocation - Location of the vault. + VaultLocation *string `json:"vaultLocation,omitempty"` + // PrimaryKekCertificatePfx - Primary kek certificate pfx. + PrimaryKekCertificatePfx *string `json:"primaryKekCertificatePfx,omitempty"` + // SecondaryKekCertificatePfx - Secondary kek certificate pfx. + SecondaryKekCertificatePfx *string `json:"secondaryKekCertificatePfx,omitempty"` + // RecoveryPointID - The recovery point id to be passed to test failover to a particular recovery point. In case of latest recovery point, null should be passed. + RecoveryPointID *string `json:"recoveryPointId,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeTestFailoverProviderSpecificInput', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMage' + InstanceType InstanceTypeBasicTestFailoverProviderSpecificInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for HyperVReplicaAzureTestFailoverInput. +func (hvratfi HyperVReplicaAzureTestFailoverInput) MarshalJSON() ([]byte, error) { + hvratfi.InstanceType = InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure + objectMap := make(map[string]interface{}) + if hvratfi.VaultLocation != nil { + objectMap["vaultLocation"] = hvratfi.VaultLocation + } + if hvratfi.PrimaryKekCertificatePfx != nil { + objectMap["primaryKekCertificatePfx"] = hvratfi.PrimaryKekCertificatePfx + } + if hvratfi.SecondaryKekCertificatePfx != nil { + objectMap["secondaryKekCertificatePfx"] = hvratfi.SecondaryKekCertificatePfx + } + if hvratfi.RecoveryPointID != nil { + objectMap["recoveryPointId"] = hvratfi.RecoveryPointID + } + if hvratfi.InstanceType != "" { + objectMap["instanceType"] = hvratfi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2ATestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for HyperVReplicaAzureTestFailoverInput. +func (hvratfi HyperVReplicaAzureTestFailoverInput) AsA2ATestFailoverInput() (*A2ATestFailoverInput, bool) { + return nil, false +} + +// AsHyperVReplicaAzureTestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for HyperVReplicaAzureTestFailoverInput. +func (hvratfi HyperVReplicaAzureTestFailoverInput) AsHyperVReplicaAzureTestFailoverInput() (*HyperVReplicaAzureTestFailoverInput, bool) { + return &hvratfi, true +} + +// AsInMageAzureV2TestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for HyperVReplicaAzureTestFailoverInput. +func (hvratfi HyperVReplicaAzureTestFailoverInput) AsInMageAzureV2TestFailoverInput() (*InMageAzureV2TestFailoverInput, bool) { + return nil, false +} + +// AsInMageRcmTestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for HyperVReplicaAzureTestFailoverInput. +func (hvratfi HyperVReplicaAzureTestFailoverInput) AsInMageRcmTestFailoverInput() (*InMageRcmTestFailoverInput, bool) { + return nil, false +} + +// AsInMageTestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for HyperVReplicaAzureTestFailoverInput. +func (hvratfi HyperVReplicaAzureTestFailoverInput) AsInMageTestFailoverInput() (*InMageTestFailoverInput, bool) { + return nil, false +} + +// AsTestFailoverProviderSpecificInput is the BasicTestFailoverProviderSpecificInput implementation for HyperVReplicaAzureTestFailoverInput. +func (hvratfi HyperVReplicaAzureTestFailoverInput) AsTestFailoverProviderSpecificInput() (*TestFailoverProviderSpecificInput, bool) { + return nil, false +} + +// AsBasicTestFailoverProviderSpecificInput is the BasicTestFailoverProviderSpecificInput implementation for HyperVReplicaAzureTestFailoverInput. +func (hvratfi HyperVReplicaAzureTestFailoverInput) AsBasicTestFailoverProviderSpecificInput() (BasicTestFailoverProviderSpecificInput, bool) { + return &hvratfi, true +} + +// HyperVReplicaAzureUnplannedFailoverInput hvrA provider specific input for unplanned failover. +type HyperVReplicaAzureUnplannedFailoverInput struct { + // VaultLocation - Location of the vault. + VaultLocation *string `json:"vaultLocation,omitempty"` + // PrimaryKekCertificatePfx - Primary kek certificate pfx. + PrimaryKekCertificatePfx *string `json:"primaryKekCertificatePfx,omitempty"` + // SecondaryKekCertificatePfx - Secondary kek certificate pfx. + SecondaryKekCertificatePfx *string `json:"secondaryKekCertificatePfx,omitempty"` + // RecoveryPointID - The recovery point id to be passed to failover to a particular recovery point. In case of latest recovery point, null should be passed. + RecoveryPointID *string `json:"recoveryPointId,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeUnplannedFailoverProviderSpecificInput', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMage' + InstanceType InstanceTypeBasicUnplannedFailoverProviderSpecificInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for HyperVReplicaAzureUnplannedFailoverInput. +func (hvraufi HyperVReplicaAzureUnplannedFailoverInput) MarshalJSON() ([]byte, error) { + hvraufi.InstanceType = InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure + objectMap := make(map[string]interface{}) + if hvraufi.VaultLocation != nil { + objectMap["vaultLocation"] = hvraufi.VaultLocation + } + if hvraufi.PrimaryKekCertificatePfx != nil { + objectMap["primaryKekCertificatePfx"] = hvraufi.PrimaryKekCertificatePfx + } + if hvraufi.SecondaryKekCertificatePfx != nil { + objectMap["secondaryKekCertificatePfx"] = hvraufi.SecondaryKekCertificatePfx + } + if hvraufi.RecoveryPointID != nil { + objectMap["recoveryPointId"] = hvraufi.RecoveryPointID + } + if hvraufi.InstanceType != "" { + objectMap["instanceType"] = hvraufi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2AUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for HyperVReplicaAzureUnplannedFailoverInput. +func (hvraufi HyperVReplicaAzureUnplannedFailoverInput) AsA2AUnplannedFailoverInput() (*A2AUnplannedFailoverInput, bool) { + return nil, false +} + +// AsHyperVReplicaAzureUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for HyperVReplicaAzureUnplannedFailoverInput. +func (hvraufi HyperVReplicaAzureUnplannedFailoverInput) AsHyperVReplicaAzureUnplannedFailoverInput() (*HyperVReplicaAzureUnplannedFailoverInput, bool) { + return &hvraufi, true +} + +// AsInMageAzureV2UnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for HyperVReplicaAzureUnplannedFailoverInput. +func (hvraufi HyperVReplicaAzureUnplannedFailoverInput) AsInMageAzureV2UnplannedFailoverInput() (*InMageAzureV2UnplannedFailoverInput, bool) { + return nil, false +} + +// AsInMageRcmUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for HyperVReplicaAzureUnplannedFailoverInput. +func (hvraufi HyperVReplicaAzureUnplannedFailoverInput) AsInMageRcmUnplannedFailoverInput() (*InMageRcmUnplannedFailoverInput, bool) { + return nil, false +} + +// AsInMageUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for HyperVReplicaAzureUnplannedFailoverInput. +func (hvraufi HyperVReplicaAzureUnplannedFailoverInput) AsInMageUnplannedFailoverInput() (*InMageUnplannedFailoverInput, bool) { + return nil, false +} + +// AsUnplannedFailoverProviderSpecificInput is the BasicUnplannedFailoverProviderSpecificInput implementation for HyperVReplicaAzureUnplannedFailoverInput. +func (hvraufi HyperVReplicaAzureUnplannedFailoverInput) AsUnplannedFailoverProviderSpecificInput() (*UnplannedFailoverProviderSpecificInput, bool) { + return nil, false +} + +// AsBasicUnplannedFailoverProviderSpecificInput is the BasicUnplannedFailoverProviderSpecificInput implementation for HyperVReplicaAzureUnplannedFailoverInput. +func (hvraufi HyperVReplicaAzureUnplannedFailoverInput) AsBasicUnplannedFailoverProviderSpecificInput() (BasicUnplannedFailoverProviderSpecificInput, bool) { + return &hvraufi, true +} + // HyperVReplicaAzureUpdateReplicationProtectedItemInput hyperV replica Azure input to update replication // protected item. type HyperVReplicaAzureUpdateReplicationProtectedItemInput struct { @@ -5918,7 +7599,13 @@ type HyperVReplicaAzureUpdateReplicationProtectedItemInput struct { RecoveryAzureV2ResourceGroupID *string `json:"recoveryAzureV2ResourceGroupId,omitempty"` // UseManagedDisks - A value indicating whether managed disks should be used during failover. UseManagedDisks *string `json:"useManagedDisks,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeUpdateReplicationProtectedItemProviderInput', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeA2A', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageAzureV2' + // DiskIDToDiskEncryptionMap - The dictionary of disk resource Id to disk encryption set ARM Id. + DiskIDToDiskEncryptionMap map[string]*string `json:"diskIdToDiskEncryptionMap"` + // TargetProximityPlacementGroupID - The target proximity placement group Id. + TargetProximityPlacementGroupID *string `json:"targetProximityPlacementGroupId,omitempty"` + // TargetAvailabilityZone - The target availability zone. + TargetAvailabilityZone *string `json:"targetAvailabilityZone,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeUpdateReplicationProtectedItemProviderInput', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeA2A', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageRcm' InstanceType InstanceTypeBasicUpdateReplicationProtectedItemProviderInput `json:"instanceType,omitempty"` } @@ -5935,6 +7622,15 @@ func (hvraurpii HyperVReplicaAzureUpdateReplicationProtectedItemInput) MarshalJS if hvraurpii.UseManagedDisks != nil { objectMap["useManagedDisks"] = hvraurpii.UseManagedDisks } + if hvraurpii.DiskIDToDiskEncryptionMap != nil { + objectMap["diskIdToDiskEncryptionMap"] = hvraurpii.DiskIDToDiskEncryptionMap + } + if hvraurpii.TargetProximityPlacementGroupID != nil { + objectMap["targetProximityPlacementGroupId"] = hvraurpii.TargetProximityPlacementGroupID + } + if hvraurpii.TargetAvailabilityZone != nil { + objectMap["targetAvailabilityZone"] = hvraurpii.TargetAvailabilityZone + } if hvraurpii.InstanceType != "" { objectMap["instanceType"] = hvraurpii.InstanceType } @@ -5956,6 +7652,11 @@ func (hvraurpii HyperVReplicaAzureUpdateReplicationProtectedItemInput) AsInMageA return nil, false } +// AsInMageRcmUpdateReplicationProtectedItemInput is the BasicUpdateReplicationProtectedItemProviderInput implementation for HyperVReplicaAzureUpdateReplicationProtectedItemInput. +func (hvraurpii HyperVReplicaAzureUpdateReplicationProtectedItemInput) AsInMageRcmUpdateReplicationProtectedItemInput() (*InMageRcmUpdateReplicationProtectedItemInput, bool) { + return nil, false +} + // AsUpdateReplicationProtectedItemProviderInput is the BasicUpdateReplicationProtectedItemProviderInput implementation for HyperVReplicaAzureUpdateReplicationProtectedItemInput. func (hvraurpii HyperVReplicaAzureUpdateReplicationProtectedItemInput) AsUpdateReplicationProtectedItemProviderInput() (*UpdateReplicationProtectedItemProviderInput, bool) { return nil, false @@ -5976,7 +7677,7 @@ type HyperVReplicaBaseEventDetails struct { RemoteContainerName *string `json:"remoteContainerName,omitempty"` // RemoteFabricName - The remote fabric name. RemoteFabricName *string `json:"remoteFabricName,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeEventProviderSpecificDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaBaseEventDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeEventProviderSpecificDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaBaseEventDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageRcm' InstanceType InstanceTypeBasicEventProviderSpecificDetails `json:"instanceType,omitempty"` } @@ -6032,8 +7733,8 @@ func (hvrbed HyperVReplicaBaseEventDetails) AsInMageAzureV2EventDetails() (*InMa return nil, false } -// AsVMwareCbtEventDetails is the BasicEventProviderSpecificDetails implementation for HyperVReplicaBaseEventDetails. -func (hvrbed HyperVReplicaBaseEventDetails) AsVMwareCbtEventDetails() (*VMwareCbtEventDetails, bool) { +// AsInMageRcmEventDetails is the BasicEventProviderSpecificDetails implementation for HyperVReplicaBaseEventDetails. +func (hvrbed HyperVReplicaBaseEventDetails) AsInMageRcmEventDetails() (*InMageRcmEventDetails, bool) { return nil, false } @@ -6069,7 +7770,7 @@ type HyperVReplicaBasePolicyDetails struct { AllowedAuthenticationType *int32 `json:"allowedAuthenticationType,omitempty"` // ReplicaDeletionOption - A value indicating whether the VM has to be auto deleted. Supported Values: String.Empty, None, OnRecoveryCloud ReplicaDeletionOption *string `json:"replicaDeletionOption,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageRcm', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicPolicyProviderSpecificDetails `json:"instanceType,omitempty"` } @@ -6153,6 +7854,11 @@ func (hvrbpd HyperVReplicaBasePolicyDetails) AsInMagePolicyDetails() (*InMagePol return nil, false } +// AsInMageRcmPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for HyperVReplicaBasePolicyDetails. +func (hvrbpd HyperVReplicaBasePolicyDetails) AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool) { + return nil, false +} + // AsRcmAzureMigrationPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for HyperVReplicaBasePolicyDetails. func (hvrbpd HyperVReplicaBasePolicyDetails) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) { return nil, false @@ -6189,7 +7895,7 @@ type HyperVReplicaBaseReplicationDetails struct { InitialReplicationDetails *InitialReplicationDetails `json:"initialReplicationDetails,omitempty"` // VMDiskDetails - VM disk details. VMDiskDetails *[]DiskDetails `json:"vMDiskDetails,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeReplicationProviderSpecificSettings', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage' + // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeReplicationProviderSpecificSettings', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageRcm', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage' InstanceType InstanceTypeBasicReplicationProviderSpecificSettings `json:"instanceType,omitempty"` } @@ -6254,6 +7960,11 @@ func (hvrbrd HyperVReplicaBaseReplicationDetails) AsInMageAzureV2ReplicationDeta return nil, false } +// AsInMageRcmReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for HyperVReplicaBaseReplicationDetails. +func (hvrbrd HyperVReplicaBaseReplicationDetails) AsInMageRcmReplicationDetails() (*InMageRcmReplicationDetails, bool) { + return nil, false +} + // AsInMageReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for HyperVReplicaBaseReplicationDetails. func (hvrbrd HyperVReplicaBaseReplicationDetails) AsInMageReplicationDetails() (*InMageReplicationDetails, bool) { return nil, false @@ -6293,7 +8004,7 @@ type HyperVReplicaBluePolicyDetails struct { AllowedAuthenticationType *int32 `json:"allowedAuthenticationType,omitempty"` // ReplicaDeletionOption - A value indicating whether the VM has to be auto deleted. Supported Values: String.Empty, None, OnRecoveryCloud ReplicaDeletionOption *string `json:"replicaDeletionOption,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageRcm', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicPolicyProviderSpecificDetails `json:"instanceType,omitempty"` } @@ -6380,6 +8091,11 @@ func (hvrbpd HyperVReplicaBluePolicyDetails) AsInMagePolicyDetails() (*InMagePol return nil, false } +// AsInMageRcmPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for HyperVReplicaBluePolicyDetails. +func (hvrbpd HyperVReplicaBluePolicyDetails) AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool) { + return nil, false +} + // AsRcmAzureMigrationPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for HyperVReplicaBluePolicyDetails. func (hvrbpd HyperVReplicaBluePolicyDetails) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) { return nil, false @@ -6424,7 +8140,7 @@ type HyperVReplicaBluePolicyInput struct { AllowedAuthenticationType *int32 `json:"allowedAuthenticationType,omitempty"` // ReplicaDeletion - A value indicating whether the VM has to be auto deleted. ReplicaDeletion *string `json:"replicaDeletion,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypePolicyProviderSpecificInput', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypePolicyProviderSpecificInput', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicPolicyProviderSpecificInput `json:"instanceType,omitempty"` } @@ -6501,6 +8217,11 @@ func (hvrbpi HyperVReplicaBluePolicyInput) AsInMagePolicyInput() (*InMagePolicyI return nil, false } +// AsInMageRcmPolicyCreationInput is the BasicPolicyProviderSpecificInput implementation for HyperVReplicaBluePolicyInput. +func (hvrbpi HyperVReplicaBluePolicyInput) AsInMageRcmPolicyCreationInput() (*InMageRcmPolicyCreationInput, bool) { + return nil, false +} + // AsVMwareCbtPolicyCreationInput is the BasicPolicyProviderSpecificInput implementation for HyperVReplicaBluePolicyInput. func (hvrbpi HyperVReplicaBluePolicyInput) AsVMwareCbtPolicyCreationInput() (*VMwareCbtPolicyCreationInput, bool) { return nil, false @@ -6532,7 +8253,7 @@ type HyperVReplicaBlueReplicationDetails struct { InitialReplicationDetails *InitialReplicationDetails `json:"initialReplicationDetails,omitempty"` // VMDiskDetails - VM disk details. VMDiskDetails *[]DiskDetails `json:"vMDiskDetails,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeReplicationProviderSpecificSettings', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage' + // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeReplicationProviderSpecificSettings', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageRcm', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage' InstanceType InstanceTypeBasicReplicationProviderSpecificSettings `json:"instanceType,omitempty"` } @@ -6597,6 +8318,11 @@ func (hvrbrd HyperVReplicaBlueReplicationDetails) AsInMageAzureV2ReplicationDeta return nil, false } +// AsInMageRcmReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for HyperVReplicaBlueReplicationDetails. +func (hvrbrd HyperVReplicaBlueReplicationDetails) AsInMageRcmReplicationDetails() (*InMageRcmReplicationDetails, bool) { + return nil, false +} + // AsInMageReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for HyperVReplicaBlueReplicationDetails. func (hvrbrd HyperVReplicaBlueReplicationDetails) AsInMageReplicationDetails() (*InMageReplicationDetails, bool) { return nil, false @@ -6634,7 +8360,7 @@ type HyperVReplicaPolicyDetails struct { AllowedAuthenticationType *int32 `json:"allowedAuthenticationType,omitempty"` // ReplicaDeletionOption - A value indicating whether the VM has to be auto deleted. Supported Values: String.Empty, None, OnRecoveryCloud ReplicaDeletionOption *string `json:"replicaDeletionOption,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageRcm', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicPolicyProviderSpecificDetails `json:"instanceType,omitempty"` } @@ -6718,6 +8444,11 @@ func (hvrpd HyperVReplicaPolicyDetails) AsInMagePolicyDetails() (*InMagePolicyDe return nil, false } +// AsInMageRcmPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for HyperVReplicaPolicyDetails. +func (hvrpd HyperVReplicaPolicyDetails) AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool) { + return nil, false +} + // AsRcmAzureMigrationPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for HyperVReplicaPolicyDetails. func (hvrpd HyperVReplicaPolicyDetails) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) { return nil, false @@ -6760,7 +8491,7 @@ type HyperVReplicaPolicyInput struct { AllowedAuthenticationType *int32 `json:"allowedAuthenticationType,omitempty"` // ReplicaDeletion - A value indicating whether the VM has to be auto deleted. ReplicaDeletion *string `json:"replicaDeletion,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypePolicyProviderSpecificInput', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypePolicyProviderSpecificInput', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicPolicyProviderSpecificInput `json:"instanceType,omitempty"` } @@ -6834,6 +8565,11 @@ func (hvrpi HyperVReplicaPolicyInput) AsInMagePolicyInput() (*InMagePolicyInput, return nil, false } +// AsInMageRcmPolicyCreationInput is the BasicPolicyProviderSpecificInput implementation for HyperVReplicaPolicyInput. +func (hvrpi HyperVReplicaPolicyInput) AsInMageRcmPolicyCreationInput() (*InMageRcmPolicyCreationInput, bool) { + return nil, false +} + // AsVMwareCbtPolicyCreationInput is the BasicPolicyProviderSpecificInput implementation for HyperVReplicaPolicyInput. func (hvrpi HyperVReplicaPolicyInput) AsVMwareCbtPolicyCreationInput() (*VMwareCbtPolicyCreationInput, bool) { return nil, false @@ -6865,7 +8601,7 @@ type HyperVReplicaReplicationDetails struct { InitialReplicationDetails *InitialReplicationDetails `json:"initialReplicationDetails,omitempty"` // VMDiskDetails - VM disk details. VMDiskDetails *[]DiskDetails `json:"vMDiskDetails,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeReplicationProviderSpecificSettings', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage' + // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeReplicationProviderSpecificSettings', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageRcm', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage' InstanceType InstanceTypeBasicReplicationProviderSpecificSettings `json:"instanceType,omitempty"` } @@ -6930,6 +8666,11 @@ func (hvrrd HyperVReplicaReplicationDetails) AsInMageAzureV2ReplicationDetails() return nil, false } +// AsInMageRcmReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for HyperVReplicaReplicationDetails. +func (hvrrd HyperVReplicaReplicationDetails) AsInMageRcmReplicationDetails() (*InMageRcmReplicationDetails, bool) { + return nil, false +} + // AsInMageReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for HyperVReplicaReplicationDetails. func (hvrrd HyperVReplicaReplicationDetails) AsInMageReplicationDetails() (*InMageReplicationDetails, bool) { return nil, false @@ -6947,7 +8688,7 @@ func (hvrrd HyperVReplicaReplicationDetails) AsBasicReplicationProviderSpecificS // HyperVSiteDetails hyperVSite fabric specific details. type HyperVSiteDetails struct { - // InstanceType - Possible values include: 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeFabricSpecificDetails', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeAzure', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeHyperVSite', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMM', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMware', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMwareV2' + // InstanceType - Possible values include: 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeFabricSpecificDetails', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeAzure', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeHyperVSite', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeInMageRcm', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMM', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMware', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMwareV2' InstanceType InstanceTypeBasicFabricSpecificDetails `json:"instanceType,omitempty"` } @@ -6971,6 +8712,11 @@ func (hvsd HyperVSiteDetails) AsHyperVSiteDetails() (*HyperVSiteDetails, bool) { return &hvsd, true } +// AsInMageRcmFabricSpecificDetails is the BasicFabricSpecificDetails implementation for HyperVSiteDetails. +func (hvsd HyperVSiteDetails) AsInMageRcmFabricSpecificDetails() (*InMageRcmFabricSpecificDetails, bool) { + return nil, false +} + // AsVmmDetails is the BasicFabricSpecificDetails implementation for HyperVSiteDetails. func (hvsd HyperVSiteDetails) AsVmmDetails() (*VmmDetails, bool) { return nil, false @@ -7006,11 +8752,11 @@ type HyperVVirtualMachineDetails struct { OsDetails *OSDetails `json:"osDetails,omitempty"` // DiskDetails - The Last successful failover time. DiskDetails *[]DiskDetails `json:"diskDetails,omitempty"` - // HasPhysicalDisk - A value indicating whether the VM has a physical disk attached. String value of {SrsDataContract.PresenceStatus} enum. Possible values include: 'Unknown', 'Present', 'NotPresent' + // HasPhysicalDisk - A value indicating whether the VM has a physical disk attached. String value of {SrsDataContract.PresenceStatus} enum. Possible values include: 'PresenceStatusUnknown', 'PresenceStatusPresent', 'PresenceStatusNotPresent' HasPhysicalDisk PresenceStatus `json:"hasPhysicalDisk,omitempty"` - // HasFibreChannelAdapter - A value indicating whether the VM has a fibre channel adapter attached. String value of {SrsDataContract.PresenceStatus} enum. Possible values include: 'Unknown', 'Present', 'NotPresent' + // HasFibreChannelAdapter - A value indicating whether the VM has a fibre channel adapter attached. String value of {SrsDataContract.PresenceStatus} enum. Possible values include: 'PresenceStatusUnknown', 'PresenceStatusPresent', 'PresenceStatusNotPresent' HasFibreChannelAdapter PresenceStatus `json:"hasFibreChannelAdapter,omitempty"` - // HasSharedVhd - A value indicating whether the VM has a shared VHD attached. String value of {SrsDataContract.PresenceStatus} enum. Possible values include: 'Unknown', 'Present', 'NotPresent' + // HasSharedVhd - A value indicating whether the VM has a shared VHD attached. String value of {SrsDataContract.PresenceStatus} enum. Possible values include: 'PresenceStatusUnknown', 'PresenceStatusPresent', 'PresenceStatusNotPresent' HasSharedVhd PresenceStatus `json:"hasSharedVhd,omitempty"` // InstanceType - Possible values include: 'InstanceTypeConfigurationSettings', 'InstanceTypeHyperVVirtualMachine', 'InstanceTypeReplicationGroupDetails', 'InstanceTypeVmmVirtualMachine', 'InstanceTypeVMwareVirtualMachine' InstanceType InstanceTypeBasicConfigurationSettings `json:"instanceType,omitempty"` @@ -7205,13 +8951,13 @@ type InMageAgentVersionDetails struct { type InMageAzureV2ApplyRecoveryPointInput struct { // VaultLocation - The vault location where the recovery Vm resides. VaultLocation *string `json:"vaultLocation,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeApplyRecoveryPointProviderSpecificInput', 'InstanceTypeA2A', 'InstanceTypeHyperVReplicaAzure', 'InstanceTypeInMageAzureV2' - InstanceType InstanceType `json:"instanceType,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeApplyRecoveryPointProviderSpecificInput', 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeInMageRcm' + InstanceType InstanceTypeBasicApplyRecoveryPointProviderSpecificInput `json:"instanceType,omitempty"` } // MarshalJSON is the custom marshaler for InMageAzureV2ApplyRecoveryPointInput. func (imavarpi InMageAzureV2ApplyRecoveryPointInput) MarshalJSON() ([]byte, error) { - imavarpi.InstanceType = InstanceTypeInMageAzureV2 + imavarpi.InstanceType = InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeInMageAzureV2 objectMap := make(map[string]interface{}) if imavarpi.VaultLocation != nil { objectMap["vaultLocation"] = imavarpi.VaultLocation @@ -7237,6 +8983,11 @@ func (imavarpi InMageAzureV2ApplyRecoveryPointInput) AsInMageAzureV2ApplyRecover return &imavarpi, true } +// AsInMageRcmApplyRecoveryPointInput is the BasicApplyRecoveryPointProviderSpecificInput implementation for InMageAzureV2ApplyRecoveryPointInput. +func (imavarpi InMageAzureV2ApplyRecoveryPointInput) AsInMageRcmApplyRecoveryPointInput() (*InMageRcmApplyRecoveryPointInput, bool) { + return nil, false +} + // AsApplyRecoveryPointProviderSpecificInput is the BasicApplyRecoveryPointProviderSpecificInput implementation for InMageAzureV2ApplyRecoveryPointInput. func (imavarpi InMageAzureV2ApplyRecoveryPointInput) AsApplyRecoveryPointProviderSpecificInput() (*ApplyRecoveryPointProviderSpecificInput, bool) { return nil, false @@ -7247,6 +8998,18 @@ func (imavarpi InMageAzureV2ApplyRecoveryPointInput) AsBasicApplyRecoveryPointPr return &imavarpi, true } +// InMageAzureV2DiskInputDetails disk input details. +type InMageAzureV2DiskInputDetails struct { + // DiskID - The DiskId. + DiskID *string `json:"diskId,omitempty"` + // LogStorageAccountID - The LogStorageAccountId. + LogStorageAccountID *string `json:"logStorageAccountId,omitempty"` + // DiskType - The DiskType. Possible values include: 'StandardLRS', 'PremiumLRS', 'StandardSSDLRS' + DiskType DiskAccountType `json:"diskType,omitempty"` + // DiskEncryptionSetID - The DiskEncryptionSet ARM ID. + DiskEncryptionSetID *string `json:"diskEncryptionSetId,omitempty"` +} + // InMageAzureV2EnableProtectionInput vMware Azure specific enable protection input. type InMageAzureV2EnableProtectionInput struct { // MasterTargetID - The Master target Id. @@ -7262,7 +9025,7 @@ type InMageAzureV2EnableProtectionInput struct { // MultiVMGroupName - The multi vm group name. MultiVMGroupName *string `json:"multiVmGroupName,omitempty"` // DisksToInclude - The disks to include list. - DisksToInclude *[]string `json:"disksToInclude,omitempty"` + DisksToInclude *[]InMageAzureV2DiskInputDetails `json:"disksToInclude,omitempty"` // TargetAzureNetworkID - The selected target Azure network Id. TargetAzureNetworkID *string `json:"targetAzureNetworkId,omitempty"` // TargetAzureSubnetID - The selected target Azure subnet Id. @@ -7277,9 +9040,15 @@ type InMageAzureV2EnableProtectionInput struct { TargetAzureV1ResourceGroupID *string `json:"targetAzureV1ResourceGroupId,omitempty"` // TargetAzureV2ResourceGroupID - The Id of the target resource group (for resource manager deployment) in which the failover VM is to be created. TargetAzureV2ResourceGroupID *string `json:"targetAzureV2ResourceGroupId,omitempty"` - // UseManagedDisks - A value indicating whether managed disks should be used during failover. - UseManagedDisks *string `json:"useManagedDisks,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeEnableProtectionProviderSpecificInput', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeSan' + // DiskType - The DiskType. Possible values include: 'StandardLRS', 'PremiumLRS', 'StandardSSDLRS' + DiskType DiskAccountType `json:"diskType,omitempty"` + // DiskEncryptionSetID - The DiskEncryptionSet ARM ID. + DiskEncryptionSetID *string `json:"diskEncryptionSetId,omitempty"` + // TargetAvailabilityZone - The target availability zone. + TargetAvailabilityZone *string `json:"targetAvailabilityZone,omitempty"` + // TargetProximityPlacementGroupID - The proximity placement group ARM Id. + TargetProximityPlacementGroupID *string `json:"targetProximityPlacementGroupId,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeEnableProtectionProviderSpecificInput', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeSan' InstanceType InstanceTypeBasicEnableProtectionProviderSpecificInput `json:"instanceType,omitempty"` } @@ -7329,8 +9098,17 @@ func (imavepi InMageAzureV2EnableProtectionInput) MarshalJSON() ([]byte, error) if imavepi.TargetAzureV2ResourceGroupID != nil { objectMap["targetAzureV2ResourceGroupId"] = imavepi.TargetAzureV2ResourceGroupID } - if imavepi.UseManagedDisks != nil { - objectMap["useManagedDisks"] = imavepi.UseManagedDisks + if imavepi.DiskType != "" { + objectMap["diskType"] = imavepi.DiskType + } + if imavepi.DiskEncryptionSetID != nil { + objectMap["diskEncryptionSetId"] = imavepi.DiskEncryptionSetID + } + if imavepi.TargetAvailabilityZone != nil { + objectMap["targetAvailabilityZone"] = imavepi.TargetAvailabilityZone + } + if imavepi.TargetProximityPlacementGroupID != nil { + objectMap["targetProximityPlacementGroupId"] = imavepi.TargetProximityPlacementGroupID } if imavepi.InstanceType != "" { objectMap["instanceType"] = imavepi.InstanceType @@ -7358,6 +9136,11 @@ func (imavepi InMageAzureV2EnableProtectionInput) AsInMageEnableProtectionInput( return nil, false } +// AsInMageRcmEnableProtectionInput is the BasicEnableProtectionProviderSpecificInput implementation for InMageAzureV2EnableProtectionInput. +func (imavepi InMageAzureV2EnableProtectionInput) AsInMageRcmEnableProtectionInput() (*InMageRcmEnableProtectionInput, bool) { + return nil, false +} + // AsSanEnableProtectionInput is the BasicEnableProtectionProviderSpecificInput implementation for InMageAzureV2EnableProtectionInput. func (imavepi InMageAzureV2EnableProtectionInput) AsSanEnableProtectionInput() (*SanEnableProtectionInput, bool) { return nil, false @@ -7389,7 +9172,7 @@ type InMageAzureV2EventDetails struct { Summary *string `json:"summary,omitempty"` // SiteName - VMware Site name. SiteName *string `json:"siteName,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeEventProviderSpecificDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaBaseEventDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeEventProviderSpecificDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaBaseEventDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageRcm' InstanceType InstanceTypeBasicEventProviderSpecificDetails `json:"instanceType,omitempty"` } @@ -7454,8 +9237,8 @@ func (imaved InMageAzureV2EventDetails) AsInMageAzureV2EventDetails() (*InMageAz return &imaved, true } -// AsVMwareCbtEventDetails is the BasicEventProviderSpecificDetails implementation for InMageAzureV2EventDetails. -func (imaved InMageAzureV2EventDetails) AsVMwareCbtEventDetails() (*VMwareCbtEventDetails, bool) { +// AsInMageRcmEventDetails is the BasicEventProviderSpecificDetails implementation for InMageAzureV2EventDetails. +func (imaved InMageAzureV2EventDetails) AsInMageRcmEventDetails() (*InMageRcmEventDetails, bool) { return nil, false } @@ -7530,6 +9313,16 @@ func (imavfpi InMageAzureV2FailoverProviderInput) AsBasicProviderSpecificFailove return &imavfpi, true } +// InMageAzureV2ManagedDiskDetails inMageAzureV2 Managed disk details. +type InMageAzureV2ManagedDiskDetails struct { + // DiskID - The disk id. + DiskID *string `json:"diskId,omitempty"` + // SeedManagedDiskID - Seed managed disk Id. + SeedManagedDiskID *string `json:"seedManagedDiskId,omitempty"` + // ReplicaDiskType - The replica disk type. + ReplicaDiskType *string `json:"replicaDiskType,omitempty"` +} + // InMageAzureV2PolicyDetails inMage Azure v2 specific protection profile details. type InMageAzureV2PolicyDetails struct { // CrashConsistentFrequencyInMinutes - The crash consistent snapshot frequency in minutes. @@ -7542,7 +9335,7 @@ type InMageAzureV2PolicyDetails struct { AppConsistentFrequencyInMinutes *int32 `json:"appConsistentFrequencyInMinutes,omitempty"` // MultiVMSyncStatus - A value indicating whether multi-VM sync has to be enabled. MultiVMSyncStatus *string `json:"multiVmSyncStatus,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageRcm', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicPolicyProviderSpecificDetails `json:"instanceType,omitempty"` } @@ -7611,6 +9404,11 @@ func (imavpd InMageAzureV2PolicyDetails) AsInMagePolicyDetails() (*InMagePolicyD return nil, false } +// AsInMageRcmPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for InMageAzureV2PolicyDetails. +func (imavpd InMageAzureV2PolicyDetails) AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool) { + return nil, false +} + // AsRcmAzureMigrationPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for InMageAzureV2PolicyDetails. func (imavpd InMageAzureV2PolicyDetails) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) { return nil, false @@ -7643,7 +9441,7 @@ type InMageAzureV2PolicyInput struct { AppConsistentFrequencyInMinutes *int32 `json:"appConsistentFrequencyInMinutes,omitempty"` // MultiVMSyncStatus - A value indicating whether multi-VM sync has to be enabled. Value should be 'Enabled' or 'Disabled'. Possible values include: 'Enable', 'Disable' MultiVMSyncStatus SetMultiVMSyncStatus `json:"multiVmSyncStatus,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypePolicyProviderSpecificInput', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypePolicyProviderSpecificInput', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicPolicyProviderSpecificInput `json:"instanceType,omitempty"` } @@ -7702,6 +9500,11 @@ func (imavpi InMageAzureV2PolicyInput) AsInMagePolicyInput() (*InMagePolicyInput return nil, false } +// AsInMageRcmPolicyCreationInput is the BasicPolicyProviderSpecificInput implementation for InMageAzureV2PolicyInput. +func (imavpi InMageAzureV2PolicyInput) AsInMageRcmPolicyCreationInput() (*InMageRcmPolicyCreationInput, bool) { + return nil, false +} + // AsVMwareCbtPolicyCreationInput is the BasicPolicyProviderSpecificInput implementation for InMageAzureV2PolicyInput. func (imavpi InMageAzureV2PolicyInput) AsVMwareCbtPolicyCreationInput() (*VMwareCbtPolicyCreationInput, bool) { return nil, false @@ -7755,7 +9558,7 @@ type InMageAzureV2ProtectedDiskDetails struct { type InMageAzureV2RecoveryPointDetails struct { // IsMultiVMSyncPoint - A value indicating whether the recovery point is multi VM consistent. IsMultiVMSyncPoint *string `json:"isMultiVmSyncPoint,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeProviderSpecificRecoveryPointDetails', 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeA2A', 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeInMageAzureV2' + // InstanceType - Possible values include: 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeProviderSpecificRecoveryPointDetails', 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeA2A', 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeInMageRcm' InstanceType InstanceTypeBasicProviderSpecificRecoveryPointDetails `json:"instanceType,omitempty"` } @@ -7782,6 +9585,11 @@ func (imavrpd InMageAzureV2RecoveryPointDetails) AsInMageAzureV2RecoveryPointDet return &imavrpd, true } +// AsInMageRcmRecoveryPointDetails is the BasicProviderSpecificRecoveryPointDetails implementation for InMageAzureV2RecoveryPointDetails. +func (imavrpd InMageAzureV2RecoveryPointDetails) AsInMageRcmRecoveryPointDetails() (*InMageRcmRecoveryPointDetails, bool) { + return nil, false +} + // AsProviderSpecificRecoveryPointDetails is the BasicProviderSpecificRecoveryPointDetails implementation for InMageAzureV2RecoveryPointDetails. func (imavrpd InMageAzureV2RecoveryPointDetails) AsProviderSpecificRecoveryPointDetails() (*ProviderSpecificRecoveryPointDetails, bool) { return nil, false @@ -7828,6 +9636,8 @@ type InMageAzureV2ReplicationDetails struct { LastHeartbeat *date.Time `json:"lastHeartbeat,omitempty"` // ProcessServerID - The process server Id. ProcessServerID *string `json:"processServerId,omitempty"` + // ProcessServerName - READ-ONLY; The process server name. + ProcessServerName *string `json:"processServerName,omitempty"` // MultiVMGroupID - The multi vm group Id. MultiVMGroupID *string `json:"multiVmGroupId,omitempty"` // MultiVMGroupName - The multi vm group name. @@ -7864,6 +9674,8 @@ type InMageAzureV2ReplicationDetails struct { VMNics *[]VMNicDetails `json:"vmNics,omitempty"` // SelectedRecoveryAzureNetworkID - The selected recovery azure network Id. SelectedRecoveryAzureNetworkID *string `json:"selectedRecoveryAzureNetworkId,omitempty"` + // SelectedTfoAzureNetworkID - The test failover virtual network. + SelectedTfoAzureNetworkID *string `json:"selectedTfoAzureNetworkId,omitempty"` // SelectedSourceNicID - The selected source nic Id which will be used as the primary nic during failover. SelectedSourceNicID *string `json:"selectedSourceNicId,omitempty"` // DiscoveryType - A value indicating the discovery type of the machine. Value can be vCenter or physical. @@ -7878,6 +9690,10 @@ type InMageAzureV2ReplicationDetails struct { RecoveryAzureResourceGroupID *string `json:"recoveryAzureResourceGroupId,omitempty"` // RecoveryAvailabilitySetID - The recovery availability set Id. RecoveryAvailabilitySetID *string `json:"recoveryAvailabilitySetId,omitempty"` + // TargetAvailabilityZone - The target availability zone. + TargetAvailabilityZone *string `json:"targetAvailabilityZone,omitempty"` + // TargetProximityPlacementGroupID - The target proximity placement group Id. + TargetProximityPlacementGroupID *string `json:"targetProximityPlacementGroupId,omitempty"` // UseManagedDisks - A value indicating whether managed disks should be used during failover. UseManagedDisks *string `json:"useManagedDisks,omitempty"` // LicenseType - License Type of the VM to be used. @@ -7892,7 +9708,9 @@ type InMageAzureV2ReplicationDetails struct { ReplicaID *string `json:"replicaId,omitempty"` // OsVersion - The OS Version of the protected item. OsVersion *string `json:"osVersion,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeReplicationProviderSpecificSettings', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage' + // ProtectedManagedDisks - The list of protected managed disks. + ProtectedManagedDisks *[]InMageAzureV2ManagedDiskDetails `json:"protectedManagedDisks,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeReplicationProviderSpecificSettings', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageRcm', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage' InstanceType InstanceTypeBasicReplicationProviderSpecificSettings `json:"instanceType,omitempty"` } @@ -8005,6 +9823,9 @@ func (imavrd InMageAzureV2ReplicationDetails) MarshalJSON() ([]byte, error) { if imavrd.SelectedRecoveryAzureNetworkID != nil { objectMap["selectedRecoveryAzureNetworkId"] = imavrd.SelectedRecoveryAzureNetworkID } + if imavrd.SelectedTfoAzureNetworkID != nil { + objectMap["selectedTfoAzureNetworkId"] = imavrd.SelectedTfoAzureNetworkID + } if imavrd.SelectedSourceNicID != nil { objectMap["selectedSourceNicId"] = imavrd.SelectedSourceNicID } @@ -8026,6 +9847,12 @@ func (imavrd InMageAzureV2ReplicationDetails) MarshalJSON() ([]byte, error) { if imavrd.RecoveryAvailabilitySetID != nil { objectMap["recoveryAvailabilitySetId"] = imavrd.RecoveryAvailabilitySetID } + if imavrd.TargetAvailabilityZone != nil { + objectMap["targetAvailabilityZone"] = imavrd.TargetAvailabilityZone + } + if imavrd.TargetProximityPlacementGroupID != nil { + objectMap["targetProximityPlacementGroupId"] = imavrd.TargetProximityPlacementGroupID + } if imavrd.UseManagedDisks != nil { objectMap["useManagedDisks"] = imavrd.UseManagedDisks } @@ -8047,6 +9874,9 @@ func (imavrd InMageAzureV2ReplicationDetails) MarshalJSON() ([]byte, error) { if imavrd.OsVersion != nil { objectMap["osVersion"] = imavrd.OsVersion } + if imavrd.ProtectedManagedDisks != nil { + objectMap["protectedManagedDisks"] = imavrd.ProtectedManagedDisks + } if imavrd.InstanceType != "" { objectMap["instanceType"] = imavrd.InstanceType } @@ -8083,6 +9913,11 @@ func (imavrd InMageAzureV2ReplicationDetails) AsInMageAzureV2ReplicationDetails( return &imavrd, true } +// AsInMageRcmReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for InMageAzureV2ReplicationDetails. +func (imavrd InMageAzureV2ReplicationDetails) AsInMageRcmReplicationDetails() (*InMageRcmReplicationDetails, bool) { + return nil, false +} + // AsInMageReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for InMageAzureV2ReplicationDetails. func (imavrd InMageAzureV2ReplicationDetails) AsInMageReplicationDetails() (*InMageReplicationDetails, bool) { return nil, false @@ -8179,6 +10014,128 @@ func (imavri InMageAzureV2ReprotectInput) AsBasicReverseReplicationProviderSpeci return &imavri, true } +// InMageAzureV2TestFailoverInput inMageAzureV2 provider specific input for test failover. +type InMageAzureV2TestFailoverInput struct { + // VaultLocation - Location of the vault. + VaultLocation *string `json:"vaultLocation,omitempty"` + // RecoveryPointID - The recovery point id to be passed to test failover to a particular recovery point. In case of latest recovery point, null should be passed. + RecoveryPointID *string `json:"recoveryPointId,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeTestFailoverProviderSpecificInput', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMage' + InstanceType InstanceTypeBasicTestFailoverProviderSpecificInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for InMageAzureV2TestFailoverInput. +func (imavtfi InMageAzureV2TestFailoverInput) MarshalJSON() ([]byte, error) { + imavtfi.InstanceType = InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageAzureV2 + objectMap := make(map[string]interface{}) + if imavtfi.VaultLocation != nil { + objectMap["vaultLocation"] = imavtfi.VaultLocation + } + if imavtfi.RecoveryPointID != nil { + objectMap["recoveryPointId"] = imavtfi.RecoveryPointID + } + if imavtfi.InstanceType != "" { + objectMap["instanceType"] = imavtfi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2ATestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for InMageAzureV2TestFailoverInput. +func (imavtfi InMageAzureV2TestFailoverInput) AsA2ATestFailoverInput() (*A2ATestFailoverInput, bool) { + return nil, false +} + +// AsHyperVReplicaAzureTestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for InMageAzureV2TestFailoverInput. +func (imavtfi InMageAzureV2TestFailoverInput) AsHyperVReplicaAzureTestFailoverInput() (*HyperVReplicaAzureTestFailoverInput, bool) { + return nil, false +} + +// AsInMageAzureV2TestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for InMageAzureV2TestFailoverInput. +func (imavtfi InMageAzureV2TestFailoverInput) AsInMageAzureV2TestFailoverInput() (*InMageAzureV2TestFailoverInput, bool) { + return &imavtfi, true +} + +// AsInMageRcmTestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for InMageAzureV2TestFailoverInput. +func (imavtfi InMageAzureV2TestFailoverInput) AsInMageRcmTestFailoverInput() (*InMageRcmTestFailoverInput, bool) { + return nil, false +} + +// AsInMageTestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for InMageAzureV2TestFailoverInput. +func (imavtfi InMageAzureV2TestFailoverInput) AsInMageTestFailoverInput() (*InMageTestFailoverInput, bool) { + return nil, false +} + +// AsTestFailoverProviderSpecificInput is the BasicTestFailoverProviderSpecificInput implementation for InMageAzureV2TestFailoverInput. +func (imavtfi InMageAzureV2TestFailoverInput) AsTestFailoverProviderSpecificInput() (*TestFailoverProviderSpecificInput, bool) { + return nil, false +} + +// AsBasicTestFailoverProviderSpecificInput is the BasicTestFailoverProviderSpecificInput implementation for InMageAzureV2TestFailoverInput. +func (imavtfi InMageAzureV2TestFailoverInput) AsBasicTestFailoverProviderSpecificInput() (BasicTestFailoverProviderSpecificInput, bool) { + return &imavtfi, true +} + +// InMageAzureV2UnplannedFailoverInput inMageAzureV2 provider specific input for unplanned failover. +type InMageAzureV2UnplannedFailoverInput struct { + // VaultLocation - Location of the vault. + VaultLocation *string `json:"vaultLocation,omitempty"` + // RecoveryPointID - The recovery point id to be passed to failover to a particular recovery point. In case of latest recovery point, null should be passed. + RecoveryPointID *string `json:"recoveryPointId,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeUnplannedFailoverProviderSpecificInput', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMage' + InstanceType InstanceTypeBasicUnplannedFailoverProviderSpecificInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for InMageAzureV2UnplannedFailoverInput. +func (imavufi InMageAzureV2UnplannedFailoverInput) MarshalJSON() ([]byte, error) { + imavufi.InstanceType = InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageAzureV2 + objectMap := make(map[string]interface{}) + if imavufi.VaultLocation != nil { + objectMap["vaultLocation"] = imavufi.VaultLocation + } + if imavufi.RecoveryPointID != nil { + objectMap["recoveryPointId"] = imavufi.RecoveryPointID + } + if imavufi.InstanceType != "" { + objectMap["instanceType"] = imavufi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2AUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for InMageAzureV2UnplannedFailoverInput. +func (imavufi InMageAzureV2UnplannedFailoverInput) AsA2AUnplannedFailoverInput() (*A2AUnplannedFailoverInput, bool) { + return nil, false +} + +// AsHyperVReplicaAzureUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for InMageAzureV2UnplannedFailoverInput. +func (imavufi InMageAzureV2UnplannedFailoverInput) AsHyperVReplicaAzureUnplannedFailoverInput() (*HyperVReplicaAzureUnplannedFailoverInput, bool) { + return nil, false +} + +// AsInMageAzureV2UnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for InMageAzureV2UnplannedFailoverInput. +func (imavufi InMageAzureV2UnplannedFailoverInput) AsInMageAzureV2UnplannedFailoverInput() (*InMageAzureV2UnplannedFailoverInput, bool) { + return &imavufi, true +} + +// AsInMageRcmUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for InMageAzureV2UnplannedFailoverInput. +func (imavufi InMageAzureV2UnplannedFailoverInput) AsInMageRcmUnplannedFailoverInput() (*InMageRcmUnplannedFailoverInput, bool) { + return nil, false +} + +// AsInMageUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for InMageAzureV2UnplannedFailoverInput. +func (imavufi InMageAzureV2UnplannedFailoverInput) AsInMageUnplannedFailoverInput() (*InMageUnplannedFailoverInput, bool) { + return nil, false +} + +// AsUnplannedFailoverProviderSpecificInput is the BasicUnplannedFailoverProviderSpecificInput implementation for InMageAzureV2UnplannedFailoverInput. +func (imavufi InMageAzureV2UnplannedFailoverInput) AsUnplannedFailoverProviderSpecificInput() (*UnplannedFailoverProviderSpecificInput, bool) { + return nil, false +} + +// AsBasicUnplannedFailoverProviderSpecificInput is the BasicUnplannedFailoverProviderSpecificInput implementation for InMageAzureV2UnplannedFailoverInput. +func (imavufi InMageAzureV2UnplannedFailoverInput) AsBasicUnplannedFailoverProviderSpecificInput() (BasicUnplannedFailoverProviderSpecificInput, bool) { + return &imavufi, true +} + // InMageAzureV2UpdateReplicationProtectedItemInput inMage Azure V2 input to update replication protected // item. type InMageAzureV2UpdateReplicationProtectedItemInput struct { @@ -8188,7 +10145,11 @@ type InMageAzureV2UpdateReplicationProtectedItemInput struct { RecoveryAzureV2ResourceGroupID *string `json:"recoveryAzureV2ResourceGroupId,omitempty"` // UseManagedDisks - A value indicating whether managed disks should be used during failover. UseManagedDisks *string `json:"useManagedDisks,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeUpdateReplicationProtectedItemProviderInput', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeA2A', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageAzureV2' + // TargetProximityPlacementGroupID - The target proximity placement group Id. + TargetProximityPlacementGroupID *string `json:"targetProximityPlacementGroupId,omitempty"` + // TargetAvailabilityZone - The target availability zone. + TargetAvailabilityZone *string `json:"targetAvailabilityZone,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeUpdateReplicationProtectedItemProviderInput', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeA2A', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageRcm' InstanceType InstanceTypeBasicUpdateReplicationProtectedItemProviderInput `json:"instanceType,omitempty"` } @@ -8205,6 +10166,12 @@ func (imavurpii InMageAzureV2UpdateReplicationProtectedItemInput) MarshalJSON() if imavurpii.UseManagedDisks != nil { objectMap["useManagedDisks"] = imavurpii.UseManagedDisks } + if imavurpii.TargetProximityPlacementGroupID != nil { + objectMap["targetProximityPlacementGroupId"] = imavurpii.TargetProximityPlacementGroupID + } + if imavurpii.TargetAvailabilityZone != nil { + objectMap["targetAvailabilityZone"] = imavurpii.TargetAvailabilityZone + } if imavurpii.InstanceType != "" { objectMap["instanceType"] = imavurpii.InstanceType } @@ -8226,6 +10193,11 @@ func (imavurpii InMageAzureV2UpdateReplicationProtectedItemInput) AsInMageAzureV return &imavurpii, true } +// AsInMageRcmUpdateReplicationProtectedItemInput is the BasicUpdateReplicationProtectedItemProviderInput implementation for InMageAzureV2UpdateReplicationProtectedItemInput. +func (imavurpii InMageAzureV2UpdateReplicationProtectedItemInput) AsInMageRcmUpdateReplicationProtectedItemInput() (*InMageRcmUpdateReplicationProtectedItemInput, bool) { + return nil, false +} + // AsUpdateReplicationProtectedItemProviderInput is the BasicUpdateReplicationProtectedItemProviderInput implementation for InMageAzureV2UpdateReplicationProtectedItemInput. func (imavurpii InMageAzureV2UpdateReplicationProtectedItemInput) AsUpdateReplicationProtectedItemProviderInput() (*UpdateReplicationProtectedItemProviderInput, bool) { return nil, false @@ -8246,7 +10218,7 @@ type InMageBasePolicyDetails struct { AppConsistentFrequencyInMinutes *int32 `json:"appConsistentFrequencyInMinutes,omitempty"` // MultiVMSyncStatus - A value indicating whether multi-VM sync has to be enabled. MultiVMSyncStatus *string `json:"multiVmSyncStatus,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageRcm', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicPolicyProviderSpecificDetails `json:"instanceType,omitempty"` } @@ -8312,6 +10284,11 @@ func (imbpd InMageBasePolicyDetails) AsInMagePolicyDetails() (*InMagePolicyDetai return nil, false } +// AsInMageRcmPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for InMageBasePolicyDetails. +func (imbpd InMageBasePolicyDetails) AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool) { + return nil, false +} + // AsRcmAzureMigrationPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for InMageBasePolicyDetails. func (imbpd InMageBasePolicyDetails) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) { return nil, false @@ -8422,7 +10399,7 @@ type InMageEnableProtectionInput struct { DiskExclusionInput *InMageDiskExclusionInput `json:"diskExclusionInput,omitempty"` // DisksToInclude - The disks to include list. DisksToInclude *[]string `json:"disksToInclude,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeEnableProtectionProviderSpecificInput', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeSan' + // InstanceType - Possible values include: 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeEnableProtectionProviderSpecificInput', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeSan' InstanceType InstanceTypeBasicEnableProtectionProviderSpecificInput `json:"instanceType,omitempty"` } @@ -8486,6 +10463,11 @@ func (imepi InMageEnableProtectionInput) AsInMageEnableProtectionInput() (*InMag return &imepi, true } +// AsInMageRcmEnableProtectionInput is the BasicEnableProtectionProviderSpecificInput implementation for InMageEnableProtectionInput. +func (imepi InMageEnableProtectionInput) AsInMageRcmEnableProtectionInput() (*InMageRcmEnableProtectionInput, bool) { + return nil, false +} + // AsSanEnableProtectionInput is the BasicEnableProtectionProviderSpecificInput implementation for InMageEnableProtectionInput. func (imepi InMageEnableProtectionInput) AsSanEnableProtectionInput() (*SanEnableProtectionInput, bool) { return nil, false @@ -8572,7 +10554,7 @@ type InMagePolicyDetails struct { AppConsistentFrequencyInMinutes *int32 `json:"appConsistentFrequencyInMinutes,omitempty"` // MultiVMSyncStatus - A value indicating whether multi-VM sync has to be enabled. MultiVMSyncStatus *string `json:"multiVmSyncStatus,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageRcm', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicPolicyProviderSpecificDetails `json:"instanceType,omitempty"` } @@ -8638,6 +10620,11 @@ func (impd InMagePolicyDetails) AsInMagePolicyDetails() (*InMagePolicyDetails, b return &impd, true } +// AsInMageRcmPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for InMagePolicyDetails. +func (impd InMagePolicyDetails) AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool) { + return nil, false +} + // AsRcmAzureMigrationPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for InMagePolicyDetails. func (impd InMagePolicyDetails) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) { return nil, false @@ -8668,7 +10655,7 @@ type InMagePolicyInput struct { AppConsistentFrequencyInMinutes *int32 `json:"appConsistentFrequencyInMinutes,omitempty"` // MultiVMSyncStatus - A value indicating whether multi-VM sync has to be enabled. Value should be 'Enabled' or 'Disabled'. Possible values include: 'Enable', 'Disable' MultiVMSyncStatus SetMultiVMSyncStatus `json:"multiVmSyncStatus,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypePolicyProviderSpecificInput', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypePolicyProviderSpecificInput', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicPolicyProviderSpecificInput `json:"instanceType,omitempty"` } @@ -8724,6 +10711,11 @@ func (impi InMagePolicyInput) AsInMagePolicyInput() (*InMagePolicyInput, bool) { return &impi, true } +// AsInMageRcmPolicyCreationInput is the BasicPolicyProviderSpecificInput implementation for InMagePolicyInput. +func (impi InMagePolicyInput) AsInMageRcmPolicyCreationInput() (*InMageRcmPolicyCreationInput, bool) { + return nil, false +} + // AsVMwareCbtPolicyCreationInput is the BasicPolicyProviderSpecificInput implementation for InMagePolicyInput. func (impi InMagePolicyInput) AsVMwareCbtPolicyCreationInput() (*VMwareCbtPolicyCreationInput, bool) { return nil, false @@ -8773,137 +10765,1296 @@ type InMageProtectedDiskDetails struct { LastRpoCalculatedTime *date.Time `json:"lastRpoCalculatedTime,omitempty"` } -// InMageReplicationDetails inMage provider specific settings -type InMageReplicationDetails struct { - // ActiveSiteType - The active location of the VM. If the VM is being protected from Azure, this field will take values from { Azure, OnPrem }. If the VM is being protected between two data-centers, this field will be OnPrem always. - ActiveSiteType *string `json:"activeSiteType,omitempty"` - // SourceVMCPUCount - The CPU count of the VM on the primary side. - SourceVMCPUCount *int32 `json:"sourceVmCpuCount,omitempty"` - // SourceVMRAMSizeInMB - The RAM size of the VM on the primary side. - SourceVMRAMSizeInMB *int32 `json:"sourceVmRamSizeInMB,omitempty"` - // OsDetails - The OS details. - OsDetails *OSDiskDetails `json:"osDetails,omitempty"` - // ProtectionStage - The protection stage. - ProtectionStage *string `json:"protectionStage,omitempty"` - // VMID - The virtual machine Id. - VMID *string `json:"vmId,omitempty"` - // VMProtectionState - The protection state for the vm. - VMProtectionState *string `json:"vmProtectionState,omitempty"` - // VMProtectionStateDescription - The protection state description for the vm. - VMProtectionStateDescription *string `json:"vmProtectionStateDescription,omitempty"` - // ResyncDetails - The resync details of the machine - ResyncDetails *InitialReplicationDetails `json:"resyncDetails,omitempty"` - // RetentionWindowStart - The retention window start time. - RetentionWindowStart *date.Time `json:"retentionWindowStart,omitempty"` - // RetentionWindowEnd - The retention window end time. - RetentionWindowEnd *date.Time `json:"retentionWindowEnd,omitempty"` - // CompressedDataRateInMB - The compressed data change rate in MB. - CompressedDataRateInMB *float64 `json:"compressedDataRateInMB,omitempty"` - // UncompressedDataRateInMB - The uncompressed data change rate in MB. - UncompressedDataRateInMB *float64 `json:"uncompressedDataRateInMB,omitempty"` - // RpoInSeconds - The RPO in seconds. - RpoInSeconds *int64 `json:"rpoInSeconds,omitempty"` - // ProtectedDisks - The list of protected disks. - ProtectedDisks *[]InMageProtectedDiskDetails `json:"protectedDisks,omitempty"` - // IPAddress - The source IP address. - IPAddress *string `json:"ipAddress,omitempty"` - // LastHeartbeat - The last heartbeat received from the source server. - LastHeartbeat *date.Time `json:"lastHeartbeat,omitempty"` - // ProcessServerID - The process server Id. - ProcessServerID *string `json:"processServerId,omitempty"` - // MasterTargetID - The master target Id. - MasterTargetID *string `json:"masterTargetId,omitempty"` - // ConsistencyPoints - The collection of Consistency points. - ConsistencyPoints map[string]*date.Time `json:"consistencyPoints"` - // DiskResized - A value indicating whether any disk is resized for this VM. - DiskResized *string `json:"diskResized,omitempty"` - // RebootAfterUpdateStatus - A value indicating whether the source server requires a restart after update. - RebootAfterUpdateStatus *string `json:"rebootAfterUpdateStatus,omitempty"` - // MultiVMGroupID - The multi vm group Id, if any. - MultiVMGroupID *string `json:"multiVmGroupId,omitempty"` - // MultiVMGroupName - The multi vm group name, if any. - MultiVMGroupName *string `json:"multiVmGroupName,omitempty"` - // MultiVMSyncStatus - A value indicating whether the multi vm sync is enabled or disabled. - MultiVMSyncStatus *string `json:"multiVmSyncStatus,omitempty"` - // AgentDetails - The agent details. - AgentDetails *InMageAgentDetails `json:"agentDetails,omitempty"` - // VCenterInfrastructureID - The vCenter infrastructure Id. - VCenterInfrastructureID *string `json:"vCenterInfrastructureId,omitempty"` - // InfrastructureVMID - The infrastructure VM Id. - InfrastructureVMID *string `json:"infrastructureVmId,omitempty"` - // VMNics - The PE Network details. - VMNics *[]VMNicDetails `json:"vmNics,omitempty"` - // DiscoveryType - A value indicating the discovery type of the machine. - DiscoveryType *string `json:"discoveryType,omitempty"` - // AzureStorageAccountID - A value indicating the underlying Azure storage account. If the VM is not running in Azure, this value shall be set to null. - AzureStorageAccountID *string `json:"azureStorageAccountId,omitempty"` - // Datastores - The data stores of the on-premise machine Value can be list of strings that contain data store names - Datastores *[]string `json:"datastores,omitempty"` - // ValidationErrors - The validation errors of the on-premise machine Value can be list of validation errors - ValidationErrors *[]HealthError `json:"validationErrors,omitempty"` - // LastRpoCalculatedTime - The last RPO calculated time. - LastRpoCalculatedTime *date.Time `json:"lastRpoCalculatedTime,omitempty"` - // LastUpdateReceivedTime - The last update time received from on-prem components. - LastUpdateReceivedTime *date.Time `json:"lastUpdateReceivedTime,omitempty"` - // ReplicaID - The replica id of the protected item. - ReplicaID *string `json:"replicaId,omitempty"` - // OsVersion - The OS Version of the protected item. - OsVersion *string `json:"osVersion,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeReplicationProviderSpecificSettings', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage' - InstanceType InstanceTypeBasicReplicationProviderSpecificSettings `json:"instanceType,omitempty"` +// InMageRcmAgentUpgradeBlockingErrorDetails inMageRcm source agent upgrade blocking error details. +type InMageRcmAgentUpgradeBlockingErrorDetails struct { + // ErrorCode - READ-ONLY; The error code. + ErrorCode *string `json:"errorCode,omitempty"` + // ErrorMessage - READ-ONLY; The error message. + ErrorMessage *string `json:"errorMessage,omitempty"` + // PossibleCauses - READ-ONLY; The possible causes. + PossibleCauses *string `json:"possibleCauses,omitempty"` + // RecommendedAction - READ-ONLY; The recommended action. + RecommendedAction *string `json:"recommendedAction,omitempty"` + // ErrorMessageParameters - READ-ONLY; The error message parameters. + ErrorMessageParameters map[string]*string `json:"errorMessageParameters"` + // ErrorTags - READ-ONLY; The error tags. + ErrorTags map[string]*string `json:"errorTags"` } -// MarshalJSON is the custom marshaler for InMageReplicationDetails. -func (imrd InMageReplicationDetails) MarshalJSON() ([]byte, error) { - imrd.InstanceType = InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage +// MarshalJSON is the custom marshaler for InMageRcmAgentUpgradeBlockingErrorDetails. +func (imraubed InMageRcmAgentUpgradeBlockingErrorDetails) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) - if imrd.ActiveSiteType != nil { - objectMap["activeSiteType"] = imrd.ActiveSiteType - } - if imrd.SourceVMCPUCount != nil { - objectMap["sourceVmCpuCount"] = imrd.SourceVMCPUCount - } - if imrd.SourceVMRAMSizeInMB != nil { - objectMap["sourceVmRamSizeInMB"] = imrd.SourceVMRAMSizeInMB - } - if imrd.OsDetails != nil { - objectMap["osDetails"] = imrd.OsDetails - } - if imrd.ProtectionStage != nil { - objectMap["protectionStage"] = imrd.ProtectionStage - } - if imrd.VMID != nil { - objectMap["vmId"] = imrd.VMID - } - if imrd.VMProtectionState != nil { - objectMap["vmProtectionState"] = imrd.VMProtectionState - } - if imrd.VMProtectionStateDescription != nil { - objectMap["vmProtectionStateDescription"] = imrd.VMProtectionStateDescription - } - if imrd.ResyncDetails != nil { - objectMap["resyncDetails"] = imrd.ResyncDetails - } - if imrd.RetentionWindowStart != nil { - objectMap["retentionWindowStart"] = imrd.RetentionWindowStart - } - if imrd.RetentionWindowEnd != nil { - objectMap["retentionWindowEnd"] = imrd.RetentionWindowEnd - } - if imrd.CompressedDataRateInMB != nil { - objectMap["compressedDataRateInMB"] = imrd.CompressedDataRateInMB - } - if imrd.UncompressedDataRateInMB != nil { - objectMap["uncompressedDataRateInMB"] = imrd.UncompressedDataRateInMB - } - if imrd.RpoInSeconds != nil { - objectMap["rpoInSeconds"] = imrd.RpoInSeconds + return json.Marshal(objectMap) +} + +// InMageRcmApplyRecoveryPointInput applyRecoveryPoint input specific to InMageRcm provider. +type InMageRcmApplyRecoveryPointInput struct { + // RecoveryPointID - The recovery point Id. + RecoveryPointID *string `json:"recoveryPointId,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeApplyRecoveryPointProviderSpecificInput', 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeInMageRcm' + InstanceType InstanceTypeBasicApplyRecoveryPointProviderSpecificInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for InMageRcmApplyRecoveryPointInput. +func (imrarpi InMageRcmApplyRecoveryPointInput) MarshalJSON() ([]byte, error) { + imrarpi.InstanceType = InstanceTypeBasicApplyRecoveryPointProviderSpecificInputInstanceTypeInMageRcm + objectMap := make(map[string]interface{}) + if imrarpi.RecoveryPointID != nil { + objectMap["recoveryPointId"] = imrarpi.RecoveryPointID } - if imrd.ProtectedDisks != nil { - objectMap["protectedDisks"] = imrd.ProtectedDisks + if imrarpi.InstanceType != "" { + objectMap["instanceType"] = imrarpi.InstanceType } - if imrd.IPAddress != nil { - objectMap["ipAddress"] = imrd.IPAddress + return json.Marshal(objectMap) +} + +// AsA2AApplyRecoveryPointInput is the BasicApplyRecoveryPointProviderSpecificInput implementation for InMageRcmApplyRecoveryPointInput. +func (imrarpi InMageRcmApplyRecoveryPointInput) AsA2AApplyRecoveryPointInput() (*A2AApplyRecoveryPointInput, bool) { + return nil, false +} + +// AsHyperVReplicaAzureApplyRecoveryPointInput is the BasicApplyRecoveryPointProviderSpecificInput implementation for InMageRcmApplyRecoveryPointInput. +func (imrarpi InMageRcmApplyRecoveryPointInput) AsHyperVReplicaAzureApplyRecoveryPointInput() (*HyperVReplicaAzureApplyRecoveryPointInput, bool) { + return nil, false +} + +// AsInMageAzureV2ApplyRecoveryPointInput is the BasicApplyRecoveryPointProviderSpecificInput implementation for InMageRcmApplyRecoveryPointInput. +func (imrarpi InMageRcmApplyRecoveryPointInput) AsInMageAzureV2ApplyRecoveryPointInput() (*InMageAzureV2ApplyRecoveryPointInput, bool) { + return nil, false +} + +// AsInMageRcmApplyRecoveryPointInput is the BasicApplyRecoveryPointProviderSpecificInput implementation for InMageRcmApplyRecoveryPointInput. +func (imrarpi InMageRcmApplyRecoveryPointInput) AsInMageRcmApplyRecoveryPointInput() (*InMageRcmApplyRecoveryPointInput, bool) { + return &imrarpi, true +} + +// AsApplyRecoveryPointProviderSpecificInput is the BasicApplyRecoveryPointProviderSpecificInput implementation for InMageRcmApplyRecoveryPointInput. +func (imrarpi InMageRcmApplyRecoveryPointInput) AsApplyRecoveryPointProviderSpecificInput() (*ApplyRecoveryPointProviderSpecificInput, bool) { + return nil, false +} + +// AsBasicApplyRecoveryPointProviderSpecificInput is the BasicApplyRecoveryPointProviderSpecificInput implementation for InMageRcmApplyRecoveryPointInput. +func (imrarpi InMageRcmApplyRecoveryPointInput) AsBasicApplyRecoveryPointProviderSpecificInput() (BasicApplyRecoveryPointProviderSpecificInput, bool) { + return &imrarpi, true +} + +// InMageRcmDiskInput inMageRcm disk input. +type InMageRcmDiskInput struct { + // DiskID - The disk Id. + DiskID *string `json:"diskId,omitempty"` + // LogStorageAccountID - The log storage account ARM Id. + LogStorageAccountID *string `json:"logStorageAccountId,omitempty"` + // DiskType - The disk type. Possible values include: 'StandardLRS', 'PremiumLRS', 'StandardSSDLRS' + DiskType DiskAccountType `json:"diskType,omitempty"` + // DiskEncryptionSetID - The disk encryption set ARM Id. + DiskEncryptionSetID *string `json:"diskEncryptionSetId,omitempty"` +} + +// InMageRcmDisksDefaultInput inMageRcm disk input. +type InMageRcmDisksDefaultInput struct { + // LogStorageAccountID - The log storage account ARM Id. + LogStorageAccountID *string `json:"logStorageAccountId,omitempty"` + // DiskType - The disk type. Possible values include: 'StandardLRS', 'PremiumLRS', 'StandardSSDLRS' + DiskType DiskAccountType `json:"diskType,omitempty"` + // DiskEncryptionSetID - The disk encryption set ARM Id. + DiskEncryptionSetID *string `json:"diskEncryptionSetId,omitempty"` +} + +// InMageRcmEnableProtectionInput inMageRcm specific enable protection input. +type InMageRcmEnableProtectionInput struct { + // FabricDiscoveryMachineID - The ARM Id of discovered machine. + FabricDiscoveryMachineID *string `json:"fabricDiscoveryMachineId,omitempty"` + // DisksToInclude - The disks to include list. + DisksToInclude *[]InMageRcmDiskInput `json:"disksToInclude,omitempty"` + // DisksDefault - The default disk input. + DisksDefault *InMageRcmDisksDefaultInput `json:"disksDefault,omitempty"` + // TargetResourceGroupID - The target resource group ARM Id. + TargetResourceGroupID *string `json:"targetResourceGroupId,omitempty"` + // TargetNetworkID - The selected target network ARM Id. + TargetNetworkID *string `json:"targetNetworkId,omitempty"` + // TestNetworkID - The selected test network ARM Id. + TestNetworkID *string `json:"testNetworkId,omitempty"` + // TargetSubnetName - The selected target subnet name. + TargetSubnetName *string `json:"targetSubnetName,omitempty"` + // TestSubnetName - The selected test subnet name. + TestSubnetName *string `json:"testSubnetName,omitempty"` + // TargetVMName - The target VM name. + TargetVMName *string `json:"targetVmName,omitempty"` + // TargetVMSize - The target VM size. + TargetVMSize *string `json:"targetVmSize,omitempty"` + // LicenseType - The license type. Possible values include: 'LicenseTypeNotSpecified', 'LicenseTypeNoLicenseType', 'LicenseTypeWindowsServer' + LicenseType LicenseType `json:"licenseType,omitempty"` + // TargetAvailabilitySetID - The target availability set ARM Id. + TargetAvailabilitySetID *string `json:"targetAvailabilitySetId,omitempty"` + // TargetAvailabilityZone - The target availability zone. + TargetAvailabilityZone *string `json:"targetAvailabilityZone,omitempty"` + // TargetProximityPlacementGroupID - The target proximity placement group Id. + TargetProximityPlacementGroupID *string `json:"targetProximityPlacementGroupId,omitempty"` + // TargetBootDiagnosticsStorageAccountID - The target boot diagnostics storage account ARM Id. + TargetBootDiagnosticsStorageAccountID *string `json:"targetBootDiagnosticsStorageAccountId,omitempty"` + // RunAsAccountID - The run-as account Id. + RunAsAccountID *string `json:"runAsAccountId,omitempty"` + // ProcessServerID - The process server Id. + ProcessServerID *string `json:"processServerId,omitempty"` + // MultiVMGroupName - The multi VM group name. + MultiVMGroupName *string `json:"multiVmGroupName,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeEnableProtectionProviderSpecificInput', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeSan' + InstanceType InstanceTypeBasicEnableProtectionProviderSpecificInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for InMageRcmEnableProtectionInput. +func (imrepi InMageRcmEnableProtectionInput) MarshalJSON() ([]byte, error) { + imrepi.InstanceType = InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageRcm + objectMap := make(map[string]interface{}) + if imrepi.FabricDiscoveryMachineID != nil { + objectMap["fabricDiscoveryMachineId"] = imrepi.FabricDiscoveryMachineID + } + if imrepi.DisksToInclude != nil { + objectMap["disksToInclude"] = imrepi.DisksToInclude + } + if imrepi.DisksDefault != nil { + objectMap["disksDefault"] = imrepi.DisksDefault + } + if imrepi.TargetResourceGroupID != nil { + objectMap["targetResourceGroupId"] = imrepi.TargetResourceGroupID + } + if imrepi.TargetNetworkID != nil { + objectMap["targetNetworkId"] = imrepi.TargetNetworkID + } + if imrepi.TestNetworkID != nil { + objectMap["testNetworkId"] = imrepi.TestNetworkID + } + if imrepi.TargetSubnetName != nil { + objectMap["targetSubnetName"] = imrepi.TargetSubnetName + } + if imrepi.TestSubnetName != nil { + objectMap["testSubnetName"] = imrepi.TestSubnetName + } + if imrepi.TargetVMName != nil { + objectMap["targetVmName"] = imrepi.TargetVMName + } + if imrepi.TargetVMSize != nil { + objectMap["targetVmSize"] = imrepi.TargetVMSize + } + if imrepi.LicenseType != "" { + objectMap["licenseType"] = imrepi.LicenseType + } + if imrepi.TargetAvailabilitySetID != nil { + objectMap["targetAvailabilitySetId"] = imrepi.TargetAvailabilitySetID + } + if imrepi.TargetAvailabilityZone != nil { + objectMap["targetAvailabilityZone"] = imrepi.TargetAvailabilityZone + } + if imrepi.TargetProximityPlacementGroupID != nil { + objectMap["targetProximityPlacementGroupId"] = imrepi.TargetProximityPlacementGroupID + } + if imrepi.TargetBootDiagnosticsStorageAccountID != nil { + objectMap["targetBootDiagnosticsStorageAccountId"] = imrepi.TargetBootDiagnosticsStorageAccountID + } + if imrepi.RunAsAccountID != nil { + objectMap["runAsAccountId"] = imrepi.RunAsAccountID + } + if imrepi.ProcessServerID != nil { + objectMap["processServerId"] = imrepi.ProcessServerID + } + if imrepi.MultiVMGroupName != nil { + objectMap["multiVmGroupName"] = imrepi.MultiVMGroupName + } + if imrepi.InstanceType != "" { + objectMap["instanceType"] = imrepi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2AEnableProtectionInput is the BasicEnableProtectionProviderSpecificInput implementation for InMageRcmEnableProtectionInput. +func (imrepi InMageRcmEnableProtectionInput) AsA2AEnableProtectionInput() (*A2AEnableProtectionInput, bool) { + return nil, false +} + +// AsHyperVReplicaAzureEnableProtectionInput is the BasicEnableProtectionProviderSpecificInput implementation for InMageRcmEnableProtectionInput. +func (imrepi InMageRcmEnableProtectionInput) AsHyperVReplicaAzureEnableProtectionInput() (*HyperVReplicaAzureEnableProtectionInput, bool) { + return nil, false +} + +// AsInMageAzureV2EnableProtectionInput is the BasicEnableProtectionProviderSpecificInput implementation for InMageRcmEnableProtectionInput. +func (imrepi InMageRcmEnableProtectionInput) AsInMageAzureV2EnableProtectionInput() (*InMageAzureV2EnableProtectionInput, bool) { + return nil, false +} + +// AsInMageEnableProtectionInput is the BasicEnableProtectionProviderSpecificInput implementation for InMageRcmEnableProtectionInput. +func (imrepi InMageRcmEnableProtectionInput) AsInMageEnableProtectionInput() (*InMageEnableProtectionInput, bool) { + return nil, false +} + +// AsInMageRcmEnableProtectionInput is the BasicEnableProtectionProviderSpecificInput implementation for InMageRcmEnableProtectionInput. +func (imrepi InMageRcmEnableProtectionInput) AsInMageRcmEnableProtectionInput() (*InMageRcmEnableProtectionInput, bool) { + return &imrepi, true +} + +// AsSanEnableProtectionInput is the BasicEnableProtectionProviderSpecificInput implementation for InMageRcmEnableProtectionInput. +func (imrepi InMageRcmEnableProtectionInput) AsSanEnableProtectionInput() (*SanEnableProtectionInput, bool) { + return nil, false +} + +// AsEnableProtectionProviderSpecificInput is the BasicEnableProtectionProviderSpecificInput implementation for InMageRcmEnableProtectionInput. +func (imrepi InMageRcmEnableProtectionInput) AsEnableProtectionProviderSpecificInput() (*EnableProtectionProviderSpecificInput, bool) { + return nil, false +} + +// AsBasicEnableProtectionProviderSpecificInput is the BasicEnableProtectionProviderSpecificInput implementation for InMageRcmEnableProtectionInput. +func (imrepi InMageRcmEnableProtectionInput) AsBasicEnableProtectionProviderSpecificInput() (BasicEnableProtectionProviderSpecificInput, bool) { + return &imrepi, true +} + +// InMageRcmEventDetails event details for InMageRcm provider. +type InMageRcmEventDetails struct { + // ProtectedItemName - READ-ONLY; The protected item name. + ProtectedItemName *string `json:"protectedItemName,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeEventProviderSpecificDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaBaseEventDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageRcm' + InstanceType InstanceTypeBasicEventProviderSpecificDetails `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for InMageRcmEventDetails. +func (imred InMageRcmEventDetails) MarshalJSON() ([]byte, error) { + imred.InstanceType = InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageRcm + objectMap := make(map[string]interface{}) + if imred.InstanceType != "" { + objectMap["instanceType"] = imred.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2AEventDetails is the BasicEventProviderSpecificDetails implementation for InMageRcmEventDetails. +func (imred InMageRcmEventDetails) AsA2AEventDetails() (*A2AEventDetails, bool) { + return nil, false +} + +// AsHyperVReplica2012EventDetails is the BasicEventProviderSpecificDetails implementation for InMageRcmEventDetails. +func (imred InMageRcmEventDetails) AsHyperVReplica2012EventDetails() (*HyperVReplica2012EventDetails, bool) { + return nil, false +} + +// AsHyperVReplica2012R2EventDetails is the BasicEventProviderSpecificDetails implementation for InMageRcmEventDetails. +func (imred InMageRcmEventDetails) AsHyperVReplica2012R2EventDetails() (*HyperVReplica2012R2EventDetails, bool) { + return nil, false +} + +// AsHyperVReplicaAzureEventDetails is the BasicEventProviderSpecificDetails implementation for InMageRcmEventDetails. +func (imred InMageRcmEventDetails) AsHyperVReplicaAzureEventDetails() (*HyperVReplicaAzureEventDetails, bool) { + return nil, false +} + +// AsHyperVReplicaBaseEventDetails is the BasicEventProviderSpecificDetails implementation for InMageRcmEventDetails. +func (imred InMageRcmEventDetails) AsHyperVReplicaBaseEventDetails() (*HyperVReplicaBaseEventDetails, bool) { + return nil, false +} + +// AsInMageAzureV2EventDetails is the BasicEventProviderSpecificDetails implementation for InMageRcmEventDetails. +func (imred InMageRcmEventDetails) AsInMageAzureV2EventDetails() (*InMageAzureV2EventDetails, bool) { + return nil, false +} + +// AsInMageRcmEventDetails is the BasicEventProviderSpecificDetails implementation for InMageRcmEventDetails. +func (imred InMageRcmEventDetails) AsInMageRcmEventDetails() (*InMageRcmEventDetails, bool) { + return &imred, true +} + +// AsEventProviderSpecificDetails is the BasicEventProviderSpecificDetails implementation for InMageRcmEventDetails. +func (imred InMageRcmEventDetails) AsEventProviderSpecificDetails() (*EventProviderSpecificDetails, bool) { + return nil, false +} + +// AsBasicEventProviderSpecificDetails is the BasicEventProviderSpecificDetails implementation for InMageRcmEventDetails. +func (imred InMageRcmEventDetails) AsBasicEventProviderSpecificDetails() (BasicEventProviderSpecificDetails, bool) { + return &imred, true +} + +// InMageRcmFabricCreationInput inMageRcm fabric provider specific settings. +type InMageRcmFabricCreationInput struct { + // VmwareSiteID - The ARM Id of the VMware site. + VmwareSiteID *string `json:"vmwareSiteId,omitempty"` + // PhysicalSiteID - The ARM Id of the physical site. + PhysicalSiteID *string `json:"physicalSiteId,omitempty"` + // SourceAgentIdentity - The identity provider input for source agent authentication. + SourceAgentIdentity *IdentityProviderInput `json:"sourceAgentIdentity,omitempty"` + // AuthCertificate - The certificate to be used for AAD authentication. + AuthCertificate *string `json:"authCertificate,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeFabricSpecificCreationInput', 'InstanceTypeAzure', 'InstanceTypeInMageRcm', 'InstanceTypeVMwareV2' + InstanceType InstanceTypeBasicFabricSpecificCreationInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for InMageRcmFabricCreationInput. +func (imrfci InMageRcmFabricCreationInput) MarshalJSON() ([]byte, error) { + imrfci.InstanceType = InstanceTypeInMageRcm + objectMap := make(map[string]interface{}) + if imrfci.VmwareSiteID != nil { + objectMap["vmwareSiteId"] = imrfci.VmwareSiteID + } + if imrfci.PhysicalSiteID != nil { + objectMap["physicalSiteId"] = imrfci.PhysicalSiteID + } + if imrfci.SourceAgentIdentity != nil { + objectMap["sourceAgentIdentity"] = imrfci.SourceAgentIdentity + } + if imrfci.AuthCertificate != nil { + objectMap["authCertificate"] = imrfci.AuthCertificate + } + if imrfci.InstanceType != "" { + objectMap["instanceType"] = imrfci.InstanceType + } + return json.Marshal(objectMap) +} + +// AsAzureFabricCreationInput is the BasicFabricSpecificCreationInput implementation for InMageRcmFabricCreationInput. +func (imrfci InMageRcmFabricCreationInput) AsAzureFabricCreationInput() (*AzureFabricCreationInput, bool) { + return nil, false +} + +// AsInMageRcmFabricCreationInput is the BasicFabricSpecificCreationInput implementation for InMageRcmFabricCreationInput. +func (imrfci InMageRcmFabricCreationInput) AsInMageRcmFabricCreationInput() (*InMageRcmFabricCreationInput, bool) { + return &imrfci, true +} + +// AsVMwareV2FabricCreationInput is the BasicFabricSpecificCreationInput implementation for InMageRcmFabricCreationInput. +func (imrfci InMageRcmFabricCreationInput) AsVMwareV2FabricCreationInput() (*VMwareV2FabricCreationInput, bool) { + return nil, false +} + +// AsFabricSpecificCreationInput is the BasicFabricSpecificCreationInput implementation for InMageRcmFabricCreationInput. +func (imrfci InMageRcmFabricCreationInput) AsFabricSpecificCreationInput() (*FabricSpecificCreationInput, bool) { + return nil, false +} + +// AsBasicFabricSpecificCreationInput is the BasicFabricSpecificCreationInput implementation for InMageRcmFabricCreationInput. +func (imrfci InMageRcmFabricCreationInput) AsBasicFabricSpecificCreationInput() (BasicFabricSpecificCreationInput, bool) { + return &imrfci, true +} + +// InMageRcmFabricSpecificDetails inMageRcm fabric specific details. +type InMageRcmFabricSpecificDetails struct { + // VmwareSiteID - READ-ONLY; The ARM Id of the VMware site. + VmwareSiteID *string `json:"vmwareSiteId,omitempty"` + // PhysicalSiteID - READ-ONLY; The ARM Id of the physical site. + PhysicalSiteID *string `json:"physicalSiteId,omitempty"` + // ServiceEndpoint - READ-ONLY; The service endpoint. + ServiceEndpoint *string `json:"serviceEndpoint,omitempty"` + // ServiceResourceID - READ-ONLY; The service resource Id. + ServiceResourceID *string `json:"serviceResourceId,omitempty"` + // ServiceContainerID - READ-ONLY; The service container Id. + ServiceContainerID *string `json:"serviceContainerId,omitempty"` + // DataPlaneURI - READ-ONLY; The data plane Uri. + DataPlaneURI *string `json:"dataPlaneUri,omitempty"` + // ControlPlaneURI - READ-ONLY; The control plane Uri. + ControlPlaneURI *string `json:"controlPlaneUri,omitempty"` + // ProcessServers - READ-ONLY; The list of process servers. + ProcessServers *[]ProcessServerDetails `json:"processServers,omitempty"` + // RcmProxies - READ-ONLY; The list of RCM proxies. + RcmProxies *[]RcmProxyDetails `json:"rcmProxies,omitempty"` + // PushInstallers - READ-ONLY; The list of push installers. + PushInstallers *[]PushInstallerDetails `json:"pushInstallers,omitempty"` + // ReplicationAgents - READ-ONLY; The list of replication agents. + ReplicationAgents *[]ReplicationAgentDetails `json:"replicationAgents,omitempty"` + // ReprotectAgents - READ-ONLY; The list of reprotect agents. + ReprotectAgents *[]ReprotectAgentDetails `json:"reprotectAgents,omitempty"` + // Dras - READ-ONLY; The list of DRAs. + Dras *[]DraDetails `json:"dras,omitempty"` + // AgentDetails - READ-ONLY; The list of agent details. + AgentDetails *[]AgentDetails `json:"agentDetails,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeFabricSpecificDetails', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeAzure', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeHyperVSite', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeInMageRcm', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMM', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMware', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMwareV2' + InstanceType InstanceTypeBasicFabricSpecificDetails `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for InMageRcmFabricSpecificDetails. +func (imrfsd InMageRcmFabricSpecificDetails) MarshalJSON() ([]byte, error) { + imrfsd.InstanceType = InstanceTypeBasicFabricSpecificDetailsInstanceTypeInMageRcm + objectMap := make(map[string]interface{}) + if imrfsd.InstanceType != "" { + objectMap["instanceType"] = imrfsd.InstanceType + } + return json.Marshal(objectMap) +} + +// AsAzureFabricSpecificDetails is the BasicFabricSpecificDetails implementation for InMageRcmFabricSpecificDetails. +func (imrfsd InMageRcmFabricSpecificDetails) AsAzureFabricSpecificDetails() (*AzureFabricSpecificDetails, bool) { + return nil, false +} + +// AsHyperVSiteDetails is the BasicFabricSpecificDetails implementation for InMageRcmFabricSpecificDetails. +func (imrfsd InMageRcmFabricSpecificDetails) AsHyperVSiteDetails() (*HyperVSiteDetails, bool) { + return nil, false +} + +// AsInMageRcmFabricSpecificDetails is the BasicFabricSpecificDetails implementation for InMageRcmFabricSpecificDetails. +func (imrfsd InMageRcmFabricSpecificDetails) AsInMageRcmFabricSpecificDetails() (*InMageRcmFabricSpecificDetails, bool) { + return &imrfsd, true +} + +// AsVmmDetails is the BasicFabricSpecificDetails implementation for InMageRcmFabricSpecificDetails. +func (imrfsd InMageRcmFabricSpecificDetails) AsVmmDetails() (*VmmDetails, bool) { + return nil, false +} + +// AsVMwareDetails is the BasicFabricSpecificDetails implementation for InMageRcmFabricSpecificDetails. +func (imrfsd InMageRcmFabricSpecificDetails) AsVMwareDetails() (*VMwareDetails, bool) { + return nil, false +} + +// AsVMwareV2FabricSpecificDetails is the BasicFabricSpecificDetails implementation for InMageRcmFabricSpecificDetails. +func (imrfsd InMageRcmFabricSpecificDetails) AsVMwareV2FabricSpecificDetails() (*VMwareV2FabricSpecificDetails, bool) { + return nil, false +} + +// AsFabricSpecificDetails is the BasicFabricSpecificDetails implementation for InMageRcmFabricSpecificDetails. +func (imrfsd InMageRcmFabricSpecificDetails) AsFabricSpecificDetails() (*FabricSpecificDetails, bool) { + return nil, false +} + +// AsBasicFabricSpecificDetails is the BasicFabricSpecificDetails implementation for InMageRcmFabricSpecificDetails. +func (imrfsd InMageRcmFabricSpecificDetails) AsBasicFabricSpecificDetails() (BasicFabricSpecificDetails, bool) { + return &imrfsd, true +} + +// InMageRcmLastAgentUpgradeErrorDetails inMageRcm last source agent upgrade error details. +type InMageRcmLastAgentUpgradeErrorDetails struct { + // ErrorCode - READ-ONLY; The error code. + ErrorCode *string `json:"errorCode,omitempty"` + // ErrorMessage - READ-ONLY; The error message. + ErrorMessage *string `json:"errorMessage,omitempty"` + // PossibleCauses - READ-ONLY; The possible causes. + PossibleCauses *string `json:"possibleCauses,omitempty"` + // RecommendedAction - READ-ONLY; The recommended action. + RecommendedAction *string `json:"recommendedAction,omitempty"` + // ErrorMessageParameters - READ-ONLY; The error message parameters. + ErrorMessageParameters map[string]*string `json:"errorMessageParameters"` + // ErrorTags - READ-ONLY; The error tags. + ErrorTags map[string]*string `json:"errorTags"` +} + +// MarshalJSON is the custom marshaler for InMageRcmLastAgentUpgradeErrorDetails. +func (imrlaued InMageRcmLastAgentUpgradeErrorDetails) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + return json.Marshal(objectMap) +} + +// InMageRcmMobilityAgentDetails inMageRcm mobility agent details. +type InMageRcmMobilityAgentDetails struct { + // Version - READ-ONLY; The agent version. + Version *string `json:"version,omitempty"` + // LatestVersion - READ-ONLY; The latest agent version available. + LatestVersion *string `json:"latestVersion,omitempty"` + // DriverVersion - READ-ONLY; The driver version. + DriverVersion *string `json:"driverVersion,omitempty"` + // LatestUpgradableVersionWithoutReboot - READ-ONLY; The latest upgradeable version available without reboot. + LatestUpgradableVersionWithoutReboot *string `json:"latestUpgradableVersionWithoutReboot,omitempty"` + // AgentVersionExpiryDate - READ-ONLY; The agent version expiry date. + AgentVersionExpiryDate *date.Time `json:"agentVersionExpiryDate,omitempty"` + // DriverVersionExpiryDate - READ-ONLY; The driver version expiry date. + DriverVersionExpiryDate *date.Time `json:"driverVersionExpiryDate,omitempty"` + // LastHeartbeatUtc - READ-ONLY; The time of the last heartbeat received from the agent. + LastHeartbeatUtc *date.Time `json:"lastHeartbeatUtc,omitempty"` + // ReasonsBlockingUpgrade - READ-ONLY; The whether update is possible or not. + ReasonsBlockingUpgrade *[]AgentUpgradeBlockedReason `json:"reasonsBlockingUpgrade,omitempty"` + // IsUpgradeable - READ-ONLY; A value indicating whether agent is upgradeable or not. + IsUpgradeable *string `json:"isUpgradeable,omitempty"` +} + +// InMageRcmNicDetails inMageRcm NIC details. +type InMageRcmNicDetails struct { + // NicID - READ-ONLY; The NIC Id. + NicID *string `json:"nicId,omitempty"` + // IsPrimaryNic - READ-ONLY; A value indicating whether this is the primary NIC. + IsPrimaryNic *string `json:"isPrimaryNic,omitempty"` + // IsSelectedForFailover - READ-ONLY; A value indicating whether this NIC is selected for failover. + IsSelectedForFailover *string `json:"isSelectedForFailover,omitempty"` + // SourceIPAddress - READ-ONLY; The source IP address. + SourceIPAddress *string `json:"sourceIPAddress,omitempty"` + // SourceIPAddressType - READ-ONLY; The source IP address type. Possible values include: 'Dynamic', 'Static' + SourceIPAddressType EthernetAddressType `json:"sourceIPAddressType,omitempty"` + // SourceNetworkID - READ-ONLY; Source network Id. + SourceNetworkID *string `json:"sourceNetworkId,omitempty"` + // SourceSubnetName - READ-ONLY; Source subnet name. + SourceSubnetName *string `json:"sourceSubnetName,omitempty"` + // TargetIPAddress - READ-ONLY; The target IP address. + TargetIPAddress *string `json:"targetIPAddress,omitempty"` + // TargetIPAddressType - READ-ONLY; The target IP address type. Possible values include: 'Dynamic', 'Static' + TargetIPAddressType EthernetAddressType `json:"targetIPAddressType,omitempty"` + // TargetSubnetName - READ-ONLY; Target subnet name. + TargetSubnetName *string `json:"targetSubnetName,omitempty"` + // TestSubnetName - READ-ONLY; Test subnet name. + TestSubnetName *string `json:"testSubnetName,omitempty"` + // TestIPAddress - READ-ONLY; The test IP address. + TestIPAddress *string `json:"testIPAddress,omitempty"` + // TestIPAddressType - READ-ONLY; The test IP address type. Possible values include: 'Dynamic', 'Static' + TestIPAddressType EthernetAddressType `json:"testIPAddressType,omitempty"` +} + +// InMageRcmNicInput inMageRcm NIC input. +type InMageRcmNicInput 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"` + // IsSelectedForFailover - A value indicating whether this NIC is selected for failover. + IsSelectedForFailover *string `json:"isSelectedForFailover,omitempty"` + // TargetSubnetName - Target subnet name. + TargetSubnetName *string `json:"targetSubnetName,omitempty"` + // TargetStaticIPAddress - The target static IP address. + TargetStaticIPAddress *string `json:"targetStaticIPAddress,omitempty"` + // TestSubnetName - The test subnet name. + TestSubnetName *string `json:"testSubnetName,omitempty"` + // TestStaticIPAddress - The test static IP address. + TestStaticIPAddress *string `json:"testStaticIPAddress,omitempty"` +} + +// InMageRcmPolicyCreationInput inMageRcm policy creation input. +type InMageRcmPolicyCreationInput struct { + // 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). + AppConsistentFrequencyInMinutes *int32 `json:"appConsistentFrequencyInMinutes,omitempty"` + // EnableMultiVMSync - A value indicating whether multi-VM sync has to be enabled. + EnableMultiVMSync *string `json:"enableMultiVmSync,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypePolicyProviderSpecificInput', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeVMwareCbt' + InstanceType InstanceTypeBasicPolicyProviderSpecificInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for InMageRcmPolicyCreationInput. +func (imrpci InMageRcmPolicyCreationInput) MarshalJSON() ([]byte, error) { + imrpci.InstanceType = InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageRcm + objectMap := make(map[string]interface{}) + if imrpci.RecoveryPointHistoryInMinutes != nil { + objectMap["recoveryPointHistoryInMinutes"] = imrpci.RecoveryPointHistoryInMinutes + } + if imrpci.CrashConsistentFrequencyInMinutes != nil { + objectMap["crashConsistentFrequencyInMinutes"] = imrpci.CrashConsistentFrequencyInMinutes + } + if imrpci.AppConsistentFrequencyInMinutes != nil { + objectMap["appConsistentFrequencyInMinutes"] = imrpci.AppConsistentFrequencyInMinutes + } + if imrpci.EnableMultiVMSync != nil { + objectMap["enableMultiVmSync"] = imrpci.EnableMultiVMSync + } + if imrpci.InstanceType != "" { + objectMap["instanceType"] = imrpci.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2APolicyCreationInput is the BasicPolicyProviderSpecificInput implementation for InMageRcmPolicyCreationInput. +func (imrpci InMageRcmPolicyCreationInput) AsA2APolicyCreationInput() (*A2APolicyCreationInput, bool) { + return nil, false +} + +// AsHyperVReplicaAzurePolicyInput is the BasicPolicyProviderSpecificInput implementation for InMageRcmPolicyCreationInput. +func (imrpci InMageRcmPolicyCreationInput) AsHyperVReplicaAzurePolicyInput() (*HyperVReplicaAzurePolicyInput, bool) { + return nil, false +} + +// AsHyperVReplicaBluePolicyInput is the BasicPolicyProviderSpecificInput implementation for InMageRcmPolicyCreationInput. +func (imrpci InMageRcmPolicyCreationInput) AsHyperVReplicaBluePolicyInput() (*HyperVReplicaBluePolicyInput, bool) { + return nil, false +} + +// AsHyperVReplicaPolicyInput is the BasicPolicyProviderSpecificInput implementation for InMageRcmPolicyCreationInput. +func (imrpci InMageRcmPolicyCreationInput) AsHyperVReplicaPolicyInput() (*HyperVReplicaPolicyInput, bool) { + return nil, false +} + +// AsInMageAzureV2PolicyInput is the BasicPolicyProviderSpecificInput implementation for InMageRcmPolicyCreationInput. +func (imrpci InMageRcmPolicyCreationInput) AsInMageAzureV2PolicyInput() (*InMageAzureV2PolicyInput, bool) { + return nil, false +} + +// AsInMagePolicyInput is the BasicPolicyProviderSpecificInput implementation for InMageRcmPolicyCreationInput. +func (imrpci InMageRcmPolicyCreationInput) AsInMagePolicyInput() (*InMagePolicyInput, bool) { + return nil, false +} + +// AsInMageRcmPolicyCreationInput is the BasicPolicyProviderSpecificInput implementation for InMageRcmPolicyCreationInput. +func (imrpci InMageRcmPolicyCreationInput) AsInMageRcmPolicyCreationInput() (*InMageRcmPolicyCreationInput, bool) { + return &imrpci, true +} + +// AsVMwareCbtPolicyCreationInput is the BasicPolicyProviderSpecificInput implementation for InMageRcmPolicyCreationInput. +func (imrpci InMageRcmPolicyCreationInput) AsVMwareCbtPolicyCreationInput() (*VMwareCbtPolicyCreationInput, bool) { + return nil, false +} + +// AsPolicyProviderSpecificInput is the BasicPolicyProviderSpecificInput implementation for InMageRcmPolicyCreationInput. +func (imrpci InMageRcmPolicyCreationInput) AsPolicyProviderSpecificInput() (*PolicyProviderSpecificInput, bool) { + return nil, false +} + +// AsBasicPolicyProviderSpecificInput is the BasicPolicyProviderSpecificInput implementation for InMageRcmPolicyCreationInput. +func (imrpci InMageRcmPolicyCreationInput) AsBasicPolicyProviderSpecificInput() (BasicPolicyProviderSpecificInput, bool) { + return &imrpci, true +} + +// InMageRcmPolicyDetails inMageRcm specific policy details. +type InMageRcmPolicyDetails struct { + // RecoveryPointHistoryInMinutes - READ-ONLY; The duration in minutes until which the recovery points need to be stored. + RecoveryPointHistoryInMinutes *int32 `json:"recoveryPointHistoryInMinutes,omitempty"` + // AppConsistentFrequencyInMinutes - READ-ONLY; The app consistent snapshot frequency in minutes. + AppConsistentFrequencyInMinutes *int32 `json:"appConsistentFrequencyInMinutes,omitempty"` + // CrashConsistentFrequencyInMinutes - READ-ONLY; The crash consistent snapshot frequency in minutes. + CrashConsistentFrequencyInMinutes *int32 `json:"crashConsistentFrequencyInMinutes,omitempty"` + // EnableMultiVMSync - READ-ONLY; A value indicating whether multi-VM sync has to be enabled. + EnableMultiVMSync *string `json:"enableMultiVmSync,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageRcm', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' + InstanceType InstanceTypeBasicPolicyProviderSpecificDetails `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for InMageRcmPolicyDetails. +func (imrpd InMageRcmPolicyDetails) MarshalJSON() ([]byte, error) { + imrpd.InstanceType = InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageRcm + objectMap := make(map[string]interface{}) + if imrpd.InstanceType != "" { + objectMap["instanceType"] = imrpd.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2APolicyDetails is the BasicPolicyProviderSpecificDetails implementation for InMageRcmPolicyDetails. +func (imrpd InMageRcmPolicyDetails) AsA2APolicyDetails() (*A2APolicyDetails, bool) { + return nil, false +} + +// AsHyperVReplicaAzurePolicyDetails is the BasicPolicyProviderSpecificDetails implementation for InMageRcmPolicyDetails. +func (imrpd InMageRcmPolicyDetails) AsHyperVReplicaAzurePolicyDetails() (*HyperVReplicaAzurePolicyDetails, bool) { + return nil, false +} + +// AsHyperVReplicaBasePolicyDetails is the BasicPolicyProviderSpecificDetails implementation for InMageRcmPolicyDetails. +func (imrpd InMageRcmPolicyDetails) AsHyperVReplicaBasePolicyDetails() (*HyperVReplicaBasePolicyDetails, bool) { + return nil, false +} + +// AsHyperVReplicaBluePolicyDetails is the BasicPolicyProviderSpecificDetails implementation for InMageRcmPolicyDetails. +func (imrpd InMageRcmPolicyDetails) AsHyperVReplicaBluePolicyDetails() (*HyperVReplicaBluePolicyDetails, bool) { + return nil, false +} + +// AsHyperVReplicaPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for InMageRcmPolicyDetails. +func (imrpd InMageRcmPolicyDetails) AsHyperVReplicaPolicyDetails() (*HyperVReplicaPolicyDetails, bool) { + return nil, false +} + +// AsInMageAzureV2PolicyDetails is the BasicPolicyProviderSpecificDetails implementation for InMageRcmPolicyDetails. +func (imrpd InMageRcmPolicyDetails) AsInMageAzureV2PolicyDetails() (*InMageAzureV2PolicyDetails, bool) { + return nil, false +} + +// AsInMageBasePolicyDetails is the BasicPolicyProviderSpecificDetails implementation for InMageRcmPolicyDetails. +func (imrpd InMageRcmPolicyDetails) AsInMageBasePolicyDetails() (*InMageBasePolicyDetails, bool) { + return nil, false +} + +// AsInMagePolicyDetails is the BasicPolicyProviderSpecificDetails implementation for InMageRcmPolicyDetails. +func (imrpd InMageRcmPolicyDetails) AsInMagePolicyDetails() (*InMagePolicyDetails, bool) { + return nil, false +} + +// AsInMageRcmPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for InMageRcmPolicyDetails. +func (imrpd InMageRcmPolicyDetails) AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool) { + return &imrpd, true +} + +// AsRcmAzureMigrationPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for InMageRcmPolicyDetails. +func (imrpd InMageRcmPolicyDetails) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) { + return nil, false +} + +// AsVmwareCbtPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for InMageRcmPolicyDetails. +func (imrpd InMageRcmPolicyDetails) AsVmwareCbtPolicyDetails() (*VmwareCbtPolicyDetails, bool) { + return nil, false +} + +// AsPolicyProviderSpecificDetails is the BasicPolicyProviderSpecificDetails implementation for InMageRcmPolicyDetails. +func (imrpd InMageRcmPolicyDetails) AsPolicyProviderSpecificDetails() (*PolicyProviderSpecificDetails, bool) { + return nil, false +} + +// AsBasicPolicyProviderSpecificDetails is the BasicPolicyProviderSpecificDetails implementation for InMageRcmPolicyDetails. +func (imrpd InMageRcmPolicyDetails) AsBasicPolicyProviderSpecificDetails() (BasicPolicyProviderSpecificDetails, bool) { + return &imrpd, true +} + +// InMageRcmProtectedDiskDetails inMageRcm protected disk details. +type InMageRcmProtectedDiskDetails struct { + // DiskID - READ-ONLY; The disk Id. + DiskID *string `json:"diskId,omitempty"` + // DiskName - READ-ONLY; The disk name. + DiskName *string `json:"diskName,omitempty"` + // IsOSDisk - READ-ONLY; A value indicating whether the disk is the OS disk. + IsOSDisk *string `json:"isOSDisk,omitempty"` + // CapacityInBytes - READ-ONLY; The disk capacity in bytes. + CapacityInBytes *int64 `json:"capacityInBytes,omitempty"` + // LogStorageAccountID - READ-ONLY; The log storage account ARM Id. + LogStorageAccountID *string `json:"logStorageAccountId,omitempty"` + // DiskEncryptionSetID - READ-ONLY; The disk encryption set ARM Id. + DiskEncryptionSetID *string `json:"diskEncryptionSetId,omitempty"` + // SeedManagedDiskID - READ-ONLY; The ARM Id of the seed managed disk. + SeedManagedDiskID *string `json:"seedManagedDiskId,omitempty"` + // TargetManagedDiskID - READ-ONLY; The ARM Id of the target managed disk. + TargetManagedDiskID *string `json:"targetManagedDiskId,omitempty"` + // DiskType - READ-ONLY; The disk type. Possible values include: 'StandardLRS', 'PremiumLRS', 'StandardSSDLRS' + DiskType DiskAccountType `json:"diskType,omitempty"` +} + +// InMageRcmRecoveryPointDetails inMageRcm provider specific recovery point details. +type InMageRcmRecoveryPointDetails struct { + // IsMultiVMSyncPoint - READ-ONLY; A value indicating whether the recovery point is multi VM consistent. + IsMultiVMSyncPoint *string `json:"isMultiVmSyncPoint,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeProviderSpecificRecoveryPointDetails', 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeA2A', 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeInMageRcm' + InstanceType InstanceTypeBasicProviderSpecificRecoveryPointDetails `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for InMageRcmRecoveryPointDetails. +func (imrrpd InMageRcmRecoveryPointDetails) MarshalJSON() ([]byte, error) { + imrrpd.InstanceType = InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeInMageRcm + objectMap := make(map[string]interface{}) + if imrrpd.InstanceType != "" { + objectMap["instanceType"] = imrrpd.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2ARecoveryPointDetails is the BasicProviderSpecificRecoveryPointDetails implementation for InMageRcmRecoveryPointDetails. +func (imrrpd InMageRcmRecoveryPointDetails) AsA2ARecoveryPointDetails() (*A2ARecoveryPointDetails, bool) { + return nil, false +} + +// AsInMageAzureV2RecoveryPointDetails is the BasicProviderSpecificRecoveryPointDetails implementation for InMageRcmRecoveryPointDetails. +func (imrrpd InMageRcmRecoveryPointDetails) AsInMageAzureV2RecoveryPointDetails() (*InMageAzureV2RecoveryPointDetails, bool) { + return nil, false +} + +// AsInMageRcmRecoveryPointDetails is the BasicProviderSpecificRecoveryPointDetails implementation for InMageRcmRecoveryPointDetails. +func (imrrpd InMageRcmRecoveryPointDetails) AsInMageRcmRecoveryPointDetails() (*InMageRcmRecoveryPointDetails, bool) { + return &imrrpd, true +} + +// AsProviderSpecificRecoveryPointDetails is the BasicProviderSpecificRecoveryPointDetails implementation for InMageRcmRecoveryPointDetails. +func (imrrpd InMageRcmRecoveryPointDetails) AsProviderSpecificRecoveryPointDetails() (*ProviderSpecificRecoveryPointDetails, bool) { + return nil, false +} + +// AsBasicProviderSpecificRecoveryPointDetails is the BasicProviderSpecificRecoveryPointDetails implementation for InMageRcmRecoveryPointDetails. +func (imrrpd InMageRcmRecoveryPointDetails) AsBasicProviderSpecificRecoveryPointDetails() (BasicProviderSpecificRecoveryPointDetails, bool) { + return &imrrpd, true +} + +// InMageRcmReplicationDetails inMageRcm provider specific details. +type InMageRcmReplicationDetails struct { + // InternalIdentifier - READ-ONLY; The virtual machine internal identifier. + InternalIdentifier *string `json:"internalIdentifier,omitempty"` + // FabricDiscoveryMachineID - READ-ONLY; The ARM Id of the discovered VM. + FabricDiscoveryMachineID *string `json:"fabricDiscoveryMachineId,omitempty"` + // MultiVMGroupName - READ-ONLY; The multi VM group name. + MultiVMGroupName *string `json:"multiVmGroupName,omitempty"` + // DiscoveryType - READ-ONLY; The type of the discovered VM. + DiscoveryType *string `json:"discoveryType,omitempty"` + // ProcessServerID - READ-ONLY; The process server Id. + ProcessServerID *string `json:"processServerId,omitempty"` + // ProcessorCoreCount - READ-ONLY; The processor core count. + ProcessorCoreCount *int32 `json:"processorCoreCount,omitempty"` + // AllocatedMemoryInMB - READ-ONLY; The allocated memory in MB. + AllocatedMemoryInMB *float64 `json:"allocatedMemoryInMB,omitempty"` + // ProcessServerName - READ-ONLY; The process server name. + ProcessServerName *string `json:"processServerName,omitempty"` + // RunAsAccountID - READ-ONLY; The run-as account Id. + RunAsAccountID *string `json:"runAsAccountId,omitempty"` + // OsType - READ-ONLY; The type of the OS on the VM. + OsType *string `json:"osType,omitempty"` + // FirmwareType - READ-ONLY; The firmware type. + FirmwareType *string `json:"firmwareType,omitempty"` + // TargetGeneration - READ-ONLY; The target generation. + TargetGeneration *string `json:"targetGeneration,omitempty"` + // LicenseType - READ-ONLY; License Type of the VM to be used. + LicenseType *string `json:"licenseType,omitempty"` + // TargetVMName - READ-ONLY; Target VM name. + TargetVMName *string `json:"targetVmName,omitempty"` + // TargetVMSize - READ-ONLY; The target VM size. + TargetVMSize *string `json:"targetVmSize,omitempty"` + // TargetResourceGroupID - READ-ONLY; The target resource group Id. + TargetResourceGroupID *string `json:"targetResourceGroupId,omitempty"` + // TargetAvailabilitySetID - READ-ONLY; The target availability set Id. + TargetAvailabilitySetID *string `json:"targetAvailabilitySetId,omitempty"` + // TargetAvailabilityZone - READ-ONLY; The target availability zone. + TargetAvailabilityZone *string `json:"targetAvailabilityZone,omitempty"` + // TargetProximityPlacementGroupID - READ-ONLY; The target proximity placement group Id. + TargetProximityPlacementGroupID *string `json:"targetProximityPlacementGroupId,omitempty"` + // TargetBootDiagnosticsStorageAccountID - READ-ONLY; The target boot diagnostics storage account ARM Id. + TargetBootDiagnosticsStorageAccountID *string `json:"targetBootDiagnosticsStorageAccountId,omitempty"` + // TargetNetworkID - READ-ONLY; The target network Id. + TargetNetworkID *string `json:"targetNetworkId,omitempty"` + // TestNetworkID - READ-ONLY; The test network Id. + TestNetworkID *string `json:"testNetworkId,omitempty"` + // FailoverRecoveryPointID - READ-ONLY; The recovery point Id to which the VM was failed over. + FailoverRecoveryPointID *string `json:"failoverRecoveryPointId,omitempty"` + // LastRecoveryPointReceived - READ-ONLY; The last recovery point received time. + LastRecoveryPointReceived *date.Time `json:"lastRecoveryPointReceived,omitempty"` + // LastRpoInSeconds - READ-ONLY; The last recovery point objective value. + LastRpoInSeconds *int64 `json:"lastRpoInSeconds,omitempty"` + // LastRpoCalculatedTime - READ-ONLY; The last recovery point objective calculated time. + LastRpoCalculatedTime *date.Time `json:"lastRpoCalculatedTime,omitempty"` + // LastRecoveryPointID - READ-ONLY; The last recovery point Id. + LastRecoveryPointID *string `json:"lastRecoveryPointId,omitempty"` + // InitialReplicationProgressPercentage - READ-ONLY; The initial replication progress percentage. This is calculated based on total bytes processed for all disks in the source VM. + InitialReplicationProgressPercentage *int32 `json:"initialReplicationProgressPercentage,omitempty"` + // InitialReplicationProcessedBytes - READ-ONLY; The initial replication processed bytes. This includes sum of total bytes transferred and matched bytes on all selected disks in source VM. + InitialReplicationProcessedBytes *int64 `json:"initialReplicationProcessedBytes,omitempty"` + // InitialReplicationTransferredBytes - READ-ONLY; The initial replication transferred bytes from source VM to azure for all selected disks on source VM. + InitialReplicationTransferredBytes *int64 `json:"initialReplicationTransferredBytes,omitempty"` + // ResyncProgressPercentage - READ-ONLY; The resync progress percentage. This is calculated based on total bytes processed for all disks in the source VM. + ResyncProgressPercentage *int32 `json:"resyncProgressPercentage,omitempty"` + // ResyncProcessedBytes - READ-ONLY; The resync processed bytes. This includes sum of total bytes transferred and matched bytes on all selected disks in source VM. + ResyncProcessedBytes *int64 `json:"resyncProcessedBytes,omitempty"` + // ResyncTransferredBytes - READ-ONLY; The resync transferred bytes from source VM to azure for all selected disks on source VM. + ResyncTransferredBytes *int64 `json:"resyncTransferredBytes,omitempty"` + // ResyncRequired - READ-ONLY; A value indicating whether resync is required. + ResyncRequired *string `json:"resyncRequired,omitempty"` + // ResyncState - READ-ONLY; The resync state. Possible values include: 'ResyncStateNone', 'ResyncStatePreparedForResynchronization', 'ResyncStateStartedResynchronization' + ResyncState ResyncState `json:"resyncState,omitempty"` + // AgentUpgradeState - READ-ONLY; The agent auto upgrade state. Possible values include: 'MobilityAgentUpgradeStateNone', 'MobilityAgentUpgradeStateStarted', 'MobilityAgentUpgradeStateCompleted', 'MobilityAgentUpgradeStateCommit' + AgentUpgradeState MobilityAgentUpgradeState `json:"agentUpgradeState,omitempty"` + // LastAgentUpgradeType - READ-ONLY; The last agent upgrade type. + LastAgentUpgradeType *string `json:"lastAgentUpgradeType,omitempty"` + // LastAgentUpgradeFailedJobID - READ-ONLY; The last agent upgrade failed or cancelled job Id. + LastAgentUpgradeFailedJobID *string `json:"lastAgentUpgradeFailedJobId,omitempty"` + // ProtectedDisks - READ-ONLY; The list of protected disks. + ProtectedDisks *[]InMageRcmProtectedDiskDetails `json:"protectedDisks,omitempty"` + // IsLastUpgradeSuccessful - READ-ONLY; A value indicating whether last agent upgrade was successful or not. + IsLastUpgradeSuccessful *string `json:"isLastUpgradeSuccessful,omitempty"` + // MobilityAgentDetails - READ-ONLY; The mobility agent information. + MobilityAgentDetails *InMageRcmMobilityAgentDetails `json:"mobilityAgentDetails,omitempty"` + // LastAgentUpgradeErrorDetails - READ-ONLY; The last agent upgrade error information. + LastAgentUpgradeErrorDetails *[]InMageRcmLastAgentUpgradeErrorDetails `json:"lastAgentUpgradeErrorDetails,omitempty"` + // AgentUpgradeBlockingErrorDetails - READ-ONLY; The agent upgrade blocking error information. + AgentUpgradeBlockingErrorDetails *[]InMageRcmAgentUpgradeBlockingErrorDetails `json:"agentUpgradeBlockingErrorDetails,omitempty"` + // VMNics - READ-ONLY; The network details. + VMNics *[]InMageRcmNicDetails `json:"vmNics,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeReplicationProviderSpecificSettings', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageRcm', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage' + InstanceType InstanceTypeBasicReplicationProviderSpecificSettings `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for InMageRcmReplicationDetails. +func (imrrd InMageRcmReplicationDetails) MarshalJSON() ([]byte, error) { + imrrd.InstanceType = InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageRcm + objectMap := make(map[string]interface{}) + if imrrd.InstanceType != "" { + objectMap["instanceType"] = imrrd.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2AReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for InMageRcmReplicationDetails. +func (imrrd InMageRcmReplicationDetails) AsA2AReplicationDetails() (*A2AReplicationDetails, bool) { + return nil, false +} + +// AsHyperVReplicaAzureReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for InMageRcmReplicationDetails. +func (imrrd InMageRcmReplicationDetails) AsHyperVReplicaAzureReplicationDetails() (*HyperVReplicaAzureReplicationDetails, bool) { + return nil, false +} + +// AsHyperVReplicaBaseReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for InMageRcmReplicationDetails. +func (imrrd InMageRcmReplicationDetails) AsHyperVReplicaBaseReplicationDetails() (*HyperVReplicaBaseReplicationDetails, bool) { + return nil, false +} + +// AsHyperVReplicaBlueReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for InMageRcmReplicationDetails. +func (imrrd InMageRcmReplicationDetails) AsHyperVReplicaBlueReplicationDetails() (*HyperVReplicaBlueReplicationDetails, bool) { + return nil, false +} + +// AsHyperVReplicaReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for InMageRcmReplicationDetails. +func (imrrd InMageRcmReplicationDetails) AsHyperVReplicaReplicationDetails() (*HyperVReplicaReplicationDetails, bool) { + return nil, false +} + +// AsInMageAzureV2ReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for InMageRcmReplicationDetails. +func (imrrd InMageRcmReplicationDetails) AsInMageAzureV2ReplicationDetails() (*InMageAzureV2ReplicationDetails, bool) { + return nil, false +} + +// AsInMageRcmReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for InMageRcmReplicationDetails. +func (imrrd InMageRcmReplicationDetails) AsInMageRcmReplicationDetails() (*InMageRcmReplicationDetails, bool) { + return &imrrd, true +} + +// AsInMageReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for InMageRcmReplicationDetails. +func (imrrd InMageRcmReplicationDetails) AsInMageReplicationDetails() (*InMageReplicationDetails, bool) { + return nil, false +} + +// AsReplicationProviderSpecificSettings is the BasicReplicationProviderSpecificSettings implementation for InMageRcmReplicationDetails. +func (imrrd InMageRcmReplicationDetails) AsReplicationProviderSpecificSettings() (*ReplicationProviderSpecificSettings, bool) { + return nil, false +} + +// AsBasicReplicationProviderSpecificSettings is the BasicReplicationProviderSpecificSettings implementation for InMageRcmReplicationDetails. +func (imrrd InMageRcmReplicationDetails) AsBasicReplicationProviderSpecificSettings() (BasicReplicationProviderSpecificSettings, bool) { + return &imrrd, true +} + +// InMageRcmTestFailoverInput inMageRcm provider specific input for test failover. +type InMageRcmTestFailoverInput struct { + // NetworkID - The test network Id. + NetworkID *string `json:"networkId,omitempty"` + // RecoveryPointID - The recovery point id to be passed to test failover to a particular recovery point. In case of latest recovery point, null should be passed. + RecoveryPointID *string `json:"recoveryPointId,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeTestFailoverProviderSpecificInput', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMage' + InstanceType InstanceTypeBasicTestFailoverProviderSpecificInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for InMageRcmTestFailoverInput. +func (imrtfi InMageRcmTestFailoverInput) MarshalJSON() ([]byte, error) { + imrtfi.InstanceType = InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageRcm + objectMap := make(map[string]interface{}) + if imrtfi.NetworkID != nil { + objectMap["networkId"] = imrtfi.NetworkID + } + if imrtfi.RecoveryPointID != nil { + objectMap["recoveryPointId"] = imrtfi.RecoveryPointID + } + if imrtfi.InstanceType != "" { + objectMap["instanceType"] = imrtfi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2ATestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for InMageRcmTestFailoverInput. +func (imrtfi InMageRcmTestFailoverInput) AsA2ATestFailoverInput() (*A2ATestFailoverInput, bool) { + return nil, false +} + +// AsHyperVReplicaAzureTestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for InMageRcmTestFailoverInput. +func (imrtfi InMageRcmTestFailoverInput) AsHyperVReplicaAzureTestFailoverInput() (*HyperVReplicaAzureTestFailoverInput, bool) { + return nil, false +} + +// AsInMageAzureV2TestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for InMageRcmTestFailoverInput. +func (imrtfi InMageRcmTestFailoverInput) AsInMageAzureV2TestFailoverInput() (*InMageAzureV2TestFailoverInput, bool) { + return nil, false +} + +// AsInMageRcmTestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for InMageRcmTestFailoverInput. +func (imrtfi InMageRcmTestFailoverInput) AsInMageRcmTestFailoverInput() (*InMageRcmTestFailoverInput, bool) { + return &imrtfi, true +} + +// AsInMageTestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for InMageRcmTestFailoverInput. +func (imrtfi InMageRcmTestFailoverInput) AsInMageTestFailoverInput() (*InMageTestFailoverInput, bool) { + return nil, false +} + +// AsTestFailoverProviderSpecificInput is the BasicTestFailoverProviderSpecificInput implementation for InMageRcmTestFailoverInput. +func (imrtfi InMageRcmTestFailoverInput) AsTestFailoverProviderSpecificInput() (*TestFailoverProviderSpecificInput, bool) { + return nil, false +} + +// AsBasicTestFailoverProviderSpecificInput is the BasicTestFailoverProviderSpecificInput implementation for InMageRcmTestFailoverInput. +func (imrtfi InMageRcmTestFailoverInput) AsBasicTestFailoverProviderSpecificInput() (BasicTestFailoverProviderSpecificInput, bool) { + return &imrtfi, true +} + +// InMageRcmUnplannedFailoverInput inMageRcm provider specific input for unplanned failover. +type InMageRcmUnplannedFailoverInput struct { + // PerformShutdown - A value indicating whether VM is to be shutdown. + PerformShutdown *string `json:"performShutdown,omitempty"` + // RecoveryPointID - The recovery point id to be passed to failover to a particular recovery point. In case of latest recovery point, null should be passed. + RecoveryPointID *string `json:"recoveryPointId,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeUnplannedFailoverProviderSpecificInput', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMage' + InstanceType InstanceTypeBasicUnplannedFailoverProviderSpecificInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for InMageRcmUnplannedFailoverInput. +func (imrufi InMageRcmUnplannedFailoverInput) MarshalJSON() ([]byte, error) { + imrufi.InstanceType = InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageRcm + objectMap := make(map[string]interface{}) + if imrufi.PerformShutdown != nil { + objectMap["performShutdown"] = imrufi.PerformShutdown + } + if imrufi.RecoveryPointID != nil { + objectMap["recoveryPointId"] = imrufi.RecoveryPointID + } + if imrufi.InstanceType != "" { + objectMap["instanceType"] = imrufi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2AUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for InMageRcmUnplannedFailoverInput. +func (imrufi InMageRcmUnplannedFailoverInput) AsA2AUnplannedFailoverInput() (*A2AUnplannedFailoverInput, bool) { + return nil, false +} + +// AsHyperVReplicaAzureUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for InMageRcmUnplannedFailoverInput. +func (imrufi InMageRcmUnplannedFailoverInput) AsHyperVReplicaAzureUnplannedFailoverInput() (*HyperVReplicaAzureUnplannedFailoverInput, bool) { + return nil, false +} + +// AsInMageAzureV2UnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for InMageRcmUnplannedFailoverInput. +func (imrufi InMageRcmUnplannedFailoverInput) AsInMageAzureV2UnplannedFailoverInput() (*InMageAzureV2UnplannedFailoverInput, bool) { + return nil, false +} + +// AsInMageRcmUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for InMageRcmUnplannedFailoverInput. +func (imrufi InMageRcmUnplannedFailoverInput) AsInMageRcmUnplannedFailoverInput() (*InMageRcmUnplannedFailoverInput, bool) { + return &imrufi, true +} + +// AsInMageUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for InMageRcmUnplannedFailoverInput. +func (imrufi InMageRcmUnplannedFailoverInput) AsInMageUnplannedFailoverInput() (*InMageUnplannedFailoverInput, bool) { + return nil, false +} + +// AsUnplannedFailoverProviderSpecificInput is the BasicUnplannedFailoverProviderSpecificInput implementation for InMageRcmUnplannedFailoverInput. +func (imrufi InMageRcmUnplannedFailoverInput) AsUnplannedFailoverProviderSpecificInput() (*UnplannedFailoverProviderSpecificInput, bool) { + return nil, false +} + +// AsBasicUnplannedFailoverProviderSpecificInput is the BasicUnplannedFailoverProviderSpecificInput implementation for InMageRcmUnplannedFailoverInput. +func (imrufi InMageRcmUnplannedFailoverInput) AsBasicUnplannedFailoverProviderSpecificInput() (BasicUnplannedFailoverProviderSpecificInput, bool) { + return &imrufi, true +} + +// InMageRcmUpdateReplicationProtectedItemInput inMageRcm provider specific input to update replication +// protected item. +type InMageRcmUpdateReplicationProtectedItemInput 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"` + // TargetAvailabilityZone - The target availability zone. + TargetAvailabilityZone *string `json:"targetAvailabilityZone,omitempty"` + // TargetProximityPlacementGroupID - The target proximity placement group Id. + TargetProximityPlacementGroupID *string `json:"targetProximityPlacementGroupId,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"` + // TestNetworkID - The test network ARM Id. + TestNetworkID *string `json:"testNetworkId,omitempty"` + // VMNics - The list of NIC details. + VMNics *[]InMageRcmNicInput `json:"vmNics,omitempty"` + // LicenseType - The license type. Possible values include: 'LicenseTypeNotSpecified', 'LicenseTypeNoLicenseType', 'LicenseTypeWindowsServer' + LicenseType LicenseType `json:"licenseType,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeUpdateReplicationProtectedItemProviderInput', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeA2A', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageRcm' + InstanceType InstanceTypeBasicUpdateReplicationProtectedItemProviderInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for InMageRcmUpdateReplicationProtectedItemInput. +func (imrurpii InMageRcmUpdateReplicationProtectedItemInput) MarshalJSON() ([]byte, error) { + imrurpii.InstanceType = InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageRcm + objectMap := make(map[string]interface{}) + if imrurpii.TargetVMName != nil { + objectMap["targetVmName"] = imrurpii.TargetVMName + } + if imrurpii.TargetVMSize != nil { + objectMap["targetVmSize"] = imrurpii.TargetVMSize + } + if imrurpii.TargetResourceGroupID != nil { + objectMap["targetResourceGroupId"] = imrurpii.TargetResourceGroupID + } + if imrurpii.TargetAvailabilitySetID != nil { + objectMap["targetAvailabilitySetId"] = imrurpii.TargetAvailabilitySetID + } + if imrurpii.TargetAvailabilityZone != nil { + objectMap["targetAvailabilityZone"] = imrurpii.TargetAvailabilityZone + } + if imrurpii.TargetProximityPlacementGroupID != nil { + objectMap["targetProximityPlacementGroupId"] = imrurpii.TargetProximityPlacementGroupID + } + if imrurpii.TargetBootDiagnosticsStorageAccountID != nil { + objectMap["targetBootDiagnosticsStorageAccountId"] = imrurpii.TargetBootDiagnosticsStorageAccountID + } + if imrurpii.TargetNetworkID != nil { + objectMap["targetNetworkId"] = imrurpii.TargetNetworkID + } + if imrurpii.TestNetworkID != nil { + objectMap["testNetworkId"] = imrurpii.TestNetworkID + } + if imrurpii.VMNics != nil { + objectMap["vmNics"] = imrurpii.VMNics + } + if imrurpii.LicenseType != "" { + objectMap["licenseType"] = imrurpii.LicenseType + } + if imrurpii.InstanceType != "" { + objectMap["instanceType"] = imrurpii.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2AUpdateReplicationProtectedItemInput is the BasicUpdateReplicationProtectedItemProviderInput implementation for InMageRcmUpdateReplicationProtectedItemInput. +func (imrurpii InMageRcmUpdateReplicationProtectedItemInput) AsA2AUpdateReplicationProtectedItemInput() (*A2AUpdateReplicationProtectedItemInput, bool) { + return nil, false +} + +// AsHyperVReplicaAzureUpdateReplicationProtectedItemInput is the BasicUpdateReplicationProtectedItemProviderInput implementation for InMageRcmUpdateReplicationProtectedItemInput. +func (imrurpii InMageRcmUpdateReplicationProtectedItemInput) AsHyperVReplicaAzureUpdateReplicationProtectedItemInput() (*HyperVReplicaAzureUpdateReplicationProtectedItemInput, bool) { + return nil, false +} + +// AsInMageAzureV2UpdateReplicationProtectedItemInput is the BasicUpdateReplicationProtectedItemProviderInput implementation for InMageRcmUpdateReplicationProtectedItemInput. +func (imrurpii InMageRcmUpdateReplicationProtectedItemInput) AsInMageAzureV2UpdateReplicationProtectedItemInput() (*InMageAzureV2UpdateReplicationProtectedItemInput, bool) { + return nil, false +} + +// AsInMageRcmUpdateReplicationProtectedItemInput is the BasicUpdateReplicationProtectedItemProviderInput implementation for InMageRcmUpdateReplicationProtectedItemInput. +func (imrurpii InMageRcmUpdateReplicationProtectedItemInput) AsInMageRcmUpdateReplicationProtectedItemInput() (*InMageRcmUpdateReplicationProtectedItemInput, bool) { + return &imrurpii, true +} + +// AsUpdateReplicationProtectedItemProviderInput is the BasicUpdateReplicationProtectedItemProviderInput implementation for InMageRcmUpdateReplicationProtectedItemInput. +func (imrurpii InMageRcmUpdateReplicationProtectedItemInput) AsUpdateReplicationProtectedItemProviderInput() (*UpdateReplicationProtectedItemProviderInput, bool) { + return nil, false +} + +// AsBasicUpdateReplicationProtectedItemProviderInput is the BasicUpdateReplicationProtectedItemProviderInput implementation for InMageRcmUpdateReplicationProtectedItemInput. +func (imrurpii InMageRcmUpdateReplicationProtectedItemInput) AsBasicUpdateReplicationProtectedItemProviderInput() (BasicUpdateReplicationProtectedItemProviderInput, bool) { + return &imrurpii, true +} + +// InMageReplicationDetails inMage provider specific settings +type InMageReplicationDetails struct { + // ActiveSiteType - The active location of the VM. If the VM is being protected from Azure, this field will take values from { Azure, OnPrem }. If the VM is being protected between two data-centers, this field will be OnPrem always. + ActiveSiteType *string `json:"activeSiteType,omitempty"` + // SourceVMCPUCount - The CPU count of the VM on the primary side. + SourceVMCPUCount *int32 `json:"sourceVmCpuCount,omitempty"` + // SourceVMRAMSizeInMB - The RAM size of the VM on the primary side. + SourceVMRAMSizeInMB *int32 `json:"sourceVmRamSizeInMB,omitempty"` + // OsDetails - The OS details. + OsDetails *OSDiskDetails `json:"osDetails,omitempty"` + // ProtectionStage - The protection stage. + ProtectionStage *string `json:"protectionStage,omitempty"` + // VMID - The virtual machine Id. + VMID *string `json:"vmId,omitempty"` + // VMProtectionState - The protection state for the vm. + VMProtectionState *string `json:"vmProtectionState,omitempty"` + // VMProtectionStateDescription - The protection state description for the vm. + VMProtectionStateDescription *string `json:"vmProtectionStateDescription,omitempty"` + // ResyncDetails - The resync details of the machine + ResyncDetails *InitialReplicationDetails `json:"resyncDetails,omitempty"` + // RetentionWindowStart - The retention window start time. + RetentionWindowStart *date.Time `json:"retentionWindowStart,omitempty"` + // RetentionWindowEnd - The retention window end time. + RetentionWindowEnd *date.Time `json:"retentionWindowEnd,omitempty"` + // CompressedDataRateInMB - The compressed data change rate in MB. + CompressedDataRateInMB *float64 `json:"compressedDataRateInMB,omitempty"` + // UncompressedDataRateInMB - The uncompressed data change rate in MB. + UncompressedDataRateInMB *float64 `json:"uncompressedDataRateInMB,omitempty"` + // RpoInSeconds - The RPO in seconds. + RpoInSeconds *int64 `json:"rpoInSeconds,omitempty"` + // ProtectedDisks - The list of protected disks. + ProtectedDisks *[]InMageProtectedDiskDetails `json:"protectedDisks,omitempty"` + // IPAddress - The source IP address. + IPAddress *string `json:"ipAddress,omitempty"` + // LastHeartbeat - The last heartbeat received from the source server. + LastHeartbeat *date.Time `json:"lastHeartbeat,omitempty"` + // ProcessServerID - The process server Id. + ProcessServerID *string `json:"processServerId,omitempty"` + // MasterTargetID - The master target Id. + MasterTargetID *string `json:"masterTargetId,omitempty"` + // ConsistencyPoints - The collection of Consistency points. + ConsistencyPoints map[string]*date.Time `json:"consistencyPoints"` + // DiskResized - A value indicating whether any disk is resized for this VM. + DiskResized *string `json:"diskResized,omitempty"` + // RebootAfterUpdateStatus - A value indicating whether the source server requires a restart after update. + RebootAfterUpdateStatus *string `json:"rebootAfterUpdateStatus,omitempty"` + // MultiVMGroupID - The multi vm group Id, if any. + MultiVMGroupID *string `json:"multiVmGroupId,omitempty"` + // MultiVMGroupName - The multi vm group name, if any. + MultiVMGroupName *string `json:"multiVmGroupName,omitempty"` + // MultiVMSyncStatus - A value indicating whether the multi vm sync is enabled or disabled. + MultiVMSyncStatus *string `json:"multiVmSyncStatus,omitempty"` + // AgentDetails - The agent details. + AgentDetails *InMageAgentDetails `json:"agentDetails,omitempty"` + // VCenterInfrastructureID - The vCenter infrastructure Id. + VCenterInfrastructureID *string `json:"vCenterInfrastructureId,omitempty"` + // InfrastructureVMID - The infrastructure VM Id. + InfrastructureVMID *string `json:"infrastructureVmId,omitempty"` + // VMNics - The PE Network details. + VMNics *[]VMNicDetails `json:"vmNics,omitempty"` + // DiscoveryType - A value indicating the discovery type of the machine. + DiscoveryType *string `json:"discoveryType,omitempty"` + // AzureStorageAccountID - A value indicating the underlying Azure storage account. If the VM is not running in Azure, this value shall be set to null. + AzureStorageAccountID *string `json:"azureStorageAccountId,omitempty"` + // Datastores - The data stores of the on-premise machine Value can be list of strings that contain data store names + Datastores *[]string `json:"datastores,omitempty"` + // ValidationErrors - The validation errors of the on-premise machine Value can be list of validation errors + ValidationErrors *[]HealthError `json:"validationErrors,omitempty"` + // LastRpoCalculatedTime - The last RPO calculated time. + LastRpoCalculatedTime *date.Time `json:"lastRpoCalculatedTime,omitempty"` + // LastUpdateReceivedTime - The last update time received from on-prem components. + LastUpdateReceivedTime *date.Time `json:"lastUpdateReceivedTime,omitempty"` + // ReplicaID - The replica id of the protected item. + ReplicaID *string `json:"replicaId,omitempty"` + // OsVersion - The OS Version of the protected item. + OsVersion *string `json:"osVersion,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeReplicationProviderSpecificSettings', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageRcm', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage' + InstanceType InstanceTypeBasicReplicationProviderSpecificSettings `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for InMageReplicationDetails. +func (imrd InMageReplicationDetails) MarshalJSON() ([]byte, error) { + imrd.InstanceType = InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage + objectMap := make(map[string]interface{}) + if imrd.ActiveSiteType != nil { + objectMap["activeSiteType"] = imrd.ActiveSiteType + } + if imrd.SourceVMCPUCount != nil { + objectMap["sourceVmCpuCount"] = imrd.SourceVMCPUCount + } + if imrd.SourceVMRAMSizeInMB != nil { + objectMap["sourceVmRamSizeInMB"] = imrd.SourceVMRAMSizeInMB + } + if imrd.OsDetails != nil { + objectMap["osDetails"] = imrd.OsDetails + } + if imrd.ProtectionStage != nil { + objectMap["protectionStage"] = imrd.ProtectionStage + } + if imrd.VMID != nil { + objectMap["vmId"] = imrd.VMID + } + if imrd.VMProtectionState != nil { + objectMap["vmProtectionState"] = imrd.VMProtectionState + } + if imrd.VMProtectionStateDescription != nil { + objectMap["vmProtectionStateDescription"] = imrd.VMProtectionStateDescription + } + if imrd.ResyncDetails != nil { + objectMap["resyncDetails"] = imrd.ResyncDetails + } + if imrd.RetentionWindowStart != nil { + objectMap["retentionWindowStart"] = imrd.RetentionWindowStart + } + if imrd.RetentionWindowEnd != nil { + objectMap["retentionWindowEnd"] = imrd.RetentionWindowEnd + } + if imrd.CompressedDataRateInMB != nil { + objectMap["compressedDataRateInMB"] = imrd.CompressedDataRateInMB + } + if imrd.UncompressedDataRateInMB != nil { + objectMap["uncompressedDataRateInMB"] = imrd.UncompressedDataRateInMB + } + if imrd.RpoInSeconds != nil { + objectMap["rpoInSeconds"] = imrd.RpoInSeconds + } + if imrd.ProtectedDisks != nil { + objectMap["protectedDisks"] = imrd.ProtectedDisks + } + if imrd.IPAddress != nil { + objectMap["ipAddress"] = imrd.IPAddress } if imrd.LastHeartbeat != nil { objectMap["lastHeartbeat"] = imrd.LastHeartbeat @@ -9004,6 +12155,11 @@ func (imrd InMageReplicationDetails) AsInMageAzureV2ReplicationDetails() (*InMag return nil, false } +// AsInMageRcmReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for InMageReplicationDetails. +func (imrd InMageReplicationDetails) AsInMageRcmReplicationDetails() (*InMageRcmReplicationDetails, bool) { + return nil, false +} + // AsInMageReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for InMageReplicationDetails. func (imrd InMageReplicationDetails) AsInMageReplicationDetails() (*InMageReplicationDetails, bool) { return &imrd, true @@ -9105,6 +12261,128 @@ func (imri InMageReprotectInput) AsBasicReverseReplicationProviderSpecificInput( return &imri, true } +// InMageTestFailoverInput provider specific input for InMage test failover. +type InMageTestFailoverInput struct { + // RecoveryPointType - The recovery point type. Values from LatestTime, LatestTag or Custom. In the case of custom, the recovery point provided by RecoveryPointId will be used. In the other two cases, recovery point id will be ignored. Possible values include: 'LatestTime', 'LatestTag', 'Custom' + RecoveryPointType RecoveryPointType `json:"recoveryPointType,omitempty"` + // RecoveryPointID - The recovery point id to be passed to test failover to a particular recovery point. In case of latest recovery point, null should be passed. + RecoveryPointID *string `json:"recoveryPointId,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeTestFailoverProviderSpecificInput', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMage' + InstanceType InstanceTypeBasicTestFailoverProviderSpecificInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for InMageTestFailoverInput. +func (imtfi InMageTestFailoverInput) MarshalJSON() ([]byte, error) { + imtfi.InstanceType = InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMage + objectMap := make(map[string]interface{}) + if imtfi.RecoveryPointType != "" { + objectMap["recoveryPointType"] = imtfi.RecoveryPointType + } + if imtfi.RecoveryPointID != nil { + objectMap["recoveryPointId"] = imtfi.RecoveryPointID + } + if imtfi.InstanceType != "" { + objectMap["instanceType"] = imtfi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2ATestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for InMageTestFailoverInput. +func (imtfi InMageTestFailoverInput) AsA2ATestFailoverInput() (*A2ATestFailoverInput, bool) { + return nil, false +} + +// AsHyperVReplicaAzureTestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for InMageTestFailoverInput. +func (imtfi InMageTestFailoverInput) AsHyperVReplicaAzureTestFailoverInput() (*HyperVReplicaAzureTestFailoverInput, bool) { + return nil, false +} + +// AsInMageAzureV2TestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for InMageTestFailoverInput. +func (imtfi InMageTestFailoverInput) AsInMageAzureV2TestFailoverInput() (*InMageAzureV2TestFailoverInput, bool) { + return nil, false +} + +// AsInMageRcmTestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for InMageTestFailoverInput. +func (imtfi InMageTestFailoverInput) AsInMageRcmTestFailoverInput() (*InMageRcmTestFailoverInput, bool) { + return nil, false +} + +// AsInMageTestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for InMageTestFailoverInput. +func (imtfi InMageTestFailoverInput) AsInMageTestFailoverInput() (*InMageTestFailoverInput, bool) { + return &imtfi, true +} + +// AsTestFailoverProviderSpecificInput is the BasicTestFailoverProviderSpecificInput implementation for InMageTestFailoverInput. +func (imtfi InMageTestFailoverInput) AsTestFailoverProviderSpecificInput() (*TestFailoverProviderSpecificInput, bool) { + return nil, false +} + +// AsBasicTestFailoverProviderSpecificInput is the BasicTestFailoverProviderSpecificInput implementation for InMageTestFailoverInput. +func (imtfi InMageTestFailoverInput) AsBasicTestFailoverProviderSpecificInput() (BasicTestFailoverProviderSpecificInput, bool) { + return &imtfi, true +} + +// InMageUnplannedFailoverInput provider specific input for InMage unplanned failover. +type InMageUnplannedFailoverInput struct { + // RecoveryPointType - The recovery point type. Values from LatestTime, LatestTag or Custom. In the case of custom, the recovery point provided by RecoveryPointId will be used. In the other two cases, recovery point id will be ignored. Possible values include: 'LatestTime', 'LatestTag', 'Custom' + RecoveryPointType RecoveryPointType `json:"recoveryPointType,omitempty"` + // RecoveryPointID - The recovery point id to be passed to failover to a particular recovery point. In case of latest recovery point, null should be passed. + RecoveryPointID *string `json:"recoveryPointId,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeUnplannedFailoverProviderSpecificInput', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMage' + InstanceType InstanceTypeBasicUnplannedFailoverProviderSpecificInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for InMageUnplannedFailoverInput. +func (imufi InMageUnplannedFailoverInput) MarshalJSON() ([]byte, error) { + imufi.InstanceType = InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMage + objectMap := make(map[string]interface{}) + if imufi.RecoveryPointType != "" { + objectMap["recoveryPointType"] = imufi.RecoveryPointType + } + if imufi.RecoveryPointID != nil { + objectMap["recoveryPointId"] = imufi.RecoveryPointID + } + if imufi.InstanceType != "" { + objectMap["instanceType"] = imufi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2AUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for InMageUnplannedFailoverInput. +func (imufi InMageUnplannedFailoverInput) AsA2AUnplannedFailoverInput() (*A2AUnplannedFailoverInput, bool) { + return nil, false +} + +// AsHyperVReplicaAzureUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for InMageUnplannedFailoverInput. +func (imufi InMageUnplannedFailoverInput) AsHyperVReplicaAzureUnplannedFailoverInput() (*HyperVReplicaAzureUnplannedFailoverInput, bool) { + return nil, false +} + +// AsInMageAzureV2UnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for InMageUnplannedFailoverInput. +func (imufi InMageUnplannedFailoverInput) AsInMageAzureV2UnplannedFailoverInput() (*InMageAzureV2UnplannedFailoverInput, bool) { + return nil, false +} + +// AsInMageRcmUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for InMageUnplannedFailoverInput. +func (imufi InMageUnplannedFailoverInput) AsInMageRcmUnplannedFailoverInput() (*InMageRcmUnplannedFailoverInput, bool) { + return nil, false +} + +// AsInMageUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for InMageUnplannedFailoverInput. +func (imufi InMageUnplannedFailoverInput) AsInMageUnplannedFailoverInput() (*InMageUnplannedFailoverInput, bool) { + return &imufi, true +} + +// AsUnplannedFailoverProviderSpecificInput is the BasicUnplannedFailoverProviderSpecificInput implementation for InMageUnplannedFailoverInput. +func (imufi InMageUnplannedFailoverInput) AsUnplannedFailoverProviderSpecificInput() (*UnplannedFailoverProviderSpecificInput, bool) { + return nil, false +} + +// AsBasicUnplannedFailoverProviderSpecificInput is the BasicUnplannedFailoverProviderSpecificInput implementation for InMageUnplannedFailoverInput. +func (imufi InMageUnplannedFailoverInput) AsBasicUnplannedFailoverProviderSpecificInput() (BasicUnplannedFailoverProviderSpecificInput, bool) { + return &imufi, true +} + // InMageVolumeExclusionOptions guest disk signature based disk exclusion option when doing enable // protection of virtual machine in InMage provider. type InMageVolumeExclusionOptions struct { @@ -9157,6 +12435,16 @@ type InputEndpoint struct { Protocol *string `json:"protocol,omitempty"` } +// IPConfig IP configuration details. +type IPConfig struct { + // StaticIPAddress - The static IP address of the IP configuration. + StaticIPAddress *string `json:"staticIPAddress,omitempty"` + // PublicIPAddressID - The Id of the public IP address associated with the IP configuration. + PublicIPAddressID *string `json:"publicIpAddressId,omitempty"` + // LBBackendAddressPoolIds - The backend address pools associated with the IP configuration. + LBBackendAddressPoolIds *[]string `json:"lBBackendAddressPoolIds,omitempty"` +} + // Job job details. type Job struct { autorest.Response `json:"-"` @@ -9803,9 +13091,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"` } @@ -10431,28 +13719,24 @@ type MigrationItemProperties struct { PolicyID *string `json:"policyId,omitempty"` // PolicyFriendlyName - READ-ONLY; The name of policy governing this item. PolicyFriendlyName *string `json:"policyFriendlyName,omitempty"` + // RecoveryServicesProviderID - READ-ONLY; The recovery services provider ARM Id. + RecoveryServicesProviderID *string `json:"recoveryServicesProviderId,omitempty"` // MigrationState - READ-ONLY; The migration status. Possible values include: 'MigrationStateNone', 'MigrationStateEnableMigrationInProgress', 'MigrationStateEnableMigrationFailed', 'MigrationStateDisableMigrationInProgress', 'MigrationStateDisableMigrationFailed', 'MigrationStateInitialSeedingInProgress', 'MigrationStateInitialSeedingFailed', 'MigrationStateReplicating', 'MigrationStateMigrationInProgress', 'MigrationStateMigrationSucceeded', 'MigrationStateMigrationFailed' MigrationState MigrationState `json:"migrationState,omitempty"` // MigrationStateDescription - READ-ONLY; The migration state description. MigrationStateDescription *string `json:"migrationStateDescription,omitempty"` - // LastTestMigrationTime - READ-ONLY; The last test migration time. - LastTestMigrationTime *date.Time `json:"lastTestMigrationTime,omitempty"` - // LastTestMigrationStatus - READ-ONLY; The status of the last test migration. - LastTestMigrationStatus *string `json:"lastTestMigrationStatus,omitempty"` // TestMigrateState - READ-ONLY; The test migrate state. Possible values include: 'TestMigrationStateNone', 'TestMigrationStateTestMigrationInProgress', 'TestMigrationStateTestMigrationSucceeded', 'TestMigrationStateTestMigrationFailed', 'TestMigrationStateTestMigrationCleanupInProgress' TestMigrateState TestMigrationState `json:"testMigrateState,omitempty"` // TestMigrateStateDescription - READ-ONLY; The test migrate state description. TestMigrateStateDescription *string `json:"testMigrateStateDescription,omitempty"` - // Health - READ-ONLY; The consolidated health. Possible values include: 'ProtectionHealthNone', 'ProtectionHealthNormal', 'ProtectionHealthWarning', 'ProtectionHealthCritical' - Health ProtectionHealth `json:"health,omitempty"` + // Health - READ-ONLY; The consolidated health. + Health *string `json:"health,omitempty"` // HealthErrors - READ-ONLY; The list of health errors. HealthErrors *[]HealthError `json:"healthErrors,omitempty"` // AllowedOperations - READ-ONLY; The allowed operations on the migration item, based on the current migration state of the item. AllowedOperations *[]MigrationItemOperation `json:"allowedOperations,omitempty"` // CurrentJob - READ-ONLY; The current job details. CurrentJob *CurrentJobDetails `json:"currentJob,omitempty"` - // EventCorrelationID - READ-ONLY; The correlation Id for events associated with this migration item. - EventCorrelationID *string `json:"eventCorrelationId,omitempty"` // ProviderSpecificDetails - The migration provider custom settings. ProviderSpecificDetails BasicMigrationProviderSpecificSettings `json:"providerSpecificDetails,omitempty"` } @@ -10500,6 +13784,15 @@ func (mip *MigrationItemProperties) UnmarshalJSON(body []byte) error { } 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 MigrationState @@ -10518,24 +13811,6 @@ func (mip *MigrationItemProperties) UnmarshalJSON(body []byte) error { } mip.MigrationStateDescription = &migrationStateDescription } - case "lastTestMigrationTime": - if v != nil { - var lastTestMigrationTime date.Time - err = json.Unmarshal(*v, &lastTestMigrationTime) - if err != nil { - return err - } - mip.LastTestMigrationTime = &lastTestMigrationTime - } - case "lastTestMigrationStatus": - if v != nil { - var lastTestMigrationStatus string - err = json.Unmarshal(*v, &lastTestMigrationStatus) - if err != nil { - return err - } - mip.LastTestMigrationStatus = &lastTestMigrationStatus - } case "testMigrateState": if v != nil { var testMigrateState TestMigrationState @@ -10556,12 +13831,12 @@ func (mip *MigrationItemProperties) UnmarshalJSON(body []byte) error { } case "health": if v != nil { - var health ProtectionHealth + var health string err = json.Unmarshal(*v, &health) if err != nil { return err } - mip.Health = health + mip.Health = &health } case "healthErrors": if v != nil { @@ -10590,15 +13865,6 @@ func (mip *MigrationItemProperties) UnmarshalJSON(body []byte) error { } mip.CurrentJob = ¤tJob } - case "eventCorrelationId": - if v != nil { - var eventCorrelationID string - err = json.Unmarshal(*v, &eventCorrelationID) - if err != nil { - return err - } - mip.EventCorrelationID = &eventCorrelationID - } case "providerSpecificDetails": if v != nil { providerSpecificDetails, err := unmarshalBasicMigrationProviderSpecificSettings(*v) @@ -11502,6 +14768,67 @@ type NetworkProperties struct { NetworkType *string `json:"networkType,omitempty"` } +// NewProtectionProfile new Protection profile input. +type NewProtectionProfile struct { + // PolicyName - The protection profile input. + PolicyName *string `json:"policyName,omitempty"` + // RecoveryPointHistory - The duration in minutes until which the recovery points need to be stored. + RecoveryPointHistory *int32 `json:"recoveryPointHistory,omitempty"` + // CrashConsistentFrequencyInMinutes - The crash consistent snapshot frequency (in minutes). + CrashConsistentFrequencyInMinutes *int32 `json:"crashConsistentFrequencyInMinutes,omitempty"` + // AppConsistentFrequencyInMinutes - The app consistent snapshot frequency (in minutes). + AppConsistentFrequencyInMinutes *int32 `json:"appConsistentFrequencyInMinutes,omitempty"` + // MultiVMSyncStatus - A value indicating whether multi-VM sync has to be enabled. Value should be 'Enabled' or 'Disabled'. Possible values include: 'Enable', 'Disable' + MultiVMSyncStatus SetMultiVMSyncStatus `json:"multiVmSyncStatus,omitempty"` + // ResourceType - Possible values include: 'ResourceTypeProtectionProfileCustomDetails', 'ResourceTypeExisting', 'ResourceTypeNew' + ResourceType ResourceType `json:"resourceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for NewProtectionProfile. +func (npp NewProtectionProfile) MarshalJSON() ([]byte, error) { + npp.ResourceType = ResourceTypeNew + objectMap := make(map[string]interface{}) + if npp.PolicyName != nil { + objectMap["policyName"] = npp.PolicyName + } + if npp.RecoveryPointHistory != nil { + objectMap["recoveryPointHistory"] = npp.RecoveryPointHistory + } + if npp.CrashConsistentFrequencyInMinutes != nil { + objectMap["crashConsistentFrequencyInMinutes"] = npp.CrashConsistentFrequencyInMinutes + } + if npp.AppConsistentFrequencyInMinutes != nil { + objectMap["appConsistentFrequencyInMinutes"] = npp.AppConsistentFrequencyInMinutes + } + if npp.MultiVMSyncStatus != "" { + objectMap["multiVmSyncStatus"] = npp.MultiVMSyncStatus + } + if npp.ResourceType != "" { + objectMap["resourceType"] = npp.ResourceType + } + return json.Marshal(objectMap) +} + +// AsExistingProtectionProfile is the BasicProtectionProfileCustomDetails implementation for NewProtectionProfile. +func (npp NewProtectionProfile) AsExistingProtectionProfile() (*ExistingProtectionProfile, bool) { + return nil, false +} + +// AsNewProtectionProfile is the BasicProtectionProfileCustomDetails implementation for NewProtectionProfile. +func (npp NewProtectionProfile) AsNewProtectionProfile() (*NewProtectionProfile, bool) { + return &npp, true +} + +// AsProtectionProfileCustomDetails is the BasicProtectionProfileCustomDetails implementation for NewProtectionProfile. +func (npp NewProtectionProfile) AsProtectionProfileCustomDetails() (*ProtectionProfileCustomDetails, bool) { + return nil, false +} + +// AsBasicProtectionProfileCustomDetails is the BasicProtectionProfileCustomDetails implementation for NewProtectionProfile. +func (npp NewProtectionProfile) AsBasicProtectionProfileCustomDetails() (BasicProtectionProfileCustomDetails, bool) { + return &npp, true +} + // OperationsDiscovery operations discovery class. type OperationsDiscovery struct { // Name - Name of the API. The name of the operation being performed on this particular object. It should match the action name that appears in RBAC / the event service. Examples of operations include: * Microsoft.Compute/virtualMachine/capture/action * Microsoft.Compute/virtualMachine/restart/action * Microsoft.Compute/virtualMachine/write * Microsoft.Compute/virtualMachine/read * Microsoft.Compute/virtualMachine/delete Each action should include, in order: (1) Resource Provider Namespace (2) Type hierarchy for which the action applies (e.g. server/databases for a SQL Azure database) (3) Read, Write, Action or Delete indicating which type applies. If it is a PUT/PATCH on a collection or named value, Write should be used. If it is a GET, Read should be used. If it is a DELETE, Delete should be used. If it is a POST, Action should be used. As a note: all resource providers would need to include the "{Resource Provider Namespace}/register/action" operation in their response. This API is used to register for their service, and should include details about the operation (e.g. a localized name for the resource provider + any special considerations like PII release) @@ -11700,6 +15027,14 @@ type OSDiskDetails struct { VhdName *string `json:"vhdName,omitempty"` } +// OSVersionWrapper wrapper model for OSVersion to include version and service pack info. +type OSVersionWrapper struct { + // Version - The version. + Version *string `json:"version,omitempty"` + // ServicePack - Service pack. + ServicePack *string `json:"servicePack,omitempty"` +} + // PlannedFailoverInput input definition for planned failover. type PlannedFailoverInput struct { // Properties - Planned failover input properties @@ -11982,6 +15317,7 @@ type BasicPolicyProviderSpecificDetails interface { AsInMageAzureV2PolicyDetails() (*InMageAzureV2PolicyDetails, bool) AsInMageBasePolicyDetails() (*InMageBasePolicyDetails, bool) AsInMagePolicyDetails() (*InMagePolicyDetails, bool) + AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) AsVmwareCbtPolicyDetails() (*VmwareCbtPolicyDetails, bool) AsPolicyProviderSpecificDetails() (*PolicyProviderSpecificDetails, bool) @@ -11989,7 +15325,7 @@ type BasicPolicyProviderSpecificDetails interface { // PolicyProviderSpecificDetails base class for Provider specific details for policies. type PolicyProviderSpecificDetails struct { - // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageRcm', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicPolicyProviderSpecificDetails `json:"instanceType,omitempty"` } @@ -12033,6 +15369,10 @@ func unmarshalBasicPolicyProviderSpecificDetails(body []byte) (BasicPolicyProvid var impd InMagePolicyDetails err := json.Unmarshal(body, &impd) return impd, err + case string(InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageRcm): + var imrpd InMageRcmPolicyDetails + err := json.Unmarshal(body, &imrpd) + return imrpd, err case string(InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration): var rampd RcmAzureMigrationPolicyDetails err := json.Unmarshal(body, &rampd) @@ -12116,6 +15456,11 @@ func (ppsd PolicyProviderSpecificDetails) AsInMagePolicyDetails() (*InMagePolicy return nil, false } +// AsInMageRcmPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for PolicyProviderSpecificDetails. +func (ppsd PolicyProviderSpecificDetails) AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool) { + return nil, false +} + // AsRcmAzureMigrationPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for PolicyProviderSpecificDetails. func (ppsd PolicyProviderSpecificDetails) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) { return nil, false @@ -12144,13 +15489,14 @@ type BasicPolicyProviderSpecificInput interface { AsHyperVReplicaPolicyInput() (*HyperVReplicaPolicyInput, bool) AsInMageAzureV2PolicyInput() (*InMageAzureV2PolicyInput, bool) AsInMagePolicyInput() (*InMagePolicyInput, bool) + AsInMageRcmPolicyCreationInput() (*InMageRcmPolicyCreationInput, bool) AsVMwareCbtPolicyCreationInput() (*VMwareCbtPolicyCreationInput, bool) AsPolicyProviderSpecificInput() (*PolicyProviderSpecificInput, bool) } // PolicyProviderSpecificInput base class for provider specific input type PolicyProviderSpecificInput struct { - // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypePolicyProviderSpecificInput', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypePolicyProviderSpecificInput', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicPolicyProviderSpecificInput `json:"instanceType,omitempty"` } @@ -12186,6 +15532,10 @@ func unmarshalBasicPolicyProviderSpecificInput(body []byte) (BasicPolicyProvider var impi InMagePolicyInput err := json.Unmarshal(body, &impi) return impi, err + case string(InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageRcm): + var imrpci InMageRcmPolicyCreationInput + err := json.Unmarshal(body, &imrpci) + return imrpci, err case string(InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeVMwareCbt): var vmcpci VMwareCbtPolicyCreationInput err := json.Unmarshal(body, &vmcpci) @@ -12255,6 +15605,11 @@ func (ppsi PolicyProviderSpecificInput) AsInMagePolicyInput() (*InMagePolicyInpu return nil, false } +// AsInMageRcmPolicyCreationInput is the BasicPolicyProviderSpecificInput implementation for PolicyProviderSpecificInput. +func (ppsi PolicyProviderSpecificInput) AsInMageRcmPolicyCreationInput() (*InMageRcmPolicyCreationInput, bool) { + return nil, false +} + // AsVMwareCbtPolicyCreationInput is the BasicPolicyProviderSpecificInput implementation for PolicyProviderSpecificInput. func (ppsi PolicyProviderSpecificInput) AsVMwareCbtPolicyCreationInput() (*VMwareCbtPolicyCreationInput, bool) { return nil, false @@ -12328,6 +15683,152 @@ type ProcessServer struct { AgentExpiryDate *date.Time `json:"agentExpiryDate,omitempty"` // AgentVersionDetails - The agent version details. AgentVersionDetails *VersionDetails `json:"agentVersionDetails,omitempty"` + // Health - READ-ONLY; The health of Process Server. Possible values include: 'ProtectionHealthNone', 'ProtectionHealthNormal', 'ProtectionHealthWarning', 'ProtectionHealthCritical' + Health ProtectionHealth `json:"health,omitempty"` + // PsStatsRefreshTime - READ-ONLY; The process server stats refresh time. + PsStatsRefreshTime *date.Time `json:"psStatsRefreshTime,omitempty"` + // ThroughputUploadPendingDataInBytes - READ-ONLY; The uploading pending data in bytes. + ThroughputUploadPendingDataInBytes *int64 `json:"throughputUploadPendingDataInBytes,omitempty"` + // ThroughputInMBps - READ-ONLY; The throughput in MBps. + ThroughputInMBps *int64 `json:"throughputInMBps,omitempty"` + // ThroughputInBytes - READ-ONLY; The throughput in bytes. + ThroughputInBytes *int64 `json:"throughputInBytes,omitempty"` + // ThroughputStatus - READ-ONLY; The throughput status. + ThroughputStatus *string `json:"throughputStatus,omitempty"` + // MarsCommunicationStatus - READ-ONLY; The MARS communication status. + MarsCommunicationStatus *string `json:"marsCommunicationStatus,omitempty"` + // MarsRegistrationStatus - READ-ONLY; The MARS registration status. + MarsRegistrationStatus *string `json:"marsRegistrationStatus,omitempty"` +} + +// MarshalJSON is the custom marshaler for ProcessServer. +func (ps ProcessServer) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if ps.FriendlyName != nil { + objectMap["friendlyName"] = ps.FriendlyName + } + if ps.ID != nil { + objectMap["id"] = ps.ID + } + if ps.IPAddress != nil { + objectMap["ipAddress"] = ps.IPAddress + } + if ps.OsType != nil { + objectMap["osType"] = ps.OsType + } + if ps.AgentVersion != nil { + objectMap["agentVersion"] = ps.AgentVersion + } + if ps.LastHeartbeat != nil { + objectMap["lastHeartbeat"] = ps.LastHeartbeat + } + if ps.VersionStatus != nil { + objectMap["versionStatus"] = ps.VersionStatus + } + if ps.MobilityServiceUpdates != nil { + objectMap["mobilityServiceUpdates"] = ps.MobilityServiceUpdates + } + if ps.HostID != nil { + objectMap["hostId"] = ps.HostID + } + if ps.MachineCount != nil { + objectMap["machineCount"] = ps.MachineCount + } + if ps.ReplicationPairCount != nil { + objectMap["replicationPairCount"] = ps.ReplicationPairCount + } + if ps.SystemLoad != nil { + objectMap["systemLoad"] = ps.SystemLoad + } + if ps.SystemLoadStatus != nil { + objectMap["systemLoadStatus"] = ps.SystemLoadStatus + } + if ps.CPULoad != nil { + objectMap["cpuLoad"] = ps.CPULoad + } + if ps.CPULoadStatus != nil { + objectMap["cpuLoadStatus"] = ps.CPULoadStatus + } + if ps.TotalMemoryInBytes != nil { + objectMap["totalMemoryInBytes"] = ps.TotalMemoryInBytes + } + if ps.AvailableMemoryInBytes != nil { + objectMap["availableMemoryInBytes"] = ps.AvailableMemoryInBytes + } + if ps.MemoryUsageStatus != nil { + objectMap["memoryUsageStatus"] = ps.MemoryUsageStatus + } + if ps.TotalSpaceInBytes != nil { + objectMap["totalSpaceInBytes"] = ps.TotalSpaceInBytes + } + if ps.AvailableSpaceInBytes != nil { + objectMap["availableSpaceInBytes"] = ps.AvailableSpaceInBytes + } + if ps.SpaceUsageStatus != nil { + objectMap["spaceUsageStatus"] = ps.SpaceUsageStatus + } + if ps.PsServiceStatus != nil { + objectMap["psServiceStatus"] = ps.PsServiceStatus + } + if ps.SslCertExpiryDate != nil { + objectMap["sslCertExpiryDate"] = ps.SslCertExpiryDate + } + if ps.SslCertExpiryRemainingDays != nil { + objectMap["sslCertExpiryRemainingDays"] = ps.SslCertExpiryRemainingDays + } + if ps.OsVersion != nil { + objectMap["osVersion"] = ps.OsVersion + } + if ps.HealthErrors != nil { + objectMap["healthErrors"] = ps.HealthErrors + } + if ps.AgentExpiryDate != nil { + objectMap["agentExpiryDate"] = ps.AgentExpiryDate + } + if ps.AgentVersionDetails != nil { + objectMap["agentVersionDetails"] = ps.AgentVersionDetails + } + return json.Marshal(objectMap) +} + +// ProcessServerDetails process server details. +type ProcessServerDetails struct { + // ID - READ-ONLY; The process server Id. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The process server name. + Name *string `json:"name,omitempty"` + // Version - READ-ONLY; The process server version. + Version *string `json:"version,omitempty"` + // LastHeartbeatUtc - READ-ONLY; The last heartbeat received from the process server. + LastHeartbeatUtc *date.Time `json:"lastHeartbeatUtc,omitempty"` + // TotalMemoryInBytes - READ-ONLY; The total memory. + TotalMemoryInBytes *int64 `json:"totalMemoryInBytes,omitempty"` + // AvailableMemoryInBytes - READ-ONLY; The available memory. + AvailableMemoryInBytes *int64 `json:"availableMemoryInBytes,omitempty"` + // UsedMemoryInBytes - READ-ONLY; The used memory. + UsedMemoryInBytes *int64 `json:"usedMemoryInBytes,omitempty"` + // MemoryUsagePercentage - READ-ONLY; The memory usage percentage. + MemoryUsagePercentage *float64 `json:"memoryUsagePercentage,omitempty"` + // TotalSpaceInBytes - READ-ONLY; The total disk space. + TotalSpaceInBytes *int64 `json:"totalSpaceInBytes,omitempty"` + // AvailableSpaceInBytes - READ-ONLY; The available disk space. + AvailableSpaceInBytes *int64 `json:"availableSpaceInBytes,omitempty"` + // UsedSpaceInBytes - READ-ONLY; The used disk space. + UsedSpaceInBytes *int64 `json:"usedSpaceInBytes,omitempty"` + // FreeSpacePercentage - READ-ONLY; The free disk space percentage. + FreeSpacePercentage *float64 `json:"freeSpacePercentage,omitempty"` + // ThroughputUploadPendingDataInBytes - READ-ONLY; The uploading pending data in bytes. + ThroughputUploadPendingDataInBytes *int64 `json:"throughputUploadPendingDataInBytes,omitempty"` + // ThroughputInBytes - READ-ONLY; The throughput in bytes. + ThroughputInBytes *int64 `json:"throughputInBytes,omitempty"` + // ProcessorUsagePercentage - READ-ONLY; The processor usage percentage. + ProcessorUsagePercentage *float64 `json:"processorUsagePercentage,omitempty"` + // Health - READ-ONLY; The health of the process server. Possible values include: 'ProtectionHealthNone', 'ProtectionHealthNormal', 'ProtectionHealthWarning', 'ProtectionHealthCritical' + Health ProtectionHealth `json:"health,omitempty"` + // HealthErrors - READ-ONLY; The health errors. + HealthErrors *[]HealthError `json:"healthErrors,omitempty"` + // HistoricHealth - READ-ONLY; The historic health of the process server based on the health in last 24 hours. Possible values include: 'ProtectionHealthNone', 'ProtectionHealthNormal', 'ProtectionHealthWarning', 'ProtectionHealthCritical' + HistoricHealth ProtectionHealth `json:"historicHealth,omitempty"` } // ProtectableItem replication protected item @@ -13252,6 +16753,90 @@ type ProtectionContainerProperties struct { FabricSpecificDetails *ProtectionContainerFabricSpecificDetails `json:"fabricSpecificDetails,omitempty"` } +// BasicProtectionProfileCustomDetails protection Profile custom input. +type BasicProtectionProfileCustomDetails interface { + AsExistingProtectionProfile() (*ExistingProtectionProfile, bool) + AsNewProtectionProfile() (*NewProtectionProfile, bool) + AsProtectionProfileCustomDetails() (*ProtectionProfileCustomDetails, bool) +} + +// ProtectionProfileCustomDetails protection Profile custom input. +type ProtectionProfileCustomDetails struct { + // ResourceType - Possible values include: 'ResourceTypeProtectionProfileCustomDetails', 'ResourceTypeExisting', 'ResourceTypeNew' + ResourceType ResourceType `json:"resourceType,omitempty"` +} + +func unmarshalBasicProtectionProfileCustomDetails(body []byte) (BasicProtectionProfileCustomDetails, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["resourceType"] { + case string(ResourceTypeExisting): + var epp ExistingProtectionProfile + err := json.Unmarshal(body, &epp) + return epp, err + case string(ResourceTypeNew): + var npp NewProtectionProfile + err := json.Unmarshal(body, &npp) + return npp, err + default: + var ppcd ProtectionProfileCustomDetails + err := json.Unmarshal(body, &ppcd) + return ppcd, err + } +} +func unmarshalBasicProtectionProfileCustomDetailsArray(body []byte) ([]BasicProtectionProfileCustomDetails, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + ppcdArray := make([]BasicProtectionProfileCustomDetails, len(rawMessages)) + + for index, rawMessage := range rawMessages { + ppcd, err := unmarshalBasicProtectionProfileCustomDetails(*rawMessage) + if err != nil { + return nil, err + } + ppcdArray[index] = ppcd + } + return ppcdArray, nil +} + +// MarshalJSON is the custom marshaler for ProtectionProfileCustomDetails. +func (ppcd ProtectionProfileCustomDetails) MarshalJSON() ([]byte, error) { + ppcd.ResourceType = ResourceTypeProtectionProfileCustomDetails + objectMap := make(map[string]interface{}) + if ppcd.ResourceType != "" { + objectMap["resourceType"] = ppcd.ResourceType + } + return json.Marshal(objectMap) +} + +// AsExistingProtectionProfile is the BasicProtectionProfileCustomDetails implementation for ProtectionProfileCustomDetails. +func (ppcd ProtectionProfileCustomDetails) AsExistingProtectionProfile() (*ExistingProtectionProfile, bool) { + return nil, false +} + +// AsNewProtectionProfile is the BasicProtectionProfileCustomDetails implementation for ProtectionProfileCustomDetails. +func (ppcd ProtectionProfileCustomDetails) AsNewProtectionProfile() (*NewProtectionProfile, bool) { + return nil, false +} + +// AsProtectionProfileCustomDetails is the BasicProtectionProfileCustomDetails implementation for ProtectionProfileCustomDetails. +func (ppcd ProtectionProfileCustomDetails) AsProtectionProfileCustomDetails() (*ProtectionProfileCustomDetails, bool) { + return &ppcd, true +} + +// AsBasicProtectionProfileCustomDetails is the BasicProtectionProfileCustomDetails implementation for ProtectionProfileCustomDetails. +func (ppcd ProtectionProfileCustomDetails) AsBasicProtectionProfileCustomDetails() (BasicProtectionProfileCustomDetails, bool) { + return &ppcd, true +} + // ProviderError this class contains the error details per object. type ProviderError struct { // ErrorCode - The Error code. @@ -13384,12 +16969,13 @@ func (psfi ProviderSpecificFailoverInput) AsBasicProviderSpecificFailoverInput() type BasicProviderSpecificRecoveryPointDetails interface { AsA2ARecoveryPointDetails() (*A2ARecoveryPointDetails, bool) AsInMageAzureV2RecoveryPointDetails() (*InMageAzureV2RecoveryPointDetails, bool) + AsInMageRcmRecoveryPointDetails() (*InMageRcmRecoveryPointDetails, bool) AsProviderSpecificRecoveryPointDetails() (*ProviderSpecificRecoveryPointDetails, bool) } // ProviderSpecificRecoveryPointDetails replication provider specific recovery point details. type ProviderSpecificRecoveryPointDetails struct { - // InstanceType - Possible values include: 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeProviderSpecificRecoveryPointDetails', 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeA2A', 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeInMageAzureV2' + // InstanceType - Possible values include: 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeProviderSpecificRecoveryPointDetails', 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeA2A', 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeInMageRcm' InstanceType InstanceTypeBasicProviderSpecificRecoveryPointDetails `json:"instanceType,omitempty"` } @@ -13409,6 +16995,10 @@ func unmarshalBasicProviderSpecificRecoveryPointDetails(body []byte) (BasicProvi var imavrpd InMageAzureV2RecoveryPointDetails err := json.Unmarshal(body, &imavrpd) return imavrpd, err + case string(InstanceTypeBasicProviderSpecificRecoveryPointDetailsInstanceTypeInMageRcm): + var imrrpd InMageRcmRecoveryPointDetails + err := json.Unmarshal(body, &imrrpd) + return imrrpd, err default: var psrpd ProviderSpecificRecoveryPointDetails err := json.Unmarshal(body, &psrpd) @@ -13454,6 +17044,11 @@ func (psrpd ProviderSpecificRecoveryPointDetails) AsInMageAzureV2RecoveryPointDe return nil, false } +// AsInMageRcmRecoveryPointDetails is the BasicProviderSpecificRecoveryPointDetails implementation for ProviderSpecificRecoveryPointDetails. +func (psrpd ProviderSpecificRecoveryPointDetails) AsInMageRcmRecoveryPointDetails() (*InMageRcmRecoveryPointDetails, bool) { + return nil, false +} + // AsProviderSpecificRecoveryPointDetails is the BasicProviderSpecificRecoveryPointDetails implementation for ProviderSpecificRecoveryPointDetails. func (psrpd ProviderSpecificRecoveryPointDetails) AsProviderSpecificRecoveryPointDetails() (*ProviderSpecificRecoveryPointDetails, bool) { return &psrpd, true @@ -13464,6 +17059,22 @@ func (psrpd ProviderSpecificRecoveryPointDetails) AsBasicProviderSpecificRecover return &psrpd, true } +// PushInstallerDetails push installer details. +type PushInstallerDetails struct { + // ID - READ-ONLY; The push installer Id. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The push installer name. + Name *string `json:"name,omitempty"` + // Version - READ-ONLY; The push installer version. + Version *string `json:"version,omitempty"` + // LastHeartbeatUtc - READ-ONLY; The last heartbeat received from the push installer. + LastHeartbeatUtc *date.Time `json:"lastHeartbeatUtc,omitempty"` + // Health - READ-ONLY; The health of the push installer. Possible values include: 'ProtectionHealthNone', 'ProtectionHealthNormal', 'ProtectionHealthWarning', 'ProtectionHealthCritical' + Health ProtectionHealth `json:"health,omitempty"` + // HealthErrors - READ-ONLY; The health errors. + HealthErrors *[]HealthError `json:"healthErrors,omitempty"` +} + // RcmAzureMigrationPolicyDetails RCM based Azure migration specific policy details. type RcmAzureMigrationPolicyDetails struct { // RecoveryPointThresholdInMinutes - The recovery point threshold in minutes. @@ -13476,7 +17087,7 @@ type RcmAzureMigrationPolicyDetails struct { MultiVMSyncStatus MultiVMSyncStatus `json:"multiVmSyncStatus,omitempty"` // CrashConsistentFrequencyInMinutes - The crash consistent snapshot frequency in minutes. CrashConsistentFrequencyInMinutes *int32 `json:"crashConsistentFrequencyInMinutes,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageRcm', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicPolicyProviderSpecificDetails `json:"instanceType,omitempty"` } @@ -13545,6 +17156,11 @@ func (rampd RcmAzureMigrationPolicyDetails) AsInMagePolicyDetails() (*InMagePoli return nil, false } +// AsInMageRcmPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for RcmAzureMigrationPolicyDetails. +func (rampd RcmAzureMigrationPolicyDetails) AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool) { + return nil, false +} + // AsRcmAzureMigrationPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for RcmAzureMigrationPolicyDetails. func (rampd RcmAzureMigrationPolicyDetails) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) { return &rampd, true @@ -13565,6 +17181,96 @@ func (rampd RcmAzureMigrationPolicyDetails) AsBasicPolicyProviderSpecificDetails return &rampd, true } +// RcmProxyDetails RCM proxy details. +type RcmProxyDetails struct { + // ID - READ-ONLY; The RCM proxy Id. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The RCM proxy name. + Name *string `json:"name,omitempty"` + // Version - READ-ONLY; The RCM proxy version. + Version *string `json:"version,omitempty"` + // LastHeartbeatUtc - READ-ONLY; The last heartbeat received from the RCM proxy. + LastHeartbeatUtc *date.Time `json:"lastHeartbeatUtc,omitempty"` + // Health - READ-ONLY; The health of the RCM proxy. Possible values include: 'ProtectionHealthNone', 'ProtectionHealthNormal', 'ProtectionHealthWarning', 'ProtectionHealthCritical' + Health ProtectionHealth `json:"health,omitempty"` + // HealthErrors - READ-ONLY; The health errors. + HealthErrors *[]HealthError `json:"healthErrors,omitempty"` +} + +// BasicRecoveryAvailabilitySetCustomDetails recovery Availability Set custom input. +type BasicRecoveryAvailabilitySetCustomDetails interface { + AsExistingRecoveryAvailabilitySet() (*ExistingRecoveryAvailabilitySet, bool) + AsRecoveryAvailabilitySetCustomDetails() (*RecoveryAvailabilitySetCustomDetails, bool) +} + +// RecoveryAvailabilitySetCustomDetails recovery Availability Set custom input. +type RecoveryAvailabilitySetCustomDetails struct { + // ResourceType - Possible values include: 'ResourceTypeBasicRecoveryAvailabilitySetCustomDetailsResourceTypeRecoveryAvailabilitySetCustomDetails', 'ResourceTypeBasicRecoveryAvailabilitySetCustomDetailsResourceTypeExisting' + ResourceType ResourceTypeBasicRecoveryAvailabilitySetCustomDetails `json:"resourceType,omitempty"` +} + +func unmarshalBasicRecoveryAvailabilitySetCustomDetails(body []byte) (BasicRecoveryAvailabilitySetCustomDetails, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["resourceType"] { + case string(ResourceTypeBasicRecoveryAvailabilitySetCustomDetailsResourceTypeExisting): + var eras ExistingRecoveryAvailabilitySet + err := json.Unmarshal(body, &eras) + return eras, err + default: + var rascd RecoveryAvailabilitySetCustomDetails + err := json.Unmarshal(body, &rascd) + return rascd, err + } +} +func unmarshalBasicRecoveryAvailabilitySetCustomDetailsArray(body []byte) ([]BasicRecoveryAvailabilitySetCustomDetails, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + rascdArray := make([]BasicRecoveryAvailabilitySetCustomDetails, len(rawMessages)) + + for index, rawMessage := range rawMessages { + rascd, err := unmarshalBasicRecoveryAvailabilitySetCustomDetails(*rawMessage) + if err != nil { + return nil, err + } + rascdArray[index] = rascd + } + return rascdArray, nil +} + +// MarshalJSON is the custom marshaler for RecoveryAvailabilitySetCustomDetails. +func (rascd RecoveryAvailabilitySetCustomDetails) MarshalJSON() ([]byte, error) { + rascd.ResourceType = ResourceTypeBasicRecoveryAvailabilitySetCustomDetailsResourceTypeRecoveryAvailabilitySetCustomDetails + objectMap := make(map[string]interface{}) + if rascd.ResourceType != "" { + objectMap["resourceType"] = rascd.ResourceType + } + return json.Marshal(objectMap) +} + +// AsExistingRecoveryAvailabilitySet is the BasicRecoveryAvailabilitySetCustomDetails implementation for RecoveryAvailabilitySetCustomDetails. +func (rascd RecoveryAvailabilitySetCustomDetails) AsExistingRecoveryAvailabilitySet() (*ExistingRecoveryAvailabilitySet, bool) { + return nil, false +} + +// AsRecoveryAvailabilitySetCustomDetails is the BasicRecoveryAvailabilitySetCustomDetails implementation for RecoveryAvailabilitySetCustomDetails. +func (rascd RecoveryAvailabilitySetCustomDetails) AsRecoveryAvailabilitySetCustomDetails() (*RecoveryAvailabilitySetCustomDetails, bool) { + return &rascd, true +} + +// AsBasicRecoveryAvailabilitySetCustomDetails is the BasicRecoveryAvailabilitySetCustomDetails implementation for RecoveryAvailabilitySetCustomDetails. +func (rascd RecoveryAvailabilitySetCustomDetails) AsBasicRecoveryAvailabilitySetCustomDetails() (BasicRecoveryAvailabilitySetCustomDetails, bool) { + return &rascd, true +} + // RecoveryPlan recovery plan details. type RecoveryPlan struct { autorest.Response `json:"-"` @@ -13592,6 +17298,47 @@ func (rp RecoveryPlan) MarshalJSON() ([]byte, error) { return json.Marshal(objectMap) } +// RecoveryPlanA2ADetails recovery plan A2A specific details. +type RecoveryPlanA2ADetails struct { + // PrimaryZone - The primary zone. + PrimaryZone *string `json:"primaryZone,omitempty"` + // RecoveryZone - The recovery zone. + RecoveryZone *string `json:"recoveryZone,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicRecoveryPlanProviderSpecificDetailsInstanceTypeRecoveryPlanProviderSpecificDetails', 'InstanceTypeBasicRecoveryPlanProviderSpecificDetailsInstanceTypeA2A' + InstanceType InstanceTypeBasicRecoveryPlanProviderSpecificDetails `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for RecoveryPlanA2ADetails. +func (rpad RecoveryPlanA2ADetails) MarshalJSON() ([]byte, error) { + rpad.InstanceType = InstanceTypeBasicRecoveryPlanProviderSpecificDetailsInstanceTypeA2A + objectMap := make(map[string]interface{}) + if rpad.PrimaryZone != nil { + objectMap["primaryZone"] = rpad.PrimaryZone + } + if rpad.RecoveryZone != nil { + objectMap["recoveryZone"] = rpad.RecoveryZone + } + if rpad.InstanceType != "" { + objectMap["instanceType"] = rpad.InstanceType + } + return json.Marshal(objectMap) +} + +// AsRecoveryPlanA2ADetails is the BasicRecoveryPlanProviderSpecificDetails implementation for RecoveryPlanA2ADetails. +func (rpad RecoveryPlanA2ADetails) AsRecoveryPlanA2ADetails() (*RecoveryPlanA2ADetails, bool) { + return &rpad, true +} + +// AsRecoveryPlanProviderSpecificDetails is the BasicRecoveryPlanProviderSpecificDetails implementation for RecoveryPlanA2ADetails. +func (rpad RecoveryPlanA2ADetails) AsRecoveryPlanProviderSpecificDetails() (*RecoveryPlanProviderSpecificDetails, bool) { + return nil, false +} + +// AsBasicRecoveryPlanProviderSpecificDetails is the BasicRecoveryPlanProviderSpecificDetails implementation for RecoveryPlanA2ADetails. +func (rpad RecoveryPlanA2ADetails) AsBasicRecoveryPlanProviderSpecificDetails() (BasicRecoveryPlanProviderSpecificDetails, bool) { + return &rpad, true +} + // RecoveryPlanA2AFailoverInput recovery plan A2A failover input. type RecoveryPlanA2AFailoverInput struct { // RecoveryPointType - The recovery point type. Possible values include: 'Latest', 'LatestApplicationConsistent', 'LatestCrashConsistent', 'LatestProcessed' @@ -13600,7 +17347,7 @@ type RecoveryPlanA2AFailoverInput struct { CloudServiceCreationOption *string `json:"cloudServiceCreationOption,omitempty"` // MultiVMSyncPointOption - A value indicating whether multi VM sync enabled VMs should use multi VM sync points for failover. Possible values include: 'UseMultiVMSyncRecoveryPoint', 'UsePerVMRecoveryPoint' MultiVMSyncPointOption MultiVMSyncPointOption `json:"multiVmSyncPointOption,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeRecoveryPlanProviderSpecificFailoverInput', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeA2A', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMage' + // InstanceType - Possible values include: 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeRecoveryPlanProviderSpecificFailoverInput', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeA2A', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMage', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageRcm' InstanceType InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInput `json:"instanceType,omitempty"` } @@ -13648,6 +17395,11 @@ func (rpafi RecoveryPlanA2AFailoverInput) AsRecoveryPlanInMageFailoverInput() (* return nil, false } +// AsRecoveryPlanInMageRcmFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanA2AFailoverInput. +func (rpafi RecoveryPlanA2AFailoverInput) AsRecoveryPlanInMageRcmFailoverInput() (*RecoveryPlanInMageRcmFailoverInput, bool) { + return nil, false +} + // AsRecoveryPlanProviderSpecificFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanA2AFailoverInput. func (rpafi RecoveryPlanA2AFailoverInput) AsRecoveryPlanProviderSpecificFailoverInput() (*RecoveryPlanProviderSpecificFailoverInput, bool) { return nil, false @@ -13658,6 +17410,47 @@ func (rpafi RecoveryPlanA2AFailoverInput) AsBasicRecoveryPlanProviderSpecificFai return &rpafi, true } +// RecoveryPlanA2AInput recovery plan A2A input. +type RecoveryPlanA2AInput struct { + // PrimaryZone - The primary zone. + PrimaryZone *string `json:"primaryZone,omitempty"` + // RecoveryZone - The recovery zone. + RecoveryZone *string `json:"recoveryZone,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicRecoveryPlanProviderSpecificInputInstanceTypeRecoveryPlanProviderSpecificInput', 'InstanceTypeBasicRecoveryPlanProviderSpecificInputInstanceTypeA2A' + InstanceType InstanceTypeBasicRecoveryPlanProviderSpecificInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for RecoveryPlanA2AInput. +func (rpai RecoveryPlanA2AInput) MarshalJSON() ([]byte, error) { + rpai.InstanceType = InstanceTypeBasicRecoveryPlanProviderSpecificInputInstanceTypeA2A + objectMap := make(map[string]interface{}) + if rpai.PrimaryZone != nil { + objectMap["primaryZone"] = rpai.PrimaryZone + } + if rpai.RecoveryZone != nil { + objectMap["recoveryZone"] = rpai.RecoveryZone + } + if rpai.InstanceType != "" { + objectMap["instanceType"] = rpai.InstanceType + } + return json.Marshal(objectMap) +} + +// AsRecoveryPlanA2AInput is the BasicRecoveryPlanProviderSpecificInput implementation for RecoveryPlanA2AInput. +func (rpai RecoveryPlanA2AInput) AsRecoveryPlanA2AInput() (*RecoveryPlanA2AInput, bool) { + return &rpai, true +} + +// AsRecoveryPlanProviderSpecificInput is the BasicRecoveryPlanProviderSpecificInput implementation for RecoveryPlanA2AInput. +func (rpai RecoveryPlanA2AInput) AsRecoveryPlanProviderSpecificInput() (*RecoveryPlanProviderSpecificInput, bool) { + return nil, false +} + +// AsBasicRecoveryPlanProviderSpecificInput is the BasicRecoveryPlanProviderSpecificInput implementation for RecoveryPlanA2AInput. +func (rpai RecoveryPlanA2AInput) AsBasicRecoveryPlanProviderSpecificInput() (BasicRecoveryPlanProviderSpecificInput, bool) { + return &rpai, true +} + // RecoveryPlanAction recovery plan action details. type RecoveryPlanAction struct { // ActionName - The action name. @@ -14108,7 +17901,7 @@ type RecoveryPlanHyperVReplicaAzureFailbackInput struct { DataSyncOption DataSyncStatus `json:"dataSyncOption,omitempty"` // RecoveryVMCreationOption - The ALR option. Possible values include: 'CreateVMIfNotFound', 'NoAction' RecoveryVMCreationOption AlternateLocationRecoveryOption `json:"recoveryVmCreationOption,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeRecoveryPlanProviderSpecificFailoverInput', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeA2A', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMage' + // InstanceType - Possible values include: 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeRecoveryPlanProviderSpecificFailoverInput', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeA2A', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMage', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageRcm' InstanceType InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInput `json:"instanceType,omitempty"` } @@ -14153,6 +17946,11 @@ func (rphvrafi RecoveryPlanHyperVReplicaAzureFailbackInput) AsRecoveryPlanInMage return nil, false } +// AsRecoveryPlanInMageRcmFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanHyperVReplicaAzureFailbackInput. +func (rphvrafi RecoveryPlanHyperVReplicaAzureFailbackInput) AsRecoveryPlanInMageRcmFailoverInput() (*RecoveryPlanInMageRcmFailoverInput, bool) { + return nil, false +} + // AsRecoveryPlanProviderSpecificFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanHyperVReplicaAzureFailbackInput. func (rphvrafi RecoveryPlanHyperVReplicaAzureFailbackInput) AsRecoveryPlanProviderSpecificFailoverInput() (*RecoveryPlanProviderSpecificFailoverInput, bool) { return nil, false @@ -14173,7 +17971,7 @@ type RecoveryPlanHyperVReplicaAzureFailoverInput struct { SecondaryKekCertificatePfx *string `json:"secondaryKekCertificatePfx,omitempty"` // RecoveryPointType - The recovery point type. Possible values include: 'HyperVReplicaAzureRpRecoveryPointTypeLatest', 'HyperVReplicaAzureRpRecoveryPointTypeLatestApplicationConsistent', 'HyperVReplicaAzureRpRecoveryPointTypeLatestProcessed' RecoveryPointType HyperVReplicaAzureRpRecoveryPointType `json:"recoveryPointType,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeRecoveryPlanProviderSpecificFailoverInput', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeA2A', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMage' + // InstanceType - Possible values include: 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeRecoveryPlanProviderSpecificFailoverInput', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeA2A', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMage', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageRcm' InstanceType InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInput `json:"instanceType,omitempty"` } @@ -14224,6 +18022,11 @@ func (rphvrafi RecoveryPlanHyperVReplicaAzureFailoverInput) AsRecoveryPlanInMage return nil, false } +// AsRecoveryPlanInMageRcmFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanHyperVReplicaAzureFailoverInput. +func (rphvrafi RecoveryPlanHyperVReplicaAzureFailoverInput) AsRecoveryPlanInMageRcmFailoverInput() (*RecoveryPlanInMageRcmFailoverInput, bool) { + return nil, false +} + // AsRecoveryPlanProviderSpecificFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanHyperVReplicaAzureFailoverInput. func (rphvrafi RecoveryPlanHyperVReplicaAzureFailoverInput) AsRecoveryPlanProviderSpecificFailoverInput() (*RecoveryPlanProviderSpecificFailoverInput, bool) { return nil, false @@ -14242,7 +18045,7 @@ type RecoveryPlanInMageAzureV2FailoverInput struct { RecoveryPointType InMageV2RpRecoveryPointType `json:"recoveryPointType,omitempty"` // UseMultiVMSyncPoint - A value indicating whether multi VM sync enabled VMs should use multi VM sync points for failover. UseMultiVMSyncPoint *string `json:"useMultiVmSyncPoint,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeRecoveryPlanProviderSpecificFailoverInput', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeA2A', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMage' + // InstanceType - Possible values include: 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeRecoveryPlanProviderSpecificFailoverInput', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeA2A', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMage', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageRcm' InstanceType InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInput `json:"instanceType,omitempty"` } @@ -14290,6 +18093,11 @@ func (rpimavfi RecoveryPlanInMageAzureV2FailoverInput) AsRecoveryPlanInMageFailo return nil, false } +// AsRecoveryPlanInMageRcmFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageAzureV2FailoverInput. +func (rpimavfi RecoveryPlanInMageAzureV2FailoverInput) AsRecoveryPlanInMageRcmFailoverInput() (*RecoveryPlanInMageRcmFailoverInput, bool) { + return nil, false +} + // AsRecoveryPlanProviderSpecificFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageAzureV2FailoverInput. func (rpimavfi RecoveryPlanInMageAzureV2FailoverInput) AsRecoveryPlanProviderSpecificFailoverInput() (*RecoveryPlanProviderSpecificFailoverInput, bool) { return nil, false @@ -14300,60 +18108,131 @@ func (rpimavfi RecoveryPlanInMageAzureV2FailoverInput) AsBasicRecoveryPlanProvid return &rpimavfi, true } -// RecoveryPlanInMageFailoverInput recovery plan InMage failover input. -type RecoveryPlanInMageFailoverInput struct { - // RecoveryPointType - The recovery point type. Possible values include: 'RpInMageRecoveryPointTypeLatestTime', 'RpInMageRecoveryPointTypeLatestTag', 'RpInMageRecoveryPointTypeCustom' - RecoveryPointType RpInMageRecoveryPointType `json:"recoveryPointType,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeRecoveryPlanProviderSpecificFailoverInput', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeA2A', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMage' +// RecoveryPlanInMageFailoverInput recovery plan InMage failover input. +type RecoveryPlanInMageFailoverInput struct { + // RecoveryPointType - The recovery point type. Possible values include: 'RpInMageRecoveryPointTypeLatestTime', 'RpInMageRecoveryPointTypeLatestTag', 'RpInMageRecoveryPointTypeCustom' + RecoveryPointType RpInMageRecoveryPointType `json:"recoveryPointType,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeRecoveryPlanProviderSpecificFailoverInput', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeA2A', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMage', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageRcm' + InstanceType InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInput `json:"instanceType,omitempty"` +} + +// MarshalJSON is the custom marshaler for RecoveryPlanInMageFailoverInput. +func (rpimfi RecoveryPlanInMageFailoverInput) MarshalJSON() ([]byte, error) { + rpimfi.InstanceType = InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMage + objectMap := make(map[string]interface{}) + if rpimfi.RecoveryPointType != "" { + objectMap["recoveryPointType"] = rpimfi.RecoveryPointType + } + if rpimfi.InstanceType != "" { + objectMap["instanceType"] = rpimfi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsRecoveryPlanA2AFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageFailoverInput. +func (rpimfi RecoveryPlanInMageFailoverInput) AsRecoveryPlanA2AFailoverInput() (*RecoveryPlanA2AFailoverInput, bool) { + return nil, false +} + +// AsRecoveryPlanHyperVReplicaAzureFailbackInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageFailoverInput. +func (rpimfi RecoveryPlanInMageFailoverInput) AsRecoveryPlanHyperVReplicaAzureFailbackInput() (*RecoveryPlanHyperVReplicaAzureFailbackInput, bool) { + return nil, false +} + +// AsRecoveryPlanHyperVReplicaAzureFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageFailoverInput. +func (rpimfi RecoveryPlanInMageFailoverInput) AsRecoveryPlanHyperVReplicaAzureFailoverInput() (*RecoveryPlanHyperVReplicaAzureFailoverInput, bool) { + return nil, false +} + +// AsRecoveryPlanInMageAzureV2FailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageFailoverInput. +func (rpimfi RecoveryPlanInMageFailoverInput) AsRecoveryPlanInMageAzureV2FailoverInput() (*RecoveryPlanInMageAzureV2FailoverInput, bool) { + return nil, false +} + +// AsRecoveryPlanInMageFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageFailoverInput. +func (rpimfi RecoveryPlanInMageFailoverInput) AsRecoveryPlanInMageFailoverInput() (*RecoveryPlanInMageFailoverInput, bool) { + return &rpimfi, true +} + +// AsRecoveryPlanInMageRcmFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageFailoverInput. +func (rpimfi RecoveryPlanInMageFailoverInput) AsRecoveryPlanInMageRcmFailoverInput() (*RecoveryPlanInMageRcmFailoverInput, bool) { + return nil, false +} + +// AsRecoveryPlanProviderSpecificFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageFailoverInput. +func (rpimfi RecoveryPlanInMageFailoverInput) AsRecoveryPlanProviderSpecificFailoverInput() (*RecoveryPlanProviderSpecificFailoverInput, bool) { + return nil, false +} + +// AsBasicRecoveryPlanProviderSpecificFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageFailoverInput. +func (rpimfi RecoveryPlanInMageFailoverInput) AsBasicRecoveryPlanProviderSpecificFailoverInput() (BasicRecoveryPlanProviderSpecificFailoverInput, bool) { + return &rpimfi, true +} + +// RecoveryPlanInMageRcmFailoverInput recovery plan InMageRcm failover input. +type RecoveryPlanInMageRcmFailoverInput struct { + // RecoveryPointType - The recovery point type. Possible values include: 'RecoveryPlanPointTypeLatest', 'RecoveryPlanPointTypeLatestApplicationConsistent', 'RecoveryPlanPointTypeLatestCrashConsistent', 'RecoveryPlanPointTypeLatestProcessed' + RecoveryPointType RecoveryPlanPointType `json:"recoveryPointType,omitempty"` + // UseMultiVMSyncPoint - A value indicating whether multi VM sync enabled VMs should use multi VM sync points for failover. + UseMultiVMSyncPoint *string `json:"useMultiVmSyncPoint,omitempty"` + // InstanceType - Possible values include: 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeRecoveryPlanProviderSpecificFailoverInput', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeA2A', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMage', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageRcm' InstanceType InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInput `json:"instanceType,omitempty"` } -// MarshalJSON is the custom marshaler for RecoveryPlanInMageFailoverInput. -func (rpimfi RecoveryPlanInMageFailoverInput) MarshalJSON() ([]byte, error) { - rpimfi.InstanceType = InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMage +// MarshalJSON is the custom marshaler for RecoveryPlanInMageRcmFailoverInput. +func (rpimrfi RecoveryPlanInMageRcmFailoverInput) MarshalJSON() ([]byte, error) { + rpimrfi.InstanceType = InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageRcm objectMap := make(map[string]interface{}) - if rpimfi.RecoveryPointType != "" { - objectMap["recoveryPointType"] = rpimfi.RecoveryPointType + if rpimrfi.RecoveryPointType != "" { + objectMap["recoveryPointType"] = rpimrfi.RecoveryPointType } - if rpimfi.InstanceType != "" { - objectMap["instanceType"] = rpimfi.InstanceType + if rpimrfi.UseMultiVMSyncPoint != nil { + objectMap["useMultiVmSyncPoint"] = rpimrfi.UseMultiVMSyncPoint + } + if rpimrfi.InstanceType != "" { + objectMap["instanceType"] = rpimrfi.InstanceType } return json.Marshal(objectMap) } -// AsRecoveryPlanA2AFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageFailoverInput. -func (rpimfi RecoveryPlanInMageFailoverInput) AsRecoveryPlanA2AFailoverInput() (*RecoveryPlanA2AFailoverInput, bool) { +// AsRecoveryPlanA2AFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageRcmFailoverInput. +func (rpimrfi RecoveryPlanInMageRcmFailoverInput) AsRecoveryPlanA2AFailoverInput() (*RecoveryPlanA2AFailoverInput, bool) { return nil, false } -// AsRecoveryPlanHyperVReplicaAzureFailbackInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageFailoverInput. -func (rpimfi RecoveryPlanInMageFailoverInput) AsRecoveryPlanHyperVReplicaAzureFailbackInput() (*RecoveryPlanHyperVReplicaAzureFailbackInput, bool) { +// AsRecoveryPlanHyperVReplicaAzureFailbackInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageRcmFailoverInput. +func (rpimrfi RecoveryPlanInMageRcmFailoverInput) AsRecoveryPlanHyperVReplicaAzureFailbackInput() (*RecoveryPlanHyperVReplicaAzureFailbackInput, bool) { return nil, false } -// AsRecoveryPlanHyperVReplicaAzureFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageFailoverInput. -func (rpimfi RecoveryPlanInMageFailoverInput) AsRecoveryPlanHyperVReplicaAzureFailoverInput() (*RecoveryPlanHyperVReplicaAzureFailoverInput, bool) { +// AsRecoveryPlanHyperVReplicaAzureFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageRcmFailoverInput. +func (rpimrfi RecoveryPlanInMageRcmFailoverInput) AsRecoveryPlanHyperVReplicaAzureFailoverInput() (*RecoveryPlanHyperVReplicaAzureFailoverInput, bool) { return nil, false } -// AsRecoveryPlanInMageAzureV2FailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageFailoverInput. -func (rpimfi RecoveryPlanInMageFailoverInput) AsRecoveryPlanInMageAzureV2FailoverInput() (*RecoveryPlanInMageAzureV2FailoverInput, bool) { +// AsRecoveryPlanInMageAzureV2FailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageRcmFailoverInput. +func (rpimrfi RecoveryPlanInMageRcmFailoverInput) AsRecoveryPlanInMageAzureV2FailoverInput() (*RecoveryPlanInMageAzureV2FailoverInput, bool) { return nil, false } -// AsRecoveryPlanInMageFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageFailoverInput. -func (rpimfi RecoveryPlanInMageFailoverInput) AsRecoveryPlanInMageFailoverInput() (*RecoveryPlanInMageFailoverInput, bool) { - return &rpimfi, true +// AsRecoveryPlanInMageFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageRcmFailoverInput. +func (rpimrfi RecoveryPlanInMageRcmFailoverInput) AsRecoveryPlanInMageFailoverInput() (*RecoveryPlanInMageFailoverInput, bool) { + return nil, false } -// AsRecoveryPlanProviderSpecificFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageFailoverInput. -func (rpimfi RecoveryPlanInMageFailoverInput) AsRecoveryPlanProviderSpecificFailoverInput() (*RecoveryPlanProviderSpecificFailoverInput, bool) { +// AsRecoveryPlanInMageRcmFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageRcmFailoverInput. +func (rpimrfi RecoveryPlanInMageRcmFailoverInput) AsRecoveryPlanInMageRcmFailoverInput() (*RecoveryPlanInMageRcmFailoverInput, bool) { + return &rpimrfi, true +} + +// AsRecoveryPlanProviderSpecificFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageRcmFailoverInput. +func (rpimrfi RecoveryPlanInMageRcmFailoverInput) AsRecoveryPlanProviderSpecificFailoverInput() (*RecoveryPlanProviderSpecificFailoverInput, bool) { return nil, false } -// AsBasicRecoveryPlanProviderSpecificFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageFailoverInput. -func (rpimfi RecoveryPlanInMageFailoverInput) AsBasicRecoveryPlanProviderSpecificFailoverInput() (BasicRecoveryPlanProviderSpecificFailoverInput, bool) { - return &rpimfi, true +// AsBasicRecoveryPlanProviderSpecificFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanInMageRcmFailoverInput. +func (rpimrfi RecoveryPlanInMageRcmFailoverInput) AsBasicRecoveryPlanProviderSpecificFailoverInput() (BasicRecoveryPlanProviderSpecificFailoverInput, bool) { + return &rpimrfi, true } // RecoveryPlanManualActionDetails recovery plan manual action details. @@ -14480,6 +18359,217 @@ type RecoveryPlanProperties struct { CurrentScenarioStatusDescription *string `json:"currentScenarioStatusDescription,omitempty"` // Groups - The recovery plan groups. Groups *[]RecoveryPlanGroup `json:"groups,omitempty"` + // ProviderSpecificDetails - READ-ONLY; The provider id and provider specific details. + ProviderSpecificDetails *[]BasicRecoveryPlanProviderSpecificDetails `json:"providerSpecificDetails,omitempty"` +} + +// MarshalJSON is the custom marshaler for RecoveryPlanProperties. +func (rpp RecoveryPlanProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if rpp.FriendlyName != nil { + objectMap["friendlyName"] = rpp.FriendlyName + } + if rpp.PrimaryFabricID != nil { + objectMap["primaryFabricId"] = rpp.PrimaryFabricID + } + if rpp.PrimaryFabricFriendlyName != nil { + objectMap["primaryFabricFriendlyName"] = rpp.PrimaryFabricFriendlyName + } + if rpp.RecoveryFabricID != nil { + objectMap["recoveryFabricId"] = rpp.RecoveryFabricID + } + if rpp.RecoveryFabricFriendlyName != nil { + objectMap["recoveryFabricFriendlyName"] = rpp.RecoveryFabricFriendlyName + } + if rpp.FailoverDeploymentModel != nil { + objectMap["failoverDeploymentModel"] = rpp.FailoverDeploymentModel + } + if rpp.ReplicationProviders != nil { + objectMap["replicationProviders"] = rpp.ReplicationProviders + } + if rpp.AllowedOperations != nil { + objectMap["allowedOperations"] = rpp.AllowedOperations + } + if rpp.LastPlannedFailoverTime != nil { + objectMap["lastPlannedFailoverTime"] = rpp.LastPlannedFailoverTime + } + if rpp.LastUnplannedFailoverTime != nil { + objectMap["lastUnplannedFailoverTime"] = rpp.LastUnplannedFailoverTime + } + if rpp.LastTestFailoverTime != nil { + objectMap["lastTestFailoverTime"] = rpp.LastTestFailoverTime + } + if rpp.CurrentScenario != nil { + objectMap["currentScenario"] = rpp.CurrentScenario + } + if rpp.CurrentScenarioStatus != nil { + objectMap["currentScenarioStatus"] = rpp.CurrentScenarioStatus + } + if rpp.CurrentScenarioStatusDescription != nil { + objectMap["currentScenarioStatusDescription"] = rpp.CurrentScenarioStatusDescription + } + if rpp.Groups != nil { + objectMap["groups"] = rpp.Groups + } + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for RecoveryPlanProperties struct. +func (rpp *RecoveryPlanProperties) 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 + } + rpp.FriendlyName = &friendlyName + } + case "primaryFabricId": + if v != nil { + var primaryFabricID string + err = json.Unmarshal(*v, &primaryFabricID) + if err != nil { + return err + } + rpp.PrimaryFabricID = &primaryFabricID + } + case "primaryFabricFriendlyName": + if v != nil { + var primaryFabricFriendlyName string + err = json.Unmarshal(*v, &primaryFabricFriendlyName) + if err != nil { + return err + } + rpp.PrimaryFabricFriendlyName = &primaryFabricFriendlyName + } + case "recoveryFabricId": + if v != nil { + var recoveryFabricID string + err = json.Unmarshal(*v, &recoveryFabricID) + if err != nil { + return err + } + rpp.RecoveryFabricID = &recoveryFabricID + } + case "recoveryFabricFriendlyName": + if v != nil { + var recoveryFabricFriendlyName string + err = json.Unmarshal(*v, &recoveryFabricFriendlyName) + if err != nil { + return err + } + rpp.RecoveryFabricFriendlyName = &recoveryFabricFriendlyName + } + case "failoverDeploymentModel": + if v != nil { + var failoverDeploymentModel string + err = json.Unmarshal(*v, &failoverDeploymentModel) + if err != nil { + return err + } + rpp.FailoverDeploymentModel = &failoverDeploymentModel + } + case "replicationProviders": + if v != nil { + var replicationProviders []string + err = json.Unmarshal(*v, &replicationProviders) + if err != nil { + return err + } + rpp.ReplicationProviders = &replicationProviders + } + case "allowedOperations": + if v != nil { + var allowedOperations []string + err = json.Unmarshal(*v, &allowedOperations) + if err != nil { + return err + } + rpp.AllowedOperations = &allowedOperations + } + case "lastPlannedFailoverTime": + if v != nil { + var lastPlannedFailoverTime date.Time + err = json.Unmarshal(*v, &lastPlannedFailoverTime) + if err != nil { + return err + } + rpp.LastPlannedFailoverTime = &lastPlannedFailoverTime + } + case "lastUnplannedFailoverTime": + if v != nil { + var lastUnplannedFailoverTime date.Time + err = json.Unmarshal(*v, &lastUnplannedFailoverTime) + if err != nil { + return err + } + rpp.LastUnplannedFailoverTime = &lastUnplannedFailoverTime + } + case "lastTestFailoverTime": + if v != nil { + var lastTestFailoverTime date.Time + err = json.Unmarshal(*v, &lastTestFailoverTime) + if err != nil { + return err + } + rpp.LastTestFailoverTime = &lastTestFailoverTime + } + case "currentScenario": + if v != nil { + var currentScenario CurrentScenarioDetails + err = json.Unmarshal(*v, ¤tScenario) + if err != nil { + return err + } + rpp.CurrentScenario = ¤tScenario + } + case "currentScenarioStatus": + if v != nil { + var currentScenarioStatus string + err = json.Unmarshal(*v, ¤tScenarioStatus) + if err != nil { + return err + } + rpp.CurrentScenarioStatus = ¤tScenarioStatus + } + case "currentScenarioStatusDescription": + if v != nil { + var currentScenarioStatusDescription string + err = json.Unmarshal(*v, ¤tScenarioStatusDescription) + if err != nil { + return err + } + rpp.CurrentScenarioStatusDescription = ¤tScenarioStatusDescription + } + case "groups": + if v != nil { + var groups []RecoveryPlanGroup + err = json.Unmarshal(*v, &groups) + if err != nil { + return err + } + rpp.Groups = &groups + } + case "providerSpecificDetails": + if v != nil { + providerSpecificDetails, err := unmarshalBasicRecoveryPlanProviderSpecificDetailsArray(*v) + if err != nil { + return err + } + rpp.ProviderSpecificDetails = &providerSpecificDetails + } + } + } + + return nil } // RecoveryPlanProtectedItem recovery plan protected item. @@ -14490,6 +18580,80 @@ type RecoveryPlanProtectedItem struct { VirtualMachineID *string `json:"virtualMachineId,omitempty"` } +// BasicRecoveryPlanProviderSpecificDetails recovery plan provider specific details. +type BasicRecoveryPlanProviderSpecificDetails interface { + AsRecoveryPlanA2ADetails() (*RecoveryPlanA2ADetails, bool) + AsRecoveryPlanProviderSpecificDetails() (*RecoveryPlanProviderSpecificDetails, bool) +} + +// RecoveryPlanProviderSpecificDetails recovery plan provider specific details. +type RecoveryPlanProviderSpecificDetails struct { + // InstanceType - Possible values include: 'InstanceTypeBasicRecoveryPlanProviderSpecificDetailsInstanceTypeRecoveryPlanProviderSpecificDetails', 'InstanceTypeBasicRecoveryPlanProviderSpecificDetailsInstanceTypeA2A' + InstanceType InstanceTypeBasicRecoveryPlanProviderSpecificDetails `json:"instanceType,omitempty"` +} + +func unmarshalBasicRecoveryPlanProviderSpecificDetails(body []byte) (BasicRecoveryPlanProviderSpecificDetails, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["instanceType"] { + case string(InstanceTypeBasicRecoveryPlanProviderSpecificDetailsInstanceTypeA2A): + var rpad RecoveryPlanA2ADetails + err := json.Unmarshal(body, &rpad) + return rpad, err + default: + var rppsd RecoveryPlanProviderSpecificDetails + err := json.Unmarshal(body, &rppsd) + return rppsd, err + } +} +func unmarshalBasicRecoveryPlanProviderSpecificDetailsArray(body []byte) ([]BasicRecoveryPlanProviderSpecificDetails, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + rppsdArray := make([]BasicRecoveryPlanProviderSpecificDetails, len(rawMessages)) + + for index, rawMessage := range rawMessages { + rppsd, err := unmarshalBasicRecoveryPlanProviderSpecificDetails(*rawMessage) + if err != nil { + return nil, err + } + rppsdArray[index] = rppsd + } + return rppsdArray, nil +} + +// MarshalJSON is the custom marshaler for RecoveryPlanProviderSpecificDetails. +func (rppsd RecoveryPlanProviderSpecificDetails) MarshalJSON() ([]byte, error) { + rppsd.InstanceType = InstanceTypeBasicRecoveryPlanProviderSpecificDetailsInstanceTypeRecoveryPlanProviderSpecificDetails + objectMap := make(map[string]interface{}) + if rppsd.InstanceType != "" { + objectMap["instanceType"] = rppsd.InstanceType + } + return json.Marshal(objectMap) +} + +// AsRecoveryPlanA2ADetails is the BasicRecoveryPlanProviderSpecificDetails implementation for RecoveryPlanProviderSpecificDetails. +func (rppsd RecoveryPlanProviderSpecificDetails) AsRecoveryPlanA2ADetails() (*RecoveryPlanA2ADetails, bool) { + return nil, false +} + +// AsRecoveryPlanProviderSpecificDetails is the BasicRecoveryPlanProviderSpecificDetails implementation for RecoveryPlanProviderSpecificDetails. +func (rppsd RecoveryPlanProviderSpecificDetails) AsRecoveryPlanProviderSpecificDetails() (*RecoveryPlanProviderSpecificDetails, bool) { + return &rppsd, true +} + +// AsBasicRecoveryPlanProviderSpecificDetails is the BasicRecoveryPlanProviderSpecificDetails implementation for RecoveryPlanProviderSpecificDetails. +func (rppsd RecoveryPlanProviderSpecificDetails) AsBasicRecoveryPlanProviderSpecificDetails() (BasicRecoveryPlanProviderSpecificDetails, bool) { + return &rppsd, true +} + // BasicRecoveryPlanProviderSpecificFailoverInput recovery plan provider specific failover input base class. type BasicRecoveryPlanProviderSpecificFailoverInput interface { AsRecoveryPlanA2AFailoverInput() (*RecoveryPlanA2AFailoverInput, bool) @@ -14497,12 +18661,13 @@ type BasicRecoveryPlanProviderSpecificFailoverInput interface { AsRecoveryPlanHyperVReplicaAzureFailoverInput() (*RecoveryPlanHyperVReplicaAzureFailoverInput, bool) AsRecoveryPlanInMageAzureV2FailoverInput() (*RecoveryPlanInMageAzureV2FailoverInput, bool) AsRecoveryPlanInMageFailoverInput() (*RecoveryPlanInMageFailoverInput, bool) + AsRecoveryPlanInMageRcmFailoverInput() (*RecoveryPlanInMageRcmFailoverInput, bool) AsRecoveryPlanProviderSpecificFailoverInput() (*RecoveryPlanProviderSpecificFailoverInput, bool) } // RecoveryPlanProviderSpecificFailoverInput recovery plan provider specific failover input base class. type RecoveryPlanProviderSpecificFailoverInput struct { - // InstanceType - Possible values include: 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeRecoveryPlanProviderSpecificFailoverInput', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeA2A', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMage' + // InstanceType - Possible values include: 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeRecoveryPlanProviderSpecificFailoverInput', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeA2A', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzureFailback', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMage', 'InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageRcm' InstanceType InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInput `json:"instanceType,omitempty"` } @@ -14534,6 +18699,10 @@ func unmarshalBasicRecoveryPlanProviderSpecificFailoverInput(body []byte) (Basic var rpimfi RecoveryPlanInMageFailoverInput err := json.Unmarshal(body, &rpimfi) return rpimfi, err + case string(InstanceTypeBasicRecoveryPlanProviderSpecificFailoverInputInstanceTypeInMageRcm): + var rpimrfi RecoveryPlanInMageRcmFailoverInput + err := json.Unmarshal(body, &rpimrfi) + return rpimrfi, err default: var rppsfi RecoveryPlanProviderSpecificFailoverInput err := json.Unmarshal(body, &rppsfi) @@ -14584,24 +18753,103 @@ func (rppsfi RecoveryPlanProviderSpecificFailoverInput) AsRecoveryPlanHyperVRepl return nil, false } -// AsRecoveryPlanInMageAzureV2FailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanProviderSpecificFailoverInput. -func (rppsfi RecoveryPlanProviderSpecificFailoverInput) AsRecoveryPlanInMageAzureV2FailoverInput() (*RecoveryPlanInMageAzureV2FailoverInput, bool) { - return nil, false +// AsRecoveryPlanInMageAzureV2FailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanProviderSpecificFailoverInput. +func (rppsfi RecoveryPlanProviderSpecificFailoverInput) AsRecoveryPlanInMageAzureV2FailoverInput() (*RecoveryPlanInMageAzureV2FailoverInput, bool) { + return nil, false +} + +// AsRecoveryPlanInMageFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanProviderSpecificFailoverInput. +func (rppsfi RecoveryPlanProviderSpecificFailoverInput) AsRecoveryPlanInMageFailoverInput() (*RecoveryPlanInMageFailoverInput, bool) { + return nil, false +} + +// AsRecoveryPlanInMageRcmFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanProviderSpecificFailoverInput. +func (rppsfi RecoveryPlanProviderSpecificFailoverInput) AsRecoveryPlanInMageRcmFailoverInput() (*RecoveryPlanInMageRcmFailoverInput, bool) { + return nil, false +} + +// AsRecoveryPlanProviderSpecificFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanProviderSpecificFailoverInput. +func (rppsfi RecoveryPlanProviderSpecificFailoverInput) AsRecoveryPlanProviderSpecificFailoverInput() (*RecoveryPlanProviderSpecificFailoverInput, bool) { + return &rppsfi, true +} + +// AsBasicRecoveryPlanProviderSpecificFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanProviderSpecificFailoverInput. +func (rppsfi RecoveryPlanProviderSpecificFailoverInput) AsBasicRecoveryPlanProviderSpecificFailoverInput() (BasicRecoveryPlanProviderSpecificFailoverInput, bool) { + return &rppsfi, true +} + +// BasicRecoveryPlanProviderSpecificInput recovery plan provider specific input base class. +type BasicRecoveryPlanProviderSpecificInput interface { + AsRecoveryPlanA2AInput() (*RecoveryPlanA2AInput, bool) + AsRecoveryPlanProviderSpecificInput() (*RecoveryPlanProviderSpecificInput, bool) +} + +// RecoveryPlanProviderSpecificInput recovery plan provider specific input base class. +type RecoveryPlanProviderSpecificInput struct { + // InstanceType - Possible values include: 'InstanceTypeBasicRecoveryPlanProviderSpecificInputInstanceTypeRecoveryPlanProviderSpecificInput', 'InstanceTypeBasicRecoveryPlanProviderSpecificInputInstanceTypeA2A' + InstanceType InstanceTypeBasicRecoveryPlanProviderSpecificInput `json:"instanceType,omitempty"` +} + +func unmarshalBasicRecoveryPlanProviderSpecificInput(body []byte) (BasicRecoveryPlanProviderSpecificInput, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["instanceType"] { + case string(InstanceTypeBasicRecoveryPlanProviderSpecificInputInstanceTypeA2A): + var rpai RecoveryPlanA2AInput + err := json.Unmarshal(body, &rpai) + return rpai, err + default: + var rppsi RecoveryPlanProviderSpecificInput + err := json.Unmarshal(body, &rppsi) + return rppsi, err + } +} +func unmarshalBasicRecoveryPlanProviderSpecificInputArray(body []byte) ([]BasicRecoveryPlanProviderSpecificInput, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + rppsiArray := make([]BasicRecoveryPlanProviderSpecificInput, len(rawMessages)) + + for index, rawMessage := range rawMessages { + rppsi, err := unmarshalBasicRecoveryPlanProviderSpecificInput(*rawMessage) + if err != nil { + return nil, err + } + rppsiArray[index] = rppsi + } + return rppsiArray, nil +} + +// MarshalJSON is the custom marshaler for RecoveryPlanProviderSpecificInput. +func (rppsi RecoveryPlanProviderSpecificInput) MarshalJSON() ([]byte, error) { + rppsi.InstanceType = InstanceTypeBasicRecoveryPlanProviderSpecificInputInstanceTypeRecoveryPlanProviderSpecificInput + objectMap := make(map[string]interface{}) + if rppsi.InstanceType != "" { + objectMap["instanceType"] = rppsi.InstanceType + } + return json.Marshal(objectMap) } -// AsRecoveryPlanInMageFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanProviderSpecificFailoverInput. -func (rppsfi RecoveryPlanProviderSpecificFailoverInput) AsRecoveryPlanInMageFailoverInput() (*RecoveryPlanInMageFailoverInput, bool) { +// AsRecoveryPlanA2AInput is the BasicRecoveryPlanProviderSpecificInput implementation for RecoveryPlanProviderSpecificInput. +func (rppsi RecoveryPlanProviderSpecificInput) AsRecoveryPlanA2AInput() (*RecoveryPlanA2AInput, bool) { return nil, false } -// AsRecoveryPlanProviderSpecificFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanProviderSpecificFailoverInput. -func (rppsfi RecoveryPlanProviderSpecificFailoverInput) AsRecoveryPlanProviderSpecificFailoverInput() (*RecoveryPlanProviderSpecificFailoverInput, bool) { - return &rppsfi, true +// AsRecoveryPlanProviderSpecificInput is the BasicRecoveryPlanProviderSpecificInput implementation for RecoveryPlanProviderSpecificInput. +func (rppsi RecoveryPlanProviderSpecificInput) AsRecoveryPlanProviderSpecificInput() (*RecoveryPlanProviderSpecificInput, bool) { + return &rppsi, true } -// AsBasicRecoveryPlanProviderSpecificFailoverInput is the BasicRecoveryPlanProviderSpecificFailoverInput implementation for RecoveryPlanProviderSpecificFailoverInput. -func (rppsfi RecoveryPlanProviderSpecificFailoverInput) AsBasicRecoveryPlanProviderSpecificFailoverInput() (BasicRecoveryPlanProviderSpecificFailoverInput, bool) { - return &rppsfi, true +// AsBasicRecoveryPlanProviderSpecificInput is the BasicRecoveryPlanProviderSpecificInput implementation for RecoveryPlanProviderSpecificInput. +func (rppsi RecoveryPlanProviderSpecificInput) AsBasicRecoveryPlanProviderSpecificInput() (BasicRecoveryPlanProviderSpecificInput, bool) { + return &rppsi, true } // RecoveryPlanScriptActionDetails recovery plan script action details. @@ -15107,6 +19355,154 @@ func (rpp *RecoveryPointProperties) UnmarshalJSON(body []byte) error { return nil } +// BasicRecoveryProximityPlacementGroupCustomDetails recovery Proximity placement group custom input. +type BasicRecoveryProximityPlacementGroupCustomDetails interface { + AsExistingRecoveryProximityPlacementGroup() (*ExistingRecoveryProximityPlacementGroup, bool) + AsRecoveryProximityPlacementGroupCustomDetails() (*RecoveryProximityPlacementGroupCustomDetails, bool) +} + +// RecoveryProximityPlacementGroupCustomDetails recovery Proximity placement group custom input. +type RecoveryProximityPlacementGroupCustomDetails struct { + // ResourceType - Possible values include: 'ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetailsResourceTypeRecoveryProximityPlacementGroupCustomDetails', 'ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetailsResourceTypeExisting' + ResourceType ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetails `json:"resourceType,omitempty"` +} + +func unmarshalBasicRecoveryProximityPlacementGroupCustomDetails(body []byte) (BasicRecoveryProximityPlacementGroupCustomDetails, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["resourceType"] { + case string(ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetailsResourceTypeExisting): + var erppg ExistingRecoveryProximityPlacementGroup + err := json.Unmarshal(body, &erppg) + return erppg, err + default: + var rppgcd RecoveryProximityPlacementGroupCustomDetails + err := json.Unmarshal(body, &rppgcd) + return rppgcd, err + } +} +func unmarshalBasicRecoveryProximityPlacementGroupCustomDetailsArray(body []byte) ([]BasicRecoveryProximityPlacementGroupCustomDetails, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + rppgcdArray := make([]BasicRecoveryProximityPlacementGroupCustomDetails, len(rawMessages)) + + for index, rawMessage := range rawMessages { + rppgcd, err := unmarshalBasicRecoveryProximityPlacementGroupCustomDetails(*rawMessage) + if err != nil { + return nil, err + } + rppgcdArray[index] = rppgcd + } + return rppgcdArray, nil +} + +// MarshalJSON is the custom marshaler for RecoveryProximityPlacementGroupCustomDetails. +func (rppgcd RecoveryProximityPlacementGroupCustomDetails) MarshalJSON() ([]byte, error) { + rppgcd.ResourceType = ResourceTypeBasicRecoveryProximityPlacementGroupCustomDetailsResourceTypeRecoveryProximityPlacementGroupCustomDetails + objectMap := make(map[string]interface{}) + if rppgcd.ResourceType != "" { + objectMap["resourceType"] = rppgcd.ResourceType + } + return json.Marshal(objectMap) +} + +// AsExistingRecoveryProximityPlacementGroup is the BasicRecoveryProximityPlacementGroupCustomDetails implementation for RecoveryProximityPlacementGroupCustomDetails. +func (rppgcd RecoveryProximityPlacementGroupCustomDetails) AsExistingRecoveryProximityPlacementGroup() (*ExistingRecoveryProximityPlacementGroup, bool) { + return nil, false +} + +// AsRecoveryProximityPlacementGroupCustomDetails is the BasicRecoveryProximityPlacementGroupCustomDetails implementation for RecoveryProximityPlacementGroupCustomDetails. +func (rppgcd RecoveryProximityPlacementGroupCustomDetails) AsRecoveryProximityPlacementGroupCustomDetails() (*RecoveryProximityPlacementGroupCustomDetails, bool) { + return &rppgcd, true +} + +// AsBasicRecoveryProximityPlacementGroupCustomDetails is the BasicRecoveryProximityPlacementGroupCustomDetails implementation for RecoveryProximityPlacementGroupCustomDetails. +func (rppgcd RecoveryProximityPlacementGroupCustomDetails) AsBasicRecoveryProximityPlacementGroupCustomDetails() (BasicRecoveryProximityPlacementGroupCustomDetails, bool) { + return &rppgcd, true +} + +// BasicRecoveryResourceGroupCustomDetails recovery Resource Group custom input. +type BasicRecoveryResourceGroupCustomDetails interface { + AsExistingRecoveryRecoveryResourceGroup() (*ExistingRecoveryRecoveryResourceGroup, bool) + AsRecoveryResourceGroupCustomDetails() (*RecoveryResourceGroupCustomDetails, bool) +} + +// RecoveryResourceGroupCustomDetails recovery Resource Group custom input. +type RecoveryResourceGroupCustomDetails struct { + // ResourceType - Possible values include: 'ResourceTypeBasicRecoveryResourceGroupCustomDetailsResourceTypeRecoveryResourceGroupCustomDetails', 'ResourceTypeBasicRecoveryResourceGroupCustomDetailsResourceTypeExisting' + ResourceType ResourceTypeBasicRecoveryResourceGroupCustomDetails `json:"resourceType,omitempty"` +} + +func unmarshalBasicRecoveryResourceGroupCustomDetails(body []byte) (BasicRecoveryResourceGroupCustomDetails, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["resourceType"] { + case string(ResourceTypeBasicRecoveryResourceGroupCustomDetailsResourceTypeExisting): + var errrg ExistingRecoveryRecoveryResourceGroup + err := json.Unmarshal(body, &errrg) + return errrg, err + default: + var rrgcd RecoveryResourceGroupCustomDetails + err := json.Unmarshal(body, &rrgcd) + return rrgcd, err + } +} +func unmarshalBasicRecoveryResourceGroupCustomDetailsArray(body []byte) ([]BasicRecoveryResourceGroupCustomDetails, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + rrgcdArray := make([]BasicRecoveryResourceGroupCustomDetails, len(rawMessages)) + + for index, rawMessage := range rawMessages { + rrgcd, err := unmarshalBasicRecoveryResourceGroupCustomDetails(*rawMessage) + if err != nil { + return nil, err + } + rrgcdArray[index] = rrgcd + } + return rrgcdArray, nil +} + +// MarshalJSON is the custom marshaler for RecoveryResourceGroupCustomDetails. +func (rrgcd RecoveryResourceGroupCustomDetails) MarshalJSON() ([]byte, error) { + rrgcd.ResourceType = ResourceTypeBasicRecoveryResourceGroupCustomDetailsResourceTypeRecoveryResourceGroupCustomDetails + objectMap := make(map[string]interface{}) + if rrgcd.ResourceType != "" { + objectMap["resourceType"] = rrgcd.ResourceType + } + return json.Marshal(objectMap) +} + +// AsExistingRecoveryRecoveryResourceGroup is the BasicRecoveryResourceGroupCustomDetails implementation for RecoveryResourceGroupCustomDetails. +func (rrgcd RecoveryResourceGroupCustomDetails) AsExistingRecoveryRecoveryResourceGroup() (*ExistingRecoveryRecoveryResourceGroup, bool) { + return nil, false +} + +// AsRecoveryResourceGroupCustomDetails is the BasicRecoveryResourceGroupCustomDetails implementation for RecoveryResourceGroupCustomDetails. +func (rrgcd RecoveryResourceGroupCustomDetails) AsRecoveryResourceGroupCustomDetails() (*RecoveryResourceGroupCustomDetails, bool) { + return &rrgcd, true +} + +// AsBasicRecoveryResourceGroupCustomDetails is the BasicRecoveryResourceGroupCustomDetails implementation for RecoveryResourceGroupCustomDetails. +func (rrgcd RecoveryResourceGroupCustomDetails) AsBasicRecoveryResourceGroupCustomDetails() (BasicRecoveryResourceGroupCustomDetails, bool) { + return &rrgcd, true +} + // RecoveryServicesProvider provider details. type RecoveryServicesProvider struct { autorest.Response `json:"-"` @@ -15330,6 +19726,189 @@ type RecoveryServicesProviderProperties struct { ProviderVersionDetails *VersionDetails `json:"providerVersionDetails,omitempty"` } +// BasicRecoveryVirtualNetworkCustomDetails recovery Virtual network custom input. +type BasicRecoveryVirtualNetworkCustomDetails interface { + AsExistingRecoveryVirtualNetwork() (*ExistingRecoveryVirtualNetwork, bool) + AsRecoveryVirtualNetworkCustomDetails() (*RecoveryVirtualNetworkCustomDetails, bool) +} + +// RecoveryVirtualNetworkCustomDetails recovery Virtual network custom input. +type RecoveryVirtualNetworkCustomDetails struct { + // ResourceType - Possible values include: 'ResourceTypeBasicRecoveryVirtualNetworkCustomDetailsResourceTypeRecoveryVirtualNetworkCustomDetails', 'ResourceTypeBasicRecoveryVirtualNetworkCustomDetailsResourceTypeExisting' + ResourceType ResourceTypeBasicRecoveryVirtualNetworkCustomDetails `json:"resourceType,omitempty"` +} + +func unmarshalBasicRecoveryVirtualNetworkCustomDetails(body []byte) (BasicRecoveryVirtualNetworkCustomDetails, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["resourceType"] { + case string(ResourceTypeBasicRecoveryVirtualNetworkCustomDetailsResourceTypeExisting): + var ervn ExistingRecoveryVirtualNetwork + err := json.Unmarshal(body, &ervn) + return ervn, err + default: + var rvncd RecoveryVirtualNetworkCustomDetails + err := json.Unmarshal(body, &rvncd) + return rvncd, err + } +} +func unmarshalBasicRecoveryVirtualNetworkCustomDetailsArray(body []byte) ([]BasicRecoveryVirtualNetworkCustomDetails, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + rvncdArray := make([]BasicRecoveryVirtualNetworkCustomDetails, len(rawMessages)) + + for index, rawMessage := range rawMessages { + rvncd, err := unmarshalBasicRecoveryVirtualNetworkCustomDetails(*rawMessage) + if err != nil { + return nil, err + } + rvncdArray[index] = rvncd + } + return rvncdArray, nil +} + +// MarshalJSON is the custom marshaler for RecoveryVirtualNetworkCustomDetails. +func (rvncd RecoveryVirtualNetworkCustomDetails) MarshalJSON() ([]byte, error) { + rvncd.ResourceType = ResourceTypeBasicRecoveryVirtualNetworkCustomDetailsResourceTypeRecoveryVirtualNetworkCustomDetails + objectMap := make(map[string]interface{}) + if rvncd.ResourceType != "" { + objectMap["resourceType"] = rvncd.ResourceType + } + return json.Marshal(objectMap) +} + +// AsExistingRecoveryVirtualNetwork is the BasicRecoveryVirtualNetworkCustomDetails implementation for RecoveryVirtualNetworkCustomDetails. +func (rvncd RecoveryVirtualNetworkCustomDetails) AsExistingRecoveryVirtualNetwork() (*ExistingRecoveryVirtualNetwork, bool) { + return nil, false +} + +// AsRecoveryVirtualNetworkCustomDetails is the BasicRecoveryVirtualNetworkCustomDetails implementation for RecoveryVirtualNetworkCustomDetails. +func (rvncd RecoveryVirtualNetworkCustomDetails) AsRecoveryVirtualNetworkCustomDetails() (*RecoveryVirtualNetworkCustomDetails, bool) { + return &rvncd, true +} + +// AsBasicRecoveryVirtualNetworkCustomDetails is the BasicRecoveryVirtualNetworkCustomDetails implementation for RecoveryVirtualNetworkCustomDetails. +func (rvncd RecoveryVirtualNetworkCustomDetails) AsBasicRecoveryVirtualNetworkCustomDetails() (BasicRecoveryVirtualNetworkCustomDetails, bool) { + return &rvncd, true +} + +// RemoveDisksInput input for remove disk(s) operation. +type RemoveDisksInput struct { + // Properties - Remove disk input properties. + Properties *RemoveDisksInputProperties `json:"properties,omitempty"` +} + +// RemoveDisksInputProperties remove Disk input properties. +type RemoveDisksInputProperties struct { + // ProviderSpecificDetails - The ReplicationProviderInput. For HyperVReplicaAzure provider, it will be AzureEnableProtectionInput object. For San provider, it will be SanEnableProtectionInput object. For HyperVReplicaAzure provider, it can be null. + ProviderSpecificDetails BasicRemoveDisksProviderSpecificInput `json:"providerSpecificDetails,omitempty"` +} + +// UnmarshalJSON is the custom unmarshaler for RemoveDisksInputProperties struct. +func (rdip *RemoveDisksInputProperties) 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 := unmarshalBasicRemoveDisksProviderSpecificInput(*v) + if err != nil { + return err + } + rdip.ProviderSpecificDetails = providerSpecificDetails + } + } + } + + return nil +} + +// BasicRemoveDisksProviderSpecificInput remove Disk provider specific input. +type BasicRemoveDisksProviderSpecificInput interface { + AsA2ARemoveDisksInput() (*A2ARemoveDisksInput, bool) + AsRemoveDisksProviderSpecificInput() (*RemoveDisksProviderSpecificInput, bool) +} + +// RemoveDisksProviderSpecificInput remove Disk provider specific input. +type RemoveDisksProviderSpecificInput struct { + // InstanceType - Possible values include: 'InstanceTypeBasicRemoveDisksProviderSpecificInputInstanceTypeRemoveDisksProviderSpecificInput', 'InstanceTypeBasicRemoveDisksProviderSpecificInputInstanceTypeA2A' + InstanceType InstanceTypeBasicRemoveDisksProviderSpecificInput `json:"instanceType,omitempty"` +} + +func unmarshalBasicRemoveDisksProviderSpecificInput(body []byte) (BasicRemoveDisksProviderSpecificInput, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["instanceType"] { + case string(InstanceTypeBasicRemoveDisksProviderSpecificInputInstanceTypeA2A): + var ardi A2ARemoveDisksInput + err := json.Unmarshal(body, &ardi) + return ardi, err + default: + var rdpsi RemoveDisksProviderSpecificInput + err := json.Unmarshal(body, &rdpsi) + return rdpsi, err + } +} +func unmarshalBasicRemoveDisksProviderSpecificInputArray(body []byte) ([]BasicRemoveDisksProviderSpecificInput, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + rdpsiArray := make([]BasicRemoveDisksProviderSpecificInput, len(rawMessages)) + + for index, rawMessage := range rawMessages { + rdpsi, err := unmarshalBasicRemoveDisksProviderSpecificInput(*rawMessage) + if err != nil { + return nil, err + } + rdpsiArray[index] = rdpsi + } + return rdpsiArray, nil +} + +// MarshalJSON is the custom marshaler for RemoveDisksProviderSpecificInput. +func (rdpsi RemoveDisksProviderSpecificInput) MarshalJSON() ([]byte, error) { + rdpsi.InstanceType = InstanceTypeBasicRemoveDisksProviderSpecificInputInstanceTypeRemoveDisksProviderSpecificInput + objectMap := make(map[string]interface{}) + if rdpsi.InstanceType != "" { + objectMap["instanceType"] = rdpsi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2ARemoveDisksInput is the BasicRemoveDisksProviderSpecificInput implementation for RemoveDisksProviderSpecificInput. +func (rdpsi RemoveDisksProviderSpecificInput) AsA2ARemoveDisksInput() (*A2ARemoveDisksInput, bool) { + return nil, false +} + +// AsRemoveDisksProviderSpecificInput is the BasicRemoveDisksProviderSpecificInput implementation for RemoveDisksProviderSpecificInput. +func (rdpsi RemoveDisksProviderSpecificInput) AsRemoveDisksProviderSpecificInput() (*RemoveDisksProviderSpecificInput, bool) { + return &rdpsi, true +} + +// AsBasicRemoveDisksProviderSpecificInput is the BasicRemoveDisksProviderSpecificInput implementation for RemoveDisksProviderSpecificInput. +func (rdpsi RemoveDisksProviderSpecificInput) AsBasicRemoveDisksProviderSpecificInput() (BasicRemoveDisksProviderSpecificInput, bool) { + return &rdpsi, true +} + // RemoveProtectionContainerMappingInput container unpairing input. type RemoveProtectionContainerMappingInput struct { // Properties - Configure protection input properties. @@ -15354,6 +19933,73 @@ type RenewCertificateInputProperties struct { RenewCertificateType *string `json:"renewCertificateType,omitempty"` } +// ReplicationAgentDetails replication agent details. +type ReplicationAgentDetails struct { + // ID - READ-ONLY; The replication agent Id. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The replication agent name. + Name *string `json:"name,omitempty"` + // Version - READ-ONLY; The replication agent version. + Version *string `json:"version,omitempty"` + // LastHeartbeatUtc - READ-ONLY; The last heartbeat received from the replication agent. + LastHeartbeatUtc *date.Time `json:"lastHeartbeatUtc,omitempty"` + // Health - READ-ONLY; The health of the replication agent. Possible values include: 'ProtectionHealthNone', 'ProtectionHealthNormal', 'ProtectionHealthWarning', 'ProtectionHealthCritical' + Health ProtectionHealth `json:"health,omitempty"` + // HealthErrors - READ-ONLY; The health errors. + HealthErrors *[]HealthError `json:"healthErrors,omitempty"` +} + +// ReplicationEligibilityResults replication eligibility results response model. +type ReplicationEligibilityResults struct { + autorest.Response `json:"-"` + // Name - READ-ONLY; Gets the name of this object. + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; Gets the object type. + Type *string `json:"type,omitempty"` + // ID - READ-ONLY; Gets Unique ARM identifier for this object. + ID *string `json:"id,omitempty"` + // Properties - READ-ONLY; Gets properties model for replication eligibility results API. + Properties *ReplicationEligibilityResultsProperties `json:"properties,omitempty"` +} + +// ReplicationEligibilityResultsCollection replication eligibility results collection response model. +type ReplicationEligibilityResultsCollection struct { + autorest.Response `json:"-"` + // Value - The replication eligibility results details. + Value *[]ReplicationEligibilityResults `json:"value,omitempty"` +} + +// ReplicationEligibilityResultsErrorInfo error model that can be exposed to the user. +type ReplicationEligibilityResultsErrorInfo struct { + // Code - READ-ONLY; The error code. + Code *string `json:"code,omitempty"` + // Message - READ-ONLY; The error message. + Message *string `json:"message,omitempty"` + // PossibleCauses - READ-ONLY; The possible causes. + PossibleCauses *string `json:"possibleCauses,omitempty"` + // RecommendedAction - READ-ONLY; The recommended action. + RecommendedAction *string `json:"recommendedAction,omitempty"` + // Status - READ-ONLY; The error status. + Status *string `json:"status,omitempty"` +} + +// ReplicationEligibilityResultsProperties properties model for replication eligibility results API. +type ReplicationEligibilityResultsProperties struct { + // ClientRequestID - READ-ONLY; The client request Id. + ClientRequestID *string `json:"clientRequestId,omitempty"` + // Errors - The error details. + Errors *[]ReplicationEligibilityResultsErrorInfo `json:"errors,omitempty"` +} + +// MarshalJSON is the custom marshaler for ReplicationEligibilityResultsProperties. +func (rerp ReplicationEligibilityResultsProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if rerp.Errors != nil { + objectMap["errors"] = rerp.Errors + } + return json.Marshal(objectMap) +} + // ReplicationFabricsCheckConsistencyFuture an abstraction for monitoring and retrieving the results of a // long-running operation. type ReplicationFabricsCheckConsistencyFuture struct { @@ -15782,35 +20428,6 @@ func (future *ReplicationMigrationItemsMigrateFuture) Result(client ReplicationM return } -// ReplicationMigrationItemsResyncFuture an abstraction for monitoring and retrieving the results of a -// long-running operation. -type ReplicationMigrationItemsResyncFuture struct { - azure.Future -} - -// Result returns the result of the asynchronous operation. -// If the operation has not completed it will return an error. -func (future *ReplicationMigrationItemsResyncFuture) Result(client ReplicationMigrationItemsClient) (mi MigrationItem, err error) { - var done bool - done, err = future.DoneWithContext(context.Background(), client) - if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsResyncFuture", "Result", future.Response(), "Polling failure") - return - } - if !done { - err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationMigrationItemsResyncFuture") - return - } - 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.ResyncResponder(mi.Response.Response) - if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsResyncFuture", "Result", mi.Response.Response, "Failure responding to request") - } - } - return -} - // ReplicationMigrationItemsTestMigrateCleanupFuture an abstraction for monitoring and retrieving the // results of a long-running operation. type ReplicationMigrationItemsTestMigrateCleanupFuture struct { @@ -16558,8 +21175,37 @@ func (rpip *ReplicationProtectedItemProperties) UnmarshalJSON(body []byte) error } } } - - return nil + + return nil +} + +// ReplicationProtectedItemsAddDisksFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type ReplicationProtectedItemsAddDisksFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ReplicationProtectedItemsAddDisksFuture) Result(client ReplicationProtectedItemsClient) (rpi ReplicationProtectedItem, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectedItemsAddDisksFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationProtectedItemsAddDisksFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if rpi.Response.Response, err = future.GetResult(sender); err == nil && rpi.Response.Response.StatusCode != http.StatusNoContent { + rpi, err = client.AddDisksResponder(rpi.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectedItemsAddDisksFuture", "Result", rpi.Response.Response, "Failure responding to request") + } + } + return } // ReplicationProtectedItemsApplyRecoveryPointFuture an abstraction for monitoring and retrieving the @@ -16724,6 +21370,35 @@ func (future *ReplicationProtectedItemsPurgeFuture) Result(client ReplicationPro return } +// ReplicationProtectedItemsRemoveDisksFuture an abstraction for monitoring and retrieving the results of a +// long-running operation. +type ReplicationProtectedItemsRemoveDisksFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ReplicationProtectedItemsRemoveDisksFuture) Result(client ReplicationProtectedItemsClient) (rpi ReplicationProtectedItem, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectedItemsRemoveDisksFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationProtectedItemsRemoveDisksFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if rpi.Response.Response, err = future.GetResult(sender); err == nil && rpi.Response.Response.StatusCode != http.StatusNoContent { + rpi, err = client.RemoveDisksResponder(rpi.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectedItemsRemoveDisksFuture", "Result", rpi.Response.Response, "Failure responding to request") + } + } + return +} + // ReplicationProtectedItemsRepairReplicationFuture an abstraction for monitoring and retrieving the // results of a long-running operation. type ReplicationProtectedItemsRepairReplicationFuture struct { @@ -16782,6 +21457,35 @@ func (future *ReplicationProtectedItemsReprotectFuture) Result(client Replicatio return } +// ReplicationProtectedItemsResolveHealthErrorsFuture an abstraction for monitoring and retrieving the +// results of a long-running operation. +type ReplicationProtectedItemsResolveHealthErrorsFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ReplicationProtectedItemsResolveHealthErrorsFuture) Result(client ReplicationProtectedItemsClient) (rpi ReplicationProtectedItem, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectedItemsResolveHealthErrorsFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationProtectedItemsResolveHealthErrorsFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if rpi.Response.Response, err = future.GetResult(sender); err == nil && rpi.Response.Response.StatusCode != http.StatusNoContent { + rpi, err = client.ResolveHealthErrorsResponder(rpi.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectedItemsResolveHealthErrorsFuture", "Result", rpi.Response.Response, "Failure responding to request") + } + } + return +} + // ReplicationProtectedItemsTestFailoverCleanupFuture an abstraction for monitoring and retrieving the // results of a long-running operation. type ReplicationProtectedItemsTestFailoverCleanupFuture struct { @@ -17054,91 +21758,446 @@ func (future *ReplicationProtectionContainersCreateFuture) Result(client Replica if pc.Response.Response, err = future.GetResult(sender); err == nil && pc.Response.Response.StatusCode != http.StatusNoContent { pc, err = client.CreateResponder(pc.Response.Response) if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectionContainersCreateFuture", "Result", pc.Response.Response, "Failure responding to request") + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectionContainersCreateFuture", "Result", pc.Response.Response, "Failure responding to request") + } + } + return +} + +// ReplicationProtectionContainersDeleteFuture an abstraction for monitoring and retrieving the results of +// a long-running operation. +type ReplicationProtectionContainersDeleteFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ReplicationProtectionContainersDeleteFuture) Result(client ReplicationProtectionContainersClient) (ar autorest.Response, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectionContainersDeleteFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationProtectionContainersDeleteFuture") + return + } + ar.Response = future.Response() + return +} + +// ReplicationProtectionContainersDiscoverProtectableItemFuture an abstraction for monitoring and +// retrieving the results of a long-running operation. +type ReplicationProtectionContainersDiscoverProtectableItemFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ReplicationProtectionContainersDiscoverProtectableItemFuture) Result(client ReplicationProtectionContainersClient) (pc ProtectionContainer, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectionContainersDiscoverProtectableItemFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationProtectionContainersDiscoverProtectableItemFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if pc.Response.Response, err = future.GetResult(sender); err == nil && pc.Response.Response.StatusCode != http.StatusNoContent { + pc, err = client.DiscoverProtectableItemResponder(pc.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectionContainersDiscoverProtectableItemFuture", "Result", pc.Response.Response, "Failure responding to request") + } + } + return +} + +// ReplicationProtectionContainersSwitchProtectionFuture an abstraction for monitoring and retrieving the +// results of a long-running operation. +type ReplicationProtectionContainersSwitchProtectionFuture struct { + azure.Future +} + +// Result returns the result of the asynchronous operation. +// If the operation has not completed it will return an error. +func (future *ReplicationProtectionContainersSwitchProtectionFuture) Result(client ReplicationProtectionContainersClient) (pc ProtectionContainer, err error) { + var done bool + done, err = future.DoneWithContext(context.Background(), client) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectionContainersSwitchProtectionFuture", "Result", future.Response(), "Polling failure") + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationProtectionContainersSwitchProtectionFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if pc.Response.Response, err = future.GetResult(sender); err == nil && pc.Response.Response.StatusCode != http.StatusNoContent { + pc, err = client.SwitchProtectionResponder(pc.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectionContainersSwitchProtectionFuture", "Result", pc.Response.Response, "Failure responding to request") + } + } + return +} + +// ReplicationProtectionIntent replication protection intent. +type ReplicationProtectionIntent struct { + autorest.Response `json:"-"` + // Properties - The custom data. + Properties *ReplicationProtectionIntentProperties `json:"properties,omitempty"` + // ID - READ-ONLY; Resource Id + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; Resource Name + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; Resource Type + Type *string `json:"type,omitempty"` + // Location - Resource Location + Location *string `json:"location,omitempty"` +} + +// MarshalJSON is the custom marshaler for ReplicationProtectionIntent. +func (rpi ReplicationProtectionIntent) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if rpi.Properties != nil { + objectMap["properties"] = rpi.Properties + } + if rpi.Location != nil { + objectMap["location"] = rpi.Location + } + return json.Marshal(objectMap) +} + +// ReplicationProtectionIntentCollection replication protection intent objects collection. +type ReplicationProtectionIntentCollection struct { + autorest.Response `json:"-"` + // Value - The Replication protection intent details. + Value *[]ReplicationProtectionIntent `json:"value,omitempty"` + // NextLink - The value of next link. + NextLink *string `json:"nextLink,omitempty"` +} + +// ReplicationProtectionIntentCollectionIterator provides access to a complete listing of +// ReplicationProtectionIntent values. +type ReplicationProtectionIntentCollectionIterator struct { + i int + page ReplicationProtectionIntentCollectionPage +} + +// 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 *ReplicationProtectionIntentCollectionIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationProtectionIntentCollectionIterator.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 *ReplicationProtectionIntentCollectionIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter ReplicationProtectionIntentCollectionIterator) 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 ReplicationProtectionIntentCollectionIterator) Response() ReplicationProtectionIntentCollection { + 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 ReplicationProtectionIntentCollectionIterator) Value() ReplicationProtectionIntent { + if !iter.page.NotDone() { + return ReplicationProtectionIntent{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the ReplicationProtectionIntentCollectionIterator type. +func NewReplicationProtectionIntentCollectionIterator(page ReplicationProtectionIntentCollectionPage) ReplicationProtectionIntentCollectionIterator { + return ReplicationProtectionIntentCollectionIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (rpic ReplicationProtectionIntentCollection) IsEmpty() bool { + return rpic.Value == nil || len(*rpic.Value) == 0 +} + +// hasNextLink returns true if the NextLink is not empty. +func (rpic ReplicationProtectionIntentCollection) hasNextLink() bool { + return rpic.NextLink != nil && len(*rpic.NextLink) != 0 +} + +// replicationProtectionIntentCollectionPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (rpic ReplicationProtectionIntentCollection) replicationProtectionIntentCollectionPreparer(ctx context.Context) (*http.Request, error) { + if !rpic.hasNextLink() { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(rpic.NextLink))) +} + +// ReplicationProtectionIntentCollectionPage contains a page of ReplicationProtectionIntent values. +type ReplicationProtectionIntentCollectionPage struct { + fn func(context.Context, ReplicationProtectionIntentCollection) (ReplicationProtectionIntentCollection, error) + rpic ReplicationProtectionIntentCollection +} + +// 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 *ReplicationProtectionIntentCollectionPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationProtectionIntentCollectionPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + for { + next, err := page.fn(ctx, page.rpic) + if err != nil { + return err + } + page.rpic = next + if !next.hasNextLink() || !next.IsEmpty() { + break } } - return + return nil } -// ReplicationProtectionContainersDeleteFuture an abstraction for monitoring and retrieving the results of -// a long-running operation. -type ReplicationProtectionContainersDeleteFuture struct { - azure.Future +// 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 *ReplicationProtectionIntentCollectionPage) Next() error { + return page.NextWithContext(context.Background()) } -// Result returns the result of the asynchronous operation. -// If the operation has not completed it will return an error. -func (future *ReplicationProtectionContainersDeleteFuture) Result(client ReplicationProtectionContainersClient) (ar autorest.Response, err error) { - var done bool - done, err = future.DoneWithContext(context.Background(), client) - if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectionContainersDeleteFuture", "Result", future.Response(), "Polling failure") - return +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page ReplicationProtectionIntentCollectionPage) NotDone() bool { + return !page.rpic.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page ReplicationProtectionIntentCollectionPage) Response() ReplicationProtectionIntentCollection { + return page.rpic +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page ReplicationProtectionIntentCollectionPage) Values() []ReplicationProtectionIntent { + if page.rpic.IsEmpty() { + return nil } - if !done { - err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationProtectionContainersDeleteFuture") - return + return *page.rpic.Value +} + +// Creates a new instance of the ReplicationProtectionIntentCollectionPage type. +func NewReplicationProtectionIntentCollectionPage(cur ReplicationProtectionIntentCollection, getNextPage func(context.Context, ReplicationProtectionIntentCollection) (ReplicationProtectionIntentCollection, error)) ReplicationProtectionIntentCollectionPage { + return ReplicationProtectionIntentCollectionPage{ + fn: getNextPage, + rpic: cur, } - ar.Response = future.Response() - return } -// ReplicationProtectionContainersDiscoverProtectableItemFuture an abstraction for monitoring and -// retrieving the results of a long-running operation. -type ReplicationProtectionContainersDiscoverProtectableItemFuture struct { - azure.Future +// ReplicationProtectionIntentProperties replication protection intent custom data details. +type ReplicationProtectionIntentProperties struct { + // FriendlyName - The name. + FriendlyName *string `json:"friendlyName,omitempty"` + // JobID - READ-ONLY; The job Id. + JobID *string `json:"jobId,omitempty"` + // JobState - READ-ONLY; The job state. + JobState *string `json:"jobState,omitempty"` + // IsActive - READ-ONLY; A value indicating whether the intent object is active. + IsActive *bool `json:"isActive,omitempty"` + // CreationTimeUTC - READ-ONLY; The creation time in UTC. + CreationTimeUTC *string `json:"creationTimeUTC,omitempty"` + // ProviderSpecificDetails - The Replication provider custom settings. + ProviderSpecificDetails BasicReplicationProtectionIntentProviderSpecificSettings `json:"providerSpecificDetails,omitempty"` } -// Result returns the result of the asynchronous operation. -// If the operation has not completed it will return an error. -func (future *ReplicationProtectionContainersDiscoverProtectableItemFuture) Result(client ReplicationProtectionContainersClient) (pc ProtectionContainer, err error) { - var done bool - done, err = future.DoneWithContext(context.Background(), client) - if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectionContainersDiscoverProtectableItemFuture", "Result", future.Response(), "Polling failure") - return +// MarshalJSON is the custom marshaler for ReplicationProtectionIntentProperties. +func (rpip ReplicationProtectionIntentProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if rpip.FriendlyName != nil { + objectMap["friendlyName"] = rpip.FriendlyName } - if !done { - err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationProtectionContainersDiscoverProtectableItemFuture") - return + objectMap["providerSpecificDetails"] = rpip.ProviderSpecificDetails + return json.Marshal(objectMap) +} + +// UnmarshalJSON is the custom unmarshaler for ReplicationProtectionIntentProperties struct. +func (rpip *ReplicationProtectionIntentProperties) UnmarshalJSON(body []byte) error { + var m map[string]*json.RawMessage + err := json.Unmarshal(body, &m) + if err != nil { + return err } - sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) - if pc.Response.Response, err = future.GetResult(sender); err == nil && pc.Response.Response.StatusCode != http.StatusNoContent { - pc, err = client.DiscoverProtectableItemResponder(pc.Response.Response) - if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectionContainersDiscoverProtectableItemFuture", "Result", pc.Response.Response, "Failure responding to request") + 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 + } + rpip.FriendlyName = &friendlyName + } + case "jobId": + if v != nil { + var jobID string + err = json.Unmarshal(*v, &jobID) + if err != nil { + return err + } + rpip.JobID = &jobID + } + case "jobState": + if v != nil { + var jobState string + err = json.Unmarshal(*v, &jobState) + if err != nil { + return err + } + rpip.JobState = &jobState + } + case "isActive": + if v != nil { + var isActive bool + err = json.Unmarshal(*v, &isActive) + if err != nil { + return err + } + rpip.IsActive = &isActive + } + case "creationTimeUTC": + if v != nil { + var creationTimeUTC string + err = json.Unmarshal(*v, &creationTimeUTC) + if err != nil { + return err + } + rpip.CreationTimeUTC = &creationTimeUTC + } + case "providerSpecificDetails": + if v != nil { + providerSpecificDetails, err := unmarshalBasicReplicationProtectionIntentProviderSpecificSettings(*v) + if err != nil { + return err + } + rpip.ProviderSpecificDetails = providerSpecificDetails + } } } - return + + return nil } -// ReplicationProtectionContainersSwitchProtectionFuture an abstraction for monitoring and retrieving the -// results of a long-running operation. -type ReplicationProtectionContainersSwitchProtectionFuture struct { - azure.Future +// BasicReplicationProtectionIntentProviderSpecificSettings replication provider specific settings. +type BasicReplicationProtectionIntentProviderSpecificSettings interface { + AsA2AReplicationIntentDetails() (*A2AReplicationIntentDetails, bool) + AsReplicationProtectionIntentProviderSpecificSettings() (*ReplicationProtectionIntentProviderSpecificSettings, bool) } -// Result returns the result of the asynchronous operation. -// If the operation has not completed it will return an error. -func (future *ReplicationProtectionContainersSwitchProtectionFuture) Result(client ReplicationProtectionContainersClient) (pc ProtectionContainer, err error) { - var done bool - done, err = future.DoneWithContext(context.Background(), client) +// ReplicationProtectionIntentProviderSpecificSettings replication provider specific settings. +type ReplicationProtectionIntentProviderSpecificSettings struct { + // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettingsInstanceTypeReplicationProtectionIntentProviderSpecificSettings', 'InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettingsInstanceTypeA2A' + InstanceType InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettings `json:"instanceType,omitempty"` +} + +func unmarshalBasicReplicationProtectionIntentProviderSpecificSettings(body []byte) (BasicReplicationProtectionIntentProviderSpecificSettings, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectionContainersSwitchProtectionFuture", "Result", future.Response(), "Polling failure") - return + return nil, err } - if !done { - err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationProtectionContainersSwitchProtectionFuture") - return + + switch m["instanceType"] { + case string(InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettingsInstanceTypeA2A): + var arid A2AReplicationIntentDetails + err := json.Unmarshal(body, &arid) + return arid, err + default: + var rpipss ReplicationProtectionIntentProviderSpecificSettings + err := json.Unmarshal(body, &rpipss) + return rpipss, err } - sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) - if pc.Response.Response, err = future.GetResult(sender); err == nil && pc.Response.Response.StatusCode != http.StatusNoContent { - pc, err = client.SwitchProtectionResponder(pc.Response.Response) +} +func unmarshalBasicReplicationProtectionIntentProviderSpecificSettingsArray(body []byte) ([]BasicReplicationProtectionIntentProviderSpecificSettings, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + rpipssArray := make([]BasicReplicationProtectionIntentProviderSpecificSettings, len(rawMessages)) + + for index, rawMessage := range rawMessages { + rpipss, err := unmarshalBasicReplicationProtectionIntentProviderSpecificSettings(*rawMessage) if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectionContainersSwitchProtectionFuture", "Result", pc.Response.Response, "Failure responding to request") + return nil, err } + rpipssArray[index] = rpipss } - return + return rpipssArray, nil +} + +// MarshalJSON is the custom marshaler for ReplicationProtectionIntentProviderSpecificSettings. +func (rpipss ReplicationProtectionIntentProviderSpecificSettings) MarshalJSON() ([]byte, error) { + rpipss.InstanceType = InstanceTypeBasicReplicationProtectionIntentProviderSpecificSettingsInstanceTypeReplicationProtectionIntentProviderSpecificSettings + objectMap := make(map[string]interface{}) + if rpipss.InstanceType != "" { + objectMap["instanceType"] = rpipss.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2AReplicationIntentDetails is the BasicReplicationProtectionIntentProviderSpecificSettings implementation for ReplicationProtectionIntentProviderSpecificSettings. +func (rpipss ReplicationProtectionIntentProviderSpecificSettings) AsA2AReplicationIntentDetails() (*A2AReplicationIntentDetails, bool) { + return nil, false +} + +// AsReplicationProtectionIntentProviderSpecificSettings is the BasicReplicationProtectionIntentProviderSpecificSettings implementation for ReplicationProtectionIntentProviderSpecificSettings. +func (rpipss ReplicationProtectionIntentProviderSpecificSettings) AsReplicationProtectionIntentProviderSpecificSettings() (*ReplicationProtectionIntentProviderSpecificSettings, bool) { + return &rpipss, true +} + +// AsBasicReplicationProtectionIntentProviderSpecificSettings is the BasicReplicationProtectionIntentProviderSpecificSettings implementation for ReplicationProtectionIntentProviderSpecificSettings. +func (rpipss ReplicationProtectionIntentProviderSpecificSettings) AsBasicReplicationProtectionIntentProviderSpecificSettings() (BasicReplicationProtectionIntentProviderSpecificSettings, bool) { + return &rpipss, true } // ReplicationProviderContainerUnmappingInput provider specific input for unpairing operations. @@ -17156,7 +22215,7 @@ type BasicReplicationProviderSpecificContainerCreationInput interface { // ReplicationProviderSpecificContainerCreationInput provider specific input for container creation operation. type ReplicationProviderSpecificContainerCreationInput struct { - // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput', 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput', 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeSixcSevendaFourFiveFiveFiveZeroSixfFourThreeffAOneSixaEightebOneZeroOneaebbSevenZero' InstanceType InstanceTypeBasicReplicationProviderSpecificContainerCreationInput `json:"instanceType,omitempty"` } @@ -17172,7 +22231,7 @@ func unmarshalBasicReplicationProviderSpecificContainerCreationInput(body []byte var acci A2AContainerCreationInput err := json.Unmarshal(body, &acci) return acci, err - case string(InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeVMwareCbt): + case string(InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeSixcSevendaFourFiveFiveFiveZeroSixfFourThreeffAOneSixaEightebOneZeroOneaebbSevenZero): var vmccci VMwareCbtContainerCreationInput err := json.Unmarshal(body, &vmccci) return vmccci, err @@ -17323,13 +22382,14 @@ type BasicReplicationProviderSpecificSettings interface { AsHyperVReplicaBlueReplicationDetails() (*HyperVReplicaBlueReplicationDetails, bool) AsHyperVReplicaReplicationDetails() (*HyperVReplicaReplicationDetails, bool) AsInMageAzureV2ReplicationDetails() (*InMageAzureV2ReplicationDetails, bool) + AsInMageRcmReplicationDetails() (*InMageRcmReplicationDetails, bool) AsInMageReplicationDetails() (*InMageReplicationDetails, bool) AsReplicationProviderSpecificSettings() (*ReplicationProviderSpecificSettings, bool) } // ReplicationProviderSpecificSettings replication provider specific settings. type ReplicationProviderSpecificSettings struct { - // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeReplicationProviderSpecificSettings', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage' + // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeReplicationProviderSpecificSettings', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplicaBaseReplicationDetails', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageAzureV2', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageRcm', 'InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage' InstanceType InstanceTypeBasicReplicationProviderSpecificSettings `json:"instanceType,omitempty"` } @@ -17365,6 +22425,10 @@ func unmarshalBasicReplicationProviderSpecificSettings(body []byte) (BasicReplic var imavrd InMageAzureV2ReplicationDetails err := json.Unmarshal(body, &imavrd) return imavrd, err + case string(InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMageRcm): + var imrrd InMageRcmReplicationDetails + err := json.Unmarshal(body, &imrrd) + return imrrd, err case string(InstanceTypeBasicReplicationProviderSpecificSettingsInstanceTypeInMage): var imrd InMageReplicationDetails err := json.Unmarshal(body, &imrd) @@ -17434,6 +22498,11 @@ func (rpss ReplicationProviderSpecificSettings) AsInMageAzureV2ReplicationDetail return nil, false } +// AsInMageRcmReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for ReplicationProviderSpecificSettings. +func (rpss ReplicationProviderSpecificSettings) AsInMageRcmReplicationDetails() (*InMageRcmReplicationDetails, bool) { + return nil, false +} + // AsInMageReplicationDetails is the BasicReplicationProviderSpecificSettings implementation for ReplicationProviderSpecificSettings. func (rpss ReplicationProviderSpecificSettings) AsInMageReplicationDetails() (*InMageReplicationDetails, bool) { return nil, false @@ -18029,188 +23098,96 @@ func (future *ReplicationvCentersUpdateFuture) Result(client ReplicationvCenters done, err = future.DoneWithContext(context.Background(), client) if err != nil { err = autorest.NewErrorWithError(err, "siterecovery.ReplicationvCentersUpdateFuture", "Result", future.Response(), "Polling failure") - return - } - if !done { - err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationvCentersUpdateFuture") - return - } - sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) - if vc.Response.Response, err = future.GetResult(sender); err == nil && vc.Response.Response.StatusCode != http.StatusNoContent { - vc, err = client.UpdateResponder(vc.Response.Response) - if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationvCentersUpdateFuture", "Result", vc.Response.Response, "Failure responding to request") - } - } - return -} - -// Resource azure resource. -type Resource struct { - // ID - READ-ONLY; Resource Id - ID *string `json:"id,omitempty"` - // Name - READ-ONLY; Resource Name - Name *string `json:"name,omitempty"` - // Type - READ-ONLY; Resource Type - Type *string `json:"type,omitempty"` - // Location - Resource Location - Location *string `json:"location,omitempty"` -} - -// MarshalJSON is the custom marshaler for Resource. -func (r Resource) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - if r.Location != nil { - objectMap["location"] = r.Location - } - return json.Marshal(objectMap) -} - -// ResourceHealthSummary base class to define the health summary of the resources contained under an Arm -// resource. -type ResourceHealthSummary struct { - // ResourceCount - The count of total resources under the container. - ResourceCount *int32 `json:"resourceCount,omitempty"` - // Issues - The list of summary of health errors across the resources under the container. - Issues *[]HealthErrorSummary `json:"issues,omitempty"` - // CategorizedResourceCounts - The categorized resource counts. - CategorizedResourceCounts map[string]*int32 `json:"categorizedResourceCounts"` -} - -// MarshalJSON is the custom marshaler for ResourceHealthSummary. -func (RHS ResourceHealthSummary) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]interface{}) - if RHS.ResourceCount != nil { - objectMap["resourceCount"] = RHS.ResourceCount - } - if RHS.Issues != nil { - objectMap["issues"] = RHS.Issues - } - if RHS.CategorizedResourceCounts != nil { - objectMap["categorizedResourceCounts"] = RHS.CategorizedResourceCounts - } - return json.Marshal(objectMap) -} - -// ResumeJobParams resume job params. -type ResumeJobParams struct { - // Properties - Resume job properties. - Properties *ResumeJobParamsProperties `json:"properties,omitempty"` -} - -// ResumeJobParamsProperties resume job properties. -type ResumeJobParamsProperties struct { - // Comments - Resume job comments. - Comments *string `json:"comments,omitempty"` -} - -// ResyncInput resync input. -type ResyncInput struct { - // Properties - Resync input properties. - Properties *ResyncInputProperties `json:"properties,omitempty"` -} - -// ResyncInputProperties resync input properties. -type ResyncInputProperties struct { - // ProviderSpecificDetails - The provider specific details. - ProviderSpecificDetails BasicResyncProviderSpecificInput `json:"providerSpecificDetails,omitempty"` -} - -// UnmarshalJSON is the custom unmarshaler for ResyncInputProperties struct. -func (rip *ResyncInputProperties) 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 := unmarshalBasicResyncProviderSpecificInput(*v) - if err != nil { - return err - } - rip.ProviderSpecificDetails = providerSpecificDetails - } + return + } + if !done { + err = azure.NewAsyncOpIncompleteError("siterecovery.ReplicationvCentersUpdateFuture") + return + } + sender := autorest.DecorateSender(client, autorest.DoRetryForStatusCodes(client.RetryAttempts, client.RetryDuration, autorest.StatusCodesForRetry...)) + if vc.Response.Response, err = future.GetResult(sender); err == nil && vc.Response.Response.StatusCode != http.StatusNoContent { + vc, err = client.UpdateResponder(vc.Response.Response) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationvCentersUpdateFuture", "Result", vc.Response.Response, "Failure responding to request") } } - - return nil + return } -// BasicResyncProviderSpecificInput resync provider specific input. -type BasicResyncProviderSpecificInput interface { - AsVMwareCbtResyncInput() (*VMwareCbtResyncInput, bool) - AsResyncProviderSpecificInput() (*ResyncProviderSpecificInput, bool) +// ReprotectAgentDetails reprotect agent details. +type ReprotectAgentDetails struct { + // ID - READ-ONLY; The reprotect agent Id. + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; The reprotect agent name. + Name *string `json:"name,omitempty"` + // Version - READ-ONLY; The version. + Version *string `json:"version,omitempty"` + // LastHeartbeatUtc - READ-ONLY; The last heartbeat received from the reprotect agent. + LastHeartbeatUtc *date.Time `json:"lastHeartbeatUtc,omitempty"` + // Health - READ-ONLY; The health of the reprotect agent. Possible values include: 'ProtectionHealthNone', 'ProtectionHealthNormal', 'ProtectionHealthWarning', 'ProtectionHealthCritical' + Health ProtectionHealth `json:"health,omitempty"` + // HealthErrors - READ-ONLY; The health errors. + HealthErrors *[]HealthError `json:"healthErrors,omitempty"` } -// ResyncProviderSpecificInput resync provider specific input. -type ResyncProviderSpecificInput struct { - // InstanceType - Possible values include: 'InstanceTypeBasicResyncProviderSpecificInputInstanceTypeResyncProviderSpecificInput', 'InstanceTypeBasicResyncProviderSpecificInputInstanceTypeVMwareCbt' - InstanceType InstanceTypeBasicResyncProviderSpecificInput `json:"instanceType,omitempty"` +// ResolveHealthError resolve health errors input properties. +type ResolveHealthError struct { + // HealthErrorID - Health error id. + HealthErrorID *string `json:"healthErrorId,omitempty"` } -func unmarshalBasicResyncProviderSpecificInput(body []byte) (BasicResyncProviderSpecificInput, error) { - var m map[string]interface{} - err := json.Unmarshal(body, &m) - if err != nil { - return nil, err - } - - switch m["instanceType"] { - case string(InstanceTypeBasicResyncProviderSpecificInputInstanceTypeVMwareCbt): - var vmcri VMwareCbtResyncInput - err := json.Unmarshal(body, &vmcri) - return vmcri, err - default: - var rpsi ResyncProviderSpecificInput - err := json.Unmarshal(body, &rpsi) - return rpsi, err - } +// ResolveHealthInput resolve health input. +type ResolveHealthInput struct { + // Properties - Disable resolve health input properties. + Properties *ResolveHealthInputProperties `json:"properties,omitempty"` } -func unmarshalBasicResyncProviderSpecificInputArray(body []byte) ([]BasicResyncProviderSpecificInput, error) { - var rawMessages []*json.RawMessage - err := json.Unmarshal(body, &rawMessages) - if err != nil { - return nil, err - } - rpsiArray := make([]BasicResyncProviderSpecificInput, len(rawMessages)) +// ResolveHealthInputProperties resolve health input properties. +type ResolveHealthInputProperties struct { + // HealthErrors - Health errors. + HealthErrors *[]ResolveHealthError `json:"healthErrors,omitempty"` +} - for index, rawMessage := range rawMessages { - rpsi, err := unmarshalBasicResyncProviderSpecificInput(*rawMessage) - if err != nil { - return nil, err - } - rpsiArray[index] = rpsi - } - return rpsiArray, nil +// Resource azure resource. +type Resource struct { + // ID - READ-ONLY; Resource Id + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; Resource Name + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; Resource Type + Type *string `json:"type,omitempty"` + // Location - Resource Location + Location *string `json:"location,omitempty"` } -// MarshalJSON is the custom marshaler for ResyncProviderSpecificInput. -func (rpsi ResyncProviderSpecificInput) MarshalJSON() ([]byte, error) { - rpsi.InstanceType = InstanceTypeBasicResyncProviderSpecificInputInstanceTypeResyncProviderSpecificInput +// MarshalJSON is the custom marshaler for Resource. +func (r Resource) MarshalJSON() ([]byte, error) { objectMap := make(map[string]interface{}) - if rpsi.InstanceType != "" { - objectMap["instanceType"] = rpsi.InstanceType + if r.Location != nil { + objectMap["location"] = r.Location } return json.Marshal(objectMap) } -// AsVMwareCbtResyncInput is the BasicResyncProviderSpecificInput implementation for ResyncProviderSpecificInput. -func (rpsi ResyncProviderSpecificInput) AsVMwareCbtResyncInput() (*VMwareCbtResyncInput, bool) { - return nil, false +// ResourceHealthSummary base class to define the health summary of the resources contained under an Arm +// resource. +type ResourceHealthSummary struct { + // ResourceCount - The count of total resources under the container. + ResourceCount *int32 `json:"resourceCount,omitempty"` + // Issues - The list of summary of health errors across the resources under the container. + Issues *[]HealthErrorSummary `json:"issues,omitempty"` } -// AsResyncProviderSpecificInput is the BasicResyncProviderSpecificInput implementation for ResyncProviderSpecificInput. -func (rpsi ResyncProviderSpecificInput) AsResyncProviderSpecificInput() (*ResyncProviderSpecificInput, bool) { - return &rpsi, true +// ResumeJobParams resume job params. +type ResumeJobParams struct { + // Properties - Resume job properties. + Properties *ResumeJobParamsProperties `json:"properties,omitempty"` } -// AsBasicResyncProviderSpecificInput is the BasicResyncProviderSpecificInput implementation for ResyncProviderSpecificInput. -func (rpsi ResyncProviderSpecificInput) AsBasicResyncProviderSpecificInput() (BasicResyncProviderSpecificInput, bool) { - return &rpsi, true +// ResumeJobParamsProperties resume job properties. +type ResumeJobParamsProperties struct { + // Comments - Resume job comments. + Comments *string `json:"comments,omitempty"` } // RetentionVolume the retention details of the MT. @@ -18399,7 +23376,7 @@ type RunAsAccount struct { // SanEnableProtectionInput san enable protection provider specific input. type SanEnableProtectionInput struct { - // InstanceType - Possible values include: 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeEnableProtectionProviderSpecificInput', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeSan' + // InstanceType - Possible values include: 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeEnableProtectionProviderSpecificInput', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicEnableProtectionProviderSpecificInputInstanceTypeSan' InstanceType InstanceTypeBasicEnableProtectionProviderSpecificInput `json:"instanceType,omitempty"` } @@ -18433,6 +23410,11 @@ func (sepi SanEnableProtectionInput) AsInMageEnableProtectionInput() (*InMageEna return nil, false } +// AsInMageRcmEnableProtectionInput is the BasicEnableProtectionProviderSpecificInput implementation for SanEnableProtectionInput. +func (sepi SanEnableProtectionInput) AsInMageRcmEnableProtectionInput() (*InMageRcmEnableProtectionInput, bool) { + return nil, false +} + // AsSanEnableProtectionInput is the BasicEnableProtectionProviderSpecificInput implementation for SanEnableProtectionInput. func (sepi SanEnableProtectionInput) AsSanEnableProtectionInput() (*SanEnableProtectionInput, bool) { return &sepi, true @@ -18548,6 +23530,80 @@ type ServiceError struct { ActivityID *string `json:"activityId,omitempty"` } +// BasicStorageAccountCustomDetails storage account custom input. +type BasicStorageAccountCustomDetails interface { + AsExistingStorageAccount() (*ExistingStorageAccount, bool) + AsStorageAccountCustomDetails() (*StorageAccountCustomDetails, bool) +} + +// StorageAccountCustomDetails storage account custom input. +type StorageAccountCustomDetails struct { + // ResourceType - Possible values include: 'ResourceTypeBasicStorageAccountCustomDetailsResourceTypeStorageAccountCustomDetails', 'ResourceTypeBasicStorageAccountCustomDetailsResourceTypeExisting' + ResourceType ResourceTypeBasicStorageAccountCustomDetails `json:"resourceType,omitempty"` +} + +func unmarshalBasicStorageAccountCustomDetails(body []byte) (BasicStorageAccountCustomDetails, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["resourceType"] { + case string(ResourceTypeBasicStorageAccountCustomDetailsResourceTypeExisting): + var esa ExistingStorageAccount + err := json.Unmarshal(body, &esa) + return esa, err + default: + var sacd StorageAccountCustomDetails + err := json.Unmarshal(body, &sacd) + return sacd, err + } +} +func unmarshalBasicStorageAccountCustomDetailsArray(body []byte) ([]BasicStorageAccountCustomDetails, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + sacdArray := make([]BasicStorageAccountCustomDetails, len(rawMessages)) + + for index, rawMessage := range rawMessages { + sacd, err := unmarshalBasicStorageAccountCustomDetails(*rawMessage) + if err != nil { + return nil, err + } + sacdArray[index] = sacd + } + return sacdArray, nil +} + +// MarshalJSON is the custom marshaler for StorageAccountCustomDetails. +func (sacd StorageAccountCustomDetails) MarshalJSON() ([]byte, error) { + sacd.ResourceType = ResourceTypeBasicStorageAccountCustomDetailsResourceTypeStorageAccountCustomDetails + objectMap := make(map[string]interface{}) + if sacd.ResourceType != "" { + objectMap["resourceType"] = sacd.ResourceType + } + return json.Marshal(objectMap) +} + +// AsExistingStorageAccount is the BasicStorageAccountCustomDetails implementation for StorageAccountCustomDetails. +func (sacd StorageAccountCustomDetails) AsExistingStorageAccount() (*ExistingStorageAccount, bool) { + return nil, false +} + +// AsStorageAccountCustomDetails is the BasicStorageAccountCustomDetails implementation for StorageAccountCustomDetails. +func (sacd StorageAccountCustomDetails) AsStorageAccountCustomDetails() (*StorageAccountCustomDetails, bool) { + return &sacd, true +} + +// AsBasicStorageAccountCustomDetails is the BasicStorageAccountCustomDetails implementation for StorageAccountCustomDetails. +func (sacd StorageAccountCustomDetails) AsBasicStorageAccountCustomDetails() (BasicStorageAccountCustomDetails, bool) { + return &sacd, true +} + // StorageClassification storage object definition. type StorageClassification struct { autorest.Response `json:"-"` @@ -18956,6 +24012,66 @@ type Subnet struct { AddressList *[]string `json:"addressList,omitempty"` } +// SupportedOperatingSystems response object for supported operating systems API. +type SupportedOperatingSystems struct { + autorest.Response `json:"-"` + // Properties - Properties model for supported OS API. + Properties *SupportedOSProperties `json:"properties,omitempty"` + // ID - READ-ONLY; Resource Id + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; Resource Name + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; Resource Type + Type *string `json:"type,omitempty"` + // Location - Resource Location + Location *string `json:"location,omitempty"` +} + +// MarshalJSON is the custom marshaler for SupportedOperatingSystems. +func (sos SupportedOperatingSystems) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if sos.Properties != nil { + objectMap["properties"] = sos.Properties + } + if sos.Location != nil { + objectMap["location"] = sos.Location + } + return json.Marshal(objectMap) +} + +// SupportedOSDetails supported Operating system details. +type SupportedOSDetails struct { + // OsName - The name. + OsName *string `json:"osName,omitempty"` + // OsType - The type. + OsType *string `json:"osType,omitempty"` + // OsVersions - List of version for OS. + OsVersions *[]OSVersionWrapper `json:"osVersions,omitempty"` +} + +// SupportedOSProperties properties model for supported OS API. +type SupportedOSProperties struct { + // SupportedOsList - The supported OS List. + SupportedOsList *[]SupportedOSProperty `json:"supportedOsList,omitempty"` +} + +// SupportedOSProperty property object for supported OS api. +type SupportedOSProperty struct { + // InstanceType - READ-ONLY; Gets the replication provider type. + InstanceType *string `json:"instanceType,omitempty"` + // SupportedOs - List of supported OS. + SupportedOs *[]SupportedOSDetails `json:"supportedOs,omitempty"` +} + +// MarshalJSON is the custom marshaler for SupportedOSProperty. +func (sop SupportedOSProperty) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if sop.SupportedOs != nil { + objectMap["supportedOs"] = sop.SupportedOs + } + return json.Marshal(objectMap) +} + // SwitchProtectionInput switch protection input. type SwitchProtectionInput struct { // Properties - Switch protection properties @@ -19316,6 +24432,8 @@ type TargetComputeSizeProperties struct { FriendlyName *string `json:"friendlyName,omitempty"` // CPUCoresCount - The maximum cpu cores count supported by target compute size. CPUCoresCount *int32 `json:"cpuCoresCount,omitempty"` + // VCPUsAvailable - READ-ONLY; The Available vCPUs supported by target compute size. + VCPUsAvailable *int32 `json:"vCPUsAvailable,omitempty"` // MemoryInGB - The maximum memory in GB supported by target compute size. MemoryInGB *float64 `json:"memoryInGB,omitempty"` // MaxDataDiskCount - The maximum data disks count supported by target compute size. @@ -19326,6 +24444,38 @@ type TargetComputeSizeProperties struct { Errors *[]ComputeSizeErrorDetails `json:"errors,omitempty"` // HighIopsSupported - The value indicating whether the target compute size supports high Iops. HighIopsSupported *string `json:"highIopsSupported,omitempty"` + // HyperVGenerations - READ-ONLY; The supported HyperV Generations. + HyperVGenerations *[]string `json:"hyperVGenerations,omitempty"` +} + +// MarshalJSON is the custom marshaler for TargetComputeSizeProperties. +func (tcsp TargetComputeSizeProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if tcsp.Name != nil { + objectMap["name"] = tcsp.Name + } + if tcsp.FriendlyName != nil { + objectMap["friendlyName"] = tcsp.FriendlyName + } + if tcsp.CPUCoresCount != nil { + objectMap["cpuCoresCount"] = tcsp.CPUCoresCount + } + if tcsp.MemoryInGB != nil { + objectMap["memoryInGB"] = tcsp.MemoryInGB + } + if tcsp.MaxDataDiskCount != nil { + objectMap["maxDataDiskCount"] = tcsp.MaxDataDiskCount + } + if tcsp.MaxNicsCount != nil { + objectMap["maxNicsCount"] = tcsp.MaxNicsCount + } + if tcsp.Errors != nil { + objectMap["errors"] = tcsp.Errors + } + if tcsp.HighIopsSupported != nil { + objectMap["highIopsSupported"] = tcsp.HighIopsSupported + } + return json.Marshal(objectMap) } // BasicTaskTypeDetails task details based on specific task type. @@ -19484,15 +24634,15 @@ type TestFailoverCleanupInputProperties struct { Comments *string `json:"comments,omitempty"` } -// TestFailoverInput input definition for planned failover. +// TestFailoverInput input definition for test failover. type TestFailoverInput struct { - // Properties - Planned failover input properties + // Properties - test failover input properties Properties *TestFailoverInputProperties `json:"properties,omitempty"` } -// TestFailoverInputProperties input definition for planned failover input properties. +// TestFailoverInputProperties input definition for test failover input properties. type TestFailoverInputProperties struct { - // FailoverDirection - Failover direction. + // FailoverDirection - Test failover direction. FailoverDirection *string `json:"failoverDirection,omitempty"` // NetworkType - Network type to be used for test failover. NetworkType *string `json:"networkType,omitempty"` @@ -19501,7 +24651,7 @@ type TestFailoverInputProperties struct { // SkipTestFailoverCleanup - A value indicating whether the test failover cleanup is to be skipped. SkipTestFailoverCleanup *string `json:"skipTestFailoverCleanup,omitempty"` // ProviderSpecificDetails - Provider specific settings - ProviderSpecificDetails BasicProviderSpecificFailoverInput `json:"providerSpecificDetails,omitempty"` + ProviderSpecificDetails BasicTestFailoverProviderSpecificInput `json:"providerSpecificDetails,omitempty"` } // UnmarshalJSON is the custom unmarshaler for TestFailoverInputProperties struct. @@ -19551,7 +24701,7 @@ func (tfip *TestFailoverInputProperties) UnmarshalJSON(body []byte) error { } case "providerSpecificDetails": if v != nil { - providerSpecificDetails, err := unmarshalBasicProviderSpecificFailoverInput(*v) + providerSpecificDetails, err := unmarshalBasicTestFailoverProviderSpecificInput(*v) if err != nil { return err } @@ -19649,6 +24799,120 @@ func (tfjd TestFailoverJobDetails) AsBasicJobDetails() (BasicJobDetails, bool) { return &tfjd, true } +// BasicTestFailoverProviderSpecificInput provider specific test failover input. +type BasicTestFailoverProviderSpecificInput interface { + AsA2ATestFailoverInput() (*A2ATestFailoverInput, bool) + AsHyperVReplicaAzureTestFailoverInput() (*HyperVReplicaAzureTestFailoverInput, bool) + AsInMageAzureV2TestFailoverInput() (*InMageAzureV2TestFailoverInput, bool) + AsInMageRcmTestFailoverInput() (*InMageRcmTestFailoverInput, bool) + AsInMageTestFailoverInput() (*InMageTestFailoverInput, bool) + AsTestFailoverProviderSpecificInput() (*TestFailoverProviderSpecificInput, bool) +} + +// TestFailoverProviderSpecificInput provider specific test failover input. +type TestFailoverProviderSpecificInput struct { + // InstanceType - Possible values include: 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeTestFailoverProviderSpecificInput', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMage' + InstanceType InstanceTypeBasicTestFailoverProviderSpecificInput `json:"instanceType,omitempty"` +} + +func unmarshalBasicTestFailoverProviderSpecificInput(body []byte) (BasicTestFailoverProviderSpecificInput, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["instanceType"] { + case string(InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeA2A): + var atfi A2ATestFailoverInput + err := json.Unmarshal(body, &atfi) + return atfi, err + case string(InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure): + var hvratfi HyperVReplicaAzureTestFailoverInput + err := json.Unmarshal(body, &hvratfi) + return hvratfi, err + case string(InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageAzureV2): + var imavtfi InMageAzureV2TestFailoverInput + err := json.Unmarshal(body, &imavtfi) + return imavtfi, err + case string(InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMageRcm): + var imrtfi InMageRcmTestFailoverInput + err := json.Unmarshal(body, &imrtfi) + return imrtfi, err + case string(InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeInMage): + var imtfi InMageTestFailoverInput + err := json.Unmarshal(body, &imtfi) + return imtfi, err + default: + var tfpsi TestFailoverProviderSpecificInput + err := json.Unmarshal(body, &tfpsi) + return tfpsi, err + } +} +func unmarshalBasicTestFailoverProviderSpecificInputArray(body []byte) ([]BasicTestFailoverProviderSpecificInput, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + tfpsiArray := make([]BasicTestFailoverProviderSpecificInput, len(rawMessages)) + + for index, rawMessage := range rawMessages { + tfpsi, err := unmarshalBasicTestFailoverProviderSpecificInput(*rawMessage) + if err != nil { + return nil, err + } + tfpsiArray[index] = tfpsi + } + return tfpsiArray, nil +} + +// MarshalJSON is the custom marshaler for TestFailoverProviderSpecificInput. +func (tfpsi TestFailoverProviderSpecificInput) MarshalJSON() ([]byte, error) { + tfpsi.InstanceType = InstanceTypeBasicTestFailoverProviderSpecificInputInstanceTypeTestFailoverProviderSpecificInput + objectMap := make(map[string]interface{}) + if tfpsi.InstanceType != "" { + objectMap["instanceType"] = tfpsi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2ATestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for TestFailoverProviderSpecificInput. +func (tfpsi TestFailoverProviderSpecificInput) AsA2ATestFailoverInput() (*A2ATestFailoverInput, bool) { + return nil, false +} + +// AsHyperVReplicaAzureTestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for TestFailoverProviderSpecificInput. +func (tfpsi TestFailoverProviderSpecificInput) AsHyperVReplicaAzureTestFailoverInput() (*HyperVReplicaAzureTestFailoverInput, bool) { + return nil, false +} + +// AsInMageAzureV2TestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for TestFailoverProviderSpecificInput. +func (tfpsi TestFailoverProviderSpecificInput) AsInMageAzureV2TestFailoverInput() (*InMageAzureV2TestFailoverInput, bool) { + return nil, false +} + +// AsInMageRcmTestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for TestFailoverProviderSpecificInput. +func (tfpsi TestFailoverProviderSpecificInput) AsInMageRcmTestFailoverInput() (*InMageRcmTestFailoverInput, bool) { + return nil, false +} + +// AsInMageTestFailoverInput is the BasicTestFailoverProviderSpecificInput implementation for TestFailoverProviderSpecificInput. +func (tfpsi TestFailoverProviderSpecificInput) AsInMageTestFailoverInput() (*InMageTestFailoverInput, bool) { + return nil, false +} + +// AsTestFailoverProviderSpecificInput is the BasicTestFailoverProviderSpecificInput implementation for TestFailoverProviderSpecificInput. +func (tfpsi TestFailoverProviderSpecificInput) AsTestFailoverProviderSpecificInput() (*TestFailoverProviderSpecificInput, bool) { + return &tfpsi, true +} + +// AsBasicTestFailoverProviderSpecificInput is the BasicTestFailoverProviderSpecificInput implementation for TestFailoverProviderSpecificInput. +func (tfpsi TestFailoverProviderSpecificInput) AsBasicTestFailoverProviderSpecificInput() (BasicTestFailoverProviderSpecificInput, bool) { + return &tfpsi, true +} + // TestMigrateCleanupInput input for test migrate cleanup. type TestMigrateCleanupInput struct { // Properties - Test migrate cleanup input properties. @@ -19770,20 +25034,20 @@ func (tmpsi TestMigrateProviderSpecificInput) AsBasicTestMigrateProviderSpecific return &tmpsi, true } -// UnplannedFailoverInput input definition for planned failover. +// UnplannedFailoverInput input definition for unplanned failover. type UnplannedFailoverInput struct { - // Properties - Planned failover input properties + // Properties - Unplanned failover input properties. Properties *UnplannedFailoverInputProperties `json:"properties,omitempty"` } -// UnplannedFailoverInputProperties input definition for planned failover input properties. +// UnplannedFailoverInputProperties input definition for unplanned failover input properties. type UnplannedFailoverInputProperties struct { // FailoverDirection - Failover direction. FailoverDirection *string `json:"failoverDirection,omitempty"` // SourceSiteOperations - Source site operations status SourceSiteOperations *string `json:"sourceSiteOperations,omitempty"` // ProviderSpecificDetails - Provider specific settings - ProviderSpecificDetails BasicProviderSpecificFailoverInput `json:"providerSpecificDetails,omitempty"` + ProviderSpecificDetails BasicUnplannedFailoverProviderSpecificInput `json:"providerSpecificDetails,omitempty"` } // UnmarshalJSON is the custom unmarshaler for UnplannedFailoverInputProperties struct. @@ -19815,7 +25079,7 @@ func (ufip *UnplannedFailoverInputProperties) UnmarshalJSON(body []byte) error { } case "providerSpecificDetails": if v != nil { - providerSpecificDetails, err := unmarshalBasicProviderSpecificFailoverInput(*v) + providerSpecificDetails, err := unmarshalBasicUnplannedFailoverProviderSpecificInput(*v) if err != nil { return err } @@ -19824,7 +25088,121 @@ func (ufip *UnplannedFailoverInputProperties) UnmarshalJSON(body []byte) error { } } - return nil + return nil +} + +// BasicUnplannedFailoverProviderSpecificInput provider specific unplanned failover input. +type BasicUnplannedFailoverProviderSpecificInput interface { + AsA2AUnplannedFailoverInput() (*A2AUnplannedFailoverInput, bool) + AsHyperVReplicaAzureUnplannedFailoverInput() (*HyperVReplicaAzureUnplannedFailoverInput, bool) + AsInMageAzureV2UnplannedFailoverInput() (*InMageAzureV2UnplannedFailoverInput, bool) + AsInMageRcmUnplannedFailoverInput() (*InMageRcmUnplannedFailoverInput, bool) + AsInMageUnplannedFailoverInput() (*InMageUnplannedFailoverInput, bool) + AsUnplannedFailoverProviderSpecificInput() (*UnplannedFailoverProviderSpecificInput, bool) +} + +// UnplannedFailoverProviderSpecificInput provider specific unplanned failover input. +type UnplannedFailoverProviderSpecificInput struct { + // InstanceType - Possible values include: 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeUnplannedFailoverProviderSpecificInput', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMage' + InstanceType InstanceTypeBasicUnplannedFailoverProviderSpecificInput `json:"instanceType,omitempty"` +} + +func unmarshalBasicUnplannedFailoverProviderSpecificInput(body []byte) (BasicUnplannedFailoverProviderSpecificInput, error) { + var m map[string]interface{} + err := json.Unmarshal(body, &m) + if err != nil { + return nil, err + } + + switch m["instanceType"] { + case string(InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeA2A): + var aufi A2AUnplannedFailoverInput + err := json.Unmarshal(body, &aufi) + return aufi, err + case string(InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeHyperVReplicaAzure): + var hvraufi HyperVReplicaAzureUnplannedFailoverInput + err := json.Unmarshal(body, &hvraufi) + return hvraufi, err + case string(InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageAzureV2): + var imavufi InMageAzureV2UnplannedFailoverInput + err := json.Unmarshal(body, &imavufi) + return imavufi, err + case string(InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMageRcm): + var imrufi InMageRcmUnplannedFailoverInput + err := json.Unmarshal(body, &imrufi) + return imrufi, err + case string(InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeInMage): + var imufi InMageUnplannedFailoverInput + err := json.Unmarshal(body, &imufi) + return imufi, err + default: + var ufpsi UnplannedFailoverProviderSpecificInput + err := json.Unmarshal(body, &ufpsi) + return ufpsi, err + } +} +func unmarshalBasicUnplannedFailoverProviderSpecificInputArray(body []byte) ([]BasicUnplannedFailoverProviderSpecificInput, error) { + var rawMessages []*json.RawMessage + err := json.Unmarshal(body, &rawMessages) + if err != nil { + return nil, err + } + + ufpsiArray := make([]BasicUnplannedFailoverProviderSpecificInput, len(rawMessages)) + + for index, rawMessage := range rawMessages { + ufpsi, err := unmarshalBasicUnplannedFailoverProviderSpecificInput(*rawMessage) + if err != nil { + return nil, err + } + ufpsiArray[index] = ufpsi + } + return ufpsiArray, nil +} + +// MarshalJSON is the custom marshaler for UnplannedFailoverProviderSpecificInput. +func (ufpsi UnplannedFailoverProviderSpecificInput) MarshalJSON() ([]byte, error) { + ufpsi.InstanceType = InstanceTypeBasicUnplannedFailoverProviderSpecificInputInstanceTypeUnplannedFailoverProviderSpecificInput + objectMap := make(map[string]interface{}) + if ufpsi.InstanceType != "" { + objectMap["instanceType"] = ufpsi.InstanceType + } + return json.Marshal(objectMap) +} + +// AsA2AUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for UnplannedFailoverProviderSpecificInput. +func (ufpsi UnplannedFailoverProviderSpecificInput) AsA2AUnplannedFailoverInput() (*A2AUnplannedFailoverInput, bool) { + return nil, false +} + +// AsHyperVReplicaAzureUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for UnplannedFailoverProviderSpecificInput. +func (ufpsi UnplannedFailoverProviderSpecificInput) AsHyperVReplicaAzureUnplannedFailoverInput() (*HyperVReplicaAzureUnplannedFailoverInput, bool) { + return nil, false +} + +// AsInMageAzureV2UnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for UnplannedFailoverProviderSpecificInput. +func (ufpsi UnplannedFailoverProviderSpecificInput) AsInMageAzureV2UnplannedFailoverInput() (*InMageAzureV2UnplannedFailoverInput, bool) { + return nil, false +} + +// AsInMageRcmUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for UnplannedFailoverProviderSpecificInput. +func (ufpsi UnplannedFailoverProviderSpecificInput) AsInMageRcmUnplannedFailoverInput() (*InMageRcmUnplannedFailoverInput, bool) { + return nil, false +} + +// AsInMageUnplannedFailoverInput is the BasicUnplannedFailoverProviderSpecificInput implementation for UnplannedFailoverProviderSpecificInput. +func (ufpsi UnplannedFailoverProviderSpecificInput) AsInMageUnplannedFailoverInput() (*InMageUnplannedFailoverInput, bool) { + return nil, false +} + +// AsUnplannedFailoverProviderSpecificInput is the BasicUnplannedFailoverProviderSpecificInput implementation for UnplannedFailoverProviderSpecificInput. +func (ufpsi UnplannedFailoverProviderSpecificInput) AsUnplannedFailoverProviderSpecificInput() (*UnplannedFailoverProviderSpecificInput, bool) { + return &ufpsi, true +} + +// AsBasicUnplannedFailoverProviderSpecificInput is the BasicUnplannedFailoverProviderSpecificInput implementation for UnplannedFailoverProviderSpecificInput. +func (ufpsi UnplannedFailoverProviderSpecificInput) AsBasicUnplannedFailoverProviderSpecificInput() (BasicUnplannedFailoverProviderSpecificInput, bool) { + return &ufpsi, true } // UpdateMigrationItemInput update migration item input. @@ -20101,6 +25479,8 @@ type UpdateReplicationProtectedItemInputProperties struct { RecoveryAzureVMSize *string `json:"recoveryAzureVMSize,omitempty"` // SelectedRecoveryAzureNetworkID - Target Azure Network Id. SelectedRecoveryAzureNetworkID *string `json:"selectedRecoveryAzureNetworkId,omitempty"` + // SelectedTfoAzureNetworkID - The Azure Network Id for test failover. + SelectedTfoAzureNetworkID *string `json:"selectedTfoAzureNetworkId,omitempty"` // SelectedSourceNicID - The selected source nic Id which will be used as the primary nic during failover. SelectedSourceNicID *string `json:"selectedSourceNicId,omitempty"` // EnableRdpOnTargetOption - The selected option to enable RDP\SSH on target vm after failover. String value of {SrsDataContract.EnableRDPOnTargetOption} enum. @@ -20151,6 +25531,15 @@ func (urpiip *UpdateReplicationProtectedItemInputProperties) UnmarshalJSON(body } urpiip.SelectedRecoveryAzureNetworkID = &selectedRecoveryAzureNetworkID } + case "selectedTfoAzureNetworkId": + if v != nil { + var selectedTfoAzureNetworkID string + err = json.Unmarshal(*v, &selectedTfoAzureNetworkID) + if err != nil { + return err + } + urpiip.SelectedTfoAzureNetworkID = &selectedTfoAzureNetworkID + } case "selectedSourceNicId": if v != nil { var selectedSourceNicID string @@ -20215,12 +25604,13 @@ type BasicUpdateReplicationProtectedItemProviderInput interface { AsA2AUpdateReplicationProtectedItemInput() (*A2AUpdateReplicationProtectedItemInput, bool) AsHyperVReplicaAzureUpdateReplicationProtectedItemInput() (*HyperVReplicaAzureUpdateReplicationProtectedItemInput, bool) AsInMageAzureV2UpdateReplicationProtectedItemInput() (*InMageAzureV2UpdateReplicationProtectedItemInput, bool) + AsInMageRcmUpdateReplicationProtectedItemInput() (*InMageRcmUpdateReplicationProtectedItemInput, bool) AsUpdateReplicationProtectedItemProviderInput() (*UpdateReplicationProtectedItemProviderInput, bool) } // UpdateReplicationProtectedItemProviderInput update replication protected item provider specific input. type UpdateReplicationProtectedItemProviderInput struct { - // InstanceType - Possible values include: 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeUpdateReplicationProtectedItemProviderInput', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeA2A', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageAzureV2' + // InstanceType - Possible values include: 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeUpdateReplicationProtectedItemProviderInput', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeA2A', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageRcm' InstanceType InstanceTypeBasicUpdateReplicationProtectedItemProviderInput `json:"instanceType,omitempty"` } @@ -20244,6 +25634,10 @@ func unmarshalBasicUpdateReplicationProtectedItemProviderInput(body []byte) (Bas var imavurpii InMageAzureV2UpdateReplicationProtectedItemInput err := json.Unmarshal(body, &imavurpii) return imavurpii, err + case string(InstanceTypeBasicUpdateReplicationProtectedItemProviderInputInstanceTypeInMageRcm): + var imrurpii InMageRcmUpdateReplicationProtectedItemInput + err := json.Unmarshal(body, &imrurpii) + return imrurpii, err default: var urpipi UpdateReplicationProtectedItemProviderInput err := json.Unmarshal(body, &urpipi) @@ -20294,6 +25688,11 @@ func (urpipi UpdateReplicationProtectedItemProviderInput) AsInMageAzureV2UpdateR return nil, false } +// AsInMageRcmUpdateReplicationProtectedItemInput is the BasicUpdateReplicationProtectedItemProviderInput implementation for UpdateReplicationProtectedItemProviderInput. +func (urpipi UpdateReplicationProtectedItemProviderInput) AsInMageRcmUpdateReplicationProtectedItemInput() (*InMageRcmUpdateReplicationProtectedItemInput, bool) { + return nil, false +} + // AsUpdateReplicationProtectedItemProviderInput is the BasicUpdateReplicationProtectedItemProviderInput implementation for UpdateReplicationProtectedItemProviderInput. func (urpipi UpdateReplicationProtectedItemProviderInput) AsUpdateReplicationProtectedItemProviderInput() (*UpdateReplicationProtectedItemProviderInput, bool) { return &urpipi, true @@ -20363,6 +25762,210 @@ type VaultHealthProperties struct { ContainersHealth *ResourceHealthSummary `json:"containersHealth,omitempty"` } +// VaultSetting vault setting. +type VaultSetting struct { + autorest.Response `json:"-"` + // Properties - The vault setting properties. + Properties *VaultSettingProperties `json:"properties,omitempty"` + // ID - READ-ONLY; Resource Id + ID *string `json:"id,omitempty"` + // Name - READ-ONLY; Resource Name + Name *string `json:"name,omitempty"` + // Type - READ-ONLY; Resource Type + Type *string `json:"type,omitempty"` + // Location - Resource Location + Location *string `json:"location,omitempty"` +} + +// MarshalJSON is the custom marshaler for VaultSetting. +func (vs VaultSetting) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]interface{}) + if vs.Properties != nil { + objectMap["properties"] = vs.Properties + } + if vs.Location != nil { + objectMap["location"] = vs.Location + } + return json.Marshal(objectMap) +} + +// VaultSettingCollection vault setting collection. +type VaultSettingCollection struct { + autorest.Response `json:"-"` + // Value - The list of vault setting. + Value *[]VaultSetting `json:"value,omitempty"` + // NextLink - The value of next link. + NextLink *string `json:"nextLink,omitempty"` +} + +// VaultSettingCollectionIterator provides access to a complete listing of VaultSetting values. +type VaultSettingCollectionIterator struct { + i int + page VaultSettingCollectionPage +} + +// 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 *VaultSettingCollectionIterator) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/VaultSettingCollectionIterator.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 *VaultSettingCollectionIterator) Next() error { + return iter.NextWithContext(context.Background()) +} + +// NotDone returns true if the enumeration should be started or is not yet complete. +func (iter VaultSettingCollectionIterator) 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 VaultSettingCollectionIterator) Response() VaultSettingCollection { + 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 VaultSettingCollectionIterator) Value() VaultSetting { + if !iter.page.NotDone() { + return VaultSetting{} + } + return iter.page.Values()[iter.i] +} + +// Creates a new instance of the VaultSettingCollectionIterator type. +func NewVaultSettingCollectionIterator(page VaultSettingCollectionPage) VaultSettingCollectionIterator { + return VaultSettingCollectionIterator{page: page} +} + +// IsEmpty returns true if the ListResult contains no values. +func (vsc VaultSettingCollection) IsEmpty() bool { + return vsc.Value == nil || len(*vsc.Value) == 0 +} + +// hasNextLink returns true if the NextLink is not empty. +func (vsc VaultSettingCollection) hasNextLink() bool { + return vsc.NextLink != nil && len(*vsc.NextLink) != 0 +} + +// vaultSettingCollectionPreparer prepares a request to retrieve the next set of results. +// It returns nil if no more results exist. +func (vsc VaultSettingCollection) vaultSettingCollectionPreparer(ctx context.Context) (*http.Request, error) { + if !vsc.hasNextLink() { + return nil, nil + } + return autorest.Prepare((&http.Request{}).WithContext(ctx), + autorest.AsJSON(), + autorest.AsGet(), + autorest.WithBaseURL(to.String(vsc.NextLink))) +} + +// VaultSettingCollectionPage contains a page of VaultSetting values. +type VaultSettingCollectionPage struct { + fn func(context.Context, VaultSettingCollection) (VaultSettingCollection, error) + vsc VaultSettingCollection +} + +// 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 *VaultSettingCollectionPage) NextWithContext(ctx context.Context) (err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/VaultSettingCollectionPage.NextWithContext") + defer func() { + sc := -1 + if page.Response().Response.Response != nil { + sc = page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + for { + next, err := page.fn(ctx, page.vsc) + if err != nil { + return err + } + page.vsc = next + if !next.hasNextLink() || !next.IsEmpty() { + break + } + } + 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 *VaultSettingCollectionPage) Next() error { + return page.NextWithContext(context.Background()) +} + +// NotDone returns true if the page enumeration should be started or is not yet complete. +func (page VaultSettingCollectionPage) NotDone() bool { + return !page.vsc.IsEmpty() +} + +// Response returns the raw server response from the last page request. +func (page VaultSettingCollectionPage) Response() VaultSettingCollection { + return page.vsc +} + +// Values returns the slice of values for the current page or nil if there are no values. +func (page VaultSettingCollectionPage) Values() []VaultSetting { + if page.vsc.IsEmpty() { + return nil + } + return *page.vsc.Value +} + +// Creates a new instance of the VaultSettingCollectionPage type. +func NewVaultSettingCollectionPage(cur VaultSettingCollection, getNextPage func(context.Context, VaultSettingCollection) (VaultSettingCollection, error)) VaultSettingCollectionPage { + return VaultSettingCollectionPage{ + fn: getNextPage, + vsc: cur, + } +} + +// VaultSettingCreationInput input to create vault setting. +type VaultSettingCreationInput struct { + // Properties - Vault setting creation input properties. + Properties *VaultSettingCreationInputProperties `json:"properties,omitempty"` +} + +// VaultSettingCreationInputProperties input to create vault setting. +type VaultSettingCreationInputProperties struct { + // MigrationSolutionID - The migration solution Id. + MigrationSolutionID *string `json:"migrationSolutionId,omitempty"` +} + +// VaultSettingProperties vault setting properties. +type VaultSettingProperties struct { + // MigrationSolutionID - The migration solution ARM Id. + MigrationSolutionID *string `json:"migrationSolutionId,omitempty"` +} + // VCenter vCenter definition. type VCenter struct { autorest.Response `json:"-"` @@ -20668,7 +26271,7 @@ func (vmtd VirtualMachineTaskDetails) AsBasicTaskTypeDetails() (BasicTaskTypeDet // VmmDetails VMM fabric specific details. type VmmDetails struct { - // InstanceType - Possible values include: 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeFabricSpecificDetails', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeAzure', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeHyperVSite', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMM', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMware', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMwareV2' + // InstanceType - Possible values include: 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeFabricSpecificDetails', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeAzure', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeHyperVSite', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeInMageRcm', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMM', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMware', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMwareV2' InstanceType InstanceTypeBasicFabricSpecificDetails `json:"instanceType,omitempty"` } @@ -20692,6 +26295,11 @@ func (vd VmmDetails) AsHyperVSiteDetails() (*HyperVSiteDetails, bool) { return nil, false } +// AsInMageRcmFabricSpecificDetails is the BasicFabricSpecificDetails implementation for VmmDetails. +func (vd VmmDetails) AsInMageRcmFabricSpecificDetails() (*InMageRcmFabricSpecificDetails, bool) { + return nil, false +} + // AsVmmDetails is the BasicFabricSpecificDetails implementation for VmmDetails. func (vd VmmDetails) AsVmmDetails() (*VmmDetails, bool) { return &vd, true @@ -20977,11 +26585,11 @@ type VmmVirtualMachineDetails struct { OsDetails *OSDetails `json:"osDetails,omitempty"` // DiskDetails - The Last successful failover time. DiskDetails *[]DiskDetails `json:"diskDetails,omitempty"` - // HasPhysicalDisk - A value indicating whether the VM has a physical disk attached. String value of {SrsDataContract.PresenceStatus} enum. Possible values include: 'Unknown', 'Present', 'NotPresent' + // HasPhysicalDisk - A value indicating whether the VM has a physical disk attached. String value of {SrsDataContract.PresenceStatus} enum. Possible values include: 'PresenceStatusUnknown', 'PresenceStatusPresent', 'PresenceStatusNotPresent' HasPhysicalDisk PresenceStatus `json:"hasPhysicalDisk,omitempty"` - // HasFibreChannelAdapter - A value indicating whether the VM has a fibre channel adapter attached. String value of {SrsDataContract.PresenceStatus} enum. Possible values include: 'Unknown', 'Present', 'NotPresent' + // HasFibreChannelAdapter - A value indicating whether the VM has a fibre channel adapter attached. String value of {SrsDataContract.PresenceStatus} enum. Possible values include: 'PresenceStatusUnknown', 'PresenceStatusPresent', 'PresenceStatusNotPresent' HasFibreChannelAdapter PresenceStatus `json:"hasFibreChannelAdapter,omitempty"` - // HasSharedVhd - A value indicating whether the VM has a shared VHD attached. String value of {SrsDataContract.PresenceStatus} enum. Possible values include: 'Unknown', 'Present', 'NotPresent' + // HasSharedVhd - A value indicating whether the VM has a shared VHD attached. String value of {SrsDataContract.PresenceStatus} enum. Possible values include: 'PresenceStatusUnknown', 'PresenceStatusPresent', 'PresenceStatusNotPresent' HasSharedVhd PresenceStatus `json:"hasSharedVhd,omitempty"` // InstanceType - Possible values include: 'InstanceTypeConfigurationSettings', 'InstanceTypeHyperVVirtualMachine', 'InstanceTypeReplicationGroupDetails', 'InstanceTypeVmmVirtualMachine', 'InstanceTypeVMwareVirtualMachine' InstanceType InstanceTypeBasicConfigurationSettings `json:"instanceType,omitempty"` @@ -21074,8 +26682,36 @@ type VMNicDetails struct { SelectionType *string `json:"selectionType,omitempty"` // RecoveryNicIPAddressType - IP allocation type for recovery VM. RecoveryNicIPAddressType *string `json:"recoveryNicIpAddressType,omitempty"` + // RecoveryPublicIPAddressID - The id of the public IP address resource associated with the NIC. + RecoveryPublicIPAddressID *string `json:"recoveryPublicIpAddressId,omitempty"` + // RecoveryNetworkSecurityGroupID - The id of the NSG associated with the NIC. + RecoveryNetworkSecurityGroupID *string `json:"recoveryNetworkSecurityGroupId,omitempty"` + // RecoveryLBBackendAddressPoolIds - The target backend address pools for the NIC. + RecoveryLBBackendAddressPoolIds *[]string `json:"recoveryLBBackendAddressPoolIds,omitempty"` // EnableAcceleratedNetworkingOnRecovery - A value indicating whether the NIC has accelerated networking enabled. EnableAcceleratedNetworkingOnRecovery *bool `json:"enableAcceleratedNetworkingOnRecovery,omitempty"` + // TfoVMNetworkID - The network to be used by NIC during test failover. + TfoVMNetworkID *string `json:"tfoVMNetworkId,omitempty"` + // TfoVMSubnetName - The subnet to be used by NIC during test failover. + TfoVMSubnetName *string `json:"tfoVMSubnetName,omitempty"` + // TfoNetworkSecurityGroupID - The NSG to be used by NIC during test failover. + TfoNetworkSecurityGroupID *string `json:"tfoNetworkSecurityGroupId,omitempty"` + // EnableAcceleratedNetworkingOnTfo - Whether the test failover NIC has accelerated networking enabled. + EnableAcceleratedNetworkingOnTfo *bool `json:"enableAcceleratedNetworkingOnTfo,omitempty"` + // TfoIPConfigs - The IP configurations to be used by NIC during test failover. + TfoIPConfigs *[]IPConfig `json:"tfoIPConfigs,omitempty"` + // RecoveryNicName - The name of the NIC to be used when creating target NICs. + RecoveryNicName *string `json:"recoveryNicName,omitempty"` + // RecoveryNicResourceGroupName - The resource group of the NIC to be used when creating target NICs. + RecoveryNicResourceGroupName *string `json:"recoveryNicResourceGroupName,omitempty"` + // ReuseExistingNic - A value indicating whether an existing NIC is allowed to be reused during failover subject to availability. + ReuseExistingNic *bool `json:"reuseExistingNic,omitempty"` + // TfoRecoveryNicName - The name of the NIC to be used when creating target NICs in TFO. + TfoRecoveryNicName *string `json:"tfoRecoveryNicName,omitempty"` + // TfoRecoveryNicResourceGroupName - The resource group of the NIC to be used when creating target NICs in TFO. + TfoRecoveryNicResourceGroupName *string `json:"tfoRecoveryNicResourceGroupName,omitempty"` + // TfoReuseExistingNic - A value indicating whether an existing NIC is allowed to be reused during test failover subject to availability. + TfoReuseExistingNic *bool `json:"tfoReuseExistingNic,omitempty"` } // VMNicInputDetails hyper V VM network input details. @@ -21088,8 +26724,34 @@ type VMNicInputDetails struct { ReplicaNicStaticIPAddress *string `json:"replicaNicStaticIPAddress,omitempty"` // SelectionType - Selection type for failover. SelectionType *string `json:"selectionType,omitempty"` + // RecoveryPublicIPAddressID - The id of the public IP address resource associated with the NIC. + RecoveryPublicIPAddressID *string `json:"recoveryPublicIpAddressId,omitempty"` + // RecoveryNetworkSecurityGroupID - The id of the NSG associated with the NIC. + RecoveryNetworkSecurityGroupID *string `json:"recoveryNetworkSecurityGroupId,omitempty"` + // RecoveryLBBackendAddressPoolIds - The target backend address pools for the NIC. + RecoveryLBBackendAddressPoolIds *[]string `json:"recoveryLBBackendAddressPoolIds,omitempty"` // EnableAcceleratedNetworkingOnRecovery - Whether the NIC has accelerated networking enabled. EnableAcceleratedNetworkingOnRecovery *bool `json:"enableAcceleratedNetworkingOnRecovery,omitempty"` + // TfoVMSubnetName - The subnet to be used by NIC during test failover. + TfoVMSubnetName *string `json:"tfoVMSubnetName,omitempty"` + // TfoNetworkSecurityGroupID - The NSG to be used by NIC during test failover. + TfoNetworkSecurityGroupID *string `json:"tfoNetworkSecurityGroupId,omitempty"` + // EnableAcceleratedNetworkingOnTfo - Whether the test NIC has accelerated networking enabled. + EnableAcceleratedNetworkingOnTfo *bool `json:"enableAcceleratedNetworkingOnTfo,omitempty"` + // TfoIPConfigs - The IP configurations to be used by NIC during test failover. + TfoIPConfigs *[]IPConfig `json:"tfoIPConfigs,omitempty"` + // RecoveryNicName - The name of the NIC to be used when creating target NICs. + RecoveryNicName *string `json:"recoveryNicName,omitempty"` + // RecoveryNicResourceGroupName - The resource group of the NIC to be used when creating target NICs. + RecoveryNicResourceGroupName *string `json:"recoveryNicResourceGroupName,omitempty"` + // ReuseExistingNic - A value indicating whether an existing NIC is allowed to be reused during failover subject to availability. + ReuseExistingNic *bool `json:"reuseExistingNic,omitempty"` + // TfoNicName - The name of the NIC to be used when creating target NICs in TFO. + TfoNicName *string `json:"tfoNicName,omitempty"` + // TfoNicResourceGroupName - The resource group of the NIC to be used when creating target NICs in TFO. + TfoNicResourceGroupName *string `json:"tfoNicResourceGroupName,omitempty"` + // TfoReuseExistingNic - A value indicating whether an existing NIC is allowed to be reused during test failover subject to availability. + TfoReuseExistingNic *bool `json:"tfoReuseExistingNic,omitempty"` } // VMNicUpdatesTaskDetails this class represents the vm NicUpdates task details. @@ -21175,13 +26837,13 @@ func (vnutd VMNicUpdatesTaskDetails) AsBasicTaskTypeDetails() (BasicTaskTypeDeta // VMwareCbtContainerCreationInput vMwareCbt container creation input. type VMwareCbtContainerCreationInput struct { - // InstanceType - Possible values include: 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeReplicationProviderSpecificContainerCreationInput', 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeA2A', 'InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeVMwareCbt' + // 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 = InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeVMwareCbt + vmccci.InstanceType = InstanceTypeBasicReplicationProviderSpecificContainerCreationInputInstanceTypeSixcSevendaFourFiveFiveFiveZeroSixfFourThreeffAOneSixaEightebOneZeroOneaebbSevenZero objectMap := make(map[string]interface{}) if vmccci.InstanceType != "" { objectMap["instanceType"] = vmccci.InstanceType @@ -21287,8 +26949,6 @@ type VMwareCbtDiskInput struct { LogStorageAccountSasSecretName *string `json:"logStorageAccountSasSecretName,omitempty"` // DiskType - The disk type. Possible values include: 'StandardLRS', 'PremiumLRS', 'StandardSSDLRS' DiskType DiskAccountType `json:"diskType,omitempty"` - // DiskEncryptionSetID - The DiskEncryptionSet ARM Id. - DiskEncryptionSetID *string `json:"diskEncryptionSetId,omitempty"` } // VMwareCbtEnableMigrationInput vMwareCbt specific enable migration input. @@ -21315,12 +26975,8 @@ type VMwareCbtEnableMigrationInput struct { TargetSubnetName *string `json:"targetSubnetName,omitempty"` // TargetAvailabilitySetID - The target availability set ARM Id. TargetAvailabilitySetID *string `json:"targetAvailabilitySetId,omitempty"` - // TargetAvailabilityZone - The target availability zone. - TargetAvailabilityZone *string `json:"targetAvailabilityZone,omitempty"` // TargetBootDiagnosticsStorageAccountID - The target boot diagnostics storage account ARM Id. TargetBootDiagnosticsStorageAccountID *string `json:"targetBootDiagnosticsStorageAccountId,omitempty"` - // PerformAutoResync - A value indicating whether auto resync is to be done. - PerformAutoResync *string `json:"performAutoResync,omitempty"` // InstanceType - Possible values include: 'InstanceTypeEnableMigrationProviderSpecificInput', 'InstanceTypeVMwareCbt' InstanceType InstanceTypeBasicEnableMigrationProviderSpecificInput `json:"instanceType,omitempty"` } @@ -21362,15 +27018,9 @@ func (vmcemi VMwareCbtEnableMigrationInput) MarshalJSON() ([]byte, error) { if vmcemi.TargetAvailabilitySetID != nil { objectMap["targetAvailabilitySetId"] = vmcemi.TargetAvailabilitySetID } - if vmcemi.TargetAvailabilityZone != nil { - objectMap["targetAvailabilityZone"] = vmcemi.TargetAvailabilityZone - } if vmcemi.TargetBootDiagnosticsStorageAccountID != nil { objectMap["targetBootDiagnosticsStorageAccountId"] = vmcemi.TargetBootDiagnosticsStorageAccountID } - if vmcemi.PerformAutoResync != nil { - objectMap["performAutoResync"] = vmcemi.PerformAutoResync - } if vmcemi.InstanceType != "" { objectMap["instanceType"] = vmcemi.InstanceType } @@ -21392,69 +27042,6 @@ func (vmcemi VMwareCbtEnableMigrationInput) AsBasicEnableMigrationProviderSpecif return &vmcemi, true } -// VMwareCbtEventDetails event details for VMwareCbt provider. -type VMwareCbtEventDetails struct { - // MigrationItemName - READ-ONLY; The migration item name. - MigrationItemName *string `json:"migrationItemName,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeEventProviderSpecificDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeHyperVReplicaBaseEventDetails', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeVMwareCbt' - InstanceType InstanceTypeBasicEventProviderSpecificDetails `json:"instanceType,omitempty"` -} - -// MarshalJSON is the custom marshaler for VMwareCbtEventDetails. -func (vmced VMwareCbtEventDetails) MarshalJSON() ([]byte, error) { - vmced.InstanceType = InstanceTypeBasicEventProviderSpecificDetailsInstanceTypeVMwareCbt - objectMap := make(map[string]interface{}) - if vmced.InstanceType != "" { - objectMap["instanceType"] = vmced.InstanceType - } - return json.Marshal(objectMap) -} - -// AsA2AEventDetails is the BasicEventProviderSpecificDetails implementation for VMwareCbtEventDetails. -func (vmced VMwareCbtEventDetails) AsA2AEventDetails() (*A2AEventDetails, bool) { - return nil, false -} - -// AsHyperVReplica2012EventDetails is the BasicEventProviderSpecificDetails implementation for VMwareCbtEventDetails. -func (vmced VMwareCbtEventDetails) AsHyperVReplica2012EventDetails() (*HyperVReplica2012EventDetails, bool) { - return nil, false -} - -// AsHyperVReplica2012R2EventDetails is the BasicEventProviderSpecificDetails implementation for VMwareCbtEventDetails. -func (vmced VMwareCbtEventDetails) AsHyperVReplica2012R2EventDetails() (*HyperVReplica2012R2EventDetails, bool) { - return nil, false -} - -// AsHyperVReplicaAzureEventDetails is the BasicEventProviderSpecificDetails implementation for VMwareCbtEventDetails. -func (vmced VMwareCbtEventDetails) AsHyperVReplicaAzureEventDetails() (*HyperVReplicaAzureEventDetails, bool) { - return nil, false -} - -// AsHyperVReplicaBaseEventDetails is the BasicEventProviderSpecificDetails implementation for VMwareCbtEventDetails. -func (vmced VMwareCbtEventDetails) AsHyperVReplicaBaseEventDetails() (*HyperVReplicaBaseEventDetails, bool) { - return nil, false -} - -// AsInMageAzureV2EventDetails is the BasicEventProviderSpecificDetails implementation for VMwareCbtEventDetails. -func (vmced VMwareCbtEventDetails) AsInMageAzureV2EventDetails() (*InMageAzureV2EventDetails, bool) { - return nil, false -} - -// AsVMwareCbtEventDetails is the BasicEventProviderSpecificDetails implementation for VMwareCbtEventDetails. -func (vmced VMwareCbtEventDetails) AsVMwareCbtEventDetails() (*VMwareCbtEventDetails, bool) { - return &vmced, true -} - -// AsEventProviderSpecificDetails is the BasicEventProviderSpecificDetails implementation for VMwareCbtEventDetails. -func (vmced VMwareCbtEventDetails) AsEventProviderSpecificDetails() (*EventProviderSpecificDetails, bool) { - return nil, false -} - -// AsBasicEventProviderSpecificDetails is the BasicEventProviderSpecificDetails implementation for VMwareCbtEventDetails. -func (vmced VMwareCbtEventDetails) AsBasicEventProviderSpecificDetails() (BasicEventProviderSpecificDetails, bool) { - return &vmced, true -} - // VMwareCbtMigrateInput vMwareCbt specific migrate input. type VMwareCbtMigrateInput struct { // PerformShutdown - A value indicating whether VM is to be shutdown. @@ -21491,16 +27078,12 @@ func (vmcmi VMwareCbtMigrateInput) AsBasicMigrateProviderSpecificInput() (BasicM return &vmcmi, true } -// VMwareCbtMigrationDetails vMwareCbt provider specific settings. +// VMwareCbtMigrationDetails vMwareCbt provider specific settings type VMwareCbtMigrationDetails struct { // VmwareMachineID - READ-ONLY; The ARM Id of the VM discovered in VMware. VmwareMachineID *string `json:"vmwareMachineId,omitempty"` // OsType - READ-ONLY; The type of the OS on the VM. OsType *string `json:"osType,omitempty"` - // FirmwareType - READ-ONLY; The firmware type. - FirmwareType *string `json:"firmwareType,omitempty"` - // TargetGeneration - READ-ONLY; The target generation. - TargetGeneration *string `json:"targetGeneration,omitempty"` // LicenseType - License Type of the VM to be used. LicenseType *string `json:"licenseType,omitempty"` // DataMoverRunAsAccountID - READ-ONLY; The data mover RunAs account Id. @@ -21517,8 +27100,6 @@ type VMwareCbtMigrationDetails struct { TargetResourceGroupID *string `json:"targetResourceGroupId,omitempty"` // TargetAvailabilitySetID - The target availability set Id. TargetAvailabilitySetID *string `json:"targetAvailabilitySetId,omitempty"` - // TargetAvailabilityZone - The target availability zone. - TargetAvailabilityZone *string `json:"targetAvailabilityZone,omitempty"` // TargetBootDiagnosticsStorageAccountID - The target boot diagnostics storage account ARM Id. TargetBootDiagnosticsStorageAccountID *string `json:"targetBootDiagnosticsStorageAccountId,omitempty"` // ProtectedDisks - The list of protected disks. @@ -21531,20 +27112,6 @@ type VMwareCbtMigrationDetails struct { MigrationRecoveryPointID *string `json:"migrationRecoveryPointId,omitempty"` // LastRecoveryPointReceived - READ-ONLY; The last recovery point received time. LastRecoveryPointReceived *date.Time `json:"lastRecoveryPointReceived,omitempty"` - // LastRecoveryPointID - READ-ONLY; The last recovery point Id. - LastRecoveryPointID *string `json:"lastRecoveryPointId,omitempty"` - // InitialSeedingProgressPercentage - READ-ONLY; The initial seeding progress percentage. - InitialSeedingProgressPercentage *int32 `json:"initialSeedingProgressPercentage,omitempty"` - // MigrationProgressPercentage - READ-ONLY; The migration progress percentage. - MigrationProgressPercentage *int32 `json:"migrationProgressPercentage,omitempty"` - // ResyncProgressPercentage - READ-ONLY; The resync progress percentage. - ResyncProgressPercentage *int32 `json:"resyncProgressPercentage,omitempty"` - // ResyncRequired - READ-ONLY; A value indicating whether resync is required. - ResyncRequired *string `json:"resyncRequired,omitempty"` - // ResyncState - READ-ONLY; The resync state. Possible values include: 'ResyncStateNone', 'ResyncStatePreparedForResynchronization', 'ResyncStateStartedResynchronization' - ResyncState ResyncState `json:"resyncState,omitempty"` - // PerformAutoResync - A value indicating whether auto resync is to be done. - PerformAutoResync *string `json:"performAutoResync,omitempty"` // InstanceType - Possible values include: 'InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeMigrationProviderSpecificSettings', 'InstanceTypeBasicMigrationProviderSpecificSettingsInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicMigrationProviderSpecificSettings `json:"instanceType,omitempty"` } @@ -21568,9 +27135,6 @@ func (vmcmd VMwareCbtMigrationDetails) MarshalJSON() ([]byte, error) { if vmcmd.TargetAvailabilitySetID != nil { objectMap["targetAvailabilitySetId"] = vmcmd.TargetAvailabilitySetID } - if vmcmd.TargetAvailabilityZone != nil { - objectMap["targetAvailabilityZone"] = vmcmd.TargetAvailabilityZone - } if vmcmd.TargetBootDiagnosticsStorageAccountID != nil { objectMap["targetBootDiagnosticsStorageAccountId"] = vmcmd.TargetBootDiagnosticsStorageAccountID } @@ -21583,9 +27147,6 @@ func (vmcmd VMwareCbtMigrationDetails) MarshalJSON() ([]byte, error) { if vmcmd.VMNics != nil { objectMap["vmNics"] = vmcmd.VMNics } - if vmcmd.PerformAutoResync != nil { - objectMap["performAutoResync"] = vmcmd.PerformAutoResync - } if vmcmd.InstanceType != "" { objectMap["instanceType"] = vmcmd.InstanceType } @@ -21672,7 +27233,7 @@ type VMwareCbtPolicyCreationInput struct { CrashConsistentFrequencyInMinutes *int32 `json:"crashConsistentFrequencyInMinutes,omitempty"` // AppConsistentFrequencyInMinutes - The app consistent snapshot frequency (in minutes). AppConsistentFrequencyInMinutes *int32 `json:"appConsistentFrequencyInMinutes,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypePolicyProviderSpecificInput', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypePolicyProviderSpecificInput', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeInMageRcm', 'InstanceTypeBasicPolicyProviderSpecificInputInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicPolicyProviderSpecificInput `json:"instanceType,omitempty"` } @@ -21725,6 +27286,11 @@ func (vmcpci VMwareCbtPolicyCreationInput) AsInMagePolicyInput() (*InMagePolicyI return nil, false } +// AsInMageRcmPolicyCreationInput is the BasicPolicyProviderSpecificInput implementation for VMwareCbtPolicyCreationInput. +func (vmcpci VMwareCbtPolicyCreationInput) AsInMageRcmPolicyCreationInput() (*InMageRcmPolicyCreationInput, bool) { + return nil, false +} + // AsVMwareCbtPolicyCreationInput is the BasicPolicyProviderSpecificInput implementation for VMwareCbtPolicyCreationInput. func (vmcpci VMwareCbtPolicyCreationInput) AsVMwareCbtPolicyCreationInput() (*VMwareCbtPolicyCreationInput, bool) { return &vmcpci, true @@ -21748,7 +27314,7 @@ type VmwareCbtPolicyDetails struct { AppConsistentFrequencyInMinutes *int32 `json:"appConsistentFrequencyInMinutes,omitempty"` // CrashConsistentFrequencyInMinutes - The crash consistent snapshot frequency in minutes. CrashConsistentFrequencyInMinutes *int32 `json:"crashConsistentFrequencyInMinutes,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' + // InstanceType - Possible values include: 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypePolicyProviderSpecificDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeA2A', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaAzure', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplicaBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012R2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeHyperVReplica2012', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageAzureV2', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageBasePolicyDetails', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMage', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeInMageRcm', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeRcmAzureMigration', 'InstanceTypeBasicPolicyProviderSpecificDetailsInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicPolicyProviderSpecificDetails `json:"instanceType,omitempty"` } @@ -21811,6 +27377,11 @@ func (vcpd VmwareCbtPolicyDetails) AsInMagePolicyDetails() (*InMagePolicyDetails return nil, false } +// AsInMageRcmPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for VmwareCbtPolicyDetails. +func (vcpd VmwareCbtPolicyDetails) AsInMageRcmPolicyDetails() (*InMageRcmPolicyDetails, bool) { + return nil, false +} + // AsRcmAzureMigrationPolicyDetails is the BasicPolicyProviderSpecificDetails implementation for VmwareCbtPolicyDetails. func (vcpd VmwareCbtPolicyDetails) AsRcmAzureMigrationPolicyDetails() (*RcmAzureMigrationPolicyDetails, bool) { return nil, false @@ -21847,14 +27418,12 @@ type VMwareCbtProtectedDiskDetails struct { LogStorageAccountID *string `json:"logStorageAccountId,omitempty"` // LogStorageAccountSasSecretName - READ-ONLY; The key vault secret name of the log storage account. LogStorageAccountSasSecretName *string `json:"logStorageAccountSasSecretName,omitempty"` - // DiskEncryptionSetID - READ-ONLY; The DiskEncryptionSet ARM Id. - DiskEncryptionSetID *string `json:"diskEncryptionSetId,omitempty"` // SeedManagedDiskID - READ-ONLY; The ARM Id of the seed managed disk. SeedManagedDiskID *string `json:"seedManagedDiskId,omitempty"` // TargetManagedDiskID - READ-ONLY; The ARM Id of the target managed disk. TargetManagedDiskID *string `json:"targetManagedDiskId,omitempty"` - // DiskType - The disk type. Possible values include: 'StandardLRS', 'PremiumLRS', 'StandardSSDLRS' - DiskType DiskAccountType `json:"diskType,omitempty"` + // DiskType - The disk type. Possible values include: 'DiskTypeStandardLRS', 'DiskTypePremiumLRS', 'DiskTypeStandardSSDLRS' + DiskType DiskType `json:"diskType,omitempty"` } // MarshalJSON is the custom marshaler for VMwareCbtProtectedDiskDetails. @@ -21914,42 +27483,6 @@ func (vmcpcmd VMwareCbtProtectionContainerMappingDetails) AsBasicProtectionConta return &vmcpcmd, true } -// VMwareCbtResyncInput vMwareCbt specific resync input. -type VMwareCbtResyncInput struct { - // SkipCbtReset - A value indicating whether CBT is to be reset. - SkipCbtReset *string `json:"skipCbtReset,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicResyncProviderSpecificInputInstanceTypeResyncProviderSpecificInput', 'InstanceTypeBasicResyncProviderSpecificInputInstanceTypeVMwareCbt' - InstanceType InstanceTypeBasicResyncProviderSpecificInput `json:"instanceType,omitempty"` -} - -// MarshalJSON is the custom marshaler for VMwareCbtResyncInput. -func (vmcri VMwareCbtResyncInput) MarshalJSON() ([]byte, error) { - vmcri.InstanceType = InstanceTypeBasicResyncProviderSpecificInputInstanceTypeVMwareCbt - objectMap := make(map[string]interface{}) - if vmcri.SkipCbtReset != nil { - objectMap["skipCbtReset"] = vmcri.SkipCbtReset - } - if vmcri.InstanceType != "" { - objectMap["instanceType"] = vmcri.InstanceType - } - return json.Marshal(objectMap) -} - -// AsVMwareCbtResyncInput is the BasicResyncProviderSpecificInput implementation for VMwareCbtResyncInput. -func (vmcri VMwareCbtResyncInput) AsVMwareCbtResyncInput() (*VMwareCbtResyncInput, bool) { - return &vmcri, true -} - -// AsResyncProviderSpecificInput is the BasicResyncProviderSpecificInput implementation for VMwareCbtResyncInput. -func (vmcri VMwareCbtResyncInput) AsResyncProviderSpecificInput() (*ResyncProviderSpecificInput, bool) { - return nil, false -} - -// AsBasicResyncProviderSpecificInput is the BasicResyncProviderSpecificInput implementation for VMwareCbtResyncInput. -func (vmcri VMwareCbtResyncInput) AsBasicResyncProviderSpecificInput() (BasicResyncProviderSpecificInput, bool) { - return &vmcri, true -} - // VMwareCbtTestMigrateInput vMwareCbt specific test migrate input. type VMwareCbtTestMigrateInput struct { // RecoveryPointID - The recovery point Id. @@ -22001,8 +27534,6 @@ type VMwareCbtUpdateMigrationItemInput struct { TargetResourceGroupID *string `json:"targetResourceGroupId,omitempty"` // TargetAvailabilitySetID - The target availability set ARM Id. TargetAvailabilitySetID *string `json:"targetAvailabilitySetId,omitempty"` - // TargetAvailabilityZone - The target availability zone. - TargetAvailabilityZone *string `json:"targetAvailabilityZone,omitempty"` // TargetBootDiagnosticsStorageAccountID - The target boot diagnostics storage account ARM Id. TargetBootDiagnosticsStorageAccountID *string `json:"targetBootDiagnosticsStorageAccountId,omitempty"` // TargetNetworkID - The target network ARM Id. @@ -22011,8 +27542,6 @@ type VMwareCbtUpdateMigrationItemInput struct { VMNics *[]VMwareCbtNicInput `json:"vmNics,omitempty"` // LicenseType - The license type. Possible values include: 'LicenseTypeNotSpecified', 'LicenseTypeNoLicenseType', 'LicenseTypeWindowsServer' LicenseType LicenseType `json:"licenseType,omitempty"` - // PerformAutoResync - A value indicating whether auto resync is to be done. - PerformAutoResync *string `json:"performAutoResync,omitempty"` // InstanceType - Possible values include: 'InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeUpdateMigrationItemProviderSpecificInput', 'InstanceTypeBasicUpdateMigrationItemProviderSpecificInputInstanceTypeVMwareCbt' InstanceType InstanceTypeBasicUpdateMigrationItemProviderSpecificInput `json:"instanceType,omitempty"` } @@ -22033,9 +27562,6 @@ func (vmcumii VMwareCbtUpdateMigrationItemInput) MarshalJSON() ([]byte, error) { if vmcumii.TargetAvailabilitySetID != nil { objectMap["targetAvailabilitySetId"] = vmcumii.TargetAvailabilitySetID } - if vmcumii.TargetAvailabilityZone != nil { - objectMap["targetAvailabilityZone"] = vmcumii.TargetAvailabilityZone - } if vmcumii.TargetBootDiagnosticsStorageAccountID != nil { objectMap["targetBootDiagnosticsStorageAccountId"] = vmcumii.TargetBootDiagnosticsStorageAccountID } @@ -22048,9 +27574,6 @@ func (vmcumii VMwareCbtUpdateMigrationItemInput) MarshalJSON() ([]byte, error) { if vmcumii.LicenseType != "" { objectMap["licenseType"] = vmcumii.LicenseType } - if vmcumii.PerformAutoResync != nil { - objectMap["performAutoResync"] = vmcumii.PerformAutoResync - } if vmcumii.InstanceType != "" { objectMap["instanceType"] = vmcumii.InstanceType } @@ -22138,7 +27661,7 @@ type VMwareDetails struct { AgentExpiryDate *date.Time `json:"agentExpiryDate,omitempty"` // AgentVersionDetails - The agent version details. AgentVersionDetails *VersionDetails `json:"agentVersionDetails,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeFabricSpecificDetails', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeAzure', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeHyperVSite', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMM', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMware', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMwareV2' + // InstanceType - Possible values include: 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeFabricSpecificDetails', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeAzure', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeHyperVSite', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeInMageRcm', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMM', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMware', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMwareV2' InstanceType InstanceTypeBasicFabricSpecificDetails `json:"instanceType,omitempty"` } @@ -22258,6 +27781,11 @@ func (vmd VMwareDetails) AsHyperVSiteDetails() (*HyperVSiteDetails, bool) { return nil, false } +// AsInMageRcmFabricSpecificDetails is the BasicFabricSpecificDetails implementation for VMwareDetails. +func (vmd VMwareDetails) AsInMageRcmFabricSpecificDetails() (*InMageRcmFabricSpecificDetails, bool) { + return nil, false +} + // AsVmmDetails is the BasicFabricSpecificDetails implementation for VMwareDetails. func (vmd VMwareDetails) AsVmmDetails() (*VmmDetails, bool) { return nil, false @@ -22287,11 +27815,9 @@ func (vmd VMwareDetails) AsBasicFabricSpecificDetails() (BasicFabricSpecificDeta type VMwareV2FabricCreationInput struct { // VmwareSiteID - The ARM Id of the VMware site. VmwareSiteID *string `json:"vmwareSiteId,omitempty"` - // PhysicalSiteID - The ARM Id of the physical site. - PhysicalSiteID *string `json:"physicalSiteId,omitempty"` // MigrationSolutionID - The ARM Id of the migration solution. MigrationSolutionID *string `json:"migrationSolutionId,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeFabricSpecificCreationInput', 'InstanceTypeAzure', 'InstanceTypeVMwareV2' + // InstanceType - Possible values include: 'InstanceTypeFabricSpecificCreationInput', 'InstanceTypeAzure', 'InstanceTypeInMageRcm', 'InstanceTypeVMwareV2' InstanceType InstanceTypeBasicFabricSpecificCreationInput `json:"instanceType,omitempty"` } @@ -22302,9 +27828,6 @@ func (vmvfci VMwareV2FabricCreationInput) MarshalJSON() ([]byte, error) { if vmvfci.VmwareSiteID != nil { objectMap["vmwareSiteId"] = vmvfci.VmwareSiteID } - if vmvfci.PhysicalSiteID != nil { - objectMap["physicalSiteId"] = vmvfci.PhysicalSiteID - } if vmvfci.MigrationSolutionID != nil { objectMap["migrationSolutionId"] = vmvfci.MigrationSolutionID } @@ -22319,6 +27842,11 @@ func (vmvfci VMwareV2FabricCreationInput) AsAzureFabricCreationInput() (*AzureFa return nil, false } +// AsInMageRcmFabricCreationInput is the BasicFabricSpecificCreationInput implementation for VMwareV2FabricCreationInput. +func (vmvfci VMwareV2FabricCreationInput) AsInMageRcmFabricCreationInput() (*InMageRcmFabricCreationInput, bool) { + return nil, false +} + // AsVMwareV2FabricCreationInput is the BasicFabricSpecificCreationInput implementation for VMwareV2FabricCreationInput. func (vmvfci VMwareV2FabricCreationInput) AsVMwareV2FabricCreationInput() (*VMwareV2FabricCreationInput, bool) { return &vmvfci, true @@ -22338,15 +27866,13 @@ func (vmvfci VMwareV2FabricCreationInput) AsBasicFabricSpecificCreationInput() ( type VMwareV2FabricSpecificDetails struct { // VmwareSiteID - READ-ONLY; The ARM Id of the VMware site. VmwareSiteID *string `json:"vmwareSiteId,omitempty"` - // PhysicalSiteID - READ-ONLY; The ARM Id of the physical site. - PhysicalSiteID *string `json:"physicalSiteId,omitempty"` // MigrationSolutionID - READ-ONLY; The Migration solution ARM Id. MigrationSolutionID *string `json:"migrationSolutionId,omitempty"` // ServiceEndpoint - READ-ONLY; The service endpoint. ServiceEndpoint *string `json:"serviceEndpoint,omitempty"` // ServiceResourceID - READ-ONLY; The service resource Id. ServiceResourceID *string `json:"serviceResourceId,omitempty"` - // InstanceType - Possible values include: 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeFabricSpecificDetails', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeAzure', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeHyperVSite', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMM', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMware', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMwareV2' + // InstanceType - Possible values include: 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeFabricSpecificDetails', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeAzure', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeHyperVSite', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeInMageRcm', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMM', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMware', 'InstanceTypeBasicFabricSpecificDetailsInstanceTypeVMwareV2' InstanceType InstanceTypeBasicFabricSpecificDetails `json:"instanceType,omitempty"` } @@ -22370,6 +27896,11 @@ func (vmvfsd VMwareV2FabricSpecificDetails) AsHyperVSiteDetails() (*HyperVSiteDe return nil, false } +// AsInMageRcmFabricSpecificDetails is the BasicFabricSpecificDetails implementation for VMwareV2FabricSpecificDetails. +func (vmvfsd VMwareV2FabricSpecificDetails) AsInMageRcmFabricSpecificDetails() (*InMageRcmFabricSpecificDetails, bool) { + return nil, false +} + // AsVmmDetails is the BasicFabricSpecificDetails implementation for VMwareV2FabricSpecificDetails. func (vmvfsd VMwareV2FabricSpecificDetails) AsVmmDetails() (*VmmDetails, bool) { return nil, false diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/operations.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/operations.go similarity index 99% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/operations.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/operations.go index 565efaafb8fe..019a7b977d34 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/operations.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/operations.go @@ -86,7 +86,7 @@ func (client OperationsClient) ListPreparer(ctx context.Context) (*http.Request, "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/recoverypoints.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/recoverypoints.go similarity index 99% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/recoverypoints.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/recoverypoints.go index 973284c47391..bc8d5edd1c60 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/recoverypoints.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/recoverypoints.go @@ -92,7 +92,7 @@ func (client RecoveryPointsClient) GetPreparer(ctx context.Context, fabricName s "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -176,7 +176,7 @@ func (client RecoveryPointsClient) ListByReplicationProtectedItemsPreparer(ctx c "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationalertsettings.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationalertsettings.go similarity index 99% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationalertsettings.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationalertsettings.go index def53b29958c..99dc38ed2a97 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationalertsettings.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationalertsettings.go @@ -88,7 +88,7 @@ func (client ReplicationAlertSettingsClient) CreatePreparer(ctx context.Context, "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -166,7 +166,7 @@ func (client ReplicationAlertSettingsClient) GetPreparer(ctx context.Context, al "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -243,7 +243,7 @@ func (client ReplicationAlertSettingsClient) ListPreparer(ctx context.Context) ( "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationeligibilityresults.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationeligibilityresults.go new file mode 100644 index 000000000000..879b01372141 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationeligibilityresults.go @@ -0,0 +1,194 @@ +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" +) + +// ReplicationEligibilityResultsClient is the client for the ReplicationEligibilityResults methods of the Siterecovery +// service. +type ReplicationEligibilityResultsClient struct { + BaseClient +} + +// NewReplicationEligibilityResultsClient creates an instance of the ReplicationEligibilityResultsClient client. +func NewReplicationEligibilityResultsClient(subscriptionID string, resourceGroupName string, resourceName string) ReplicationEligibilityResultsClient { + return NewReplicationEligibilityResultsClientWithBaseURI(DefaultBaseURI, subscriptionID, resourceGroupName, resourceName) +} + +// NewReplicationEligibilityResultsClientWithBaseURI creates an instance of the ReplicationEligibilityResultsClient +// client using a custom endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI +// (sovereign clouds, Azure stack). +func NewReplicationEligibilityResultsClientWithBaseURI(baseURI string, subscriptionID string, resourceGroupName string, resourceName string) ReplicationEligibilityResultsClient { + return ReplicationEligibilityResultsClient{NewWithBaseURI(baseURI, subscriptionID, resourceGroupName, resourceName)} +} + +// Get validates whether a given VM can be protected or not in which case returns list of errors. +// Parameters: +// virtualMachineName - virtual Machine name. +func (client ReplicationEligibilityResultsClient) Get(ctx context.Context, virtualMachineName string) (result ReplicationEligibilityResults, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationEligibilityResultsClient.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, virtualMachineName) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationEligibilityResultsClient", "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.ReplicationEligibilityResultsClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationEligibilityResultsClient", "Get", resp, "Failure responding to request") + return + } + + return +} + +// GetPreparer prepares the Get request. +func (client ReplicationEligibilityResultsClient) GetPreparer(ctx context.Context, virtualMachineName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + "virtualMachineName": autorest.Encode("path", virtualMachineName), + } + + const APIVersion = "2018-07-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.Compute/virtualMachines/{virtualMachineName}/providers/Microsoft.RecoveryServices/replicationEligibilityResults/default", pathParameters), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// GetSender sends the Get request. The method will close the +// http.Response Body if it receives an error. +func (client ReplicationEligibilityResultsClient) GetSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client ReplicationEligibilityResultsClient) GetResponder(resp *http.Response) (result ReplicationEligibilityResults, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List validates whether a given VM can be protected or not in which case returns list of errors. +// Parameters: +// virtualMachineName - virtual Machine name. +func (client ReplicationEligibilityResultsClient) List(ctx context.Context, virtualMachineName string) (result ReplicationEligibilityResultsCollection, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationEligibilityResultsClient.List") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ListPreparer(ctx, virtualMachineName) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationEligibilityResultsClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationEligibilityResultsClient", "List", resp, "Failure sending request") + return + } + + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationEligibilityResultsClient", "List", resp, "Failure responding to request") + return + } + + return +} + +// ListPreparer prepares the List request. +func (client ReplicationEligibilityResultsClient) ListPreparer(ctx context.Context, virtualMachineName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + "virtualMachineName": autorest.Encode("path", virtualMachineName), + } + + const APIVersion = "2018-07-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.Compute/virtualMachines/{virtualMachineName}/providers/Microsoft.RecoveryServices/replicationEligibilityResults", 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 ReplicationEligibilityResultsClient) ListSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client ReplicationEligibilityResultsClient) ListResponder(resp *http.Response) (result ReplicationEligibilityResultsCollection, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationevents.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationevents.go similarity index 99% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationevents.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationevents.go index b0ecb8e24e0f..a1cf6c963d63 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationevents.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationevents.go @@ -87,7 +87,7 @@ func (client ReplicationEventsClient) GetPreparer(ctx context.Context, eventName "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -166,7 +166,7 @@ func (client ReplicationEventsClient) ListPreparer(ctx context.Context, filter s "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationfabrics.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationfabrics.go similarity index 99% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationfabrics.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationfabrics.go index 970953d1b22a..442511ec9edf 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationfabrics.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationfabrics.go @@ -80,7 +80,7 @@ func (client ReplicationFabricsClient) CheckConsistencyPreparer(ctx context.Cont "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -156,7 +156,7 @@ func (client ReplicationFabricsClient) CreatePreparer(ctx context.Context, fabri "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -233,7 +233,7 @@ func (client ReplicationFabricsClient) DeletePreparer(ctx context.Context, fabri "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -314,7 +314,7 @@ func (client ReplicationFabricsClient) GetPreparer(ctx context.Context, fabricNa "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -391,7 +391,7 @@ func (client ReplicationFabricsClient) ListPreparer(ctx context.Context) (*http. "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -498,7 +498,7 @@ func (client ReplicationFabricsClient) MigrateToAadPreparer(ctx context.Context, "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -572,7 +572,7 @@ func (client ReplicationFabricsClient) PurgePreparer(ctx context.Context, fabric "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -647,7 +647,7 @@ func (client ReplicationFabricsClient) ReassociateGatewayPreparer(ctx context.Co "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -725,7 +725,7 @@ func (client ReplicationFabricsClient) RenewCertificatePreparer(ctx context.Cont "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationjobs.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationjobs.go similarity index 99% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationjobs.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationjobs.go index ceeaef1e0cd2..39cf9847e18a 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationjobs.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationjobs.go @@ -79,7 +79,7 @@ func (client ReplicationJobsClient) CancelPreparer(ctx context.Context, jobName "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -153,7 +153,7 @@ func (client ReplicationJobsClient) ExportPreparer(ctx context.Context, jobQuery "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -237,7 +237,7 @@ func (client ReplicationJobsClient) GetPreparer(ctx context.Context, jobName str "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -316,7 +316,7 @@ func (client ReplicationJobsClient) ListPreparer(ctx context.Context, filter str "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -426,7 +426,7 @@ func (client ReplicationJobsClient) RestartPreparer(ctx context.Context, jobName "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -502,7 +502,7 @@ func (client ReplicationJobsClient) ResumePreparer(ctx context.Context, jobName "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationlogicalnetworks.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationlogicalnetworks.go similarity index 99% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationlogicalnetworks.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationlogicalnetworks.go index 2861c2e1ee45..e3af439ebe73 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationlogicalnetworks.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationlogicalnetworks.go @@ -90,7 +90,7 @@ func (client ReplicationLogicalNetworksClient) GetPreparer(ctx context.Context, "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -170,7 +170,7 @@ func (client ReplicationLogicalNetworksClient) ListByReplicationFabricsPreparer( "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationmigrationitems.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationmigrationitems.go similarity index 89% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationmigrationitems.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationmigrationitems.go index 5165fb6f80c9..72b1a461d269 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationmigrationitems.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationmigrationitems.go @@ -95,7 +95,7 @@ func (client ReplicationMigrationItemsClient) CreatePreparer(ctx context.Context "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -177,7 +177,7 @@ func (client ReplicationMigrationItemsClient) DeletePreparer(ctx context.Context "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -265,7 +265,7 @@ func (client ReplicationMigrationItemsClient) GetPreparer(ctx context.Context, f "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -345,7 +345,7 @@ func (client ReplicationMigrationItemsClient) ListPreparer(ctx context.Context, "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -471,7 +471,7 @@ func (client ReplicationMigrationItemsClient) ListByReplicationProtectionContain "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -590,7 +590,7 @@ func (client ReplicationMigrationItemsClient) MigratePreparer(ctx context.Contex "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -629,95 +629,6 @@ func (client ReplicationMigrationItemsClient) MigrateResponder(resp *http.Respon return } -// Resync the operation to resynchronize replication of an ASR migration item. -// Parameters: -// fabricName - fabric name. -// protectionContainerName - protection container name. -// migrationItemName - migration item name. -// input - resync input. -func (client ReplicationMigrationItemsClient) Resync(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, input ResyncInput) (result ReplicationMigrationItemsResyncFuture, err error) { - if tracing.IsEnabled() { - ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationMigrationItemsClient.Resync") - 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.ProviderSpecificDetails", Name: validation.Null, Rule: true, Chain: nil}}}}}}); err != nil { - return result, validation.NewError("siterecovery.ReplicationMigrationItemsClient", "Resync", err.Error()) - } - - req, err := client.ResyncPreparer(ctx, fabricName, protectionContainerName, migrationItemName, input) - if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "Resync", nil, "Failure preparing request") - return - } - - result, err = client.ResyncSender(req) - if err != nil { - err = autorest.NewErrorWithError(err, "siterecovery.ReplicationMigrationItemsClient", "Resync", result.Response(), "Failure sending request") - return - } - - return -} - -// ResyncPreparer prepares the Resync request. -func (client ReplicationMigrationItemsClient) ResyncPreparer(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, input ResyncInput) (*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}/resync", pathParameters), - autorest.WithJSON(input), - autorest.WithQueryParameters(queryParameters)) - return preparer.Prepare((&http.Request{}).WithContext(ctx)) -} - -// ResyncSender sends the Resync request. The method will close the -// http.Response Body if it receives an error. -func (client ReplicationMigrationItemsClient) ResyncSender(req *http.Request) (future ReplicationMigrationItemsResyncFuture, err error) { - var resp *http.Response - resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) - if err != nil { - return - } - future.Future, err = azure.NewFutureFromResponse(resp) - return -} - -// ResyncResponder handles the response to the Resync request. The method always -// closes the http.Response Body. -func (client ReplicationMigrationItemsClient) ResyncResponder(resp *http.Response) (result MigrationItem, err error) { - err = autorest.Respond( - resp, - azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), - autorest.ByUnmarshallingJSON(&result), - autorest.ByClosing()) - result.Response = autorest.Response{Response: resp} - return -} - // TestMigrate the operation to initiate test migration of the item. // Parameters: // fabricName - fabric name. @@ -768,7 +679,7 @@ func (client ReplicationMigrationItemsClient) TestMigratePreparer(ctx context.Co "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -826,10 +737,7 @@ func (client ReplicationMigrationItemsClient) TestMigrateCleanup(ctx context.Con } if err := validation.Validate([]validation.Validation{ {TargetValue: testMigrateCleanupInput, - Constraints: []validation.Constraint{{Target: "testMigrateCleanupInput.Properties", Name: validation.Null, Rule: true, - Chain: []validation.Constraint{{Target: "testMigrateCleanupInput.Properties.Comments", Name: validation.Null, Rule: false, - Chain: []validation.Constraint{{Target: "testMigrateCleanupInput.Properties.Comments", Name: validation.MaxLength, Rule: 1024, Chain: nil}}}, - }}}}}); err != nil { + Constraints: []validation.Constraint{{Target: "testMigrateCleanupInput.Properties", Name: validation.Null, Rule: true, Chain: nil}}}}); err != nil { return result, validation.NewError("siterecovery.ReplicationMigrationItemsClient", "TestMigrateCleanup", err.Error()) } @@ -859,7 +767,7 @@ func (client ReplicationMigrationItemsClient) TestMigrateCleanupPreparer(ctx con "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -941,7 +849,7 @@ func (client ReplicationMigrationItemsClient) UpdatePreparer(ctx context.Context "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationnetworkmappings.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationnetworkmappings.go similarity index 99% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationnetworkmappings.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationnetworkmappings.go index 61e3897b41f5..9408c6645b27 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationnetworkmappings.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationnetworkmappings.go @@ -86,7 +86,7 @@ func (client ReplicationNetworkMappingsClient) CreatePreparer(ctx context.Contex "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -167,7 +167,7 @@ func (client ReplicationNetworkMappingsClient) DeletePreparer(ctx context.Contex "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -252,7 +252,7 @@ func (client ReplicationNetworkMappingsClient) GetPreparer(ctx context.Context, "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -329,7 +329,7 @@ func (client ReplicationNetworkMappingsClient) ListPreparer(ctx context.Context) "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -449,7 +449,7 @@ func (client ReplicationNetworkMappingsClient) ListByReplicationNetworksPreparer "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -561,7 +561,7 @@ func (client ReplicationNetworkMappingsClient) UpdatePreparer(ctx context.Contex "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationnetworks.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationnetworks.go similarity index 99% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationnetworks.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationnetworks.go index d3be858763c7..5a732b177e82 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationnetworks.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationnetworks.go @@ -89,7 +89,7 @@ func (client ReplicationNetworksClient) GetPreparer(ctx context.Context, fabricN "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -166,7 +166,7 @@ func (client ReplicationNetworksClient) ListPreparer(ctx context.Context) (*http "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -284,7 +284,7 @@ func (client ReplicationNetworksClient) ListByReplicationFabricsPreparer(ctx con "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationpolicies.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationpolicies.go similarity index 99% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationpolicies.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationpolicies.go index 20b0a41260cb..1344ea683e3e 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationpolicies.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationpolicies.go @@ -81,7 +81,7 @@ func (client ReplicationPoliciesClient) CreatePreparer(ctx context.Context, poli "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -158,7 +158,7 @@ func (client ReplicationPoliciesClient) DeletePreparer(ctx context.Context, poli "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -239,7 +239,7 @@ func (client ReplicationPoliciesClient) GetPreparer(ctx context.Context, policyN "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -316,7 +316,7 @@ func (client ReplicationPoliciesClient) ListPreparer(ctx context.Context) (*http "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -424,7 +424,7 @@ func (client ReplicationPoliciesClient) UpdatePreparer(ctx context.Context, poli "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationprotectableitems.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationprotectableitems.go similarity index 99% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationprotectableitems.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationprotectableitems.go index e49d5b02ebee..c765681ce09f 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationprotectableitems.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationprotectableitems.go @@ -92,7 +92,7 @@ func (client ReplicationProtectableItemsClient) GetPreparer(ctx context.Context, "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -175,7 +175,7 @@ func (client ReplicationProtectableItemsClient) ListByReplicationProtectionConta "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationprotecteditems.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationprotecteditems.go similarity index 84% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationprotecteditems.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationprotecteditems.go index a0969fb24518..ca13e6c28e2d 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationprotecteditems.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationprotecteditems.go @@ -43,6 +43,88 @@ func NewReplicationProtectedItemsClientWithBaseURI(baseURI string, subscriptionI return ReplicationProtectedItemsClient{NewWithBaseURI(baseURI, subscriptionID, resourceGroupName, resourceName)} } +// AddDisks operation to add disks(s) to the replication protected item. +// Parameters: +// fabricName - unique fabric name. +// protectionContainerName - protection container name. +// replicatedProtectedItemName - replication protected item name. +// addDisksInput - add disks input. +func (client ReplicationProtectedItemsClient) AddDisks(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, addDisksInput AddDisksInput) (result ReplicationProtectedItemsAddDisksFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationProtectedItemsClient.AddDisks") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.AddDisksPreparer(ctx, fabricName, protectionContainerName, replicatedProtectedItemName, addDisksInput) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectedItemsClient", "AddDisks", nil, "Failure preparing request") + return + } + + result, err = client.AddDisksSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectedItemsClient", "AddDisks", result.Response(), "Failure sending request") + return + } + + return +} + +// AddDisksPreparer prepares the AddDisks request. +func (client ReplicationProtectedItemsClient) AddDisksPreparer(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, addDisksInput AddDisksInput) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "fabricName": autorest.Encode("path", fabricName), + "protectionContainerName": autorest.Encode("path", protectionContainerName), + "replicatedProtectedItemName": autorest.Encode("path", replicatedProtectedItemName), + "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), + "resourceName": autorest.Encode("path", client.ResourceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2018-07-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}/replicationProtectedItems/{replicatedProtectedItemName}/addDisks", pathParameters), + autorest.WithJSON(addDisksInput), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// AddDisksSender sends the AddDisks request. The method will close the +// http.Response Body if it receives an error. +func (client ReplicationProtectedItemsClient) AddDisksSender(req *http.Request) (future ReplicationProtectedItemsAddDisksFuture, err error) { + var resp *http.Response + resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// AddDisksResponder handles the response to the AddDisks request. The method always +// closes the http.Response Body. +func (client ReplicationProtectedItemsClient) AddDisksResponder(resp *http.Response) (result ReplicationProtectedItem, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + // ApplyRecoveryPoint the operation to change the recovery point of a failed over replication protected item. // Parameters: // fabricName - the ARM fabric name. @@ -86,7 +168,7 @@ func (client ReplicationProtectedItemsClient) ApplyRecoveryPointPreparer(ctx con "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -168,7 +250,7 @@ func (client ReplicationProtectedItemsClient) CreatePreparer(ctx context.Context "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -250,7 +332,7 @@ func (client ReplicationProtectedItemsClient) DeletePreparer(ctx context.Context "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -330,7 +412,7 @@ func (client ReplicationProtectedItemsClient) FailoverCommitPreparer(ctx context "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -416,7 +498,7 @@ func (client ReplicationProtectedItemsClient) GetPreparer(ctx context.Context, f "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -496,7 +578,7 @@ func (client ReplicationProtectedItemsClient) ListPreparer(ctx context.Context, "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -622,7 +704,7 @@ func (client ReplicationProtectedItemsClient) ListByReplicationProtectionContain "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -734,7 +816,7 @@ func (client ReplicationProtectedItemsClient) PlannedFailoverPreparer(ctx contex "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -817,7 +899,7 @@ func (client ReplicationProtectedItemsClient) PurgePreparer(ctx context.Context, "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -853,6 +935,88 @@ func (client ReplicationProtectedItemsClient) PurgeResponder(resp *http.Response return } +// RemoveDisks operation to remove disk(s) from the replication protected item. +// Parameters: +// fabricName - unique fabric name. +// protectionContainerName - protection container name. +// replicatedProtectedItemName - replication protected item name. +// removeDisksInput - remove disks input. +func (client ReplicationProtectedItemsClient) RemoveDisks(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, removeDisksInput RemoveDisksInput) (result ReplicationProtectedItemsRemoveDisksFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationProtectedItemsClient.RemoveDisks") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.RemoveDisksPreparer(ctx, fabricName, protectionContainerName, replicatedProtectedItemName, removeDisksInput) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectedItemsClient", "RemoveDisks", nil, "Failure preparing request") + return + } + + result, err = client.RemoveDisksSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectedItemsClient", "RemoveDisks", result.Response(), "Failure sending request") + return + } + + return +} + +// RemoveDisksPreparer prepares the RemoveDisks request. +func (client ReplicationProtectedItemsClient) RemoveDisksPreparer(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, removeDisksInput RemoveDisksInput) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "fabricName": autorest.Encode("path", fabricName), + "protectionContainerName": autorest.Encode("path", protectionContainerName), + "replicatedProtectedItemName": autorest.Encode("path", replicatedProtectedItemName), + "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), + "resourceName": autorest.Encode("path", client.ResourceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2018-07-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}/replicationProtectedItems/{replicatedProtectedItemName}/removeDisks", pathParameters), + autorest.WithJSON(removeDisksInput), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// RemoveDisksSender sends the RemoveDisks request. The method will close the +// http.Response Body if it receives an error. +func (client ReplicationProtectedItemsClient) RemoveDisksSender(req *http.Request) (future ReplicationProtectedItemsRemoveDisksFuture, err error) { + var resp *http.Response + resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// RemoveDisksResponder handles the response to the RemoveDisks request. The method always +// closes the http.Response Body. +func (client ReplicationProtectedItemsClient) RemoveDisksResponder(resp *http.Response) (result ReplicationProtectedItem, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + // RepairReplication the operation to start resynchronize/repair replication for a replication protected item requiring // resynchronization. // Parameters: @@ -896,7 +1060,7 @@ func (client ReplicationProtectedItemsClient) RepairReplicationPreparer(ctx cont "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -976,7 +1140,7 @@ func (client ReplicationProtectedItemsClient) ReprotectPreparer(ctx context.Cont "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -1015,6 +1179,88 @@ func (client ReplicationProtectedItemsClient) ReprotectResponder(resp *http.Resp return } +// ResolveHealthErrors operation to resolve health issues of the replication protected item. +// Parameters: +// fabricName - unique fabric name. +// protectionContainerName - protection container name. +// replicatedProtectedItemName - replication protected item name. +// resolveHealthInput - health issue input object. +func (client ReplicationProtectedItemsClient) ResolveHealthErrors(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, resolveHealthInput ResolveHealthInput) (result ReplicationProtectedItemsResolveHealthErrorsFuture, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationProtectedItemsClient.ResolveHealthErrors") + defer func() { + sc := -1 + if result.Response() != nil { + sc = result.Response().StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.ResolveHealthErrorsPreparer(ctx, fabricName, protectionContainerName, replicatedProtectedItemName, resolveHealthInput) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectedItemsClient", "ResolveHealthErrors", nil, "Failure preparing request") + return + } + + result, err = client.ResolveHealthErrorsSender(req) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectedItemsClient", "ResolveHealthErrors", result.Response(), "Failure sending request") + return + } + + return +} + +// ResolveHealthErrorsPreparer prepares the ResolveHealthErrors request. +func (client ReplicationProtectedItemsClient) ResolveHealthErrorsPreparer(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, resolveHealthInput ResolveHealthInput) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "fabricName": autorest.Encode("path", fabricName), + "protectionContainerName": autorest.Encode("path", protectionContainerName), + "replicatedProtectedItemName": autorest.Encode("path", replicatedProtectedItemName), + "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), + "resourceName": autorest.Encode("path", client.ResourceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2018-07-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}/replicationProtectedItems/{replicatedProtectedItemName}/ResolveHealthErrors", pathParameters), + autorest.WithJSON(resolveHealthInput), + autorest.WithQueryParameters(queryParameters)) + return preparer.Prepare((&http.Request{}).WithContext(ctx)) +} + +// ResolveHealthErrorsSender sends the ResolveHealthErrors request. The method will close the +// http.Response Body if it receives an error. +func (client ReplicationProtectedItemsClient) ResolveHealthErrorsSender(req *http.Request) (future ReplicationProtectedItemsResolveHealthErrorsFuture, err error) { + var resp *http.Response + resp, err = client.Send(req, azure.DoRetryWithRegistration(client.Client)) + if err != nil { + return + } + future.Future, err = azure.NewFutureFromResponse(resp) + return +} + +// ResolveHealthErrorsResponder handles the response to the ResolveHealthErrors request. The method always +// closes the http.Response Body. +func (client ReplicationProtectedItemsClient) ResolveHealthErrorsResponder(resp *http.Response) (result ReplicationProtectedItem, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK, http.StatusAccepted), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + // TestFailover operation to perform a test failover of the replication protected item. // Parameters: // fabricName - unique fabric name. @@ -1058,7 +1304,7 @@ func (client ReplicationProtectedItemsClient) TestFailoverPreparer(ctx context.C "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -1146,7 +1392,7 @@ func (client ReplicationProtectedItemsClient) TestFailoverCleanupPreparer(ctx co "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -1228,7 +1474,7 @@ func (client ReplicationProtectedItemsClient) UnplannedFailoverPreparer(ctx cont "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -1310,7 +1556,7 @@ func (client ReplicationProtectedItemsClient) UpdatePreparer(ctx context.Context "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -1393,7 +1639,7 @@ func (client ReplicationProtectedItemsClient) UpdateMobilityServicePreparer(ctx "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationprotectioncontainermappings.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationprotectioncontainermappings.go similarity index 99% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationprotectioncontainermappings.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationprotectioncontainermappings.go index 7bb80eac4680..3ead9e4e18e5 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationprotectioncontainermappings.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationprotectioncontainermappings.go @@ -87,7 +87,7 @@ func (client ReplicationProtectionContainerMappingsClient) CreatePreparer(ctx co "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -169,7 +169,7 @@ func (client ReplicationProtectionContainerMappingsClient) DeletePreparer(ctx co "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -256,7 +256,7 @@ func (client ReplicationProtectionContainerMappingsClient) GetPreparer(ctx conte "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -333,7 +333,7 @@ func (client ReplicationProtectionContainerMappingsClient) ListPreparer(ctx cont "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -453,7 +453,7 @@ func (client ReplicationProtectionContainerMappingsClient) ListByReplicationProt "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -564,7 +564,7 @@ func (client ReplicationProtectionContainerMappingsClient) PurgePreparer(ctx con "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -643,7 +643,7 @@ func (client ReplicationProtectionContainerMappingsClient) UpdatePreparer(ctx co "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationprotectioncontainers.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationprotectioncontainers.go similarity index 99% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationprotectioncontainers.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationprotectioncontainers.go index bdab123a3325..30a8da4c932c 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationprotectioncontainers.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationprotectioncontainers.go @@ -84,7 +84,7 @@ func (client ReplicationProtectionContainersClient) CreatePreparer(ctx context.C "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -163,7 +163,7 @@ func (client ReplicationProtectionContainersClient) DeletePreparer(ctx context.C "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -240,7 +240,7 @@ func (client ReplicationProtectionContainersClient) DiscoverProtectableItemPrepa "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -326,7 +326,7 @@ func (client ReplicationProtectionContainersClient) GetPreparer(ctx context.Cont "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -403,7 +403,7 @@ func (client ReplicationProtectionContainersClient) ListPreparer(ctx context.Con "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -521,7 +521,7 @@ func (client ReplicationProtectionContainersClient) ListByReplicationFabricsPrep "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -632,7 +632,7 @@ func (client ReplicationProtectionContainersClient) SwitchProtectionPreparer(ctx "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationprotectionintents.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationprotectionintents.go new file mode 100644 index 000000000000..01116ec016d5 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationprotectionintents.go @@ -0,0 +1,314 @@ +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" +) + +// ReplicationProtectionIntentsClient is the client for the ReplicationProtectionIntents methods of the Siterecovery +// service. +type ReplicationProtectionIntentsClient struct { + BaseClient +} + +// NewReplicationProtectionIntentsClient creates an instance of the ReplicationProtectionIntentsClient client. +func NewReplicationProtectionIntentsClient(subscriptionID string, resourceGroupName string, resourceName string) ReplicationProtectionIntentsClient { + return NewReplicationProtectionIntentsClientWithBaseURI(DefaultBaseURI, subscriptionID, resourceGroupName, resourceName) +} + +// NewReplicationProtectionIntentsClientWithBaseURI creates an instance of the ReplicationProtectionIntentsClient +// client using a custom endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI +// (sovereign clouds, Azure stack). +func NewReplicationProtectionIntentsClientWithBaseURI(baseURI string, subscriptionID string, resourceGroupName string, resourceName string) ReplicationProtectionIntentsClient { + return ReplicationProtectionIntentsClient{NewWithBaseURI(baseURI, subscriptionID, resourceGroupName, resourceName)} +} + +// Create the operation to create an ASR replication protection intent item. +// Parameters: +// intentObjectName - a name for the replication protection item. +// input - create Protection Intent Input. +func (client ReplicationProtectionIntentsClient) Create(ctx context.Context, intentObjectName string, input CreateProtectionIntentInput) (result ReplicationProtectionIntent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationProtectionIntentsClient.Create") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + req, err := client.CreatePreparer(ctx, intentObjectName, input) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectionIntentsClient", "Create", nil, "Failure preparing request") + return + } + + resp, err := client.CreateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectionIntentsClient", "Create", resp, "Failure sending request") + return + } + + result, err = client.CreateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectionIntentsClient", "Create", resp, "Failure responding to request") + return + } + + return +} + +// CreatePreparer prepares the Create request. +func (client ReplicationProtectionIntentsClient) CreatePreparer(ctx context.Context, intentObjectName string, input CreateProtectionIntentInput) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "intentObjectName": autorest.Encode("path", intentObjectName), + "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), + "resourceName": autorest.Encode("path", client.ResourceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2018-07-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}/replicationProtectionIntents/{intentObjectName}", 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 ReplicationProtectionIntentsClient) CreateSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// CreateResponder handles the response to the Create request. The method always +// closes the http.Response Body. +func (client ReplicationProtectionIntentsClient) CreateResponder(resp *http.Response) (result ReplicationProtectionIntent, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Get gets the details of an ASR replication protection intent. +// Parameters: +// intentObjectName - replication protection intent name. +func (client ReplicationProtectionIntentsClient) Get(ctx context.Context, intentObjectName string) (result ReplicationProtectionIntent, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationProtectionIntentsClient.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, intentObjectName) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectionIntentsClient", "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.ReplicationProtectionIntentsClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectionIntentsClient", "Get", resp, "Failure responding to request") + return + } + + return +} + +// GetPreparer prepares the Get request. +func (client ReplicationProtectionIntentsClient) GetPreparer(ctx context.Context, intentObjectName string) (*http.Request, error) { + pathParameters := map[string]interface{}{ + "intentObjectName": autorest.Encode("path", intentObjectName), + "resourceGroupName": autorest.Encode("path", client.ResourceGroupName), + "resourceName": autorest.Encode("path", client.ResourceName), + "subscriptionId": autorest.Encode("path", client.SubscriptionID), + } + + const APIVersion = "2018-07-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}/replicationProtectionIntents/{intentObjectName}", 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 ReplicationProtectionIntentsClient) GetSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client ReplicationProtectionIntentsClient) GetResponder(resp *http.Response) (result ReplicationProtectionIntent, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List gets the list of ASR replication protection intent objects in the vault. +func (client ReplicationProtectionIntentsClient) List(ctx context.Context) (result ReplicationProtectionIntentCollectionPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationProtectionIntentsClient.List") + defer func() { + sc := -1 + if result.rpic.Response.Response != nil { + sc = result.rpic.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listNextResults + req, err := client.ListPreparer(ctx) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectionIntentsClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.rpic.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectionIntentsClient", "List", resp, "Failure sending request") + return + } + + result.rpic, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectionIntentsClient", "List", resp, "Failure responding to request") + return + } + if result.rpic.hasNextLink() && result.rpic.IsEmpty() { + err = result.NextWithContext(ctx) + } + + return +} + +// ListPreparer prepares the List request. +func (client ReplicationProtectionIntentsClient) ListPreparer(ctx context.Context) (*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-07-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}/replicationProtectionIntents", 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 ReplicationProtectionIntentsClient) ListSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client ReplicationProtectionIntentsClient) ListResponder(resp *http.Response) (result ReplicationProtectionIntentCollection, err error) { + err = autorest.Respond( + resp, + 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 ReplicationProtectionIntentsClient) listNextResults(ctx context.Context, lastResults ReplicationProtectionIntentCollection) (result ReplicationProtectionIntentCollection, err error) { + req, err := lastResults.replicationProtectionIntentCollectionPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectionIntentsClient", "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.ReplicationProtectionIntentsClient", "listNextResults", resp, "Failure sending next results request") + } + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationProtectionIntentsClient", "listNextResults", resp, "Failure responding to next results request") + return + } + return +} + +// ListComplete enumerates all values, automatically crossing page boundaries as required. +func (client ReplicationProtectionIntentsClient) ListComplete(ctx context.Context) (result ReplicationProtectionIntentCollectionIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationProtectionIntentsClient.List") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.List(ctx) + return +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationrecoveryplans.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationrecoveryplans.go similarity index 99% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationrecoveryplans.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationrecoveryplans.go index 13566c31627d..6096ab472cca 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationrecoveryplans.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationrecoveryplans.go @@ -92,7 +92,7 @@ func (client ReplicationRecoveryPlansClient) CreatePreparer(ctx context.Context, "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -169,7 +169,7 @@ func (client ReplicationRecoveryPlansClient) DeletePreparer(ctx context.Context, "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -243,7 +243,7 @@ func (client ReplicationRecoveryPlansClient) FailoverCommitPreparer(ctx context. "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -325,7 +325,7 @@ func (client ReplicationRecoveryPlansClient) GetPreparer(ctx context.Context, re "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -402,7 +402,7 @@ func (client ReplicationRecoveryPlansClient) ListPreparer(ctx context.Context) ( "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -516,7 +516,7 @@ func (client ReplicationRecoveryPlansClient) PlannedFailoverPreparer(ctx context "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -593,7 +593,7 @@ func (client ReplicationRecoveryPlansClient) ReprotectPreparer(ctx context.Conte "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -676,7 +676,7 @@ func (client ReplicationRecoveryPlansClient) TestFailoverPreparer(ctx context.Co "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -760,7 +760,7 @@ func (client ReplicationRecoveryPlansClient) TestFailoverCleanupPreparer(ctx con "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -844,7 +844,7 @@ func (client ReplicationRecoveryPlansClient) UnplannedFailoverPreparer(ctx conte "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -922,7 +922,7 @@ func (client ReplicationRecoveryPlansClient) UpdatePreparer(ctx context.Context, "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationrecoveryservicesproviders.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationrecoveryservicesproviders.go similarity index 96% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationrecoveryservicesproviders.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationrecoveryservicesproviders.go index e8ab3be64107..ef35d5a1762c 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationrecoveryservicesproviders.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationrecoveryservicesproviders.go @@ -79,6 +79,13 @@ func (client ReplicationRecoveryServicesProvidersClient) Create(ctx context.Cont {Target: "addProviderInput.Properties.ResourceAccessIdentityInput.Audience", Name: validation.Null, Rule: true, Chain: nil}, {Target: "addProviderInput.Properties.ResourceAccessIdentityInput.AadAuthority", Name: validation.Null, Rule: true, Chain: nil}, }}, + {Target: "addProviderInput.Properties.DataPlaneAuthenticationIdentityInput", Name: validation.Null, Rule: false, + Chain: []validation.Constraint{{Target: "addProviderInput.Properties.DataPlaneAuthenticationIdentityInput.TenantID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "addProviderInput.Properties.DataPlaneAuthenticationIdentityInput.ApplicationID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "addProviderInput.Properties.DataPlaneAuthenticationIdentityInput.ObjectID", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "addProviderInput.Properties.DataPlaneAuthenticationIdentityInput.Audience", Name: validation.Null, Rule: true, Chain: nil}, + {Target: "addProviderInput.Properties.DataPlaneAuthenticationIdentityInput.AadAuthority", Name: validation.Null, Rule: true, Chain: nil}, + }}, }}}}}); err != nil { return result, validation.NewError("siterecovery.ReplicationRecoveryServicesProvidersClient", "Create", err.Error()) } @@ -108,7 +115,7 @@ func (client ReplicationRecoveryServicesProvidersClient) CreatePreparer(ctx cont "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -187,7 +194,7 @@ func (client ReplicationRecoveryServicesProvidersClient) DeletePreparer(ctx cont "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -270,7 +277,7 @@ func (client ReplicationRecoveryServicesProvidersClient) GetPreparer(ctx context "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -347,7 +354,7 @@ func (client ReplicationRecoveryServicesProvidersClient) ListPreparer(ctx contex "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -465,7 +472,7 @@ func (client ReplicationRecoveryServicesProvidersClient) ListByReplicationFabric "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -574,7 +581,7 @@ func (client ReplicationRecoveryServicesProvidersClient) PurgePreparer(ctx conte "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -650,7 +657,7 @@ func (client ReplicationRecoveryServicesProvidersClient) RefreshProviderPreparer "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationstorageclassificationmappings.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationstorageclassificationmappings.go similarity index 99% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationstorageclassificationmappings.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationstorageclassificationmappings.go index 4100988291f6..523fadb5bfe9 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationstorageclassificationmappings.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationstorageclassificationmappings.go @@ -87,7 +87,7 @@ func (client ReplicationStorageClassificationMappingsClient) CreatePreparer(ctx "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -168,7 +168,7 @@ func (client ReplicationStorageClassificationMappingsClient) DeletePreparer(ctx "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -253,7 +253,7 @@ func (client ReplicationStorageClassificationMappingsClient) GetPreparer(ctx con "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -330,7 +330,7 @@ func (client ReplicationStorageClassificationMappingsClient) ListPreparer(ctx co "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -450,7 +450,7 @@ func (client ReplicationStorageClassificationMappingsClient) ListByReplicationSt "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationstorageclassifications.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationstorageclassifications.go similarity index 99% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationstorageclassifications.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationstorageclassifications.go index 07ec1d92777e..c4826e92adb8 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationstorageclassifications.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationstorageclassifications.go @@ -91,7 +91,7 @@ func (client ReplicationStorageClassificationsClient) GetPreparer(ctx context.Co "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -168,7 +168,7 @@ func (client ReplicationStorageClassificationsClient) ListPreparer(ctx context.C "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -286,7 +286,7 @@ func (client ReplicationStorageClassificationsClient) ListByReplicationFabricsPr "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationvaulthealth.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationvaulthealth.go similarity index 99% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationvaulthealth.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationvaulthealth.go index 01f4145f553f..59ba89c367ce 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationvaulthealth.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationvaulthealth.go @@ -84,7 +84,7 @@ func (client ReplicationVaultHealthClient) GetPreparer(ctx context.Context) (*ht "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -150,7 +150,7 @@ func (client ReplicationVaultHealthClient) RefreshPreparer(ctx context.Context) "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationvaultsetting.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationvaultsetting.go new file mode 100644 index 000000000000..c2a9eb02bc0f --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationvaultsetting.go @@ -0,0 +1,321 @@ +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" +) + +// ReplicationVaultSettingClient is the client for the ReplicationVaultSetting methods of the Siterecovery service. +type ReplicationVaultSettingClient struct { + BaseClient +} + +// NewReplicationVaultSettingClient creates an instance of the ReplicationVaultSettingClient client. +func NewReplicationVaultSettingClient(subscriptionID string, resourceGroupName string, resourceName string) ReplicationVaultSettingClient { + return NewReplicationVaultSettingClientWithBaseURI(DefaultBaseURI, subscriptionID, resourceGroupName, resourceName) +} + +// NewReplicationVaultSettingClientWithBaseURI creates an instance of the ReplicationVaultSettingClient client using a +// custom endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign clouds, +// Azure stack). +func NewReplicationVaultSettingClientWithBaseURI(baseURI string, subscriptionID string, resourceGroupName string, resourceName string) ReplicationVaultSettingClient { + return ReplicationVaultSettingClient{NewWithBaseURI(baseURI, subscriptionID, resourceGroupName, resourceName)} +} + +// Create the operation to configure vault setting. +// Parameters: +// vaultSettingName - vault setting name. +// input - vault setting creation input. +func (client ReplicationVaultSettingClient) Create(ctx context.Context, vaultSettingName string, input VaultSettingCreationInput) (result VaultSetting, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationVaultSettingClient.Create") + defer func() { + sc := -1 + if result.Response.Response != nil { + sc = result.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + if err := validation.Validate([]validation.Validation{ + {TargetValue: input, + Constraints: []validation.Constraint{{Target: "input.Properties", Name: validation.Null, Rule: true, + Chain: []validation.Constraint{{Target: "input.Properties.MigrationSolutionID", Name: validation.Null, Rule: true, Chain: nil}}}}}}); err != nil { + return result, validation.NewError("siterecovery.ReplicationVaultSettingClient", "Create", err.Error()) + } + + req, err := client.CreatePreparer(ctx, vaultSettingName, input) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationVaultSettingClient", "Create", nil, "Failure preparing request") + return + } + + resp, err := client.CreateSender(req) + if err != nil { + result.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationVaultSettingClient", "Create", resp, "Failure sending request") + return + } + + result, err = client.CreateResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationVaultSettingClient", "Create", resp, "Failure responding to request") + return + } + + return +} + +// CreatePreparer prepares the Create request. +func (client ReplicationVaultSettingClient) CreatePreparer(ctx context.Context, vaultSettingName string, input VaultSettingCreationInput) (*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), + "vaultSettingName": autorest.Encode("path", vaultSettingName), + } + + const APIVersion = "2018-07-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}/replicationVaultSettings/{vaultSettingName}", 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 ReplicationVaultSettingClient) CreateSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// CreateResponder handles the response to the Create request. The method always +// closes the http.Response Body. +func (client ReplicationVaultSettingClient) CreateResponder(resp *http.Response) (result VaultSetting, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// Get gets the vault setting. This includes the Migration Hub connection settings. +// Parameters: +// vaultSettingName - vault setting name. +func (client ReplicationVaultSettingClient) Get(ctx context.Context, vaultSettingName string) (result VaultSetting, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationVaultSettingClient.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, vaultSettingName) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationVaultSettingClient", "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.ReplicationVaultSettingClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationVaultSettingClient", "Get", resp, "Failure responding to request") + return + } + + return +} + +// GetPreparer prepares the Get request. +func (client ReplicationVaultSettingClient) GetPreparer(ctx context.Context, vaultSettingName 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), + "vaultSettingName": autorest.Encode("path", vaultSettingName), + } + + const APIVersion = "2018-07-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}/replicationVaultSettings/{vaultSettingName}", 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 ReplicationVaultSettingClient) GetSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client ReplicationVaultSettingClient) GetResponder(resp *http.Response) (result VaultSetting, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} + +// List gets the list of vault setting. This includes the Migration Hub connection settings. +func (client ReplicationVaultSettingClient) List(ctx context.Context) (result VaultSettingCollectionPage, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationVaultSettingClient.List") + defer func() { + sc := -1 + if result.vsc.Response.Response != nil { + sc = result.vsc.Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.fn = client.listNextResults + req, err := client.ListPreparer(ctx) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationVaultSettingClient", "List", nil, "Failure preparing request") + return + } + + resp, err := client.ListSender(req) + if err != nil { + result.vsc.Response = autorest.Response{Response: resp} + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationVaultSettingClient", "List", resp, "Failure sending request") + return + } + + result.vsc, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationVaultSettingClient", "List", resp, "Failure responding to request") + return + } + if result.vsc.hasNextLink() && result.vsc.IsEmpty() { + err = result.NextWithContext(ctx) + } + + return +} + +// ListPreparer prepares the List request. +func (client ReplicationVaultSettingClient) ListPreparer(ctx context.Context) (*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-07-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}/replicationVaultSettings", 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 ReplicationVaultSettingClient) ListSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// ListResponder handles the response to the List request. The method always +// closes the http.Response Body. +func (client ReplicationVaultSettingClient) ListResponder(resp *http.Response) (result VaultSettingCollection, err error) { + err = autorest.Respond( + resp, + 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 ReplicationVaultSettingClient) listNextResults(ctx context.Context, lastResults VaultSettingCollection) (result VaultSettingCollection, err error) { + req, err := lastResults.vaultSettingCollectionPreparer(ctx) + if err != nil { + return result, autorest.NewErrorWithError(err, "siterecovery.ReplicationVaultSettingClient", "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.ReplicationVaultSettingClient", "listNextResults", resp, "Failure sending next results request") + } + result, err = client.ListResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.ReplicationVaultSettingClient", "listNextResults", resp, "Failure responding to next results request") + return + } + return +} + +// ListComplete enumerates all values, automatically crossing page boundaries as required. +func (client ReplicationVaultSettingClient) ListComplete(ctx context.Context) (result VaultSettingCollectionIterator, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/ReplicationVaultSettingClient.List") + defer func() { + sc := -1 + if result.Response().Response.Response != nil { + sc = result.page.Response().Response.Response.StatusCode + } + tracing.EndSpan(ctx, sc, err) + }() + } + result.page, err = client.List(ctx) + return +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationvcenters.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationvcenters.go similarity index 99% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationvcenters.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationvcenters.go index 85b478e5a1e8..bfd4efda92db 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/replicationvcenters.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/replicationvcenters.go @@ -83,7 +83,7 @@ func (client ReplicationvCentersClient) CreatePreparer(ctx context.Context, fabr "vCenterName": autorest.Encode("path", vCenterName), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -162,7 +162,7 @@ func (client ReplicationvCentersClient) DeletePreparer(ctx context.Context, fabr "vCenterName": autorest.Encode("path", vCenterName), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -245,7 +245,7 @@ func (client ReplicationvCentersClient) GetPreparer(ctx context.Context, fabricN "vCenterName": autorest.Encode("path", vCenterName), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -322,7 +322,7 @@ func (client ReplicationvCentersClient) ListPreparer(ctx context.Context) (*http "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -440,7 +440,7 @@ func (client ReplicationvCentersClient) ListByReplicationFabricsPreparer(ctx con "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } @@ -550,7 +550,7 @@ func (client ReplicationvCentersClient) UpdatePreparer(ctx context.Context, fabr "vCenterName": autorest.Encode("path", vCenterName), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/siterecoveryapi/interfaces.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/siterecoveryapi/interfaces.go new file mode 100644 index 000000000000..ad8c361453c7 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/siterecoveryapi/interfaces.go @@ -0,0 +1,348 @@ +package siterecoveryapi + +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Code generated by Microsoft (R) AutoRest Code Generator. +// Changes may cause incorrect behavior and will be lost if the code is regenerated. + +import ( + "context" + "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery" +) + +// OperationsClientAPI contains the set of methods on the OperationsClient type. +type OperationsClientAPI interface { + List(ctx context.Context) (result siterecovery.OperationsDiscoveryCollectionPage, err error) + ListComplete(ctx context.Context) (result siterecovery.OperationsDiscoveryCollectionIterator, err error) +} + +var _ OperationsClientAPI = (*siterecovery.OperationsClient)(nil) + +// ReplicationAlertSettingsClientAPI contains the set of methods on the ReplicationAlertSettingsClient type. +type ReplicationAlertSettingsClientAPI interface { + Create(ctx context.Context, alertSettingName string, request siterecovery.ConfigureAlertRequest) (result siterecovery.Alert, err error) + Get(ctx context.Context, alertSettingName string) (result siterecovery.Alert, err error) + List(ctx context.Context) (result siterecovery.AlertCollectionPage, err error) + ListComplete(ctx context.Context) (result siterecovery.AlertCollectionIterator, err error) +} + +var _ ReplicationAlertSettingsClientAPI = (*siterecovery.ReplicationAlertSettingsClient)(nil) + +// ReplicationEligibilityResultsClientAPI contains the set of methods on the ReplicationEligibilityResultsClient type. +type ReplicationEligibilityResultsClientAPI interface { + Get(ctx context.Context, virtualMachineName string) (result siterecovery.ReplicationEligibilityResults, err error) + List(ctx context.Context, virtualMachineName string) (result siterecovery.ReplicationEligibilityResultsCollection, err error) +} + +var _ ReplicationEligibilityResultsClientAPI = (*siterecovery.ReplicationEligibilityResultsClient)(nil) + +// ReplicationEventsClientAPI contains the set of methods on the ReplicationEventsClient type. +type ReplicationEventsClientAPI interface { + Get(ctx context.Context, eventName string) (result siterecovery.Event, err error) + List(ctx context.Context, filter string) (result siterecovery.EventCollectionPage, err error) + ListComplete(ctx context.Context, filter string) (result siterecovery.EventCollectionIterator, err error) +} + +var _ ReplicationEventsClientAPI = (*siterecovery.ReplicationEventsClient)(nil) + +// ReplicationFabricsClientAPI contains the set of methods on the ReplicationFabricsClient type. +type ReplicationFabricsClientAPI interface { + CheckConsistency(ctx context.Context, fabricName string) (result siterecovery.ReplicationFabricsCheckConsistencyFuture, err error) + Create(ctx context.Context, fabricName string, input siterecovery.FabricCreationInput) (result siterecovery.ReplicationFabricsCreateFuture, err error) + Delete(ctx context.Context, fabricName string) (result siterecovery.ReplicationFabricsDeleteFuture, err error) + Get(ctx context.Context, fabricName string) (result siterecovery.Fabric, err error) + List(ctx context.Context) (result siterecovery.FabricCollectionPage, err error) + ListComplete(ctx context.Context) (result siterecovery.FabricCollectionIterator, err error) + MigrateToAad(ctx context.Context, fabricName string) (result siterecovery.ReplicationFabricsMigrateToAadFuture, err error) + Purge(ctx context.Context, fabricName string) (result siterecovery.ReplicationFabricsPurgeFuture, err error) + ReassociateGateway(ctx context.Context, fabricName string, failoverProcessServerRequest siterecovery.FailoverProcessServerRequest) (result siterecovery.ReplicationFabricsReassociateGatewayFuture, err error) + RenewCertificate(ctx context.Context, fabricName string, renewCertificate siterecovery.RenewCertificateInput) (result siterecovery.ReplicationFabricsRenewCertificateFuture, err error) +} + +var _ ReplicationFabricsClientAPI = (*siterecovery.ReplicationFabricsClient)(nil) + +// ReplicationLogicalNetworksClientAPI contains the set of methods on the ReplicationLogicalNetworksClient type. +type ReplicationLogicalNetworksClientAPI interface { + Get(ctx context.Context, fabricName string, logicalNetworkName string) (result siterecovery.LogicalNetwork, err error) + ListByReplicationFabrics(ctx context.Context, fabricName string) (result siterecovery.LogicalNetworkCollectionPage, err error) + ListByReplicationFabricsComplete(ctx context.Context, fabricName string) (result siterecovery.LogicalNetworkCollectionIterator, err error) +} + +var _ ReplicationLogicalNetworksClientAPI = (*siterecovery.ReplicationLogicalNetworksClient)(nil) + +// ReplicationNetworksClientAPI contains the set of methods on the ReplicationNetworksClient type. +type ReplicationNetworksClientAPI interface { + Get(ctx context.Context, fabricName string, networkName string) (result siterecovery.Network, err error) + List(ctx context.Context) (result siterecovery.NetworkCollectionPage, err error) + ListComplete(ctx context.Context) (result siterecovery.NetworkCollectionIterator, err error) + ListByReplicationFabrics(ctx context.Context, fabricName string) (result siterecovery.NetworkCollectionPage, err error) + ListByReplicationFabricsComplete(ctx context.Context, fabricName string) (result siterecovery.NetworkCollectionIterator, err error) +} + +var _ ReplicationNetworksClientAPI = (*siterecovery.ReplicationNetworksClient)(nil) + +// ReplicationNetworkMappingsClientAPI contains the set of methods on the ReplicationNetworkMappingsClient type. +type ReplicationNetworkMappingsClientAPI interface { + Create(ctx context.Context, fabricName string, networkName string, networkMappingName string, input siterecovery.CreateNetworkMappingInput) (result siterecovery.ReplicationNetworkMappingsCreateFuture, err error) + Delete(ctx context.Context, fabricName string, networkName string, networkMappingName string) (result siterecovery.ReplicationNetworkMappingsDeleteFuture, err error) + Get(ctx context.Context, fabricName string, networkName string, networkMappingName string) (result siterecovery.NetworkMapping, err error) + List(ctx context.Context) (result siterecovery.NetworkMappingCollectionPage, err error) + ListComplete(ctx context.Context) (result siterecovery.NetworkMappingCollectionIterator, err error) + ListByReplicationNetworks(ctx context.Context, fabricName string, networkName string) (result siterecovery.NetworkMappingCollectionPage, err error) + ListByReplicationNetworksComplete(ctx context.Context, fabricName string, networkName string) (result siterecovery.NetworkMappingCollectionIterator, err error) + Update(ctx context.Context, fabricName string, networkName string, networkMappingName string, input siterecovery.UpdateNetworkMappingInput) (result siterecovery.ReplicationNetworkMappingsUpdateFuture, err error) +} + +var _ ReplicationNetworkMappingsClientAPI = (*siterecovery.ReplicationNetworkMappingsClient)(nil) + +// ReplicationProtectionContainersClientAPI contains the set of methods on the ReplicationProtectionContainersClient type. +type ReplicationProtectionContainersClientAPI interface { + Create(ctx context.Context, fabricName string, protectionContainerName string, creationInput siterecovery.CreateProtectionContainerInput) (result siterecovery.ReplicationProtectionContainersCreateFuture, err error) + Delete(ctx context.Context, fabricName string, protectionContainerName string) (result siterecovery.ReplicationProtectionContainersDeleteFuture, err error) + DiscoverProtectableItem(ctx context.Context, fabricName string, protectionContainerName string, discoverProtectableItemRequest siterecovery.DiscoverProtectableItemRequest) (result siterecovery.ReplicationProtectionContainersDiscoverProtectableItemFuture, err error) + Get(ctx context.Context, fabricName string, protectionContainerName string) (result siterecovery.ProtectionContainer, err error) + List(ctx context.Context) (result siterecovery.ProtectionContainerCollectionPage, err error) + ListComplete(ctx context.Context) (result siterecovery.ProtectionContainerCollectionIterator, err error) + ListByReplicationFabrics(ctx context.Context, fabricName string) (result siterecovery.ProtectionContainerCollectionPage, err error) + ListByReplicationFabricsComplete(ctx context.Context, fabricName string) (result siterecovery.ProtectionContainerCollectionIterator, err error) + SwitchProtection(ctx context.Context, fabricName string, protectionContainerName string, switchInput siterecovery.SwitchProtectionInput) (result siterecovery.ReplicationProtectionContainersSwitchProtectionFuture, err error) +} + +var _ ReplicationProtectionContainersClientAPI = (*siterecovery.ReplicationProtectionContainersClient)(nil) + +// ReplicationMigrationItemsClientAPI contains the set of methods on the ReplicationMigrationItemsClient type. +type ReplicationMigrationItemsClientAPI interface { + Create(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, input siterecovery.EnableMigrationInput) (result siterecovery.ReplicationMigrationItemsCreateFuture, err error) + Delete(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, deleteOption string) (result siterecovery.ReplicationMigrationItemsDeleteFuture, err error) + Get(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string) (result siterecovery.MigrationItem, err error) + List(ctx context.Context, skipToken string, filter string) (result siterecovery.MigrationItemCollectionPage, err error) + ListComplete(ctx context.Context, skipToken string, filter string) (result siterecovery.MigrationItemCollectionIterator, err error) + ListByReplicationProtectionContainers(ctx context.Context, fabricName string, protectionContainerName string) (result siterecovery.MigrationItemCollectionPage, err error) + ListByReplicationProtectionContainersComplete(ctx context.Context, fabricName string, protectionContainerName string) (result siterecovery.MigrationItemCollectionIterator, err error) + Migrate(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, migrateInput siterecovery.MigrateInput) (result siterecovery.ReplicationMigrationItemsMigrateFuture, err error) + TestMigrate(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, testMigrateInput siterecovery.TestMigrateInput) (result siterecovery.ReplicationMigrationItemsTestMigrateFuture, err error) + TestMigrateCleanup(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, testMigrateCleanupInput siterecovery.TestMigrateCleanupInput) (result siterecovery.ReplicationMigrationItemsTestMigrateCleanupFuture, err error) + Update(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, input siterecovery.UpdateMigrationItemInput) (result siterecovery.ReplicationMigrationItemsUpdateFuture, err error) +} + +var _ ReplicationMigrationItemsClientAPI = (*siterecovery.ReplicationMigrationItemsClient)(nil) + +// MigrationRecoveryPointsClientAPI contains the set of methods on the MigrationRecoveryPointsClient type. +type MigrationRecoveryPointsClientAPI interface { + Get(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, migrationRecoveryPointName string) (result siterecovery.MigrationRecoveryPoint, err error) + ListByReplicationMigrationItems(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string) (result siterecovery.MigrationRecoveryPointCollectionPage, err error) + ListByReplicationMigrationItemsComplete(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string) (result siterecovery.MigrationRecoveryPointCollectionIterator, err error) +} + +var _ MigrationRecoveryPointsClientAPI = (*siterecovery.MigrationRecoveryPointsClient)(nil) + +// ReplicationProtectableItemsClientAPI contains the set of methods on the ReplicationProtectableItemsClient type. +type ReplicationProtectableItemsClientAPI interface { + Get(ctx context.Context, fabricName string, protectionContainerName string, protectableItemName string) (result siterecovery.ProtectableItem, err error) + ListByReplicationProtectionContainers(ctx context.Context, fabricName string, protectionContainerName string, filter string) (result siterecovery.ProtectableItemCollectionPage, err error) + ListByReplicationProtectionContainersComplete(ctx context.Context, fabricName string, protectionContainerName string, filter string) (result siterecovery.ProtectableItemCollectionIterator, err error) +} + +var _ ReplicationProtectableItemsClientAPI = (*siterecovery.ReplicationProtectableItemsClient)(nil) + +// ReplicationProtectedItemsClientAPI contains the set of methods on the ReplicationProtectedItemsClient type. +type ReplicationProtectedItemsClientAPI interface { + AddDisks(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, addDisksInput siterecovery.AddDisksInput) (result siterecovery.ReplicationProtectedItemsAddDisksFuture, err error) + ApplyRecoveryPoint(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, applyRecoveryPointInput siterecovery.ApplyRecoveryPointInput) (result siterecovery.ReplicationProtectedItemsApplyRecoveryPointFuture, err error) + Create(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, input siterecovery.EnableProtectionInput) (result siterecovery.ReplicationProtectedItemsCreateFuture, err error) + Delete(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, disableProtectionInput siterecovery.DisableProtectionInput) (result siterecovery.ReplicationProtectedItemsDeleteFuture, err error) + FailoverCommit(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string) (result siterecovery.ReplicationProtectedItemsFailoverCommitFuture, err error) + Get(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string) (result siterecovery.ReplicationProtectedItem, err error) + List(ctx context.Context, skipToken string, filter string) (result siterecovery.ReplicationProtectedItemCollectionPage, err error) + ListComplete(ctx context.Context, skipToken string, filter string) (result siterecovery.ReplicationProtectedItemCollectionIterator, err error) + ListByReplicationProtectionContainers(ctx context.Context, fabricName string, protectionContainerName string) (result siterecovery.ReplicationProtectedItemCollectionPage, err error) + ListByReplicationProtectionContainersComplete(ctx context.Context, fabricName string, protectionContainerName string) (result siterecovery.ReplicationProtectedItemCollectionIterator, err error) + PlannedFailover(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, failoverInput siterecovery.PlannedFailoverInput) (result siterecovery.ReplicationProtectedItemsPlannedFailoverFuture, err error) + Purge(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string) (result siterecovery.ReplicationProtectedItemsPurgeFuture, err error) + RemoveDisks(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, removeDisksInput siterecovery.RemoveDisksInput) (result siterecovery.ReplicationProtectedItemsRemoveDisksFuture, err error) + RepairReplication(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string) (result siterecovery.ReplicationProtectedItemsRepairReplicationFuture, err error) + Reprotect(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, rrInput siterecovery.ReverseReplicationInput) (result siterecovery.ReplicationProtectedItemsReprotectFuture, err error) + ResolveHealthErrors(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, resolveHealthInput siterecovery.ResolveHealthInput) (result siterecovery.ReplicationProtectedItemsResolveHealthErrorsFuture, err error) + TestFailover(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, failoverInput siterecovery.TestFailoverInput) (result siterecovery.ReplicationProtectedItemsTestFailoverFuture, err error) + TestFailoverCleanup(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, cleanupInput siterecovery.TestFailoverCleanupInput) (result siterecovery.ReplicationProtectedItemsTestFailoverCleanupFuture, err error) + UnplannedFailover(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, failoverInput siterecovery.UnplannedFailoverInput) (result siterecovery.ReplicationProtectedItemsUnplannedFailoverFuture, err error) + Update(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, updateProtectionInput siterecovery.UpdateReplicationProtectedItemInput) (result siterecovery.ReplicationProtectedItemsUpdateFuture, err error) + UpdateMobilityService(ctx context.Context, fabricName string, protectionContainerName string, replicationProtectedItemName string, updateMobilityServiceRequest siterecovery.UpdateMobilityServiceRequest) (result siterecovery.ReplicationProtectedItemsUpdateMobilityServiceFuture, err error) +} + +var _ ReplicationProtectedItemsClientAPI = (*siterecovery.ReplicationProtectedItemsClient)(nil) + +// RecoveryPointsClientAPI contains the set of methods on the RecoveryPointsClient type. +type RecoveryPointsClientAPI interface { + Get(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, recoveryPointName string) (result siterecovery.RecoveryPoint, err error) + ListByReplicationProtectedItems(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string) (result siterecovery.RecoveryPointCollectionPage, err error) + ListByReplicationProtectedItemsComplete(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string) (result siterecovery.RecoveryPointCollectionIterator, err error) +} + +var _ RecoveryPointsClientAPI = (*siterecovery.RecoveryPointsClient)(nil) + +// TargetComputeSizesClientAPI contains the set of methods on the TargetComputeSizesClient type. +type TargetComputeSizesClientAPI interface { + ListByReplicationProtectedItems(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string) (result siterecovery.TargetComputeSizeCollectionPage, err error) + ListByReplicationProtectedItemsComplete(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string) (result siterecovery.TargetComputeSizeCollectionIterator, err error) +} + +var _ TargetComputeSizesClientAPI = (*siterecovery.TargetComputeSizesClient)(nil) + +// ReplicationProtectionContainerMappingsClientAPI contains the set of methods on the ReplicationProtectionContainerMappingsClient type. +type ReplicationProtectionContainerMappingsClientAPI interface { + Create(ctx context.Context, fabricName string, protectionContainerName string, mappingName string, creationInput siterecovery.CreateProtectionContainerMappingInput) (result siterecovery.ReplicationProtectionContainerMappingsCreateFuture, err error) + Delete(ctx context.Context, fabricName string, protectionContainerName string, mappingName string, removalInput siterecovery.RemoveProtectionContainerMappingInput) (result siterecovery.ReplicationProtectionContainerMappingsDeleteFuture, err error) + Get(ctx context.Context, fabricName string, protectionContainerName string, mappingName string) (result siterecovery.ProtectionContainerMapping, err error) + List(ctx context.Context) (result siterecovery.ProtectionContainerMappingCollectionPage, err error) + ListComplete(ctx context.Context) (result siterecovery.ProtectionContainerMappingCollectionIterator, err error) + ListByReplicationProtectionContainers(ctx context.Context, fabricName string, protectionContainerName string) (result siterecovery.ProtectionContainerMappingCollectionPage, err error) + ListByReplicationProtectionContainersComplete(ctx context.Context, fabricName string, protectionContainerName string) (result siterecovery.ProtectionContainerMappingCollectionIterator, err error) + Purge(ctx context.Context, fabricName string, protectionContainerName string, mappingName string) (result siterecovery.ReplicationProtectionContainerMappingsPurgeFuture, err error) + Update(ctx context.Context, fabricName string, protectionContainerName string, mappingName string, updateInput siterecovery.UpdateProtectionContainerMappingInput) (result siterecovery.ReplicationProtectionContainerMappingsUpdateFuture, err error) +} + +var _ ReplicationProtectionContainerMappingsClientAPI = (*siterecovery.ReplicationProtectionContainerMappingsClient)(nil) + +// ReplicationProtectionIntentsClientAPI contains the set of methods on the ReplicationProtectionIntentsClient type. +type ReplicationProtectionIntentsClientAPI interface { + Create(ctx context.Context, intentObjectName string, input siterecovery.CreateProtectionIntentInput) (result siterecovery.ReplicationProtectionIntent, err error) + Get(ctx context.Context, intentObjectName string) (result siterecovery.ReplicationProtectionIntent, err error) + List(ctx context.Context) (result siterecovery.ReplicationProtectionIntentCollectionPage, err error) + ListComplete(ctx context.Context) (result siterecovery.ReplicationProtectionIntentCollectionIterator, err error) +} + +var _ ReplicationProtectionIntentsClientAPI = (*siterecovery.ReplicationProtectionIntentsClient)(nil) + +// ReplicationRecoveryServicesProvidersClientAPI contains the set of methods on the ReplicationRecoveryServicesProvidersClient type. +type ReplicationRecoveryServicesProvidersClientAPI interface { + Create(ctx context.Context, fabricName string, providerName string, addProviderInput siterecovery.AddRecoveryServicesProviderInput) (result siterecovery.ReplicationRecoveryServicesProvidersCreateFuture, err error) + Delete(ctx context.Context, fabricName string, providerName string) (result siterecovery.ReplicationRecoveryServicesProvidersDeleteFuture, err error) + Get(ctx context.Context, fabricName string, providerName string) (result siterecovery.RecoveryServicesProvider, err error) + List(ctx context.Context) (result siterecovery.RecoveryServicesProviderCollectionPage, err error) + ListComplete(ctx context.Context) (result siterecovery.RecoveryServicesProviderCollectionIterator, err error) + ListByReplicationFabrics(ctx context.Context, fabricName string) (result siterecovery.RecoveryServicesProviderCollectionPage, err error) + ListByReplicationFabricsComplete(ctx context.Context, fabricName string) (result siterecovery.RecoveryServicesProviderCollectionIterator, err error) + Purge(ctx context.Context, fabricName string, providerName string) (result siterecovery.ReplicationRecoveryServicesProvidersPurgeFuture, err error) + RefreshProvider(ctx context.Context, fabricName string, providerName string) (result siterecovery.ReplicationRecoveryServicesProvidersRefreshProviderFuture, err error) +} + +var _ ReplicationRecoveryServicesProvidersClientAPI = (*siterecovery.ReplicationRecoveryServicesProvidersClient)(nil) + +// ReplicationStorageClassificationsClientAPI contains the set of methods on the ReplicationStorageClassificationsClient type. +type ReplicationStorageClassificationsClientAPI interface { + Get(ctx context.Context, fabricName string, storageClassificationName string) (result siterecovery.StorageClassification, err error) + List(ctx context.Context) (result siterecovery.StorageClassificationCollectionPage, err error) + ListComplete(ctx context.Context) (result siterecovery.StorageClassificationCollectionIterator, err error) + ListByReplicationFabrics(ctx context.Context, fabricName string) (result siterecovery.StorageClassificationCollectionPage, err error) + ListByReplicationFabricsComplete(ctx context.Context, fabricName string) (result siterecovery.StorageClassificationCollectionIterator, err error) +} + +var _ ReplicationStorageClassificationsClientAPI = (*siterecovery.ReplicationStorageClassificationsClient)(nil) + +// ReplicationStorageClassificationMappingsClientAPI contains the set of methods on the ReplicationStorageClassificationMappingsClient type. +type ReplicationStorageClassificationMappingsClientAPI interface { + Create(ctx context.Context, fabricName string, storageClassificationName string, storageClassificationMappingName string, pairingInput siterecovery.StorageClassificationMappingInput) (result siterecovery.ReplicationStorageClassificationMappingsCreateFuture, err error) + Delete(ctx context.Context, fabricName string, storageClassificationName string, storageClassificationMappingName string) (result siterecovery.ReplicationStorageClassificationMappingsDeleteFuture, err error) + Get(ctx context.Context, fabricName string, storageClassificationName string, storageClassificationMappingName string) (result siterecovery.StorageClassificationMapping, err error) + List(ctx context.Context) (result siterecovery.StorageClassificationMappingCollectionPage, err error) + ListComplete(ctx context.Context) (result siterecovery.StorageClassificationMappingCollectionIterator, err error) + ListByReplicationStorageClassifications(ctx context.Context, fabricName string, storageClassificationName string) (result siterecovery.StorageClassificationMappingCollectionPage, err error) + ListByReplicationStorageClassificationsComplete(ctx context.Context, fabricName string, storageClassificationName string) (result siterecovery.StorageClassificationMappingCollectionIterator, err error) +} + +var _ ReplicationStorageClassificationMappingsClientAPI = (*siterecovery.ReplicationStorageClassificationMappingsClient)(nil) + +// ReplicationvCentersClientAPI contains the set of methods on the ReplicationvCentersClient type. +type ReplicationvCentersClientAPI interface { + Create(ctx context.Context, fabricName string, vCenterName string, addVCenterRequest siterecovery.AddVCenterRequest) (result siterecovery.ReplicationvCentersCreateFuture, err error) + Delete(ctx context.Context, fabricName string, vCenterName string) (result siterecovery.ReplicationvCentersDeleteFuture, err error) + Get(ctx context.Context, fabricName string, vCenterName string) (result siterecovery.VCenter, err error) + List(ctx context.Context) (result siterecovery.VCenterCollectionPage, err error) + ListComplete(ctx context.Context) (result siterecovery.VCenterCollectionIterator, err error) + ListByReplicationFabrics(ctx context.Context, fabricName string) (result siterecovery.VCenterCollectionPage, err error) + ListByReplicationFabricsComplete(ctx context.Context, fabricName string) (result siterecovery.VCenterCollectionIterator, err error) + Update(ctx context.Context, fabricName string, vCenterName string, updateVCenterRequest siterecovery.UpdateVCenterRequest) (result siterecovery.ReplicationvCentersUpdateFuture, err error) +} + +var _ ReplicationvCentersClientAPI = (*siterecovery.ReplicationvCentersClient)(nil) + +// ReplicationJobsClientAPI contains the set of methods on the ReplicationJobsClient type. +type ReplicationJobsClientAPI interface { + Cancel(ctx context.Context, jobName string) (result siterecovery.ReplicationJobsCancelFuture, err error) + Export(ctx context.Context, jobQueryParameter siterecovery.JobQueryParameter) (result siterecovery.ReplicationJobsExportFuture, err error) + Get(ctx context.Context, jobName string) (result siterecovery.Job, err error) + List(ctx context.Context, filter string) (result siterecovery.JobCollectionPage, err error) + ListComplete(ctx context.Context, filter string) (result siterecovery.JobCollectionIterator, err error) + Restart(ctx context.Context, jobName string) (result siterecovery.ReplicationJobsRestartFuture, err error) + Resume(ctx context.Context, jobName string, resumeJobParams siterecovery.ResumeJobParams) (result siterecovery.ReplicationJobsResumeFuture, err error) +} + +var _ ReplicationJobsClientAPI = (*siterecovery.ReplicationJobsClient)(nil) + +// ReplicationPoliciesClientAPI contains the set of methods on the ReplicationPoliciesClient type. +type ReplicationPoliciesClientAPI interface { + Create(ctx context.Context, policyName string, input siterecovery.CreatePolicyInput) (result siterecovery.ReplicationPoliciesCreateFuture, err error) + Delete(ctx context.Context, policyName string) (result siterecovery.ReplicationPoliciesDeleteFuture, err error) + Get(ctx context.Context, policyName string) (result siterecovery.Policy, err error) + List(ctx context.Context) (result siterecovery.PolicyCollectionPage, err error) + ListComplete(ctx context.Context) (result siterecovery.PolicyCollectionIterator, err error) + Update(ctx context.Context, policyName string, input siterecovery.UpdatePolicyInput) (result siterecovery.ReplicationPoliciesUpdateFuture, err error) +} + +var _ ReplicationPoliciesClientAPI = (*siterecovery.ReplicationPoliciesClient)(nil) + +// ReplicationRecoveryPlansClientAPI contains the set of methods on the ReplicationRecoveryPlansClient type. +type ReplicationRecoveryPlansClientAPI interface { + Create(ctx context.Context, recoveryPlanName string, input siterecovery.CreateRecoveryPlanInput) (result siterecovery.ReplicationRecoveryPlansCreateFuture, err error) + Delete(ctx context.Context, recoveryPlanName string) (result siterecovery.ReplicationRecoveryPlansDeleteFuture, err error) + FailoverCommit(ctx context.Context, recoveryPlanName string) (result siterecovery.ReplicationRecoveryPlansFailoverCommitFuture, err error) + Get(ctx context.Context, recoveryPlanName string) (result siterecovery.RecoveryPlan, err error) + List(ctx context.Context) (result siterecovery.RecoveryPlanCollectionPage, err error) + ListComplete(ctx context.Context) (result siterecovery.RecoveryPlanCollectionIterator, err error) + PlannedFailover(ctx context.Context, recoveryPlanName string, input siterecovery.RecoveryPlanPlannedFailoverInput) (result siterecovery.ReplicationRecoveryPlansPlannedFailoverFuture, err error) + Reprotect(ctx context.Context, recoveryPlanName string) (result siterecovery.ReplicationRecoveryPlansReprotectFuture, err error) + TestFailover(ctx context.Context, recoveryPlanName string, input siterecovery.RecoveryPlanTestFailoverInput) (result siterecovery.ReplicationRecoveryPlansTestFailoverFuture, err error) + TestFailoverCleanup(ctx context.Context, recoveryPlanName string, input siterecovery.RecoveryPlanTestFailoverCleanupInput) (result siterecovery.ReplicationRecoveryPlansTestFailoverCleanupFuture, err error) + UnplannedFailover(ctx context.Context, recoveryPlanName string, input siterecovery.RecoveryPlanUnplannedFailoverInput) (result siterecovery.ReplicationRecoveryPlansUnplannedFailoverFuture, err error) + Update(ctx context.Context, recoveryPlanName string, input siterecovery.UpdateRecoveryPlanInput) (result siterecovery.ReplicationRecoveryPlansUpdateFuture, err error) +} + +var _ ReplicationRecoveryPlansClientAPI = (*siterecovery.ReplicationRecoveryPlansClient)(nil) + +// SupportedOperatingSystemsClientAPI contains the set of methods on the SupportedOperatingSystemsClient type. +type SupportedOperatingSystemsClientAPI interface { + Get(ctx context.Context) (result siterecovery.SupportedOperatingSystems, err error) +} + +var _ SupportedOperatingSystemsClientAPI = (*siterecovery.SupportedOperatingSystemsClient)(nil) + +// ReplicationVaultHealthClientAPI contains the set of methods on the ReplicationVaultHealthClient type. +type ReplicationVaultHealthClientAPI interface { + Get(ctx context.Context) (result siterecovery.VaultHealthDetails, err error) + Refresh(ctx context.Context) (result siterecovery.ReplicationVaultHealthRefreshFuture, err error) +} + +var _ ReplicationVaultHealthClientAPI = (*siterecovery.ReplicationVaultHealthClient)(nil) + +// ReplicationVaultSettingClientAPI contains the set of methods on the ReplicationVaultSettingClient type. +type ReplicationVaultSettingClientAPI interface { + Create(ctx context.Context, vaultSettingName string, input siterecovery.VaultSettingCreationInput) (result siterecovery.VaultSetting, err error) + Get(ctx context.Context, vaultSettingName string) (result siterecovery.VaultSetting, err error) + List(ctx context.Context) (result siterecovery.VaultSettingCollectionPage, err error) + ListComplete(ctx context.Context) (result siterecovery.VaultSettingCollectionIterator, err error) +} + +var _ ReplicationVaultSettingClientAPI = (*siterecovery.ReplicationVaultSettingClient)(nil) diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/supportedoperatingsystems.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/supportedoperatingsystems.go new file mode 100644 index 000000000000..2bd42ad0b004 --- /dev/null +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/supportedoperatingsystems.go @@ -0,0 +1,116 @@ +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" +) + +// SupportedOperatingSystemsClient is the client for the SupportedOperatingSystems methods of the Siterecovery service. +type SupportedOperatingSystemsClient struct { + BaseClient +} + +// NewSupportedOperatingSystemsClient creates an instance of the SupportedOperatingSystemsClient client. +func NewSupportedOperatingSystemsClient(subscriptionID string, resourceGroupName string, resourceName string) SupportedOperatingSystemsClient { + return NewSupportedOperatingSystemsClientWithBaseURI(DefaultBaseURI, subscriptionID, resourceGroupName, resourceName) +} + +// NewSupportedOperatingSystemsClientWithBaseURI creates an instance of the SupportedOperatingSystemsClient client +// using a custom endpoint. Use this when interacting with an Azure cloud that uses a non-standard base URI (sovereign +// clouds, Azure stack). +func NewSupportedOperatingSystemsClientWithBaseURI(baseURI string, subscriptionID string, resourceGroupName string, resourceName string) SupportedOperatingSystemsClient { + return SupportedOperatingSystemsClient{NewWithBaseURI(baseURI, subscriptionID, resourceGroupName, resourceName)} +} + +// Get sends the get request. +func (client SupportedOperatingSystemsClient) Get(ctx context.Context) (result SupportedOperatingSystems, err error) { + if tracing.IsEnabled() { + ctx = tracing.StartSpan(ctx, fqdn+"/SupportedOperatingSystemsClient.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) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.SupportedOperatingSystemsClient", "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.SupportedOperatingSystemsClient", "Get", resp, "Failure sending request") + return + } + + result, err = client.GetResponder(resp) + if err != nil { + err = autorest.NewErrorWithError(err, "siterecovery.SupportedOperatingSystemsClient", "Get", resp, "Failure responding to request") + return + } + + return +} + +// GetPreparer prepares the Get request. +func (client SupportedOperatingSystemsClient) GetPreparer(ctx context.Context) (*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-07-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}/replicationSupportedOperatingSystems", 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 SupportedOperatingSystemsClient) GetSender(req *http.Request) (*http.Response, error) { + return client.Send(req, azure.DoRetryWithRegistration(client.Client)) +} + +// GetResponder handles the response to the Get request. The method always +// closes the http.Response Body. +func (client SupportedOperatingSystemsClient) GetResponder(resp *http.Response) (result SupportedOperatingSystems, err error) { + err = autorest.Respond( + resp, + azure.WithErrorUnlessStatusCode(http.StatusOK), + autorest.ByUnmarshallingJSON(&result), + autorest.ByClosing()) + result.Response = autorest.Response{Response: resp} + return +} diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/targetcomputesizes.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/targetcomputesizes.go similarity index 99% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/targetcomputesizes.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/targetcomputesizes.go index d4726e5584c1..b37fde133503 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/targetcomputesizes.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/targetcomputesizes.go @@ -95,7 +95,7 @@ func (client TargetComputeSizesClient) ListByReplicationProtectedItemsPreparer(c "subscriptionId": autorest.Encode("path", client.SubscriptionID), } - const APIVersion = "2018-01-10" + const APIVersion = "2018-07-10" queryParameters := map[string]interface{}{ "api-version": APIVersion, } diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/version.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/version.go similarity index 94% rename from vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/version.go rename to vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/version.go index 0fbfc6d3d88d..ce8351be2b7b 100644 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery/version.go +++ b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/version.go @@ -21,7 +21,7 @@ import "github.com/Azure/azure-sdk-for-go/version" // UserAgent returns the UserAgent string to use when sending http.Requests. func UserAgent() string { - return "Azure-SDK-For-Go/" + Version() + " siterecovery/2018-01-10" + return "Azure-SDK-For-Go/" + Version() + " siterecovery/2018-07-10" } // Version returns the semantic version (see http://semver.org) of the client. diff --git a/vendor/modules.txt b/vendor/modules.txt index db5fe2313fcc..6a1ee18051ec 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -93,7 +93,7 @@ github.com/Azure/azure-sdk-for-go/services/preview/synapse/mgmt/2019-06-01-previ github.com/Azure/azure-sdk-for-go/services/privatedns/mgmt/2018-09-01/privatedns github.com/Azure/azure-sdk-for-go/services/provisioningservices/mgmt/2018-01-22/iothub github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2016-06-01/recoveryservices -github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-01-10/siterecovery +github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2019-05-13/backup github.com/Azure/azure-sdk-for-go/services/redis/mgmt/2018-03-01/redis github.com/Azure/azure-sdk-for-go/services/relay/mgmt/2017-04-01/relay From b2f3ff6725fab8cd7c9ff472f1aead26ef01ab37 Mon Sep 17 00:00:00 2001 From: kt Date: Sun, 31 Jan 2021 19:09:54 -0800 Subject: [PATCH 3/4] fix up vendor folder --- .../siterecoveryapi/interfaces.go | 348 ------------------ 1 file changed, 348 deletions(-) delete mode 100644 vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/siterecoveryapi/interfaces.go diff --git a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/siterecoveryapi/interfaces.go b/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/siterecoveryapi/interfaces.go deleted file mode 100644 index ad8c361453c7..000000000000 --- a/vendor/github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery/siterecoveryapi/interfaces.go +++ /dev/null @@ -1,348 +0,0 @@ -package siterecoveryapi - -// Copyright (c) Microsoft and contributors. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// -// See the License for the specific language governing permissions and -// limitations under the License. -// -// Code generated by Microsoft (R) AutoRest Code Generator. -// Changes may cause incorrect behavior and will be lost if the code is regenerated. - -import ( - "context" - "github.com/Azure/azure-sdk-for-go/services/recoveryservices/mgmt/2018-07-10/siterecovery" -) - -// OperationsClientAPI contains the set of methods on the OperationsClient type. -type OperationsClientAPI interface { - List(ctx context.Context) (result siterecovery.OperationsDiscoveryCollectionPage, err error) - ListComplete(ctx context.Context) (result siterecovery.OperationsDiscoveryCollectionIterator, err error) -} - -var _ OperationsClientAPI = (*siterecovery.OperationsClient)(nil) - -// ReplicationAlertSettingsClientAPI contains the set of methods on the ReplicationAlertSettingsClient type. -type ReplicationAlertSettingsClientAPI interface { - Create(ctx context.Context, alertSettingName string, request siterecovery.ConfigureAlertRequest) (result siterecovery.Alert, err error) - Get(ctx context.Context, alertSettingName string) (result siterecovery.Alert, err error) - List(ctx context.Context) (result siterecovery.AlertCollectionPage, err error) - ListComplete(ctx context.Context) (result siterecovery.AlertCollectionIterator, err error) -} - -var _ ReplicationAlertSettingsClientAPI = (*siterecovery.ReplicationAlertSettingsClient)(nil) - -// ReplicationEligibilityResultsClientAPI contains the set of methods on the ReplicationEligibilityResultsClient type. -type ReplicationEligibilityResultsClientAPI interface { - Get(ctx context.Context, virtualMachineName string) (result siterecovery.ReplicationEligibilityResults, err error) - List(ctx context.Context, virtualMachineName string) (result siterecovery.ReplicationEligibilityResultsCollection, err error) -} - -var _ ReplicationEligibilityResultsClientAPI = (*siterecovery.ReplicationEligibilityResultsClient)(nil) - -// ReplicationEventsClientAPI contains the set of methods on the ReplicationEventsClient type. -type ReplicationEventsClientAPI interface { - Get(ctx context.Context, eventName string) (result siterecovery.Event, err error) - List(ctx context.Context, filter string) (result siterecovery.EventCollectionPage, err error) - ListComplete(ctx context.Context, filter string) (result siterecovery.EventCollectionIterator, err error) -} - -var _ ReplicationEventsClientAPI = (*siterecovery.ReplicationEventsClient)(nil) - -// ReplicationFabricsClientAPI contains the set of methods on the ReplicationFabricsClient type. -type ReplicationFabricsClientAPI interface { - CheckConsistency(ctx context.Context, fabricName string) (result siterecovery.ReplicationFabricsCheckConsistencyFuture, err error) - Create(ctx context.Context, fabricName string, input siterecovery.FabricCreationInput) (result siterecovery.ReplicationFabricsCreateFuture, err error) - Delete(ctx context.Context, fabricName string) (result siterecovery.ReplicationFabricsDeleteFuture, err error) - Get(ctx context.Context, fabricName string) (result siterecovery.Fabric, err error) - List(ctx context.Context) (result siterecovery.FabricCollectionPage, err error) - ListComplete(ctx context.Context) (result siterecovery.FabricCollectionIterator, err error) - MigrateToAad(ctx context.Context, fabricName string) (result siterecovery.ReplicationFabricsMigrateToAadFuture, err error) - Purge(ctx context.Context, fabricName string) (result siterecovery.ReplicationFabricsPurgeFuture, err error) - ReassociateGateway(ctx context.Context, fabricName string, failoverProcessServerRequest siterecovery.FailoverProcessServerRequest) (result siterecovery.ReplicationFabricsReassociateGatewayFuture, err error) - RenewCertificate(ctx context.Context, fabricName string, renewCertificate siterecovery.RenewCertificateInput) (result siterecovery.ReplicationFabricsRenewCertificateFuture, err error) -} - -var _ ReplicationFabricsClientAPI = (*siterecovery.ReplicationFabricsClient)(nil) - -// ReplicationLogicalNetworksClientAPI contains the set of methods on the ReplicationLogicalNetworksClient type. -type ReplicationLogicalNetworksClientAPI interface { - Get(ctx context.Context, fabricName string, logicalNetworkName string) (result siterecovery.LogicalNetwork, err error) - ListByReplicationFabrics(ctx context.Context, fabricName string) (result siterecovery.LogicalNetworkCollectionPage, err error) - ListByReplicationFabricsComplete(ctx context.Context, fabricName string) (result siterecovery.LogicalNetworkCollectionIterator, err error) -} - -var _ ReplicationLogicalNetworksClientAPI = (*siterecovery.ReplicationLogicalNetworksClient)(nil) - -// ReplicationNetworksClientAPI contains the set of methods on the ReplicationNetworksClient type. -type ReplicationNetworksClientAPI interface { - Get(ctx context.Context, fabricName string, networkName string) (result siterecovery.Network, err error) - List(ctx context.Context) (result siterecovery.NetworkCollectionPage, err error) - ListComplete(ctx context.Context) (result siterecovery.NetworkCollectionIterator, err error) - ListByReplicationFabrics(ctx context.Context, fabricName string) (result siterecovery.NetworkCollectionPage, err error) - ListByReplicationFabricsComplete(ctx context.Context, fabricName string) (result siterecovery.NetworkCollectionIterator, err error) -} - -var _ ReplicationNetworksClientAPI = (*siterecovery.ReplicationNetworksClient)(nil) - -// ReplicationNetworkMappingsClientAPI contains the set of methods on the ReplicationNetworkMappingsClient type. -type ReplicationNetworkMappingsClientAPI interface { - Create(ctx context.Context, fabricName string, networkName string, networkMappingName string, input siterecovery.CreateNetworkMappingInput) (result siterecovery.ReplicationNetworkMappingsCreateFuture, err error) - Delete(ctx context.Context, fabricName string, networkName string, networkMappingName string) (result siterecovery.ReplicationNetworkMappingsDeleteFuture, err error) - Get(ctx context.Context, fabricName string, networkName string, networkMappingName string) (result siterecovery.NetworkMapping, err error) - List(ctx context.Context) (result siterecovery.NetworkMappingCollectionPage, err error) - ListComplete(ctx context.Context) (result siterecovery.NetworkMappingCollectionIterator, err error) - ListByReplicationNetworks(ctx context.Context, fabricName string, networkName string) (result siterecovery.NetworkMappingCollectionPage, err error) - ListByReplicationNetworksComplete(ctx context.Context, fabricName string, networkName string) (result siterecovery.NetworkMappingCollectionIterator, err error) - Update(ctx context.Context, fabricName string, networkName string, networkMappingName string, input siterecovery.UpdateNetworkMappingInput) (result siterecovery.ReplicationNetworkMappingsUpdateFuture, err error) -} - -var _ ReplicationNetworkMappingsClientAPI = (*siterecovery.ReplicationNetworkMappingsClient)(nil) - -// ReplicationProtectionContainersClientAPI contains the set of methods on the ReplicationProtectionContainersClient type. -type ReplicationProtectionContainersClientAPI interface { - Create(ctx context.Context, fabricName string, protectionContainerName string, creationInput siterecovery.CreateProtectionContainerInput) (result siterecovery.ReplicationProtectionContainersCreateFuture, err error) - Delete(ctx context.Context, fabricName string, protectionContainerName string) (result siterecovery.ReplicationProtectionContainersDeleteFuture, err error) - DiscoverProtectableItem(ctx context.Context, fabricName string, protectionContainerName string, discoverProtectableItemRequest siterecovery.DiscoverProtectableItemRequest) (result siterecovery.ReplicationProtectionContainersDiscoverProtectableItemFuture, err error) - Get(ctx context.Context, fabricName string, protectionContainerName string) (result siterecovery.ProtectionContainer, err error) - List(ctx context.Context) (result siterecovery.ProtectionContainerCollectionPage, err error) - ListComplete(ctx context.Context) (result siterecovery.ProtectionContainerCollectionIterator, err error) - ListByReplicationFabrics(ctx context.Context, fabricName string) (result siterecovery.ProtectionContainerCollectionPage, err error) - ListByReplicationFabricsComplete(ctx context.Context, fabricName string) (result siterecovery.ProtectionContainerCollectionIterator, err error) - SwitchProtection(ctx context.Context, fabricName string, protectionContainerName string, switchInput siterecovery.SwitchProtectionInput) (result siterecovery.ReplicationProtectionContainersSwitchProtectionFuture, err error) -} - -var _ ReplicationProtectionContainersClientAPI = (*siterecovery.ReplicationProtectionContainersClient)(nil) - -// ReplicationMigrationItemsClientAPI contains the set of methods on the ReplicationMigrationItemsClient type. -type ReplicationMigrationItemsClientAPI interface { - Create(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, input siterecovery.EnableMigrationInput) (result siterecovery.ReplicationMigrationItemsCreateFuture, err error) - Delete(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, deleteOption string) (result siterecovery.ReplicationMigrationItemsDeleteFuture, err error) - Get(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string) (result siterecovery.MigrationItem, err error) - List(ctx context.Context, skipToken string, filter string) (result siterecovery.MigrationItemCollectionPage, err error) - ListComplete(ctx context.Context, skipToken string, filter string) (result siterecovery.MigrationItemCollectionIterator, err error) - ListByReplicationProtectionContainers(ctx context.Context, fabricName string, protectionContainerName string) (result siterecovery.MigrationItemCollectionPage, err error) - ListByReplicationProtectionContainersComplete(ctx context.Context, fabricName string, protectionContainerName string) (result siterecovery.MigrationItemCollectionIterator, err error) - Migrate(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, migrateInput siterecovery.MigrateInput) (result siterecovery.ReplicationMigrationItemsMigrateFuture, err error) - TestMigrate(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, testMigrateInput siterecovery.TestMigrateInput) (result siterecovery.ReplicationMigrationItemsTestMigrateFuture, err error) - TestMigrateCleanup(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, testMigrateCleanupInput siterecovery.TestMigrateCleanupInput) (result siterecovery.ReplicationMigrationItemsTestMigrateCleanupFuture, err error) - Update(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, input siterecovery.UpdateMigrationItemInput) (result siterecovery.ReplicationMigrationItemsUpdateFuture, err error) -} - -var _ ReplicationMigrationItemsClientAPI = (*siterecovery.ReplicationMigrationItemsClient)(nil) - -// MigrationRecoveryPointsClientAPI contains the set of methods on the MigrationRecoveryPointsClient type. -type MigrationRecoveryPointsClientAPI interface { - Get(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string, migrationRecoveryPointName string) (result siterecovery.MigrationRecoveryPoint, err error) - ListByReplicationMigrationItems(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string) (result siterecovery.MigrationRecoveryPointCollectionPage, err error) - ListByReplicationMigrationItemsComplete(ctx context.Context, fabricName string, protectionContainerName string, migrationItemName string) (result siterecovery.MigrationRecoveryPointCollectionIterator, err error) -} - -var _ MigrationRecoveryPointsClientAPI = (*siterecovery.MigrationRecoveryPointsClient)(nil) - -// ReplicationProtectableItemsClientAPI contains the set of methods on the ReplicationProtectableItemsClient type. -type ReplicationProtectableItemsClientAPI interface { - Get(ctx context.Context, fabricName string, protectionContainerName string, protectableItemName string) (result siterecovery.ProtectableItem, err error) - ListByReplicationProtectionContainers(ctx context.Context, fabricName string, protectionContainerName string, filter string) (result siterecovery.ProtectableItemCollectionPage, err error) - ListByReplicationProtectionContainersComplete(ctx context.Context, fabricName string, protectionContainerName string, filter string) (result siterecovery.ProtectableItemCollectionIterator, err error) -} - -var _ ReplicationProtectableItemsClientAPI = (*siterecovery.ReplicationProtectableItemsClient)(nil) - -// ReplicationProtectedItemsClientAPI contains the set of methods on the ReplicationProtectedItemsClient type. -type ReplicationProtectedItemsClientAPI interface { - AddDisks(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, addDisksInput siterecovery.AddDisksInput) (result siterecovery.ReplicationProtectedItemsAddDisksFuture, err error) - ApplyRecoveryPoint(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, applyRecoveryPointInput siterecovery.ApplyRecoveryPointInput) (result siterecovery.ReplicationProtectedItemsApplyRecoveryPointFuture, err error) - Create(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, input siterecovery.EnableProtectionInput) (result siterecovery.ReplicationProtectedItemsCreateFuture, err error) - Delete(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, disableProtectionInput siterecovery.DisableProtectionInput) (result siterecovery.ReplicationProtectedItemsDeleteFuture, err error) - FailoverCommit(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string) (result siterecovery.ReplicationProtectedItemsFailoverCommitFuture, err error) - Get(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string) (result siterecovery.ReplicationProtectedItem, err error) - List(ctx context.Context, skipToken string, filter string) (result siterecovery.ReplicationProtectedItemCollectionPage, err error) - ListComplete(ctx context.Context, skipToken string, filter string) (result siterecovery.ReplicationProtectedItemCollectionIterator, err error) - ListByReplicationProtectionContainers(ctx context.Context, fabricName string, protectionContainerName string) (result siterecovery.ReplicationProtectedItemCollectionPage, err error) - ListByReplicationProtectionContainersComplete(ctx context.Context, fabricName string, protectionContainerName string) (result siterecovery.ReplicationProtectedItemCollectionIterator, err error) - PlannedFailover(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, failoverInput siterecovery.PlannedFailoverInput) (result siterecovery.ReplicationProtectedItemsPlannedFailoverFuture, err error) - Purge(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string) (result siterecovery.ReplicationProtectedItemsPurgeFuture, err error) - RemoveDisks(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, removeDisksInput siterecovery.RemoveDisksInput) (result siterecovery.ReplicationProtectedItemsRemoveDisksFuture, err error) - RepairReplication(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string) (result siterecovery.ReplicationProtectedItemsRepairReplicationFuture, err error) - Reprotect(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, rrInput siterecovery.ReverseReplicationInput) (result siterecovery.ReplicationProtectedItemsReprotectFuture, err error) - ResolveHealthErrors(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, resolveHealthInput siterecovery.ResolveHealthInput) (result siterecovery.ReplicationProtectedItemsResolveHealthErrorsFuture, err error) - TestFailover(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, failoverInput siterecovery.TestFailoverInput) (result siterecovery.ReplicationProtectedItemsTestFailoverFuture, err error) - TestFailoverCleanup(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, cleanupInput siterecovery.TestFailoverCleanupInput) (result siterecovery.ReplicationProtectedItemsTestFailoverCleanupFuture, err error) - UnplannedFailover(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, failoverInput siterecovery.UnplannedFailoverInput) (result siterecovery.ReplicationProtectedItemsUnplannedFailoverFuture, err error) - Update(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, updateProtectionInput siterecovery.UpdateReplicationProtectedItemInput) (result siterecovery.ReplicationProtectedItemsUpdateFuture, err error) - UpdateMobilityService(ctx context.Context, fabricName string, protectionContainerName string, replicationProtectedItemName string, updateMobilityServiceRequest siterecovery.UpdateMobilityServiceRequest) (result siterecovery.ReplicationProtectedItemsUpdateMobilityServiceFuture, err error) -} - -var _ ReplicationProtectedItemsClientAPI = (*siterecovery.ReplicationProtectedItemsClient)(nil) - -// RecoveryPointsClientAPI contains the set of methods on the RecoveryPointsClient type. -type RecoveryPointsClientAPI interface { - Get(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string, recoveryPointName string) (result siterecovery.RecoveryPoint, err error) - ListByReplicationProtectedItems(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string) (result siterecovery.RecoveryPointCollectionPage, err error) - ListByReplicationProtectedItemsComplete(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string) (result siterecovery.RecoveryPointCollectionIterator, err error) -} - -var _ RecoveryPointsClientAPI = (*siterecovery.RecoveryPointsClient)(nil) - -// TargetComputeSizesClientAPI contains the set of methods on the TargetComputeSizesClient type. -type TargetComputeSizesClientAPI interface { - ListByReplicationProtectedItems(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string) (result siterecovery.TargetComputeSizeCollectionPage, err error) - ListByReplicationProtectedItemsComplete(ctx context.Context, fabricName string, protectionContainerName string, replicatedProtectedItemName string) (result siterecovery.TargetComputeSizeCollectionIterator, err error) -} - -var _ TargetComputeSizesClientAPI = (*siterecovery.TargetComputeSizesClient)(nil) - -// ReplicationProtectionContainerMappingsClientAPI contains the set of methods on the ReplicationProtectionContainerMappingsClient type. -type ReplicationProtectionContainerMappingsClientAPI interface { - Create(ctx context.Context, fabricName string, protectionContainerName string, mappingName string, creationInput siterecovery.CreateProtectionContainerMappingInput) (result siterecovery.ReplicationProtectionContainerMappingsCreateFuture, err error) - Delete(ctx context.Context, fabricName string, protectionContainerName string, mappingName string, removalInput siterecovery.RemoveProtectionContainerMappingInput) (result siterecovery.ReplicationProtectionContainerMappingsDeleteFuture, err error) - Get(ctx context.Context, fabricName string, protectionContainerName string, mappingName string) (result siterecovery.ProtectionContainerMapping, err error) - List(ctx context.Context) (result siterecovery.ProtectionContainerMappingCollectionPage, err error) - ListComplete(ctx context.Context) (result siterecovery.ProtectionContainerMappingCollectionIterator, err error) - ListByReplicationProtectionContainers(ctx context.Context, fabricName string, protectionContainerName string) (result siterecovery.ProtectionContainerMappingCollectionPage, err error) - ListByReplicationProtectionContainersComplete(ctx context.Context, fabricName string, protectionContainerName string) (result siterecovery.ProtectionContainerMappingCollectionIterator, err error) - Purge(ctx context.Context, fabricName string, protectionContainerName string, mappingName string) (result siterecovery.ReplicationProtectionContainerMappingsPurgeFuture, err error) - Update(ctx context.Context, fabricName string, protectionContainerName string, mappingName string, updateInput siterecovery.UpdateProtectionContainerMappingInput) (result siterecovery.ReplicationProtectionContainerMappingsUpdateFuture, err error) -} - -var _ ReplicationProtectionContainerMappingsClientAPI = (*siterecovery.ReplicationProtectionContainerMappingsClient)(nil) - -// ReplicationProtectionIntentsClientAPI contains the set of methods on the ReplicationProtectionIntentsClient type. -type ReplicationProtectionIntentsClientAPI interface { - Create(ctx context.Context, intentObjectName string, input siterecovery.CreateProtectionIntentInput) (result siterecovery.ReplicationProtectionIntent, err error) - Get(ctx context.Context, intentObjectName string) (result siterecovery.ReplicationProtectionIntent, err error) - List(ctx context.Context) (result siterecovery.ReplicationProtectionIntentCollectionPage, err error) - ListComplete(ctx context.Context) (result siterecovery.ReplicationProtectionIntentCollectionIterator, err error) -} - -var _ ReplicationProtectionIntentsClientAPI = (*siterecovery.ReplicationProtectionIntentsClient)(nil) - -// ReplicationRecoveryServicesProvidersClientAPI contains the set of methods on the ReplicationRecoveryServicesProvidersClient type. -type ReplicationRecoveryServicesProvidersClientAPI interface { - Create(ctx context.Context, fabricName string, providerName string, addProviderInput siterecovery.AddRecoveryServicesProviderInput) (result siterecovery.ReplicationRecoveryServicesProvidersCreateFuture, err error) - Delete(ctx context.Context, fabricName string, providerName string) (result siterecovery.ReplicationRecoveryServicesProvidersDeleteFuture, err error) - Get(ctx context.Context, fabricName string, providerName string) (result siterecovery.RecoveryServicesProvider, err error) - List(ctx context.Context) (result siterecovery.RecoveryServicesProviderCollectionPage, err error) - ListComplete(ctx context.Context) (result siterecovery.RecoveryServicesProviderCollectionIterator, err error) - ListByReplicationFabrics(ctx context.Context, fabricName string) (result siterecovery.RecoveryServicesProviderCollectionPage, err error) - ListByReplicationFabricsComplete(ctx context.Context, fabricName string) (result siterecovery.RecoveryServicesProviderCollectionIterator, err error) - Purge(ctx context.Context, fabricName string, providerName string) (result siterecovery.ReplicationRecoveryServicesProvidersPurgeFuture, err error) - RefreshProvider(ctx context.Context, fabricName string, providerName string) (result siterecovery.ReplicationRecoveryServicesProvidersRefreshProviderFuture, err error) -} - -var _ ReplicationRecoveryServicesProvidersClientAPI = (*siterecovery.ReplicationRecoveryServicesProvidersClient)(nil) - -// ReplicationStorageClassificationsClientAPI contains the set of methods on the ReplicationStorageClassificationsClient type. -type ReplicationStorageClassificationsClientAPI interface { - Get(ctx context.Context, fabricName string, storageClassificationName string) (result siterecovery.StorageClassification, err error) - List(ctx context.Context) (result siterecovery.StorageClassificationCollectionPage, err error) - ListComplete(ctx context.Context) (result siterecovery.StorageClassificationCollectionIterator, err error) - ListByReplicationFabrics(ctx context.Context, fabricName string) (result siterecovery.StorageClassificationCollectionPage, err error) - ListByReplicationFabricsComplete(ctx context.Context, fabricName string) (result siterecovery.StorageClassificationCollectionIterator, err error) -} - -var _ ReplicationStorageClassificationsClientAPI = (*siterecovery.ReplicationStorageClassificationsClient)(nil) - -// ReplicationStorageClassificationMappingsClientAPI contains the set of methods on the ReplicationStorageClassificationMappingsClient type. -type ReplicationStorageClassificationMappingsClientAPI interface { - Create(ctx context.Context, fabricName string, storageClassificationName string, storageClassificationMappingName string, pairingInput siterecovery.StorageClassificationMappingInput) (result siterecovery.ReplicationStorageClassificationMappingsCreateFuture, err error) - Delete(ctx context.Context, fabricName string, storageClassificationName string, storageClassificationMappingName string) (result siterecovery.ReplicationStorageClassificationMappingsDeleteFuture, err error) - Get(ctx context.Context, fabricName string, storageClassificationName string, storageClassificationMappingName string) (result siterecovery.StorageClassificationMapping, err error) - List(ctx context.Context) (result siterecovery.StorageClassificationMappingCollectionPage, err error) - ListComplete(ctx context.Context) (result siterecovery.StorageClassificationMappingCollectionIterator, err error) - ListByReplicationStorageClassifications(ctx context.Context, fabricName string, storageClassificationName string) (result siterecovery.StorageClassificationMappingCollectionPage, err error) - ListByReplicationStorageClassificationsComplete(ctx context.Context, fabricName string, storageClassificationName string) (result siterecovery.StorageClassificationMappingCollectionIterator, err error) -} - -var _ ReplicationStorageClassificationMappingsClientAPI = (*siterecovery.ReplicationStorageClassificationMappingsClient)(nil) - -// ReplicationvCentersClientAPI contains the set of methods on the ReplicationvCentersClient type. -type ReplicationvCentersClientAPI interface { - Create(ctx context.Context, fabricName string, vCenterName string, addVCenterRequest siterecovery.AddVCenterRequest) (result siterecovery.ReplicationvCentersCreateFuture, err error) - Delete(ctx context.Context, fabricName string, vCenterName string) (result siterecovery.ReplicationvCentersDeleteFuture, err error) - Get(ctx context.Context, fabricName string, vCenterName string) (result siterecovery.VCenter, err error) - List(ctx context.Context) (result siterecovery.VCenterCollectionPage, err error) - ListComplete(ctx context.Context) (result siterecovery.VCenterCollectionIterator, err error) - ListByReplicationFabrics(ctx context.Context, fabricName string) (result siterecovery.VCenterCollectionPage, err error) - ListByReplicationFabricsComplete(ctx context.Context, fabricName string) (result siterecovery.VCenterCollectionIterator, err error) - Update(ctx context.Context, fabricName string, vCenterName string, updateVCenterRequest siterecovery.UpdateVCenterRequest) (result siterecovery.ReplicationvCentersUpdateFuture, err error) -} - -var _ ReplicationvCentersClientAPI = (*siterecovery.ReplicationvCentersClient)(nil) - -// ReplicationJobsClientAPI contains the set of methods on the ReplicationJobsClient type. -type ReplicationJobsClientAPI interface { - Cancel(ctx context.Context, jobName string) (result siterecovery.ReplicationJobsCancelFuture, err error) - Export(ctx context.Context, jobQueryParameter siterecovery.JobQueryParameter) (result siterecovery.ReplicationJobsExportFuture, err error) - Get(ctx context.Context, jobName string) (result siterecovery.Job, err error) - List(ctx context.Context, filter string) (result siterecovery.JobCollectionPage, err error) - ListComplete(ctx context.Context, filter string) (result siterecovery.JobCollectionIterator, err error) - Restart(ctx context.Context, jobName string) (result siterecovery.ReplicationJobsRestartFuture, err error) - Resume(ctx context.Context, jobName string, resumeJobParams siterecovery.ResumeJobParams) (result siterecovery.ReplicationJobsResumeFuture, err error) -} - -var _ ReplicationJobsClientAPI = (*siterecovery.ReplicationJobsClient)(nil) - -// ReplicationPoliciesClientAPI contains the set of methods on the ReplicationPoliciesClient type. -type ReplicationPoliciesClientAPI interface { - Create(ctx context.Context, policyName string, input siterecovery.CreatePolicyInput) (result siterecovery.ReplicationPoliciesCreateFuture, err error) - Delete(ctx context.Context, policyName string) (result siterecovery.ReplicationPoliciesDeleteFuture, err error) - Get(ctx context.Context, policyName string) (result siterecovery.Policy, err error) - List(ctx context.Context) (result siterecovery.PolicyCollectionPage, err error) - ListComplete(ctx context.Context) (result siterecovery.PolicyCollectionIterator, err error) - Update(ctx context.Context, policyName string, input siterecovery.UpdatePolicyInput) (result siterecovery.ReplicationPoliciesUpdateFuture, err error) -} - -var _ ReplicationPoliciesClientAPI = (*siterecovery.ReplicationPoliciesClient)(nil) - -// ReplicationRecoveryPlansClientAPI contains the set of methods on the ReplicationRecoveryPlansClient type. -type ReplicationRecoveryPlansClientAPI interface { - Create(ctx context.Context, recoveryPlanName string, input siterecovery.CreateRecoveryPlanInput) (result siterecovery.ReplicationRecoveryPlansCreateFuture, err error) - Delete(ctx context.Context, recoveryPlanName string) (result siterecovery.ReplicationRecoveryPlansDeleteFuture, err error) - FailoverCommit(ctx context.Context, recoveryPlanName string) (result siterecovery.ReplicationRecoveryPlansFailoverCommitFuture, err error) - Get(ctx context.Context, recoveryPlanName string) (result siterecovery.RecoveryPlan, err error) - List(ctx context.Context) (result siterecovery.RecoveryPlanCollectionPage, err error) - ListComplete(ctx context.Context) (result siterecovery.RecoveryPlanCollectionIterator, err error) - PlannedFailover(ctx context.Context, recoveryPlanName string, input siterecovery.RecoveryPlanPlannedFailoverInput) (result siterecovery.ReplicationRecoveryPlansPlannedFailoverFuture, err error) - Reprotect(ctx context.Context, recoveryPlanName string) (result siterecovery.ReplicationRecoveryPlansReprotectFuture, err error) - TestFailover(ctx context.Context, recoveryPlanName string, input siterecovery.RecoveryPlanTestFailoverInput) (result siterecovery.ReplicationRecoveryPlansTestFailoverFuture, err error) - TestFailoverCleanup(ctx context.Context, recoveryPlanName string, input siterecovery.RecoveryPlanTestFailoverCleanupInput) (result siterecovery.ReplicationRecoveryPlansTestFailoverCleanupFuture, err error) - UnplannedFailover(ctx context.Context, recoveryPlanName string, input siterecovery.RecoveryPlanUnplannedFailoverInput) (result siterecovery.ReplicationRecoveryPlansUnplannedFailoverFuture, err error) - Update(ctx context.Context, recoveryPlanName string, input siterecovery.UpdateRecoveryPlanInput) (result siterecovery.ReplicationRecoveryPlansUpdateFuture, err error) -} - -var _ ReplicationRecoveryPlansClientAPI = (*siterecovery.ReplicationRecoveryPlansClient)(nil) - -// SupportedOperatingSystemsClientAPI contains the set of methods on the SupportedOperatingSystemsClient type. -type SupportedOperatingSystemsClientAPI interface { - Get(ctx context.Context) (result siterecovery.SupportedOperatingSystems, err error) -} - -var _ SupportedOperatingSystemsClientAPI = (*siterecovery.SupportedOperatingSystemsClient)(nil) - -// ReplicationVaultHealthClientAPI contains the set of methods on the ReplicationVaultHealthClient type. -type ReplicationVaultHealthClientAPI interface { - Get(ctx context.Context) (result siterecovery.VaultHealthDetails, err error) - Refresh(ctx context.Context) (result siterecovery.ReplicationVaultHealthRefreshFuture, err error) -} - -var _ ReplicationVaultHealthClientAPI = (*siterecovery.ReplicationVaultHealthClient)(nil) - -// ReplicationVaultSettingClientAPI contains the set of methods on the ReplicationVaultSettingClient type. -type ReplicationVaultSettingClientAPI interface { - Create(ctx context.Context, vaultSettingName string, input siterecovery.VaultSettingCreationInput) (result siterecovery.VaultSetting, err error) - Get(ctx context.Context, vaultSettingName string) (result siterecovery.VaultSetting, err error) - List(ctx context.Context) (result siterecovery.VaultSettingCollectionPage, err error) - ListComplete(ctx context.Context) (result siterecovery.VaultSettingCollectionIterator, err error) -} - -var _ ReplicationVaultSettingClientAPI = (*siterecovery.ReplicationVaultSettingClient)(nil) From 60142bc8147d99f5c7fa03c0d3a42741c4c04f78 Mon Sep 17 00:00:00 2001 From: tombuildsstuff Date: Mon, 1 Feb 2021 16:33:56 +0100 Subject: [PATCH 4/4] r/site_recovery_fabric: handling a 404 being returned as a 400 This is an API bug tracked in https://github.com/Azure/azure-rest-api-specs/issues/12759 --- .../recoveryservices/site_recovery_fabric_resource.go | 3 ++- azurerm/utils/response.go | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/azurerm/internal/services/recoveryservices/site_recovery_fabric_resource.go b/azurerm/internal/services/recoveryservices/site_recovery_fabric_resource.go index 3503b599361f..3100535cec36 100644 --- a/azurerm/internal/services/recoveryservices/site_recovery_fabric_resource.go +++ b/azurerm/internal/services/recoveryservices/site_recovery_fabric_resource.go @@ -64,7 +64,8 @@ func resourceSiteRecoveryFabricCreate(d *schema.ResourceData, meta interface{}) if d.IsNewResource() { existing, err := client.Get(ctx, name) if err != nil { - if !utils.ResponseWasNotFound(existing.Response) { + // NOTE: Bad Request due to https://github.com/Azure/azure-rest-api-specs/issues/12759 + if !utils.ResponseWasNotFound(existing.Response) || !utils.ResponseWasBadRequest(existing.Response) { return fmt.Errorf("Error checking for presence of existing site recovery fabric %s (vault %s): %+v", name, vaultName, err) } } diff --git a/azurerm/utils/response.go b/azurerm/utils/response.go index 48f1107cb8ab..de2074d8082e 100644 --- a/azurerm/utils/response.go +++ b/azurerm/utils/response.go @@ -11,6 +11,10 @@ func ResponseWasNotFound(resp autorest.Response) bool { return ResponseWasStatusCode(resp, http.StatusNotFound) } +func ResponseWasBadRequest(resp autorest.Response) bool { + return ResponseWasStatusCode(resp, http.StatusBadRequest) +} + func ResponseWasForbidden(resp autorest.Response) bool { return ResponseWasStatusCode(resp, http.StatusForbidden) }