def _build_schema_on_200()

in src/site-recovery/azext_site_recovery/aaz/latest/site_recovery/protected_item/_unplanned_failover.py [0:0]


        def _build_schema_on_200(cls):
            if cls._schema_on_200 is not None:
                return cls._schema_on_200

            cls._schema_on_200 = AAZObjectType()

            _schema_on_200 = cls._schema_on_200
            _schema_on_200.id = AAZStrType(
                flags={"read_only": True},
            )
            _schema_on_200.location = AAZStrType()
            _schema_on_200.name = AAZStrType(
                flags={"read_only": True},
            )
            _schema_on_200.properties = AAZObjectType()
            _schema_on_200.type = AAZStrType(
                flags={"read_only": True},
            )

            properties = cls._schema_on_200.properties
            properties.active_location = AAZStrType(
                serialized_name="activeLocation",
            )
            properties.allowed_operations = AAZListType(
                serialized_name="allowedOperations",
            )
            properties.current_scenario = AAZObjectType(
                serialized_name="currentScenario",
            )
            properties.event_correlation_id = AAZStrType(
                serialized_name="eventCorrelationId",
            )
            properties.failover_health = AAZStrType(
                serialized_name="failoverHealth",
            )
            properties.failover_recovery_point_id = AAZStrType(
                serialized_name="failoverRecoveryPointId",
            )
            properties.friendly_name = AAZStrType(
                serialized_name="friendlyName",
            )
            properties.health_errors = AAZListType(
                serialized_name="healthErrors",
            )
            properties.last_successful_failover_time = AAZStrType(
                serialized_name="lastSuccessfulFailoverTime",
            )
            properties.last_successful_test_failover_time = AAZStrType(
                serialized_name="lastSuccessfulTestFailoverTime",
            )
            properties.policy_friendly_name = AAZStrType(
                serialized_name="policyFriendlyName",
            )
            properties.policy_id = AAZStrType(
                serialized_name="policyId",
            )
            properties.primary_fabric_friendly_name = AAZStrType(
                serialized_name="primaryFabricFriendlyName",
            )
            properties.primary_fabric_provider = AAZStrType(
                serialized_name="primaryFabricProvider",
            )
            properties.primary_protection_container_friendly_name = AAZStrType(
                serialized_name="primaryProtectionContainerFriendlyName",
            )
            properties.protectable_item_id = AAZStrType(
                serialized_name="protectableItemId",
            )
            properties.protected_item_type = AAZStrType(
                serialized_name="protectedItemType",
            )
            properties.protection_state = AAZStrType(
                serialized_name="protectionState",
            )
            properties.protection_state_description = AAZStrType(
                serialized_name="protectionStateDescription",
            )
            properties.provider_specific_details = AAZObjectType(
                serialized_name="providerSpecificDetails",
            )
            properties.recovery_container_id = AAZStrType(
                serialized_name="recoveryContainerId",
            )
            properties.recovery_fabric_friendly_name = AAZStrType(
                serialized_name="recoveryFabricFriendlyName",
            )
            properties.recovery_fabric_id = AAZStrType(
                serialized_name="recoveryFabricId",
            )
            properties.recovery_protection_container_friendly_name = AAZStrType(
                serialized_name="recoveryProtectionContainerFriendlyName",
            )
            properties.recovery_services_provider_id = AAZStrType(
                serialized_name="recoveryServicesProviderId",
            )
            properties.replication_health = AAZStrType(
                serialized_name="replicationHealth",
            )
            properties.switch_provider_state = AAZStrType(
                serialized_name="switchProviderState",
            )
            properties.switch_provider_state_description = AAZStrType(
                serialized_name="switchProviderStateDescription",
            )
            properties.test_failover_state = AAZStrType(
                serialized_name="testFailoverState",
            )
            properties.test_failover_state_description = AAZStrType(
                serialized_name="testFailoverStateDescription",
            )

            allowed_operations = cls._schema_on_200.properties.allowed_operations
            allowed_operations.Element = AAZStrType()

            current_scenario = cls._schema_on_200.properties.current_scenario
            current_scenario.job_id = AAZStrType(
                serialized_name="jobId",
            )
            current_scenario.scenario_name = AAZStrType(
                serialized_name="scenarioName",
            )
            current_scenario.start_time = AAZStrType(
                serialized_name="startTime",
            )

            health_errors = cls._schema_on_200.properties.health_errors
            health_errors.Element = AAZObjectType()
            _UnplannedFailoverHelper._build_schema_health_error_read(health_errors.Element)

            provider_specific_details = cls._schema_on_200.properties.provider_specific_details
            provider_specific_details.instance_type = AAZStrType(
                serialized_name="instanceType",
                flags={"required": True},
            )

            disc_a2_a = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "A2A")
            disc_a2_a.agent_certificate_expiry_date = AAZStrType(
                serialized_name="agentCertificateExpiryDate",
                flags={"read_only": True},
            )
            disc_a2_a.agent_expiry_date = AAZStrType(
                serialized_name="agentExpiryDate",
            )
            disc_a2_a.agent_version = AAZStrType(
                serialized_name="agentVersion",
            )
            disc_a2_a.auto_protection_of_data_disk = AAZStrType(
                serialized_name="autoProtectionOfDataDisk",
            )
            disc_a2_a.fabric_object_id = AAZStrType(
                serialized_name="fabricObjectId",
            )
            disc_a2_a.initial_primary_extended_location = AAZObjectType(
                serialized_name="initialPrimaryExtendedLocation",
            )
            _UnplannedFailoverHelper._build_schema_extended_location_read(disc_a2_a.initial_primary_extended_location)
            disc_a2_a.initial_primary_fabric_location = AAZStrType(
                serialized_name="initialPrimaryFabricLocation",
                flags={"read_only": True},
            )
            disc_a2_a.initial_primary_zone = AAZStrType(
                serialized_name="initialPrimaryZone",
                flags={"read_only": True},
            )
            disc_a2_a.initial_recovery_extended_location = AAZObjectType(
                serialized_name="initialRecoveryExtendedLocation",
            )
            _UnplannedFailoverHelper._build_schema_extended_location_read(disc_a2_a.initial_recovery_extended_location)
            disc_a2_a.initial_recovery_fabric_location = AAZStrType(
                serialized_name="initialRecoveryFabricLocation",
                flags={"read_only": True},
            )
            disc_a2_a.initial_recovery_zone = AAZStrType(
                serialized_name="initialRecoveryZone",
                flags={"read_only": True},
            )
            disc_a2_a.is_replication_agent_certificate_update_required = AAZBoolType(
                serialized_name="isReplicationAgentCertificateUpdateRequired",
            )
            disc_a2_a.is_replication_agent_update_required = AAZBoolType(
                serialized_name="isReplicationAgentUpdateRequired",
            )
            disc_a2_a.last_heartbeat = AAZStrType(
                serialized_name="lastHeartbeat",
            )
            disc_a2_a.last_rpo_calculated_time = AAZStrType(
                serialized_name="lastRpoCalculatedTime",
            )
            disc_a2_a.lifecycle_id = AAZStrType(
                serialized_name="lifecycleId",
            )
            disc_a2_a.management_id = AAZStrType(
                serialized_name="managementId",
            )
            disc_a2_a.monitoring_job_type = AAZStrType(
                serialized_name="monitoringJobType",
            )
            disc_a2_a.monitoring_percentage_completion = AAZIntType(
                serialized_name="monitoringPercentageCompletion",
            )
            disc_a2_a.multi_vm_group_create_option = AAZStrType(
                serialized_name="multiVmGroupCreateOption",
            )
            disc_a2_a.multi_vm_group_id = AAZStrType(
                serialized_name="multiVmGroupId",
            )
            disc_a2_a.multi_vm_group_name = AAZStrType(
                serialized_name="multiVmGroupName",
            )
            disc_a2_a.os_type = AAZStrType(
                serialized_name="osType",
            )
            disc_a2_a.primary_availability_zone = AAZStrType(
                serialized_name="primaryAvailabilityZone",
            )
            disc_a2_a.primary_extended_location = AAZObjectType(
                serialized_name="primaryExtendedLocation",
            )
            _UnplannedFailoverHelper._build_schema_extended_location_read(disc_a2_a.primary_extended_location)
            disc_a2_a.primary_fabric_location = AAZStrType(
                serialized_name="primaryFabricLocation",
            )
            disc_a2_a.protected_disks = AAZListType(
                serialized_name="protectedDisks",
            )
            disc_a2_a.protected_managed_disks = AAZListType(
                serialized_name="protectedManagedDisks",
            )
            disc_a2_a.recovery_availability_set = AAZStrType(
                serialized_name="recoveryAvailabilitySet",
            )
            disc_a2_a.recovery_availability_zone = AAZStrType(
                serialized_name="recoveryAvailabilityZone",
            )
            disc_a2_a.recovery_azure_generation = AAZStrType(
                serialized_name="recoveryAzureGeneration",
                flags={"read_only": True},
            )
            disc_a2_a.recovery_azure_resource_group_id = AAZStrType(
                serialized_name="recoveryAzureResourceGroupId",
            )
            disc_a2_a.recovery_azure_vm_name = AAZStrType(
                serialized_name="recoveryAzureVMName",
            )
            disc_a2_a.recovery_azure_vm_size = AAZStrType(
                serialized_name="recoveryAzureVMSize",
            )
            disc_a2_a.recovery_boot_diag_storage_account_id = AAZStrType(
                serialized_name="recoveryBootDiagStorageAccountId",
            )
            disc_a2_a.recovery_capacity_reservation_group_id = AAZStrType(
                serialized_name="recoveryCapacityReservationGroupId",
            )
            disc_a2_a.recovery_cloud_service = AAZStrType(
                serialized_name="recoveryCloudService",
            )
            disc_a2_a.recovery_extended_location = AAZObjectType(
                serialized_name="recoveryExtendedLocation",
            )
            _UnplannedFailoverHelper._build_schema_extended_location_read(disc_a2_a.recovery_extended_location)
            disc_a2_a.recovery_fabric_location = AAZStrType(
                serialized_name="recoveryFabricLocation",
            )
            disc_a2_a.recovery_fabric_object_id = AAZStrType(
                serialized_name="recoveryFabricObjectId",
            )
            disc_a2_a.recovery_proximity_placement_group_id = AAZStrType(
                serialized_name="recoveryProximityPlacementGroupId",
            )
            disc_a2_a.recovery_virtual_machine_scale_set_id = AAZStrType(
                serialized_name="recoveryVirtualMachineScaleSetId",
            )
            disc_a2_a.rpo_in_seconds = AAZIntType(
                serialized_name="rpoInSeconds",
            )
            disc_a2_a.selected_recovery_azure_network_id = AAZStrType(
                serialized_name="selectedRecoveryAzureNetworkId",
            )
            disc_a2_a.selected_tfo_azure_network_id = AAZStrType(
                serialized_name="selectedTfoAzureNetworkId",
            )
            disc_a2_a.test_failover_recovery_fabric_object_id = AAZStrType(
                serialized_name="testFailoverRecoveryFabricObjectId",
            )
            disc_a2_a.tfo_azure_vm_name = AAZStrType(
                serialized_name="tfoAzureVMName",
            )
            disc_a2_a.unprotected_disks = AAZListType(
                serialized_name="unprotectedDisks",
            )
            disc_a2_a.vm_encryption_type = AAZStrType(
                serialized_name="vmEncryptionType",
                flags={"read_only": True},
            )
            disc_a2_a.vm_nics = AAZListType(
                serialized_name="vmNics",
            )
            disc_a2_a.vm_protection_state = AAZStrType(
                serialized_name="vmProtectionState",
            )
            disc_a2_a.vm_protection_state_description = AAZStrType(
                serialized_name="vmProtectionStateDescription",
            )
            disc_a2_a.vm_synced_config_details = AAZObjectType(
                serialized_name="vmSyncedConfigDetails",
            )

            protected_disks = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "A2A").protected_disks
            protected_disks.Element = AAZObjectType()

            _element = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "A2A").protected_disks.Element
            _element.allowed_disk_level_operation = AAZListType(
                serialized_name="allowedDiskLevelOperation",
            )
            _element.data_pending_at_source_agent_in_mb = AAZFloatType(
                serialized_name="dataPendingAtSourceAgentInMB",
            )
            _element.data_pending_in_staging_storage_account_in_mb = AAZFloatType(
                serialized_name="dataPendingInStagingStorageAccountInMB",
            )
            _element.dek_key_vault_arm_id = AAZStrType(
                serialized_name="dekKeyVaultArmId",
            )
            _element.disk_capacity_in_bytes = AAZIntType(
                serialized_name="diskCapacityInBytes",
            )
            _element.disk_name = AAZStrType(
                serialized_name="diskName",
            )
            _element.disk_state = AAZStrType(
                serialized_name="diskState",
            )
            _element.disk_type = AAZStrType(
                serialized_name="diskType",
            )
            _element.disk_uri = AAZStrType(
                serialized_name="diskUri",
            )
            _element.failover_disk_name = AAZStrType(
                serialized_name="failoverDiskName",
            )
            _element.is_disk_encrypted = AAZBoolType(
                serialized_name="isDiskEncrypted",
            )
            _element.is_disk_key_encrypted = AAZBoolType(
                serialized_name="isDiskKeyEncrypted",
            )
            _element.kek_key_vault_arm_id = AAZStrType(
                serialized_name="kekKeyVaultArmId",
            )
            _element.key_identifier = AAZStrType(
                serialized_name="keyIdentifier",
            )
            _element.monitoring_job_type = AAZStrType(
                serialized_name="monitoringJobType",
            )
            _element.monitoring_percentage_completion = AAZIntType(
                serialized_name="monitoringPercentageCompletion",
            )
            _element.primary_disk_azure_storage_account_id = AAZStrType(
                serialized_name="primaryDiskAzureStorageAccountId",
            )
            _element.primary_staging_azure_storage_account_id = AAZStrType(
                serialized_name="primaryStagingAzureStorageAccountId",
            )
            _element.recovery_azure_storage_account_id = AAZStrType(
                serialized_name="recoveryAzureStorageAccountId",
            )
            _element.recovery_disk_uri = AAZStrType(
                serialized_name="recoveryDiskUri",
            )
            _element.resync_required = AAZBoolType(
                serialized_name="resyncRequired",
            )
            _element.secret_identifier = AAZStrType(
                serialized_name="secretIdentifier",
            )
            _element.tfo_disk_name = AAZStrType(
                serialized_name="tfoDiskName",
            )

            allowed_disk_level_operation = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "A2A").protected_disks.Element.allowed_disk_level_operation
            allowed_disk_level_operation.Element = AAZStrType()

            protected_managed_disks = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "A2A").protected_managed_disks
            protected_managed_disks.Element = AAZObjectType()

            _element = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "A2A").protected_managed_disks.Element
            _element.allowed_disk_level_operation = AAZListType(
                serialized_name="allowedDiskLevelOperation",
            )
            _element.data_pending_at_source_agent_in_mb = AAZFloatType(
                serialized_name="dataPendingAtSourceAgentInMB",
            )
            _element.data_pending_in_staging_storage_account_in_mb = AAZFloatType(
                serialized_name="dataPendingInStagingStorageAccountInMB",
            )
            _element.dek_key_vault_arm_id = AAZStrType(
                serialized_name="dekKeyVaultArmId",
            )
            _element.disk_capacity_in_bytes = AAZIntType(
                serialized_name="diskCapacityInBytes",
            )
            _element.disk_id = AAZStrType(
                serialized_name="diskId",
            )
            _element.disk_name = AAZStrType(
                serialized_name="diskName",
            )
            _element.disk_state = AAZStrType(
                serialized_name="diskState",
            )
            _element.disk_type = AAZStrType(
                serialized_name="diskType",
            )
            _element.failover_disk_name = AAZStrType(
                serialized_name="failoverDiskName",
            )
            _element.is_disk_encrypted = AAZBoolType(
                serialized_name="isDiskEncrypted",
            )
            _element.is_disk_key_encrypted = AAZBoolType(
                serialized_name="isDiskKeyEncrypted",
            )
            _element.kek_key_vault_arm_id = AAZStrType(
                serialized_name="kekKeyVaultArmId",
            )
            _element.key_identifier = AAZStrType(
                serialized_name="keyIdentifier",
            )
            _element.monitoring_job_type = AAZStrType(
                serialized_name="monitoringJobType",
            )
            _element.monitoring_percentage_completion = AAZIntType(
                serialized_name="monitoringPercentageCompletion",
            )
            _element.primary_disk_encryption_set_id = AAZStrType(
                serialized_name="primaryDiskEncryptionSetId",
            )
            _element.primary_staging_azure_storage_account_id = AAZStrType(
                serialized_name="primaryStagingAzureStorageAccountId",
            )
            _element.recovery_disk_encryption_set_id = AAZStrType(
                serialized_name="recoveryDiskEncryptionSetId",
            )
            _element.recovery_orignal_target_disk_id = AAZStrType(
                serialized_name="recoveryOrignalTargetDiskId",
            )
            _element.recovery_replica_disk_account_type = AAZStrType(
                serialized_name="recoveryReplicaDiskAccountType",
            )
            _element.recovery_replica_disk_id = AAZStrType(
                serialized_name="recoveryReplicaDiskId",
            )
            _element.recovery_resource_group_id = AAZStrType(
                serialized_name="recoveryResourceGroupId",
            )
            _element.recovery_target_disk_account_type = AAZStrType(
                serialized_name="recoveryTargetDiskAccountType",
            )
            _element.recovery_target_disk_id = AAZStrType(
                serialized_name="recoveryTargetDiskId",
            )
            _element.resync_required = AAZBoolType(
                serialized_name="resyncRequired",
            )
            _element.secret_identifier = AAZStrType(
                serialized_name="secretIdentifier",
            )
            _element.tfo_disk_name = AAZStrType(
                serialized_name="tfoDiskName",
            )

            allowed_disk_level_operation = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "A2A").protected_managed_disks.Element.allowed_disk_level_operation
            allowed_disk_level_operation.Element = AAZStrType()

            unprotected_disks = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "A2A").unprotected_disks
            unprotected_disks.Element = AAZObjectType()

            _element = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "A2A").unprotected_disks.Element
            _element.disk_auto_protection_status = AAZStrType(
                serialized_name="diskAutoProtectionStatus",
            )
            _element.disk_lun_id = AAZIntType(
                serialized_name="diskLunId",
            )

            vm_nics = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "A2A").vm_nics
            vm_nics.Element = AAZObjectType()
            _UnplannedFailoverHelper._build_schema_vm_nic_details_read(vm_nics.Element)

            vm_synced_config_details = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "A2A").vm_synced_config_details
            vm_synced_config_details.input_endpoints = AAZListType(
                serialized_name="inputEndpoints",
            )
            vm_synced_config_details.tags = AAZDictType()

            input_endpoints = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "A2A").vm_synced_config_details.input_endpoints
            input_endpoints.Element = AAZObjectType()

            _element = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "A2A").vm_synced_config_details.input_endpoints.Element
            _element.endpoint_name = AAZStrType(
                serialized_name="endpointName",
            )
            _element.private_port = AAZIntType(
                serialized_name="privatePort",
            )
            _element.protocol = AAZStrType()
            _element.public_port = AAZIntType(
                serialized_name="publicPort",
            )

            tags = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "A2A").vm_synced_config_details.tags
            tags.Element = AAZStrType()

            disc_a2_a_cross_cluster_migration = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "A2ACrossClusterMigration")
            disc_a2_a_cross_cluster_migration.fabric_object_id = AAZStrType(
                serialized_name="fabricObjectId",
            )
            disc_a2_a_cross_cluster_migration.lifecycle_id = AAZStrType(
                serialized_name="lifecycleId",
            )
            disc_a2_a_cross_cluster_migration.os_type = AAZStrType(
                serialized_name="osType",
            )
            disc_a2_a_cross_cluster_migration.primary_fabric_location = AAZStrType(
                serialized_name="primaryFabricLocation",
            )
            disc_a2_a_cross_cluster_migration.vm_protection_state = AAZStrType(
                serialized_name="vmProtectionState",
            )
            disc_a2_a_cross_cluster_migration.vm_protection_state_description = AAZStrType(
                serialized_name="vmProtectionStateDescription",
            )

            disc_hyper_v_replica2012 = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "HyperVReplica2012")
            disc_hyper_v_replica2012.initial_replication_details = AAZObjectType(
                serialized_name="initialReplicationDetails",
            )
            _UnplannedFailoverHelper._build_schema_initial_replication_details_read(disc_hyper_v_replica2012.initial_replication_details)
            disc_hyper_v_replica2012.last_replicated_time = AAZStrType(
                serialized_name="lastReplicatedTime",
            )
            disc_hyper_v_replica2012.v_m_disk_details = AAZListType(
                serialized_name="vMDiskDetails",
            )
            disc_hyper_v_replica2012.vm_id = AAZStrType(
                serialized_name="vmId",
            )
            disc_hyper_v_replica2012.vm_nics = AAZListType(
                serialized_name="vmNics",
            )
            disc_hyper_v_replica2012.vm_protection_state = AAZStrType(
                serialized_name="vmProtectionState",
            )
            disc_hyper_v_replica2012.vm_protection_state_description = AAZStrType(
                serialized_name="vmProtectionStateDescription",
            )

            v_m_disk_details = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "HyperVReplica2012").v_m_disk_details
            v_m_disk_details.Element = AAZObjectType()
            _UnplannedFailoverHelper._build_schema_disk_details_read(v_m_disk_details.Element)

            vm_nics = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "HyperVReplica2012").vm_nics
            vm_nics.Element = AAZObjectType()
            _UnplannedFailoverHelper._build_schema_vm_nic_details_read(vm_nics.Element)

            disc_hyper_v_replica2012_r2 = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "HyperVReplica2012R2")
            disc_hyper_v_replica2012_r2.initial_replication_details = AAZObjectType(
                serialized_name="initialReplicationDetails",
            )
            _UnplannedFailoverHelper._build_schema_initial_replication_details_read(disc_hyper_v_replica2012_r2.initial_replication_details)
            disc_hyper_v_replica2012_r2.last_replicated_time = AAZStrType(
                serialized_name="lastReplicatedTime",
            )
            disc_hyper_v_replica2012_r2.v_m_disk_details = AAZListType(
                serialized_name="vMDiskDetails",
            )
            disc_hyper_v_replica2012_r2.vm_id = AAZStrType(
                serialized_name="vmId",
            )
            disc_hyper_v_replica2012_r2.vm_nics = AAZListType(
                serialized_name="vmNics",
            )
            disc_hyper_v_replica2012_r2.vm_protection_state = AAZStrType(
                serialized_name="vmProtectionState",
            )
            disc_hyper_v_replica2012_r2.vm_protection_state_description = AAZStrType(
                serialized_name="vmProtectionStateDescription",
            )

            v_m_disk_details = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "HyperVReplica2012R2").v_m_disk_details
            v_m_disk_details.Element = AAZObjectType()
            _UnplannedFailoverHelper._build_schema_disk_details_read(v_m_disk_details.Element)

            vm_nics = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "HyperVReplica2012R2").vm_nics
            vm_nics.Element = AAZObjectType()
            _UnplannedFailoverHelper._build_schema_vm_nic_details_read(vm_nics.Element)

            disc_hyper_v_replica_azure = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "HyperVReplicaAzure")
            disc_hyper_v_replica_azure.azure_vm_disk_details = AAZListType(
                serialized_name="azureVmDiskDetails",
            )
            disc_hyper_v_replica_azure.enable_rdp_on_target_option = AAZStrType(
                serialized_name="enableRdpOnTargetOption",
            )
            disc_hyper_v_replica_azure.encryption = AAZStrType()
            disc_hyper_v_replica_azure.initial_replication_details = AAZObjectType(
                serialized_name="initialReplicationDetails",
            )
            _UnplannedFailoverHelper._build_schema_initial_replication_details_read(disc_hyper_v_replica_azure.initial_replication_details)
            disc_hyper_v_replica_azure.last_recovery_point_received = AAZStrType(
                serialized_name="lastRecoveryPointReceived",
                flags={"read_only": True},
            )
            disc_hyper_v_replica_azure.last_replicated_time = AAZStrType(
                serialized_name="lastReplicatedTime",
            )
            disc_hyper_v_replica_azure.last_rpo_calculated_time = AAZStrType(
                serialized_name="lastRpoCalculatedTime",
            )
            disc_hyper_v_replica_azure.license_type = AAZStrType(
                serialized_name="licenseType",
            )
            disc_hyper_v_replica_azure.o_s_details = AAZObjectType(
                serialized_name="oSDetails",
            )
            disc_hyper_v_replica_azure.protected_managed_disks = AAZListType(
                serialized_name="protectedManagedDisks",
            )
            disc_hyper_v_replica_azure.recovery_availability_set_id = AAZStrType(
                serialized_name="recoveryAvailabilitySetId",
            )
            disc_hyper_v_replica_azure.recovery_azure_log_storage_account_id = AAZStrType(
                serialized_name="recoveryAzureLogStorageAccountId",
            )
            disc_hyper_v_replica_azure.recovery_azure_resource_group_id = AAZStrType(
                serialized_name="recoveryAzureResourceGroupId",
            )
            disc_hyper_v_replica_azure.recovery_azure_storage_account = AAZStrType(
                serialized_name="recoveryAzureStorageAccount",
            )
            disc_hyper_v_replica_azure.recovery_azure_vm_size = AAZStrType(
                serialized_name="recoveryAzureVMSize",
            )
            disc_hyper_v_replica_azure.recovery_azure_vm_name = AAZStrType(
                serialized_name="recoveryAzureVmName",
            )
            disc_hyper_v_replica_azure.rpo_in_seconds = AAZIntType(
                serialized_name="rpoInSeconds",
            )
            disc_hyper_v_replica_azure.seed_managed_disk_tags = AAZDictType(
                serialized_name="seedManagedDiskTags",
            )
            disc_hyper_v_replica_azure.selected_recovery_azure_network_id = AAZStrType(
                serialized_name="selectedRecoveryAzureNetworkId",
            )
            disc_hyper_v_replica_azure.selected_source_nic_id = AAZStrType(
                serialized_name="selectedSourceNicId",
            )
            disc_hyper_v_replica_azure.source_vm_cpu_count = AAZIntType(
                serialized_name="sourceVmCpuCount",
            )
            disc_hyper_v_replica_azure.source_vm_ram_size_in_mb = AAZIntType(
                serialized_name="sourceVmRamSizeInMB",
            )
            disc_hyper_v_replica_azure.sql_server_license_type = AAZStrType(
                serialized_name="sqlServerLicenseType",
            )
            disc_hyper_v_replica_azure.target_availability_zone = AAZStrType(
                serialized_name="targetAvailabilityZone",
            )
            disc_hyper_v_replica_azure.target_managed_disk_tags = AAZDictType(
                serialized_name="targetManagedDiskTags",
            )
            disc_hyper_v_replica_azure.target_nic_tags = AAZDictType(
                serialized_name="targetNicTags",
            )
            disc_hyper_v_replica_azure.target_proximity_placement_group_id = AAZStrType(
                serialized_name="targetProximityPlacementGroupId",
            )
            disc_hyper_v_replica_azure.target_vm_tags = AAZDictType(
                serialized_name="targetVmTags",
            )
            disc_hyper_v_replica_azure.use_managed_disks = AAZStrType(
                serialized_name="useManagedDisks",
            )
            disc_hyper_v_replica_azure.vm_id = AAZStrType(
                serialized_name="vmId",
            )
            disc_hyper_v_replica_azure.vm_nics = AAZListType(
                serialized_name="vmNics",
            )
            disc_hyper_v_replica_azure.vm_protection_state = AAZStrType(
                serialized_name="vmProtectionState",
            )
            disc_hyper_v_replica_azure.vm_protection_state_description = AAZStrType(
                serialized_name="vmProtectionStateDescription",
            )

            azure_vm_disk_details = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "HyperVReplicaAzure").azure_vm_disk_details
            azure_vm_disk_details.Element = AAZObjectType()
            _UnplannedFailoverHelper._build_schema_azure_vm_disk_details_read(azure_vm_disk_details.Element)

            o_s_details = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "HyperVReplicaAzure").o_s_details
            o_s_details.o_s_major_version = AAZStrType(
                serialized_name="oSMajorVersion",
            )
            o_s_details.o_s_minor_version = AAZStrType(
                serialized_name="oSMinorVersion",
            )
            o_s_details.o_s_version = AAZStrType(
                serialized_name="oSVersion",
            )
            o_s_details.os_edition = AAZStrType(
                serialized_name="osEdition",
            )
            o_s_details.os_type = AAZStrType(
                serialized_name="osType",
            )
            o_s_details.product_type = AAZStrType(
                serialized_name="productType",
            )

            protected_managed_disks = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "HyperVReplicaAzure").protected_managed_disks
            protected_managed_disks.Element = AAZObjectType()

            _element = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "HyperVReplicaAzure").protected_managed_disks.Element
            _element.disk_encryption_set_id = AAZStrType(
                serialized_name="diskEncryptionSetId",
            )
            _element.disk_id = AAZStrType(
                serialized_name="diskId",
            )
            _element.replica_disk_type = AAZStrType(
                serialized_name="replicaDiskType",
            )
            _element.seed_managed_disk_id = AAZStrType(
                serialized_name="seedManagedDiskId",
            )

            seed_managed_disk_tags = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "HyperVReplicaAzure").seed_managed_disk_tags
            seed_managed_disk_tags.Element = AAZStrType()

            target_managed_disk_tags = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "HyperVReplicaAzure").target_managed_disk_tags
            target_managed_disk_tags.Element = AAZStrType()

            target_nic_tags = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "HyperVReplicaAzure").target_nic_tags
            target_nic_tags.Element = AAZStrType()

            target_vm_tags = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "HyperVReplicaAzure").target_vm_tags
            target_vm_tags.Element = AAZStrType()

            vm_nics = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "HyperVReplicaAzure").vm_nics
            vm_nics.Element = AAZObjectType()
            _UnplannedFailoverHelper._build_schema_vm_nic_details_read(vm_nics.Element)

            disc_hyper_v_replica_base_replication_details = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "HyperVReplicaBaseReplicationDetails")
            disc_hyper_v_replica_base_replication_details.initial_replication_details = AAZObjectType(
                serialized_name="initialReplicationDetails",
            )
            _UnplannedFailoverHelper._build_schema_initial_replication_details_read(disc_hyper_v_replica_base_replication_details.initial_replication_details)
            disc_hyper_v_replica_base_replication_details.last_replicated_time = AAZStrType(
                serialized_name="lastReplicatedTime",
            )
            disc_hyper_v_replica_base_replication_details.v_m_disk_details = AAZListType(
                serialized_name="vMDiskDetails",
            )
            disc_hyper_v_replica_base_replication_details.vm_id = AAZStrType(
                serialized_name="vmId",
            )
            disc_hyper_v_replica_base_replication_details.vm_nics = AAZListType(
                serialized_name="vmNics",
            )
            disc_hyper_v_replica_base_replication_details.vm_protection_state = AAZStrType(
                serialized_name="vmProtectionState",
            )
            disc_hyper_v_replica_base_replication_details.vm_protection_state_description = AAZStrType(
                serialized_name="vmProtectionStateDescription",
            )

            v_m_disk_details = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "HyperVReplicaBaseReplicationDetails").v_m_disk_details
            v_m_disk_details.Element = AAZObjectType()
            _UnplannedFailoverHelper._build_schema_disk_details_read(v_m_disk_details.Element)

            vm_nics = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "HyperVReplicaBaseReplicationDetails").vm_nics
            vm_nics.Element = AAZObjectType()
            _UnplannedFailoverHelper._build_schema_vm_nic_details_read(vm_nics.Element)

            disc_in_mage = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMage")
            disc_in_mage.active_site_type = AAZStrType(
                serialized_name="activeSiteType",
            )
            disc_in_mage.agent_details = AAZObjectType(
                serialized_name="agentDetails",
            )
            disc_in_mage.azure_storage_account_id = AAZStrType(
                serialized_name="azureStorageAccountId",
            )
            disc_in_mage.compressed_data_rate_in_mb = AAZFloatType(
                serialized_name="compressedDataRateInMB",
            )
            disc_in_mage.consistency_points = AAZDictType(
                serialized_name="consistencyPoints",
            )
            disc_in_mage.datastores = AAZListType()
            disc_in_mage.discovery_type = AAZStrType(
                serialized_name="discoveryType",
            )
            disc_in_mage.disk_resized = AAZStrType(
                serialized_name="diskResized",
            )
            disc_in_mage.infrastructure_vm_id = AAZStrType(
                serialized_name="infrastructureVmId",
            )
            disc_in_mage.ip_address = AAZStrType(
                serialized_name="ipAddress",
            )
            disc_in_mage.is_additional_stats_available = AAZBoolType(
                serialized_name="isAdditionalStatsAvailable",
            )
            disc_in_mage.last_heartbeat = AAZStrType(
                serialized_name="lastHeartbeat",
            )
            disc_in_mage.last_rpo_calculated_time = AAZStrType(
                serialized_name="lastRpoCalculatedTime",
            )
            disc_in_mage.last_update_received_time = AAZStrType(
                serialized_name="lastUpdateReceivedTime",
            )
            disc_in_mage.master_target_id = AAZStrType(
                serialized_name="masterTargetId",
            )
            disc_in_mage.multi_vm_group_id = AAZStrType(
                serialized_name="multiVmGroupId",
            )
            disc_in_mage.multi_vm_group_name = AAZStrType(
                serialized_name="multiVmGroupName",
            )
            disc_in_mage.multi_vm_sync_status = AAZStrType(
                serialized_name="multiVmSyncStatus",
            )
            disc_in_mage.os_details = AAZObjectType(
                serialized_name="osDetails",
            )
            disc_in_mage.os_version = AAZStrType(
                serialized_name="osVersion",
            )
            disc_in_mage.process_server_id = AAZStrType(
                serialized_name="processServerId",
            )
            disc_in_mage.protected_disks = AAZListType(
                serialized_name="protectedDisks",
            )
            disc_in_mage.protection_stage = AAZStrType(
                serialized_name="protectionStage",
            )
            disc_in_mage.reboot_after_update_status = AAZStrType(
                serialized_name="rebootAfterUpdateStatus",
            )
            disc_in_mage.replica_id = AAZStrType(
                serialized_name="replicaId",
            )
            disc_in_mage.resync_details = AAZObjectType(
                serialized_name="resyncDetails",
            )
            _UnplannedFailoverHelper._build_schema_initial_replication_details_read(disc_in_mage.resync_details)
            disc_in_mage.retention_window_end = AAZStrType(
                serialized_name="retentionWindowEnd",
            )
            disc_in_mage.retention_window_start = AAZStrType(
                serialized_name="retentionWindowStart",
            )
            disc_in_mage.rpo_in_seconds = AAZIntType(
                serialized_name="rpoInSeconds",
            )
            disc_in_mage.source_vm_cpu_count = AAZIntType(
                serialized_name="sourceVmCpuCount",
            )
            disc_in_mage.source_vm_ram_size_in_mb = AAZIntType(
                serialized_name="sourceVmRamSizeInMB",
            )
            disc_in_mage.total_data_transferred = AAZIntType(
                serialized_name="totalDataTransferred",
            )
            disc_in_mage.total_progress_health = AAZStrType(
                serialized_name="totalProgressHealth",
            )
            disc_in_mage.uncompressed_data_rate_in_mb = AAZFloatType(
                serialized_name="uncompressedDataRateInMB",
            )
            disc_in_mage.v_center_infrastructure_id = AAZStrType(
                serialized_name="vCenterInfrastructureId",
            )
            disc_in_mage.validation_errors = AAZListType(
                serialized_name="validationErrors",
            )
            disc_in_mage.vm_id = AAZStrType(
                serialized_name="vmId",
            )
            disc_in_mage.vm_nics = AAZListType(
                serialized_name="vmNics",
            )
            disc_in_mage.vm_protection_state = AAZStrType(
                serialized_name="vmProtectionState",
            )
            disc_in_mage.vm_protection_state_description = AAZStrType(
                serialized_name="vmProtectionStateDescription",
            )

            agent_details = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMage").agent_details
            agent_details.agent_expiry_date = AAZStrType(
                serialized_name="agentExpiryDate",
            )
            agent_details.agent_update_status = AAZStrType(
                serialized_name="agentUpdateStatus",
            )
            agent_details.agent_version = AAZStrType(
                serialized_name="agentVersion",
            )
            agent_details.post_update_reboot_status = AAZStrType(
                serialized_name="postUpdateRebootStatus",
            )

            consistency_points = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMage").consistency_points
            consistency_points.Element = AAZStrType()

            datastores = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMage").datastores
            datastores.Element = AAZStrType()

            os_details = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMage").os_details
            os_details.os_type = AAZStrType(
                serialized_name="osType",
            )
            os_details.os_vhd_id = AAZStrType(
                serialized_name="osVhdId",
            )
            os_details.vhd_name = AAZStrType(
                serialized_name="vhdName",
            )

            protected_disks = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMage").protected_disks
            protected_disks.Element = AAZObjectType()

            _element = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMage").protected_disks.Element
            _element.disk_capacity_in_bytes = AAZIntType(
                serialized_name="diskCapacityInBytes",
            )
            _element.disk_id = AAZStrType(
                serialized_name="diskId",
            )
            _element.disk_name = AAZStrType(
                serialized_name="diskName",
            )
            _element.disk_resized = AAZStrType(
                serialized_name="diskResized",
            )
            _element.file_system_capacity_in_bytes = AAZIntType(
                serialized_name="fileSystemCapacityInBytes",
            )
            _element.health_error_code = AAZStrType(
                serialized_name="healthErrorCode",
            )
            _element.last_rpo_calculated_time = AAZStrType(
                serialized_name="lastRpoCalculatedTime",
            )
            _element.progress_health = AAZStrType(
                serialized_name="progressHealth",
            )
            _element.progress_status = AAZStrType(
                serialized_name="progressStatus",
            )
            _element.protection_stage = AAZStrType(
                serialized_name="protectionStage",
            )
            _element.ps_data_in_mb = AAZFloatType(
                serialized_name="psDataInMB",
            )
            _element.resync_duration_in_seconds = AAZIntType(
                serialized_name="resyncDurationInSeconds",
            )
            _element.resync_last15_minutes_transferred_bytes = AAZIntType(
                serialized_name="resyncLast15MinutesTransferredBytes",
            )
            _element.resync_last_data_transfer_time_utc = AAZStrType(
                serialized_name="resyncLastDataTransferTimeUTC",
            )
            _element.resync_processed_bytes = AAZIntType(
                serialized_name="resyncProcessedBytes",
            )
            _element.resync_progress_percentage = AAZIntType(
                serialized_name="resyncProgressPercentage",
            )
            _element.resync_required = AAZStrType(
                serialized_name="resyncRequired",
            )
            _element.resync_start_time = AAZStrType(
                serialized_name="resyncStartTime",
            )
            _element.resync_total_transferred_bytes = AAZIntType(
                serialized_name="resyncTotalTransferredBytes",
            )
            _element.rpo_in_seconds = AAZIntType(
                serialized_name="rpoInSeconds",
            )
            _element.source_data_in_mb = AAZFloatType(
                serialized_name="sourceDataInMB",
            )
            _element.target_data_in_mb = AAZFloatType(
                serialized_name="targetDataInMB",
            )

            validation_errors = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMage").validation_errors
            validation_errors.Element = AAZObjectType()
            _UnplannedFailoverHelper._build_schema_health_error_read(validation_errors.Element)

            vm_nics = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMage").vm_nics
            vm_nics.Element = AAZObjectType()
            _UnplannedFailoverHelper._build_schema_vm_nic_details_read(vm_nics.Element)

            disc_in_mage_azure_v2 = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageAzureV2")
            disc_in_mage_azure_v2.agent_expiry_date = AAZStrType(
                serialized_name="agentExpiryDate",
            )
            disc_in_mage_azure_v2.agent_version = AAZStrType(
                serialized_name="agentVersion",
            )
            disc_in_mage_azure_v2.azure_vm_disk_details = AAZListType(
                serialized_name="azureVMDiskDetails",
            )
            disc_in_mage_azure_v2.azure_vm_generation = AAZStrType(
                serialized_name="azureVmGeneration",
            )
            disc_in_mage_azure_v2.compressed_data_rate_in_mb = AAZFloatType(
                serialized_name="compressedDataRateInMB",
            )
            disc_in_mage_azure_v2.datastores = AAZListType()
            disc_in_mage_azure_v2.discovery_type = AAZStrType(
                serialized_name="discoveryType",
            )
            disc_in_mage_azure_v2.disk_resized = AAZStrType(
                serialized_name="diskResized",
            )
            disc_in_mage_azure_v2.enable_rdp_on_target_option = AAZStrType(
                serialized_name="enableRdpOnTargetOption",
            )
            disc_in_mage_azure_v2.firmware_type = AAZStrType(
                serialized_name="firmwareType",
            )
            disc_in_mage_azure_v2.infrastructure_vm_id = AAZStrType(
                serialized_name="infrastructureVmId",
            )
            disc_in_mage_azure_v2.ip_address = AAZStrType(
                serialized_name="ipAddress",
            )
            disc_in_mage_azure_v2.is_additional_stats_available = AAZBoolType(
                serialized_name="isAdditionalStatsAvailable",
            )
            disc_in_mage_azure_v2.is_agent_update_required = AAZStrType(
                serialized_name="isAgentUpdateRequired",
            )
            disc_in_mage_azure_v2.is_reboot_after_update_required = AAZStrType(
                serialized_name="isRebootAfterUpdateRequired",
            )
            disc_in_mage_azure_v2.last_heartbeat = AAZStrType(
                serialized_name="lastHeartbeat",
            )
            disc_in_mage_azure_v2.last_recovery_point_received = AAZStrType(
                serialized_name="lastRecoveryPointReceived",
                flags={"read_only": True},
            )
            disc_in_mage_azure_v2.last_rpo_calculated_time = AAZStrType(
                serialized_name="lastRpoCalculatedTime",
            )
            disc_in_mage_azure_v2.last_update_received_time = AAZStrType(
                serialized_name="lastUpdateReceivedTime",
            )
            disc_in_mage_azure_v2.license_type = AAZStrType(
                serialized_name="licenseType",
            )
            disc_in_mage_azure_v2.master_target_id = AAZStrType(
                serialized_name="masterTargetId",
            )
            disc_in_mage_azure_v2.multi_vm_group_id = AAZStrType(
                serialized_name="multiVmGroupId",
            )
            disc_in_mage_azure_v2.multi_vm_group_name = AAZStrType(
                serialized_name="multiVmGroupName",
            )
            disc_in_mage_azure_v2.multi_vm_sync_status = AAZStrType(
                serialized_name="multiVmSyncStatus",
            )
            disc_in_mage_azure_v2.os_disk_id = AAZStrType(
                serialized_name="osDiskId",
            )
            disc_in_mage_azure_v2.os_type = AAZStrType(
                serialized_name="osType",
            )
            disc_in_mage_azure_v2.os_version = AAZStrType(
                serialized_name="osVersion",
            )
            disc_in_mage_azure_v2.process_server_id = AAZStrType(
                serialized_name="processServerId",
            )
            disc_in_mage_azure_v2.process_server_name = AAZStrType(
                serialized_name="processServerName",
            )
            disc_in_mage_azure_v2.protected_disks = AAZListType(
                serialized_name="protectedDisks",
            )
            disc_in_mage_azure_v2.protected_managed_disks = AAZListType(
                serialized_name="protectedManagedDisks",
            )
            disc_in_mage_azure_v2.protection_stage = AAZStrType(
                serialized_name="protectionStage",
            )
            disc_in_mage_azure_v2.recovery_availability_set_id = AAZStrType(
                serialized_name="recoveryAvailabilitySetId",
            )
            disc_in_mage_azure_v2.recovery_azure_log_storage_account_id = AAZStrType(
                serialized_name="recoveryAzureLogStorageAccountId",
            )
            disc_in_mage_azure_v2.recovery_azure_resource_group_id = AAZStrType(
                serialized_name="recoveryAzureResourceGroupId",
            )
            disc_in_mage_azure_v2.recovery_azure_storage_account = AAZStrType(
                serialized_name="recoveryAzureStorageAccount",
            )
            disc_in_mage_azure_v2.recovery_azure_vm_name = AAZStrType(
                serialized_name="recoveryAzureVMName",
            )
            disc_in_mage_azure_v2.recovery_azure_vm_size = AAZStrType(
                serialized_name="recoveryAzureVMSize",
            )
            disc_in_mage_azure_v2.replica_id = AAZStrType(
                serialized_name="replicaId",
            )
            disc_in_mage_azure_v2.resync_progress_percentage = AAZIntType(
                serialized_name="resyncProgressPercentage",
            )
            disc_in_mage_azure_v2.rpo_in_seconds = AAZIntType(
                serialized_name="rpoInSeconds",
            )
            disc_in_mage_azure_v2.seed_managed_disk_tags = AAZDictType(
                serialized_name="seedManagedDiskTags",
            )
            disc_in_mage_azure_v2.selected_recovery_azure_network_id = AAZStrType(
                serialized_name="selectedRecoveryAzureNetworkId",
            )
            disc_in_mage_azure_v2.selected_source_nic_id = AAZStrType(
                serialized_name="selectedSourceNicId",
            )
            disc_in_mage_azure_v2.selected_tfo_azure_network_id = AAZStrType(
                serialized_name="selectedTfoAzureNetworkId",
            )
            disc_in_mage_azure_v2.source_vm_cpu_count = AAZIntType(
                serialized_name="sourceVmCpuCount",
            )
            disc_in_mage_azure_v2.source_vm_ram_size_in_mb = AAZIntType(
                serialized_name="sourceVmRamSizeInMB",
            )
            disc_in_mage_azure_v2.sql_server_license_type = AAZStrType(
                serialized_name="sqlServerLicenseType",
            )
            disc_in_mage_azure_v2.switch_provider_blocking_error_details = AAZListType(
                serialized_name="switchProviderBlockingErrorDetails",
            )
            disc_in_mage_azure_v2.switch_provider_details = AAZObjectType(
                serialized_name="switchProviderDetails",
            )
            disc_in_mage_azure_v2.target_availability_zone = AAZStrType(
                serialized_name="targetAvailabilityZone",
            )
            disc_in_mage_azure_v2.target_managed_disk_tags = AAZDictType(
                serialized_name="targetManagedDiskTags",
            )
            disc_in_mage_azure_v2.target_nic_tags = AAZDictType(
                serialized_name="targetNicTags",
            )
            disc_in_mage_azure_v2.target_proximity_placement_group_id = AAZStrType(
                serialized_name="targetProximityPlacementGroupId",
            )
            disc_in_mage_azure_v2.target_vm_id = AAZStrType(
                serialized_name="targetVmId",
            )
            disc_in_mage_azure_v2.target_vm_tags = AAZDictType(
                serialized_name="targetVmTags",
            )
            disc_in_mage_azure_v2.total_data_transferred = AAZIntType(
                serialized_name="totalDataTransferred",
            )
            disc_in_mage_azure_v2.total_progress_health = AAZStrType(
                serialized_name="totalProgressHealth",
            )
            disc_in_mage_azure_v2.uncompressed_data_rate_in_mb = AAZFloatType(
                serialized_name="uncompressedDataRateInMB",
            )
            disc_in_mage_azure_v2.use_managed_disks = AAZStrType(
                serialized_name="useManagedDisks",
            )
            disc_in_mage_azure_v2.v_center_infrastructure_id = AAZStrType(
                serialized_name="vCenterInfrastructureId",
            )
            disc_in_mage_azure_v2.validation_errors = AAZListType(
                serialized_name="validationErrors",
            )
            disc_in_mage_azure_v2.vhd_name = AAZStrType(
                serialized_name="vhdName",
            )
            disc_in_mage_azure_v2.vm_id = AAZStrType(
                serialized_name="vmId",
            )
            disc_in_mage_azure_v2.vm_nics = AAZListType(
                serialized_name="vmNics",
            )
            disc_in_mage_azure_v2.vm_protection_state = AAZStrType(
                serialized_name="vmProtectionState",
            )
            disc_in_mage_azure_v2.vm_protection_state_description = AAZStrType(
                serialized_name="vmProtectionStateDescription",
            )

            azure_vm_disk_details = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageAzureV2").azure_vm_disk_details
            azure_vm_disk_details.Element = AAZObjectType()
            _UnplannedFailoverHelper._build_schema_azure_vm_disk_details_read(azure_vm_disk_details.Element)

            datastores = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageAzureV2").datastores
            datastores.Element = AAZStrType()

            protected_disks = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageAzureV2").protected_disks
            protected_disks.Element = AAZObjectType()

            _element = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageAzureV2").protected_disks.Element
            _element.disk_capacity_in_bytes = AAZIntType(
                serialized_name="diskCapacityInBytes",
            )
            _element.disk_id = AAZStrType(
                serialized_name="diskId",
            )
            _element.disk_name = AAZStrType(
                serialized_name="diskName",
            )
            _element.disk_resized = AAZStrType(
                serialized_name="diskResized",
            )
            _element.file_system_capacity_in_bytes = AAZIntType(
                serialized_name="fileSystemCapacityInBytes",
            )
            _element.health_error_code = AAZStrType(
                serialized_name="healthErrorCode",
            )
            _element.last_rpo_calculated_time = AAZStrType(
                serialized_name="lastRpoCalculatedTime",
            )
            _element.progress_health = AAZStrType(
                serialized_name="progressHealth",
            )
            _element.progress_status = AAZStrType(
                serialized_name="progressStatus",
            )
            _element.protection_stage = AAZStrType(
                serialized_name="protectionStage",
            )
            _element.ps_data_in_mega_bytes = AAZFloatType(
                serialized_name="psDataInMegaBytes",
            )
            _element.resync_duration_in_seconds = AAZIntType(
                serialized_name="resyncDurationInSeconds",
            )
            _element.resync_last15_minutes_transferred_bytes = AAZIntType(
                serialized_name="resyncLast15MinutesTransferredBytes",
            )
            _element.resync_last_data_transfer_time_utc = AAZStrType(
                serialized_name="resyncLastDataTransferTimeUTC",
            )
            _element.resync_processed_bytes = AAZIntType(
                serialized_name="resyncProcessedBytes",
            )
            _element.resync_progress_percentage = AAZIntType(
                serialized_name="resyncProgressPercentage",
            )
            _element.resync_required = AAZStrType(
                serialized_name="resyncRequired",
            )
            _element.resync_start_time = AAZStrType(
                serialized_name="resyncStartTime",
            )
            _element.resync_total_transferred_bytes = AAZIntType(
                serialized_name="resyncTotalTransferredBytes",
            )
            _element.rpo_in_seconds = AAZIntType(
                serialized_name="rpoInSeconds",
            )
            _element.seconds_to_take_switch_provider = AAZIntType(
                serialized_name="secondsToTakeSwitchProvider",
            )
            _element.source_data_in_mega_bytes = AAZFloatType(
                serialized_name="sourceDataInMegaBytes",
            )
            _element.target_data_in_mega_bytes = AAZFloatType(
                serialized_name="targetDataInMegaBytes",
            )

            protected_managed_disks = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageAzureV2").protected_managed_disks
            protected_managed_disks.Element = AAZObjectType()

            _element = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageAzureV2").protected_managed_disks.Element
            _element.disk_encryption_set_id = AAZStrType(
                serialized_name="diskEncryptionSetId",
            )
            _element.disk_id = AAZStrType(
                serialized_name="diskId",
            )
            _element.replica_disk_type = AAZStrType(
                serialized_name="replicaDiskType",
            )
            _element.seed_managed_disk_id = AAZStrType(
                serialized_name="seedManagedDiskId",
            )
            _element.target_disk_name = AAZStrType(
                serialized_name="targetDiskName",
            )

            seed_managed_disk_tags = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageAzureV2").seed_managed_disk_tags
            seed_managed_disk_tags.Element = AAZStrType()

            switch_provider_blocking_error_details = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageAzureV2").switch_provider_blocking_error_details
            switch_provider_blocking_error_details.Element = AAZObjectType()

            _element = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageAzureV2").switch_provider_blocking_error_details.Element
            _element.error_code = AAZStrType(
                serialized_name="errorCode",
                flags={"read_only": True},
            )
            _element.error_message = AAZStrType(
                serialized_name="errorMessage",
                flags={"read_only": True},
            )
            _element.error_message_parameters = AAZDictType(
                serialized_name="errorMessageParameters",
                flags={"read_only": True},
            )
            _element.error_tags = AAZDictType(
                serialized_name="errorTags",
                flags={"read_only": True},
            )
            _element.possible_causes = AAZStrType(
                serialized_name="possibleCauses",
                flags={"read_only": True},
            )
            _element.recommended_action = AAZStrType(
                serialized_name="recommendedAction",
                flags={"read_only": True},
            )

            error_message_parameters = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageAzureV2").switch_provider_blocking_error_details.Element.error_message_parameters
            error_message_parameters.Element = AAZStrType()

            error_tags = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageAzureV2").switch_provider_blocking_error_details.Element.error_tags
            error_tags.Element = AAZStrType()

            switch_provider_details = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageAzureV2").switch_provider_details
            switch_provider_details.target_appliance_id = AAZStrType(
                serialized_name="targetApplianceId",
                flags={"read_only": True},
            )
            switch_provider_details.target_fabric_id = AAZStrType(
                serialized_name="targetFabricId",
                flags={"read_only": True},
            )
            switch_provider_details.target_resource_id = AAZStrType(
                serialized_name="targetResourceId",
                flags={"read_only": True},
            )
            switch_provider_details.target_vault_id = AAZStrType(
                serialized_name="targetVaultId",
                flags={"read_only": True},
            )

            target_managed_disk_tags = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageAzureV2").target_managed_disk_tags
            target_managed_disk_tags.Element = AAZStrType()

            target_nic_tags = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageAzureV2").target_nic_tags
            target_nic_tags.Element = AAZStrType()

            target_vm_tags = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageAzureV2").target_vm_tags
            target_vm_tags.Element = AAZStrType()

            validation_errors = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageAzureV2").validation_errors
            validation_errors.Element = AAZObjectType()
            _UnplannedFailoverHelper._build_schema_health_error_read(validation_errors.Element)

            vm_nics = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageAzureV2").vm_nics
            vm_nics.Element = AAZObjectType()
            _UnplannedFailoverHelper._build_schema_vm_nic_details_read(vm_nics.Element)

            disc_in_mage_rcm = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm")
            disc_in_mage_rcm.agent_upgrade_attempt_to_version = AAZStrType(
                serialized_name="agentUpgradeAttemptToVersion",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.agent_upgrade_blocking_error_details = AAZListType(
                serialized_name="agentUpgradeBlockingErrorDetails",
            )
            disc_in_mage_rcm.agent_upgrade_job_id = AAZStrType(
                serialized_name="agentUpgradeJobId",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.agent_upgrade_state = AAZStrType(
                serialized_name="agentUpgradeState",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.allocated_memory_in_mb = AAZFloatType(
                serialized_name="allocatedMemoryInMB",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.discovered_vm_details = AAZObjectType(
                serialized_name="discoveredVmDetails",
            )
            disc_in_mage_rcm.discovery_type = AAZStrType(
                serialized_name="discoveryType",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.fabric_discovery_machine_id = AAZStrType(
                serialized_name="fabricDiscoveryMachineId",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.failover_recovery_point_id = AAZStrType(
                serialized_name="failoverRecoveryPointId",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.firmware_type = AAZStrType(
                serialized_name="firmwareType",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.initial_replication_processed_bytes = AAZIntType(
                serialized_name="initialReplicationProcessedBytes",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.initial_replication_progress_health = AAZStrType(
                serialized_name="initialReplicationProgressHealth",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.initial_replication_progress_percentage = AAZIntType(
                serialized_name="initialReplicationProgressPercentage",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.initial_replication_transferred_bytes = AAZIntType(
                serialized_name="initialReplicationTransferredBytes",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.internal_identifier = AAZStrType(
                serialized_name="internalIdentifier",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.is_agent_registration_successful_after_failover = AAZBoolType(
                serialized_name="isAgentRegistrationSuccessfulAfterFailover",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.is_last_upgrade_successful = AAZStrType(
                serialized_name="isLastUpgradeSuccessful",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.last_agent_upgrade_error_details = AAZListType(
                serialized_name="lastAgentUpgradeErrorDetails",
            )
            disc_in_mage_rcm.last_agent_upgrade_type = AAZStrType(
                serialized_name="lastAgentUpgradeType",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.last_recovery_point_id = AAZStrType(
                serialized_name="lastRecoveryPointId",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.last_recovery_point_received = AAZStrType(
                serialized_name="lastRecoveryPointReceived",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.last_rpo_calculated_time = AAZStrType(
                serialized_name="lastRpoCalculatedTime",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.last_rpo_in_seconds = AAZIntType(
                serialized_name="lastRpoInSeconds",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.license_type = AAZStrType(
                serialized_name="licenseType",
            )
            disc_in_mage_rcm.mobility_agent_details = AAZObjectType(
                serialized_name="mobilityAgentDetails",
            )
            disc_in_mage_rcm.multi_vm_group_name = AAZStrType(
                serialized_name="multiVmGroupName",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.os_type = AAZStrType(
                serialized_name="osType",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.primary_nic_ip_address = AAZStrType(
                serialized_name="primaryNicIpAddress",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.process_server_id = AAZStrType(
                serialized_name="processServerId",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.process_server_name = AAZStrType(
                serialized_name="processServerName",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.processor_core_count = AAZIntType(
                serialized_name="processorCoreCount",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.protected_disks = AAZListType(
                serialized_name="protectedDisks",
            )
            disc_in_mage_rcm.resync_processed_bytes = AAZIntType(
                serialized_name="resyncProcessedBytes",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.resync_progress_health = AAZStrType(
                serialized_name="resyncProgressHealth",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.resync_progress_percentage = AAZIntType(
                serialized_name="resyncProgressPercentage",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.resync_required = AAZStrType(
                serialized_name="resyncRequired",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.resync_state = AAZStrType(
                serialized_name="resyncState",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.resync_transferred_bytes = AAZIntType(
                serialized_name="resyncTransferredBytes",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.run_as_account_id = AAZStrType(
                serialized_name="runAsAccountId",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.storage_account_id = AAZStrType(
                serialized_name="storageAccountId",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.target_availability_set_id = AAZStrType(
                serialized_name="targetAvailabilitySetId",
            )
            disc_in_mage_rcm.target_availability_zone = AAZStrType(
                serialized_name="targetAvailabilityZone",
            )
            disc_in_mage_rcm.target_boot_diagnostics_storage_account_id = AAZStrType(
                serialized_name="targetBootDiagnosticsStorageAccountId",
            )
            disc_in_mage_rcm.target_generation = AAZStrType(
                serialized_name="targetGeneration",
                flags={"read_only": True},
            )
            disc_in_mage_rcm.target_location = AAZStrType(
                serialized_name="targetLocation",
            )
            disc_in_mage_rcm.target_network_id = AAZStrType(
                serialized_name="targetNetworkId",
            )
            disc_in_mage_rcm.target_proximity_placement_group_id = AAZStrType(
                serialized_name="targetProximityPlacementGroupId",
            )
            disc_in_mage_rcm.target_resource_group_id = AAZStrType(
                serialized_name="targetResourceGroupId",
            )
            disc_in_mage_rcm.target_vm_name = AAZStrType(
                serialized_name="targetVmName",
            )
            disc_in_mage_rcm.target_vm_size = AAZStrType(
                serialized_name="targetVmSize",
            )
            disc_in_mage_rcm.test_network_id = AAZStrType(
                serialized_name="testNetworkId",
            )
            disc_in_mage_rcm.vm_nics = AAZListType(
                serialized_name="vmNics",
            )

            agent_upgrade_blocking_error_details = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").agent_upgrade_blocking_error_details
            agent_upgrade_blocking_error_details.Element = AAZObjectType()

            _element = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").agent_upgrade_blocking_error_details.Element
            _element.error_code = AAZStrType(
                serialized_name="errorCode",
                flags={"read_only": True},
            )
            _element.error_message = AAZStrType(
                serialized_name="errorMessage",
                flags={"read_only": True},
            )
            _element.error_message_parameters = AAZDictType(
                serialized_name="errorMessageParameters",
                flags={"read_only": True},
            )
            _element.error_tags = AAZDictType(
                serialized_name="errorTags",
                flags={"read_only": True},
            )
            _element.possible_causes = AAZStrType(
                serialized_name="possibleCauses",
                flags={"read_only": True},
            )
            _element.recommended_action = AAZStrType(
                serialized_name="recommendedAction",
                flags={"read_only": True},
            )

            error_message_parameters = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").agent_upgrade_blocking_error_details.Element.error_message_parameters
            error_message_parameters.Element = AAZStrType()

            error_tags = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").agent_upgrade_blocking_error_details.Element.error_tags
            error_tags.Element = AAZStrType()

            discovered_vm_details = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").discovered_vm_details
            discovered_vm_details.created_timestamp = AAZStrType(
                serialized_name="createdTimestamp",
                flags={"read_only": True},
            )
            discovered_vm_details.datastores = AAZListType(
                flags={"read_only": True},
            )
            discovered_vm_details.ip_addresses = AAZListType(
                serialized_name="ipAddresses",
                flags={"read_only": True},
            )
            discovered_vm_details.is_deleted = AAZBoolType(
                serialized_name="isDeleted",
                flags={"read_only": True},
            )
            discovered_vm_details.last_discovery_time_in_utc = AAZStrType(
                serialized_name="lastDiscoveryTimeInUtc",
                flags={"read_only": True},
            )
            discovered_vm_details.os_name = AAZStrType(
                serialized_name="osName",
                flags={"read_only": True},
            )
            discovered_vm_details.power_status = AAZStrType(
                serialized_name="powerStatus",
                flags={"read_only": True},
            )
            discovered_vm_details.updated_timestamp = AAZStrType(
                serialized_name="updatedTimestamp",
                flags={"read_only": True},
            )
            discovered_vm_details.v_center_fqdn = AAZStrType(
                serialized_name="vCenterFqdn",
                flags={"read_only": True},
            )
            discovered_vm_details.v_center_id = AAZStrType(
                serialized_name="vCenterId",
                flags={"read_only": True},
            )
            discovered_vm_details.vm_fqdn = AAZStrType(
                serialized_name="vmFqdn",
                flags={"read_only": True},
            )
            discovered_vm_details.vmware_tools_status = AAZStrType(
                serialized_name="vmwareToolsStatus",
                flags={"read_only": True},
            )

            datastores = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").discovered_vm_details.datastores
            datastores.Element = AAZStrType()

            ip_addresses = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").discovered_vm_details.ip_addresses
            ip_addresses.Element = AAZStrType()

            last_agent_upgrade_error_details = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").last_agent_upgrade_error_details
            last_agent_upgrade_error_details.Element = AAZObjectType()

            _element = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").last_agent_upgrade_error_details.Element
            _element.error_code = AAZStrType(
                serialized_name="errorCode",
                flags={"read_only": True},
            )
            _element.error_message = AAZStrType(
                serialized_name="errorMessage",
                flags={"read_only": True},
            )
            _element.error_message_parameters = AAZDictType(
                serialized_name="errorMessageParameters",
                flags={"read_only": True},
            )
            _element.error_tags = AAZDictType(
                serialized_name="errorTags",
                flags={"read_only": True},
            )
            _element.possible_causes = AAZStrType(
                serialized_name="possibleCauses",
                flags={"read_only": True},
            )
            _element.recommended_action = AAZStrType(
                serialized_name="recommendedAction",
                flags={"read_only": True},
            )

            error_message_parameters = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").last_agent_upgrade_error_details.Element.error_message_parameters
            error_message_parameters.Element = AAZStrType()

            error_tags = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").last_agent_upgrade_error_details.Element.error_tags
            error_tags.Element = AAZStrType()

            mobility_agent_details = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").mobility_agent_details
            mobility_agent_details.agent_version_expiry_date = AAZStrType(
                serialized_name="agentVersionExpiryDate",
                flags={"read_only": True},
            )
            mobility_agent_details.driver_version = AAZStrType(
                serialized_name="driverVersion",
                flags={"read_only": True},
            )
            mobility_agent_details.driver_version_expiry_date = AAZStrType(
                serialized_name="driverVersionExpiryDate",
                flags={"read_only": True},
            )
            mobility_agent_details.is_upgradeable = AAZStrType(
                serialized_name="isUpgradeable",
                flags={"read_only": True},
            )
            mobility_agent_details.last_heartbeat_utc = AAZStrType(
                serialized_name="lastHeartbeatUtc",
                flags={"read_only": True},
            )
            mobility_agent_details.latest_agent_release_date = AAZStrType(
                serialized_name="latestAgentReleaseDate",
                flags={"read_only": True},
            )
            mobility_agent_details.latest_upgradable_version_without_reboot = AAZStrType(
                serialized_name="latestUpgradableVersionWithoutReboot",
                flags={"read_only": True},
            )
            mobility_agent_details.latest_version = AAZStrType(
                serialized_name="latestVersion",
                flags={"read_only": True},
            )
            mobility_agent_details.reasons_blocking_upgrade = AAZListType(
                serialized_name="reasonsBlockingUpgrade",
                flags={"read_only": True},
            )
            mobility_agent_details.version = AAZStrType(
                flags={"read_only": True},
            )

            reasons_blocking_upgrade = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").mobility_agent_details.reasons_blocking_upgrade
            reasons_blocking_upgrade.Element = AAZStrType()

            protected_disks = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").protected_disks
            protected_disks.Element = AAZObjectType()

            _element = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").protected_disks.Element
            _element.capacity_in_bytes = AAZIntType(
                serialized_name="capacityInBytes",
                flags={"read_only": True},
            )
            _element.data_pending_at_source_agent_in_mb = AAZFloatType(
                serialized_name="dataPendingAtSourceAgentInMB",
                flags={"read_only": True},
            )
            _element.data_pending_in_log_data_store_in_mb = AAZFloatType(
                serialized_name="dataPendingInLogDataStoreInMB",
                flags={"read_only": True},
            )
            _element.disk_encryption_set_id = AAZStrType(
                serialized_name="diskEncryptionSetId",
                flags={"read_only": True},
            )
            _element.disk_id = AAZStrType(
                serialized_name="diskId",
                flags={"read_only": True},
            )
            _element.disk_name = AAZStrType(
                serialized_name="diskName",
                flags={"read_only": True},
            )
            _element.disk_type = AAZStrType(
                serialized_name="diskType",
            )
            _element.ir_details = AAZObjectType(
                serialized_name="irDetails",
            )
            _UnplannedFailoverHelper._build_schema_in_mage_rcm_sync_details_read(_element.ir_details)
            _element.is_initial_replication_complete = AAZStrType(
                serialized_name="isInitialReplicationComplete",
                flags={"read_only": True},
            )
            _element.is_os_disk = AAZStrType(
                serialized_name="isOSDisk",
                flags={"read_only": True},
            )
            _element.log_storage_account_id = AAZStrType(
                serialized_name="logStorageAccountId",
                flags={"read_only": True},
            )
            _element.resync_details = AAZObjectType(
                serialized_name="resyncDetails",
            )
            _UnplannedFailoverHelper._build_schema_in_mage_rcm_sync_details_read(_element.resync_details)
            _element.seed_blob_uri = AAZStrType(
                serialized_name="seedBlobUri",
                flags={"read_only": True},
            )
            _element.seed_managed_disk_id = AAZStrType(
                serialized_name="seedManagedDiskId",
                flags={"read_only": True},
            )
            _element.target_managed_disk_id = AAZStrType(
                serialized_name="targetManagedDiskId",
                flags={"read_only": True},
            )

            vm_nics = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").vm_nics
            vm_nics.Element = AAZObjectType()

            _element = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").vm_nics.Element
            _element.is_primary_nic = AAZStrType(
                serialized_name="isPrimaryNic",
            )
            _element.is_selected_for_failover = AAZStrType(
                serialized_name="isSelectedForFailover",
            )
            _element.nic_id = AAZStrType(
                serialized_name="nicId",
                flags={"read_only": True},
            )
            _element.source_ip_address = AAZStrType(
                serialized_name="sourceIPAddress",
                flags={"read_only": True},
            )
            _element.source_ip_address_type = AAZStrType(
                serialized_name="sourceIPAddressType",
                flags={"read_only": True},
            )
            _element.source_network_id = AAZStrType(
                serialized_name="sourceNetworkId",
                flags={"read_only": True},
            )
            _element.source_subnet_name = AAZStrType(
                serialized_name="sourceSubnetName",
                flags={"read_only": True},
            )
            _element.target_ip_address = AAZStrType(
                serialized_name="targetIPAddress",
            )
            _element.target_ip_address_type = AAZStrType(
                serialized_name="targetIPAddressType",
            )
            _element.target_subnet_name = AAZStrType(
                serialized_name="targetSubnetName",
            )
            _element.test_ip_address = AAZStrType(
                serialized_name="testIPAddress",
            )
            _element.test_ip_address_type = AAZStrType(
                serialized_name="testIPAddressType",
            )
            _element.test_subnet_name = AAZStrType(
                serialized_name="testSubnetName",
            )

            disc_in_mage_rcm_failback = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcmFailback")
            disc_in_mage_rcm_failback.azure_virtual_machine_id = AAZStrType(
                serialized_name="azureVirtualMachineId",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.discovered_vm_details = AAZObjectType(
                serialized_name="discoveredVmDetails",
            )
            disc_in_mage_rcm_failback.initial_replication_processed_bytes = AAZIntType(
                serialized_name="initialReplicationProcessedBytes",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.initial_replication_progress_health = AAZStrType(
                serialized_name="initialReplicationProgressHealth",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.initial_replication_progress_percentage = AAZIntType(
                serialized_name="initialReplicationProgressPercentage",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.initial_replication_transferred_bytes = AAZIntType(
                serialized_name="initialReplicationTransferredBytes",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.internal_identifier = AAZStrType(
                serialized_name="internalIdentifier",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.is_agent_registration_successful_after_failover = AAZBoolType(
                serialized_name="isAgentRegistrationSuccessfulAfterFailover",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.last_planned_failover_start_time = AAZStrType(
                serialized_name="lastPlannedFailoverStartTime",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.last_planned_failover_status = AAZStrType(
                serialized_name="lastPlannedFailoverStatus",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.last_used_policy_friendly_name = AAZStrType(
                serialized_name="lastUsedPolicyFriendlyName",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.last_used_policy_id = AAZStrType(
                serialized_name="lastUsedPolicyId",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.log_storage_account_id = AAZStrType(
                serialized_name="logStorageAccountId",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.mobility_agent_details = AAZObjectType(
                serialized_name="mobilityAgentDetails",
            )
            disc_in_mage_rcm_failback.multi_vm_group_name = AAZStrType(
                serialized_name="multiVmGroupName",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.os_type = AAZStrType(
                serialized_name="osType",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.protected_disks = AAZListType(
                serialized_name="protectedDisks",
            )
            disc_in_mage_rcm_failback.reprotect_agent_id = AAZStrType(
                serialized_name="reprotectAgentId",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.reprotect_agent_name = AAZStrType(
                serialized_name="reprotectAgentName",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.resync_processed_bytes = AAZIntType(
                serialized_name="resyncProcessedBytes",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.resync_progress_health = AAZStrType(
                serialized_name="resyncProgressHealth",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.resync_progress_percentage = AAZIntType(
                serialized_name="resyncProgressPercentage",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.resync_required = AAZStrType(
                serialized_name="resyncRequired",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.resync_state = AAZStrType(
                serialized_name="resyncState",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.resync_transferred_bytes = AAZIntType(
                serialized_name="resyncTransferredBytes",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.target_data_store_name = AAZStrType(
                serialized_name="targetDataStoreName",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.target_vm_name = AAZStrType(
                serialized_name="targetVmName",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.targetv_center_id = AAZStrType(
                serialized_name="targetvCenterId",
                flags={"read_only": True},
            )
            disc_in_mage_rcm_failback.vm_nics = AAZListType(
                serialized_name="vmNics",
            )

            discovered_vm_details = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcmFailback").discovered_vm_details
            discovered_vm_details.created_timestamp = AAZStrType(
                serialized_name="createdTimestamp",
                flags={"read_only": True},
            )
            discovered_vm_details.datastores = AAZListType(
                flags={"read_only": True},
            )
            discovered_vm_details.ip_addresses = AAZListType(
                serialized_name="ipAddresses",
                flags={"read_only": True},
            )
            discovered_vm_details.is_deleted = AAZBoolType(
                serialized_name="isDeleted",
                flags={"read_only": True},
            )
            discovered_vm_details.last_discovery_time_in_utc = AAZStrType(
                serialized_name="lastDiscoveryTimeInUtc",
                flags={"read_only": True},
            )
            discovered_vm_details.os_name = AAZStrType(
                serialized_name="osName",
                flags={"read_only": True},
            )
            discovered_vm_details.power_status = AAZStrType(
                serialized_name="powerStatus",
                flags={"read_only": True},
            )
            discovered_vm_details.updated_timestamp = AAZStrType(
                serialized_name="updatedTimestamp",
                flags={"read_only": True},
            )
            discovered_vm_details.v_center_fqdn = AAZStrType(
                serialized_name="vCenterFqdn",
                flags={"read_only": True},
            )
            discovered_vm_details.v_center_id = AAZStrType(
                serialized_name="vCenterId",
                flags={"read_only": True},
            )
            discovered_vm_details.vm_fqdn = AAZStrType(
                serialized_name="vmFqdn",
                flags={"read_only": True},
            )
            discovered_vm_details.vmware_tools_status = AAZStrType(
                serialized_name="vmwareToolsStatus",
                flags={"read_only": True},
            )

            datastores = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcmFailback").discovered_vm_details.datastores
            datastores.Element = AAZStrType()

            ip_addresses = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcmFailback").discovered_vm_details.ip_addresses
            ip_addresses.Element = AAZStrType()

            mobility_agent_details = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcmFailback").mobility_agent_details
            mobility_agent_details.agent_version_expiry_date = AAZStrType(
                serialized_name="agentVersionExpiryDate",
                flags={"read_only": True},
            )
            mobility_agent_details.driver_version = AAZStrType(
                serialized_name="driverVersion",
                flags={"read_only": True},
            )
            mobility_agent_details.driver_version_expiry_date = AAZStrType(
                serialized_name="driverVersionExpiryDate",
                flags={"read_only": True},
            )
            mobility_agent_details.is_upgradeable = AAZStrType(
                serialized_name="isUpgradeable",
                flags={"read_only": True},
            )
            mobility_agent_details.last_heartbeat_utc = AAZStrType(
                serialized_name="lastHeartbeatUtc",
                flags={"read_only": True},
            )
            mobility_agent_details.latest_upgradable_version_without_reboot = AAZStrType(
                serialized_name="latestUpgradableVersionWithoutReboot",
                flags={"read_only": True},
            )
            mobility_agent_details.latest_version = AAZStrType(
                serialized_name="latestVersion",
                flags={"read_only": True},
            )
            mobility_agent_details.reasons_blocking_upgrade = AAZListType(
                serialized_name="reasonsBlockingUpgrade",
                flags={"read_only": True},
            )
            mobility_agent_details.version = AAZStrType(
                flags={"read_only": True},
            )

            reasons_blocking_upgrade = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcmFailback").mobility_agent_details.reasons_blocking_upgrade
            reasons_blocking_upgrade.Element = AAZStrType()

            protected_disks = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcmFailback").protected_disks
            protected_disks.Element = AAZObjectType()

            _element = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcmFailback").protected_disks.Element
            _element.capacity_in_bytes = AAZIntType(
                serialized_name="capacityInBytes",
                flags={"read_only": True},
            )
            _element.data_pending_at_source_agent_in_mb = AAZFloatType(
                serialized_name="dataPendingAtSourceAgentInMB",
                flags={"read_only": True},
            )
            _element.data_pending_in_log_data_store_in_mb = AAZFloatType(
                serialized_name="dataPendingInLogDataStoreInMB",
                flags={"read_only": True},
            )
            _element.disk_id = AAZStrType(
                serialized_name="diskId",
                flags={"read_only": True},
            )
            _element.disk_name = AAZStrType(
                serialized_name="diskName",
                flags={"read_only": True},
            )
            _element.disk_uuid = AAZStrType(
                serialized_name="diskUuid",
                flags={"read_only": True},
            )
            _element.ir_details = AAZObjectType(
                serialized_name="irDetails",
            )
            _UnplannedFailoverHelper._build_schema_in_mage_rcm_failback_sync_details_read(_element.ir_details)
            _element.is_initial_replication_complete = AAZStrType(
                serialized_name="isInitialReplicationComplete",
                flags={"read_only": True},
            )
            _element.is_os_disk = AAZStrType(
                serialized_name="isOSDisk",
                flags={"read_only": True},
            )
            _element.last_sync_time = AAZStrType(
                serialized_name="lastSyncTime",
                flags={"read_only": True},
            )
            _element.resync_details = AAZObjectType(
                serialized_name="resyncDetails",
            )
            _UnplannedFailoverHelper._build_schema_in_mage_rcm_failback_sync_details_read(_element.resync_details)

            vm_nics = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcmFailback").vm_nics
            vm_nics.Element = AAZObjectType()

            _element = cls._schema_on_200.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcmFailback").vm_nics.Element
            _element.adapter_type = AAZStrType(
                serialized_name="adapterType",
                flags={"read_only": True},
            )
            _element.mac_address = AAZStrType(
                serialized_name="macAddress",
                flags={"read_only": True},
            )
            _element.network_name = AAZStrType(
                serialized_name="networkName",
                flags={"read_only": True},
            )
            _element.source_ip_address = AAZStrType(
                serialized_name="sourceIpAddress",
                flags={"read_only": True},
            )

            return cls._schema_on_200