def _build_schema_fabric_read()

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


    def _build_schema_fabric_read(cls, _schema):
        if cls._schema_fabric_read is not None:
            _schema.id = cls._schema_fabric_read.id
            _schema.location = cls._schema_fabric_read.location
            _schema.name = cls._schema_fabric_read.name
            _schema.properties = cls._schema_fabric_read.properties
            _schema.type = cls._schema_fabric_read.type
            return

        cls._schema_fabric_read = _schema_fabric_read = AAZObjectType()

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

        properties = _schema_fabric_read.properties
        properties.bcdr_state = AAZStrType(
            serialized_name="bcdrState",
        )
        properties.custom_details = AAZObjectType(
            serialized_name="customDetails",
        )
        properties.encryption_details = AAZObjectType(
            serialized_name="encryptionDetails",
        )
        cls._build_schema_encryption_details_read(properties.encryption_details)
        properties.friendly_name = AAZStrType(
            serialized_name="friendlyName",
        )
        properties.health = AAZStrType()
        properties.health_error_details = AAZListType(
            serialized_name="healthErrorDetails",
        )
        properties.internal_identifier = AAZStrType(
            serialized_name="internalIdentifier",
        )
        properties.rollover_encryption_details = AAZObjectType(
            serialized_name="rolloverEncryptionDetails",
        )
        cls._build_schema_encryption_details_read(properties.rollover_encryption_details)

        custom_details = _schema_fabric_read.properties.custom_details
        custom_details.instance_type = AAZStrType(
            serialized_name="instanceType",
            flags={"required": True},
        )

        disc_azure = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "Azure")
        disc_azure.container_ids = AAZListType(
            serialized_name="containerIds",
        )
        disc_azure.location = AAZStrType()
        disc_azure.zones = AAZListType()

        container_ids = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "Azure").container_ids
        container_ids.Element = AAZStrType()

        zones = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "Azure").zones
        zones.Element = AAZObjectType()

        _element = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "Azure").zones.Element
        _element.source = AAZStrType()
        _element.target = AAZStrType()

        disc_hyper_v_site = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "HyperVSite")
        disc_hyper_v_site.hyper_v_hosts = AAZListType(
            serialized_name="hyperVHosts",
        )

        hyper_v_hosts = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "HyperVSite").hyper_v_hosts
        hyper_v_hosts.Element = AAZObjectType()

        _element = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "HyperVSite").hyper_v_hosts.Element
        _element.id = AAZStrType(
            flags={"read_only": True},
        )
        _element.mars_agent_version = AAZStrType(
            serialized_name="marsAgentVersion",
            flags={"read_only": True},
        )
        _element.name = AAZStrType(
            flags={"read_only": True},
        )

        disc_in_mage_rcm = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm")
        disc_in_mage_rcm.agent_details = AAZListType(
            serialized_name="agentDetails",
            flags={"read_only": True},
        )
        disc_in_mage_rcm.control_plane_uri = AAZStrType(
            serialized_name="controlPlaneUri",
            flags={"read_only": True},
        )
        disc_in_mage_rcm.data_plane_uri = AAZStrType(
            serialized_name="dataPlaneUri",
            flags={"read_only": True},
        )
        disc_in_mage_rcm.dras = AAZListType(
            flags={"read_only": True},
        )
        disc_in_mage_rcm.mars_agents = AAZListType(
            serialized_name="marsAgents",
            flags={"read_only": True},
        )
        disc_in_mage_rcm.physical_site_id = AAZStrType(
            serialized_name="physicalSiteId",
            flags={"read_only": True},
        )
        disc_in_mage_rcm.process_servers = AAZListType(
            serialized_name="processServers",
            flags={"read_only": True},
        )
        disc_in_mage_rcm.push_installers = AAZListType(
            serialized_name="pushInstallers",
            flags={"read_only": True},
        )
        disc_in_mage_rcm.rcm_proxies = AAZListType(
            serialized_name="rcmProxies",
            flags={"read_only": True},
        )
        disc_in_mage_rcm.replication_agents = AAZListType(
            serialized_name="replicationAgents",
            flags={"read_only": True},
        )
        disc_in_mage_rcm.reprotect_agents = AAZListType(
            serialized_name="reprotectAgents",
            flags={"read_only": True},
        )
        disc_in_mage_rcm.service_container_id = AAZStrType(
            serialized_name="serviceContainerId",
            flags={"read_only": True},
        )
        disc_in_mage_rcm.service_endpoint = AAZStrType(
            serialized_name="serviceEndpoint",
            flags={"read_only": True},
        )
        disc_in_mage_rcm.service_resource_id = AAZStrType(
            serialized_name="serviceResourceId",
            flags={"read_only": True},
        )
        disc_in_mage_rcm.source_agent_identity_details = AAZObjectType(
            serialized_name="sourceAgentIdentityDetails",
        )
        disc_in_mage_rcm.vmware_site_id = AAZStrType(
            serialized_name="vmwareSiteId",
            flags={"read_only": True},
        )

        agent_details = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").agent_details
        agent_details.Element = AAZObjectType()

        _element = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").agent_details.Element
        _element.agent_id = AAZStrType(
            serialized_name="agentId",
            flags={"read_only": True},
        )
        _element.bios_id = AAZStrType(
            serialized_name="biosId",
            flags={"read_only": True},
        )
        _element.disks = AAZListType(
            flags={"read_only": True},
        )
        _element.fqdn = AAZStrType(
            flags={"read_only": True},
        )
        _element.machine_id = AAZStrType(
            serialized_name="machineId",
            flags={"read_only": True},
        )

        disks = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").agent_details.Element.disks
        disks.Element = AAZObjectType()

        _element = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").agent_details.Element.disks.Element
        _element.capacity_in_bytes = AAZIntType(
            serialized_name="capacityInBytes",
            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.is_os_disk = AAZStrType(
            serialized_name="isOSDisk",
            flags={"read_only": True},
        )
        _element.lun_id = AAZIntType(
            serialized_name="lunId",
            flags={"read_only": True},
        )

        dras = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").dras
        dras.Element = AAZObjectType()

        _element = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").dras.Element
        _element.bios_id = AAZStrType(
            serialized_name="biosId",
            flags={"read_only": True},
        )
        _element.forward_protected_item_count = AAZIntType(
            serialized_name="forwardProtectedItemCount",
            flags={"read_only": True},
        )
        _element.health = AAZStrType(
            flags={"read_only": True},
        )
        _element.health_errors = AAZListType(
            serialized_name="healthErrors",
            flags={"read_only": True},
        )
        _element.id = AAZStrType(
            flags={"read_only": True},
        )
        _element.last_heartbeat_utc = AAZStrType(
            serialized_name="lastHeartbeatUtc",
            flags={"read_only": True},
        )
        _element.name = AAZStrType(
            flags={"read_only": True},
        )
        _element.reverse_protected_item_count = AAZIntType(
            serialized_name="reverseProtectedItemCount",
            flags={"read_only": True},
        )
        _element.version = AAZStrType(
            flags={"read_only": True},
        )

        health_errors = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").dras.Element.health_errors
        health_errors.Element = AAZObjectType()
        cls._build_schema_health_error_read(health_errors.Element)

        mars_agents = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").mars_agents
        mars_agents.Element = AAZObjectType()

        _element = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").mars_agents.Element
        _element.bios_id = AAZStrType(
            serialized_name="biosId",
            flags={"read_only": True},
        )
        _element.fabric_object_id = AAZStrType(
            serialized_name="fabricObjectId",
            flags={"read_only": True},
        )
        _element.fqdn = AAZStrType(
            flags={"read_only": True},
        )
        _element.health = AAZStrType(
            flags={"read_only": True},
        )
        _element.health_errors = AAZListType(
            serialized_name="healthErrors",
            flags={"read_only": True},
        )
        _element.id = AAZStrType(
            flags={"read_only": True},
        )
        _element.last_heartbeat_utc = AAZStrType(
            serialized_name="lastHeartbeatUtc",
            flags={"read_only": True},
        )
        _element.name = AAZStrType(
            flags={"read_only": True},
        )
        _element.version = AAZStrType(
            flags={"read_only": True},
        )

        health_errors = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").mars_agents.Element.health_errors
        health_errors.Element = AAZObjectType()
        cls._build_schema_health_error_read(health_errors.Element)

        process_servers = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").process_servers
        process_servers.Element = AAZObjectType()
        cls._build_schema_process_server_details_read(process_servers.Element)

        push_installers = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").push_installers
        push_installers.Element = AAZObjectType()

        _element = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").push_installers.Element
        _element.bios_id = AAZStrType(
            serialized_name="biosId",
            flags={"read_only": True},
        )
        _element.fabric_object_id = AAZStrType(
            serialized_name="fabricObjectId",
            flags={"read_only": True},
        )
        _element.fqdn = AAZStrType(
            flags={"read_only": True},
        )
        _element.health = AAZStrType(
            flags={"read_only": True},
        )
        _element.health_errors = AAZListType(
            serialized_name="healthErrors",
            flags={"read_only": True},
        )
        _element.id = AAZStrType(
            flags={"read_only": True},
        )
        _element.last_heartbeat_utc = AAZStrType(
            serialized_name="lastHeartbeatUtc",
            flags={"read_only": True},
        )
        _element.name = AAZStrType(
            flags={"read_only": True},
        )
        _element.version = AAZStrType(
            flags={"read_only": True},
        )

        health_errors = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").push_installers.Element.health_errors
        health_errors.Element = AAZObjectType()
        cls._build_schema_health_error_read(health_errors.Element)

        rcm_proxies = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").rcm_proxies
        rcm_proxies.Element = AAZObjectType()

        _element = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").rcm_proxies.Element
        _element.bios_id = AAZStrType(
            serialized_name="biosId",
            flags={"read_only": True},
        )
        _element.client_authentication_type = AAZStrType(
            serialized_name="clientAuthenticationType",
            flags={"read_only": True},
        )
        _element.fabric_object_id = AAZStrType(
            serialized_name="fabricObjectId",
            flags={"read_only": True},
        )
        _element.fqdn = AAZStrType(
            flags={"read_only": True},
        )
        _element.health = AAZStrType(
            flags={"read_only": True},
        )
        _element.health_errors = AAZListType(
            serialized_name="healthErrors",
            flags={"read_only": True},
        )
        _element.id = AAZStrType(
            flags={"read_only": True},
        )
        _element.last_heartbeat_utc = AAZStrType(
            serialized_name="lastHeartbeatUtc",
            flags={"read_only": True},
        )
        _element.name = AAZStrType(
            flags={"read_only": True},
        )
        _element.version = AAZStrType(
            flags={"read_only": True},
        )

        health_errors = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").rcm_proxies.Element.health_errors
        health_errors.Element = AAZObjectType()
        cls._build_schema_health_error_read(health_errors.Element)

        replication_agents = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").replication_agents
        replication_agents.Element = AAZObjectType()

        _element = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").replication_agents.Element
        _element.bios_id = AAZStrType(
            serialized_name="biosId",
            flags={"read_only": True},
        )
        _element.fabric_object_id = AAZStrType(
            serialized_name="fabricObjectId",
            flags={"read_only": True},
        )
        _element.fqdn = AAZStrType(
            flags={"read_only": True},
        )
        _element.health = AAZStrType(
            flags={"read_only": True},
        )
        _element.health_errors = AAZListType(
            serialized_name="healthErrors",
            flags={"read_only": True},
        )
        _element.id = AAZStrType(
            flags={"read_only": True},
        )
        _element.last_heartbeat_utc = AAZStrType(
            serialized_name="lastHeartbeatUtc",
            flags={"read_only": True},
        )
        _element.name = AAZStrType(
            flags={"read_only": True},
        )
        _element.version = AAZStrType(
            flags={"read_only": True},
        )

        health_errors = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").replication_agents.Element.health_errors
        health_errors.Element = AAZObjectType()
        cls._build_schema_health_error_read(health_errors.Element)

        reprotect_agents = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").reprotect_agents
        reprotect_agents.Element = AAZObjectType()

        _element = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").reprotect_agents.Element
        _element.accessible_datastores = AAZListType(
            serialized_name="accessibleDatastores",
            flags={"read_only": True},
        )
        _element.bios_id = AAZStrType(
            serialized_name="biosId",
            flags={"read_only": True},
        )
        _element.fabric_object_id = AAZStrType(
            serialized_name="fabricObjectId",
            flags={"read_only": True},
        )
        _element.fqdn = AAZStrType(
            flags={"read_only": True},
        )
        _element.health = AAZStrType(
            flags={"read_only": True},
        )
        _element.health_errors = AAZListType(
            serialized_name="healthErrors",
            flags={"read_only": True},
        )
        _element.id = AAZStrType(
            flags={"read_only": True},
        )
        _element.last_discovery_in_utc = AAZStrType(
            serialized_name="lastDiscoveryInUtc",
            flags={"read_only": True},
        )
        _element.last_heartbeat_utc = AAZStrType(
            serialized_name="lastHeartbeatUtc",
            flags={"read_only": True},
        )
        _element.name = AAZStrType(
            flags={"read_only": True},
        )
        _element.protected_item_count = AAZIntType(
            serialized_name="protectedItemCount",
            flags={"read_only": True},
        )
        _element.vcenter_id = AAZStrType(
            serialized_name="vcenterId",
            flags={"read_only": True},
        )
        _element.version = AAZStrType(
            flags={"read_only": True},
        )

        accessible_datastores = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").reprotect_agents.Element.accessible_datastores
        accessible_datastores.Element = AAZStrType()

        health_errors = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").reprotect_agents.Element.health_errors
        health_errors.Element = AAZObjectType()
        cls._build_schema_health_error_read(health_errors.Element)

        source_agent_identity_details = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "InMageRcm").source_agent_identity_details
        source_agent_identity_details.aad_authority = AAZStrType(
            serialized_name="aadAuthority",
        )
        source_agent_identity_details.application_id = AAZStrType(
            serialized_name="applicationId",
        )
        source_agent_identity_details.audience = AAZStrType()
        source_agent_identity_details.object_id = AAZStrType(
            serialized_name="objectId",
        )
        source_agent_identity_details.tenant_id = AAZStrType(
            serialized_name="tenantId",
        )

        disc_v_mware = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "VMware")
        disc_v_mware.agent_count = AAZStrType(
            serialized_name="agentCount",
        )
        disc_v_mware.agent_expiry_date = AAZStrType(
            serialized_name="agentExpiryDate",
        )
        disc_v_mware.agent_version = AAZStrType(
            serialized_name="agentVersion",
        )
        disc_v_mware.agent_version_details = AAZObjectType(
            serialized_name="agentVersionDetails",
        )
        cls._build_schema_version_details_read(disc_v_mware.agent_version_details)
        disc_v_mware.available_memory_in_bytes = AAZIntType(
            serialized_name="availableMemoryInBytes",
        )
        disc_v_mware.available_space_in_bytes = AAZIntType(
            serialized_name="availableSpaceInBytes",
        )
        disc_v_mware.cpu_load = AAZStrType(
            serialized_name="cpuLoad",
        )
        disc_v_mware.cpu_load_status = AAZStrType(
            serialized_name="cpuLoadStatus",
        )
        disc_v_mware.cs_service_status = AAZStrType(
            serialized_name="csServiceStatus",
        )
        disc_v_mware.database_server_load = AAZStrType(
            serialized_name="databaseServerLoad",
        )
        disc_v_mware.database_server_load_status = AAZStrType(
            serialized_name="databaseServerLoadStatus",
        )
        disc_v_mware.host_name = AAZStrType(
            serialized_name="hostName",
        )
        disc_v_mware.ip_address = AAZStrType(
            serialized_name="ipAddress",
        )
        disc_v_mware.last_heartbeat = AAZStrType(
            serialized_name="lastHeartbeat",
        )
        disc_v_mware.master_target_servers = AAZListType(
            serialized_name="masterTargetServers",
        )
        disc_v_mware.memory_usage_status = AAZStrType(
            serialized_name="memoryUsageStatus",
        )
        disc_v_mware.process_server_count = AAZStrType(
            serialized_name="processServerCount",
        )
        disc_v_mware.process_servers = AAZListType(
            serialized_name="processServers",
        )
        disc_v_mware.protected_servers = AAZStrType(
            serialized_name="protectedServers",
        )
        disc_v_mware.ps_template_version = AAZStrType(
            serialized_name="psTemplateVersion",
        )
        disc_v_mware.replication_pair_count = AAZStrType(
            serialized_name="replicationPairCount",
        )
        disc_v_mware.run_as_accounts = AAZListType(
            serialized_name="runAsAccounts",
        )
        disc_v_mware.space_usage_status = AAZStrType(
            serialized_name="spaceUsageStatus",
        )
        disc_v_mware.ssl_cert_expiry_date = AAZStrType(
            serialized_name="sslCertExpiryDate",
        )
        disc_v_mware.ssl_cert_expiry_remaining_days = AAZIntType(
            serialized_name="sslCertExpiryRemainingDays",
        )
        disc_v_mware.switch_provider_blocking_error_details = AAZListType(
            serialized_name="switchProviderBlockingErrorDetails",
        )
        disc_v_mware.system_load = AAZStrType(
            serialized_name="systemLoad",
        )
        disc_v_mware.system_load_status = AAZStrType(
            serialized_name="systemLoadStatus",
        )
        disc_v_mware.total_memory_in_bytes = AAZIntType(
            serialized_name="totalMemoryInBytes",
        )
        disc_v_mware.total_space_in_bytes = AAZIntType(
            serialized_name="totalSpaceInBytes",
        )
        disc_v_mware.version_status = AAZStrType(
            serialized_name="versionStatus",
        )
        disc_v_mware.web_load = AAZStrType(
            serialized_name="webLoad",
        )
        disc_v_mware.web_load_status = AAZStrType(
            serialized_name="webLoadStatus",
        )

        master_target_servers = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "VMware").master_target_servers
        master_target_servers.Element = AAZObjectType()

        _element = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "VMware").master_target_servers.Element
        _element.agent_expiry_date = AAZStrType(
            serialized_name="agentExpiryDate",
        )
        _element.agent_version = AAZStrType(
            serialized_name="agentVersion",
        )
        _element.agent_version_details = AAZObjectType(
            serialized_name="agentVersionDetails",
        )
        cls._build_schema_version_details_read(_element.agent_version_details)
        _element.data_stores = AAZListType(
            serialized_name="dataStores",
        )
        _element.disk_count = AAZIntType(
            serialized_name="diskCount",
        )
        _element.health_errors = AAZListType(
            serialized_name="healthErrors",
        )
        _element.id = AAZStrType()
        _element.ip_address = AAZStrType(
            serialized_name="ipAddress",
        )
        _element.last_heartbeat = AAZStrType(
            serialized_name="lastHeartbeat",
        )
        _element.mars_agent_expiry_date = AAZStrType(
            serialized_name="marsAgentExpiryDate",
        )
        _element.mars_agent_version = AAZStrType(
            serialized_name="marsAgentVersion",
        )
        _element.mars_agent_version_details = AAZObjectType(
            serialized_name="marsAgentVersionDetails",
        )
        cls._build_schema_version_details_read(_element.mars_agent_version_details)
        _element.name = AAZStrType()
        _element.os_type = AAZStrType(
            serialized_name="osType",
        )
        _element.os_version = AAZStrType(
            serialized_name="osVersion",
        )
        _element.retention_volumes = AAZListType(
            serialized_name="retentionVolumes",
        )
        _element.validation_errors = AAZListType(
            serialized_name="validationErrors",
        )
        _element.version_status = AAZStrType(
            serialized_name="versionStatus",
        )

        data_stores = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "VMware").master_target_servers.Element.data_stores
        data_stores.Element = AAZObjectType()

        _element = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "VMware").master_target_servers.Element.data_stores.Element
        _element.capacity = AAZStrType()
        _element.free_space = AAZStrType(
            serialized_name="freeSpace",
        )
        _element.symbolic_name = AAZStrType(
            serialized_name="symbolicName",
        )
        _element.type = AAZStrType()
        _element.uuid = AAZStrType()

        health_errors = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "VMware").master_target_servers.Element.health_errors
        health_errors.Element = AAZObjectType()
        cls._build_schema_health_error_read(health_errors.Element)

        retention_volumes = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "VMware").master_target_servers.Element.retention_volumes
        retention_volumes.Element = AAZObjectType()

        _element = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "VMware").master_target_servers.Element.retention_volumes.Element
        _element.capacity_in_bytes = AAZIntType(
            serialized_name="capacityInBytes",
        )
        _element.free_space_in_bytes = AAZIntType(
            serialized_name="freeSpaceInBytes",
        )
        _element.threshold_percentage = AAZIntType(
            serialized_name="thresholdPercentage",
        )
        _element.volume_name = AAZStrType(
            serialized_name="volumeName",
        )

        validation_errors = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "VMware").master_target_servers.Element.validation_errors
        validation_errors.Element = AAZObjectType()
        cls._build_schema_health_error_read(validation_errors.Element)

        process_servers = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "VMware").process_servers
        process_servers.Element = AAZObjectType()

        _element = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "VMware").process_servers.Element
        _element.agent_expiry_date = AAZStrType(
            serialized_name="agentExpiryDate",
        )
        _element.agent_version = AAZStrType(
            serialized_name="agentVersion",
        )
        _element.agent_version_details = AAZObjectType(
            serialized_name="agentVersionDetails",
        )
        cls._build_schema_version_details_read(_element.agent_version_details)
        _element.available_memory_in_bytes = AAZIntType(
            serialized_name="availableMemoryInBytes",
        )
        _element.available_space_in_bytes = AAZIntType(
            serialized_name="availableSpaceInBytes",
        )
        _element.cpu_load = AAZStrType(
            serialized_name="cpuLoad",
        )
        _element.cpu_load_status = AAZStrType(
            serialized_name="cpuLoadStatus",
        )
        _element.friendly_name = AAZStrType(
            serialized_name="friendlyName",
        )
        _element.health = AAZStrType(
            flags={"read_only": True},
        )
        _element.health_errors = AAZListType(
            serialized_name="healthErrors",
        )
        _element.host_id = AAZStrType(
            serialized_name="hostId",
        )
        _element.id = AAZStrType()
        _element.ip_address = AAZStrType(
            serialized_name="ipAddress",
        )
        _element.last_heartbeat = AAZStrType(
            serialized_name="lastHeartbeat",
        )
        _element.machine_count = AAZStrType(
            serialized_name="machineCount",
        )
        _element.mars_communication_status = AAZStrType(
            serialized_name="marsCommunicationStatus",
            flags={"read_only": True},
        )
        _element.mars_registration_status = AAZStrType(
            serialized_name="marsRegistrationStatus",
            flags={"read_only": True},
        )
        _element.memory_usage_status = AAZStrType(
            serialized_name="memoryUsageStatus",
        )
        _element.mobility_service_updates = AAZListType(
            serialized_name="mobilityServiceUpdates",
        )
        _element.os_type = AAZStrType(
            serialized_name="osType",
        )
        _element.os_version = AAZStrType(
            serialized_name="osVersion",
        )
        _element.ps_service_status = AAZStrType(
            serialized_name="psServiceStatus",
        )
        _element.ps_stats_refresh_time = AAZStrType(
            serialized_name="psStatsRefreshTime",
            flags={"read_only": True},
        )
        _element.replication_pair_count = AAZStrType(
            serialized_name="replicationPairCount",
        )
        _element.space_usage_status = AAZStrType(
            serialized_name="spaceUsageStatus",
        )
        _element.ssl_cert_expiry_date = AAZStrType(
            serialized_name="sslCertExpiryDate",
        )
        _element.ssl_cert_expiry_remaining_days = AAZIntType(
            serialized_name="sslCertExpiryRemainingDays",
        )
        _element.system_load = AAZStrType(
            serialized_name="systemLoad",
        )
        _element.system_load_status = AAZStrType(
            serialized_name="systemLoadStatus",
        )
        _element.throughput_in_bytes = AAZIntType(
            serialized_name="throughputInBytes",
            flags={"read_only": True},
        )
        _element.throughput_in_m_bps = AAZIntType(
            serialized_name="throughputInMBps",
            flags={"read_only": True},
        )
        _element.throughput_status = AAZStrType(
            serialized_name="throughputStatus",
            flags={"read_only": True},
        )
        _element.throughput_upload_pending_data_in_bytes = AAZIntType(
            serialized_name="throughputUploadPendingDataInBytes",
            flags={"read_only": True},
        )
        _element.total_memory_in_bytes = AAZIntType(
            serialized_name="totalMemoryInBytes",
        )
        _element.total_space_in_bytes = AAZIntType(
            serialized_name="totalSpaceInBytes",
        )
        _element.version_status = AAZStrType(
            serialized_name="versionStatus",
        )

        health_errors = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "VMware").process_servers.Element.health_errors
        health_errors.Element = AAZObjectType()
        cls._build_schema_health_error_read(health_errors.Element)

        mobility_service_updates = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "VMware").process_servers.Element.mobility_service_updates
        mobility_service_updates.Element = AAZObjectType()

        _element = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "VMware").process_servers.Element.mobility_service_updates.Element
        _element.os_type = AAZStrType(
            serialized_name="osType",
        )
        _element.reboot_status = AAZStrType(
            serialized_name="rebootStatus",
        )
        _element.version = AAZStrType()

        run_as_accounts = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "VMware").run_as_accounts
        run_as_accounts.Element = AAZObjectType()

        _element = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "VMware").run_as_accounts.Element
        _element.account_id = AAZStrType(
            serialized_name="accountId",
        )
        _element.account_name = AAZStrType(
            serialized_name="accountName",
        )

        switch_provider_blocking_error_details = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "VMware").switch_provider_blocking_error_details
        switch_provider_blocking_error_details.Element = AAZObjectType()

        _element = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "VMware").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 = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "VMware").switch_provider_blocking_error_details.Element.error_message_parameters
        error_message_parameters.Element = AAZStrType()

        error_tags = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "VMware").switch_provider_blocking_error_details.Element.error_tags
        error_tags.Element = AAZStrType()

        disc_v_mware_v2 = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "VMwareV2")
        disc_v_mware_v2.migration_solution_id = AAZStrType(
            serialized_name="migrationSolutionId",
            flags={"read_only": True},
        )
        disc_v_mware_v2.physical_site_id = AAZStrType(
            serialized_name="physicalSiteId",
            flags={"read_only": True},
        )
        disc_v_mware_v2.process_servers = AAZListType(
            serialized_name="processServers",
            flags={"read_only": True},
        )
        disc_v_mware_v2.service_container_id = AAZStrType(
            serialized_name="serviceContainerId",
            flags={"read_only": True},
        )
        disc_v_mware_v2.service_endpoint = AAZStrType(
            serialized_name="serviceEndpoint",
            flags={"read_only": True},
        )
        disc_v_mware_v2.service_resource_id = AAZStrType(
            serialized_name="serviceResourceId",
            flags={"read_only": True},
        )
        disc_v_mware_v2.vmware_site_id = AAZStrType(
            serialized_name="vmwareSiteId",
            flags={"read_only": True},
        )

        process_servers = _schema_fabric_read.properties.custom_details.discriminate_by("instance_type", "VMwareV2").process_servers
        process_servers.Element = AAZObjectType()
        cls._build_schema_process_server_details_read(process_servers.Element)

        health_error_details = _schema_fabric_read.properties.health_error_details
        health_error_details.Element = AAZObjectType()
        cls._build_schema_health_error_read(health_error_details.Element)

        _schema.id = cls._schema_fabric_read.id
        _schema.location = cls._schema_fabric_read.location
        _schema.name = cls._schema_fabric_read.name
        _schema.properties = cls._schema_fabric_read.properties
        _schema.type = cls._schema_fabric_read.type