# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
#
# Code generated by aaz-dev-tools
# --------------------------------------------------------------------------------------------

# pylint: skip-file
# flake8: noqa

from azure.cli.core.aaz import *


@register_command(
    "site-recovery vault list-appliance",
)
class ListAppliance(AAZCommand):
    """List the list of Azure Site Recovery appliances for the vault.

    :example: list-appliance for vault
        az site-recovery vault list-appliance -g rg --vault-name vault_name
    """

    _aaz_info = {
        "version": "2022-08-01",
        "resources": [
            ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.recoveryservices/vaults/{}/replicationappliances", "2022-08-01"],
        ]
    }

    AZ_SUPPORT_PAGINATION = True

    def _handler(self, command_args):
        super()._handler(command_args)
        return self.build_paging(self._execute_operations, self._output)

    _args_schema = None

    @classmethod
    def _build_arguments_schema(cls, *args, **kwargs):
        if cls._args_schema is not None:
            return cls._args_schema
        cls._args_schema = super()._build_arguments_schema(*args, **kwargs)

        # define Arg Group ""

        _args_schema = cls._args_schema
        _args_schema.resource_group = AAZResourceGroupNameArg(
            required=True,
        )
        _args_schema.vault_name = AAZStrArg(
            options=["--vault-name"],
            help="The name of the recovery services vault.",
            required=True,
        )
        _args_schema.filter = AAZStrArg(
            options=["--filter"],
            help="OData filter options.",
        )
        return cls._args_schema

    def _execute_operations(self):
        self.pre_operations()
        self.ReplicationAppliancesList(ctx=self.ctx)()
        self.post_operations()

    @register_callback
    def pre_operations(self):
        pass

    @register_callback
    def post_operations(self):
        pass

    def _output(self, *args, **kwargs):
        result = self.deserialize_output(self.ctx.vars.instance.value, client_flatten=True)
        next_link = self.deserialize_output(self.ctx.vars.instance.next_link)
        return result, next_link

    class ReplicationAppliancesList(AAZHttpOperation):
        CLIENT_TYPE = "MgmtClient"

        def __call__(self, *args, **kwargs):
            request = self.make_request()
            session = self.client.send_request(request=request, stream=False, **kwargs)
            if session.http_response.status_code in [200]:
                return self.on_200(session)

            return self.on_error(session.http_response)

        @property
        def url(self):
            return self.client.format_url(
                "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{resourceName}/replicationAppliances",
                **self.url_parameters
            )

        @property
        def method(self):
            return "GET"

        @property
        def error_format(self):
            return "ODataV4Format"

        @property
        def url_parameters(self):
            parameters = {
                **self.serialize_url_param(
                    "resourceGroupName", self.ctx.args.resource_group,
                    required=True,
                ),
                **self.serialize_url_param(
                    "resourceName", self.ctx.args.vault_name,
                    required=True,
                ),
                **self.serialize_url_param(
                    "subscriptionId", self.ctx.subscription_id,
                    required=True,
                ),
            }
            return parameters

        @property
        def query_parameters(self):
            parameters = {
                **self.serialize_query_param(
                    "$filter", self.ctx.args.filter,
                ),
                **self.serialize_query_param(
                    "api-version", "2022-08-01",
                    required=True,
                ),
            }
            return parameters

        @property
        def header_parameters(self):
            parameters = {
                **self.serialize_header_param(
                    "Accept", "application/json",
                ),
            }
            return parameters

        def on_200(self, session):
            data = self.deserialize_http_content(session)
            self.ctx.set_var(
                "instance",
                data,
                schema_builder=self._build_schema_on_200
            )

        _schema_on_200 = None

        @classmethod
        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.next_link = AAZStrType(
                serialized_name="nextLink",
            )
            _schema_on_200.value = AAZListType()

            value = cls._schema_on_200.value
            value.Element = AAZObjectType()

            _element = cls._schema_on_200.value.Element
            _element.properties = AAZObjectType()

            properties = cls._schema_on_200.value.Element.properties
            properties.provider_specific_details = AAZObjectType(
                serialized_name="providerSpecificDetails",
            )

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

            disc_in_mage_rcm = cls._schema_on_200.value.Element.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm")
            disc_in_mage_rcm.appliances = AAZListType(
                flags={"read_only": True},
            )

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

            _element = cls._schema_on_200.value.Element.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").appliances.Element
            _element.dra = AAZObjectType()
            _element.fabric_arm_id = AAZStrType(
                serialized_name="fabricArmId",
                flags={"read_only": True},
            )
            _element.id = AAZStrType(
                flags={"read_only": True},
            )
            _element.mars_agent = AAZObjectType(
                serialized_name="marsAgent",
            )
            _element.name = AAZStrType(
                flags={"read_only": True},
            )
            _element.process_server = AAZObjectType(
                serialized_name="processServer",
            )
            _element.push_installer = AAZObjectType(
                serialized_name="pushInstaller",
            )
            _element.rcm_proxy = AAZObjectType(
                serialized_name="rcmProxy",
            )
            _element.replication_agent = AAZObjectType(
                serialized_name="replicationAgent",
            )
            _element.reprotect_agent = AAZObjectType(
                serialized_name="reprotectAgent",
            )
            _element.switch_provider_blocking_error_details = AAZListType(
                serialized_name="switchProviderBlockingErrorDetails",
                flags={"read_only": True},
            )

            dra = cls._schema_on_200.value.Element.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").appliances.Element.dra
            dra.bios_id = AAZStrType(
                serialized_name="biosId",
                flags={"read_only": True},
            )
            dra.forward_protected_item_count = AAZIntType(
                serialized_name="forwardProtectedItemCount",
                flags={"read_only": True},
            )
            dra.health = AAZStrType(
                flags={"read_only": True},
            )
            dra.health_errors = AAZListType(
                serialized_name="healthErrors",
                flags={"read_only": True},
            )
            dra.id = AAZStrType(
                flags={"read_only": True},
            )
            dra.last_heartbeat_utc = AAZStrType(
                serialized_name="lastHeartbeatUtc",
                flags={"read_only": True},
            )
            dra.name = AAZStrType(
                flags={"read_only": True},
            )
            dra.reverse_protected_item_count = AAZIntType(
                serialized_name="reverseProtectedItemCount",
                flags={"read_only": True},
            )
            dra.version = AAZStrType(
                flags={"read_only": True},
            )

            health_errors = cls._schema_on_200.value.Element.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").appliances.Element.dra.health_errors
            health_errors.Element = AAZObjectType()
            _ListApplianceHelper._build_schema_health_error_read(health_errors.Element)

            mars_agent = cls._schema_on_200.value.Element.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").appliances.Element.mars_agent
            mars_agent.bios_id = AAZStrType(
                serialized_name="biosId",
                flags={"read_only": True},
            )
            mars_agent.fabric_object_id = AAZStrType(
                serialized_name="fabricObjectId",
                flags={"read_only": True},
            )
            mars_agent.fqdn = AAZStrType(
                flags={"read_only": True},
            )
            mars_agent.health = AAZStrType(
                flags={"read_only": True},
            )
            mars_agent.health_errors = AAZListType(
                serialized_name="healthErrors",
                flags={"read_only": True},
            )
            mars_agent.id = AAZStrType(
                flags={"read_only": True},
            )
            mars_agent.last_heartbeat_utc = AAZStrType(
                serialized_name="lastHeartbeatUtc",
                flags={"read_only": True},
            )
            mars_agent.name = AAZStrType(
                flags={"read_only": True},
            )
            mars_agent.version = AAZStrType(
                flags={"read_only": True},
            )

            health_errors = cls._schema_on_200.value.Element.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").appliances.Element.mars_agent.health_errors
            health_errors.Element = AAZObjectType()
            _ListApplianceHelper._build_schema_health_error_read(health_errors.Element)

            process_server = cls._schema_on_200.value.Element.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").appliances.Element.process_server
            process_server.available_memory_in_bytes = AAZIntType(
                serialized_name="availableMemoryInBytes",
                flags={"read_only": True},
            )
            process_server.available_space_in_bytes = AAZIntType(
                serialized_name="availableSpaceInBytes",
                flags={"read_only": True},
            )
            process_server.bios_id = AAZStrType(
                serialized_name="biosId",
                flags={"read_only": True},
            )
            process_server.disk_usage_status = AAZStrType(
                serialized_name="diskUsageStatus",
                flags={"read_only": True},
            )
            process_server.fabric_object_id = AAZStrType(
                serialized_name="fabricObjectId",
                flags={"read_only": True},
            )
            process_server.fqdn = AAZStrType(
                flags={"read_only": True},
            )
            process_server.free_space_percentage = AAZFloatType(
                serialized_name="freeSpacePercentage",
                flags={"read_only": True},
            )
            process_server.health = AAZStrType(
                flags={"read_only": True},
            )
            process_server.health_errors = AAZListType(
                serialized_name="healthErrors",
                flags={"read_only": True},
            )
            process_server.historic_health = AAZStrType(
                serialized_name="historicHealth",
                flags={"read_only": True},
            )
            process_server.id = AAZStrType(
                flags={"read_only": True},
            )
            process_server.ip_addresses = AAZListType(
                serialized_name="ipAddresses",
                flags={"read_only": True},
            )
            process_server.last_heartbeat_utc = AAZStrType(
                serialized_name="lastHeartbeatUtc",
                flags={"read_only": True},
            )
            process_server.memory_usage_percentage = AAZFloatType(
                serialized_name="memoryUsagePercentage",
                flags={"read_only": True},
            )
            process_server.memory_usage_status = AAZStrType(
                serialized_name="memoryUsageStatus",
                flags={"read_only": True},
            )
            process_server.name = AAZStrType(
                flags={"read_only": True},
            )
            process_server.processor_usage_percentage = AAZFloatType(
                serialized_name="processorUsagePercentage",
                flags={"read_only": True},
            )
            process_server.processor_usage_status = AAZStrType(
                serialized_name="processorUsageStatus",
                flags={"read_only": True},
            )
            process_server.protected_item_count = AAZIntType(
                serialized_name="protectedItemCount",
                flags={"read_only": True},
            )
            process_server.system_load = AAZIntType(
                serialized_name="systemLoad",
                flags={"read_only": True},
            )
            process_server.system_load_status = AAZStrType(
                serialized_name="systemLoadStatus",
                flags={"read_only": True},
            )
            process_server.throughput_in_bytes = AAZIntType(
                serialized_name="throughputInBytes",
                flags={"read_only": True},
            )
            process_server.throughput_status = AAZStrType(
                serialized_name="throughputStatus",
                flags={"read_only": True},
            )
            process_server.throughput_upload_pending_data_in_bytes = AAZIntType(
                serialized_name="throughputUploadPendingDataInBytes",
                flags={"read_only": True},
            )
            process_server.total_memory_in_bytes = AAZIntType(
                serialized_name="totalMemoryInBytes",
                flags={"read_only": True},
            )
            process_server.total_space_in_bytes = AAZIntType(
                serialized_name="totalSpaceInBytes",
                flags={"read_only": True},
            )
            process_server.used_memory_in_bytes = AAZIntType(
                serialized_name="usedMemoryInBytes",
                flags={"read_only": True},
            )
            process_server.used_space_in_bytes = AAZIntType(
                serialized_name="usedSpaceInBytes",
                flags={"read_only": True},
            )
            process_server.version = AAZStrType(
                flags={"read_only": True},
            )

            health_errors = cls._schema_on_200.value.Element.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").appliances.Element.process_server.health_errors
            health_errors.Element = AAZObjectType()
            _ListApplianceHelper._build_schema_health_error_read(health_errors.Element)

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

            push_installer = cls._schema_on_200.value.Element.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").appliances.Element.push_installer
            push_installer.bios_id = AAZStrType(
                serialized_name="biosId",
                flags={"read_only": True},
            )
            push_installer.fabric_object_id = AAZStrType(
                serialized_name="fabricObjectId",
                flags={"read_only": True},
            )
            push_installer.fqdn = AAZStrType(
                flags={"read_only": True},
            )
            push_installer.health = AAZStrType(
                flags={"read_only": True},
            )
            push_installer.health_errors = AAZListType(
                serialized_name="healthErrors",
                flags={"read_only": True},
            )
            push_installer.id = AAZStrType(
                flags={"read_only": True},
            )
            push_installer.last_heartbeat_utc = AAZStrType(
                serialized_name="lastHeartbeatUtc",
                flags={"read_only": True},
            )
            push_installer.name = AAZStrType(
                flags={"read_only": True},
            )
            push_installer.version = AAZStrType(
                flags={"read_only": True},
            )

            health_errors = cls._schema_on_200.value.Element.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").appliances.Element.push_installer.health_errors
            health_errors.Element = AAZObjectType()
            _ListApplianceHelper._build_schema_health_error_read(health_errors.Element)

            rcm_proxy = cls._schema_on_200.value.Element.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").appliances.Element.rcm_proxy
            rcm_proxy.bios_id = AAZStrType(
                serialized_name="biosId",
                flags={"read_only": True},
            )
            rcm_proxy.client_authentication_type = AAZStrType(
                serialized_name="clientAuthenticationType",
                flags={"read_only": True},
            )
            rcm_proxy.fabric_object_id = AAZStrType(
                serialized_name="fabricObjectId",
                flags={"read_only": True},
            )
            rcm_proxy.fqdn = AAZStrType(
                flags={"read_only": True},
            )
            rcm_proxy.health = AAZStrType(
                flags={"read_only": True},
            )
            rcm_proxy.health_errors = AAZListType(
                serialized_name="healthErrors",
                flags={"read_only": True},
            )
            rcm_proxy.id = AAZStrType(
                flags={"read_only": True},
            )
            rcm_proxy.last_heartbeat_utc = AAZStrType(
                serialized_name="lastHeartbeatUtc",
                flags={"read_only": True},
            )
            rcm_proxy.name = AAZStrType(
                flags={"read_only": True},
            )
            rcm_proxy.version = AAZStrType(
                flags={"read_only": True},
            )

            health_errors = cls._schema_on_200.value.Element.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").appliances.Element.rcm_proxy.health_errors
            health_errors.Element = AAZObjectType()
            _ListApplianceHelper._build_schema_health_error_read(health_errors.Element)

            replication_agent = cls._schema_on_200.value.Element.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").appliances.Element.replication_agent
            replication_agent.bios_id = AAZStrType(
                serialized_name="biosId",
                flags={"read_only": True},
            )
            replication_agent.fabric_object_id = AAZStrType(
                serialized_name="fabricObjectId",
                flags={"read_only": True},
            )
            replication_agent.fqdn = AAZStrType(
                flags={"read_only": True},
            )
            replication_agent.health = AAZStrType(
                flags={"read_only": True},
            )
            replication_agent.health_errors = AAZListType(
                serialized_name="healthErrors",
                flags={"read_only": True},
            )
            replication_agent.id = AAZStrType(
                flags={"read_only": True},
            )
            replication_agent.last_heartbeat_utc = AAZStrType(
                serialized_name="lastHeartbeatUtc",
                flags={"read_only": True},
            )
            replication_agent.name = AAZStrType(
                flags={"read_only": True},
            )
            replication_agent.version = AAZStrType(
                flags={"read_only": True},
            )

            health_errors = cls._schema_on_200.value.Element.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").appliances.Element.replication_agent.health_errors
            health_errors.Element = AAZObjectType()
            _ListApplianceHelper._build_schema_health_error_read(health_errors.Element)

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

            accessible_datastores = cls._schema_on_200.value.Element.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").appliances.Element.reprotect_agent.accessible_datastores
            accessible_datastores.Element = AAZStrType()

            health_errors = cls._schema_on_200.value.Element.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").appliances.Element.reprotect_agent.health_errors
            health_errors.Element = AAZObjectType()
            _ListApplianceHelper._build_schema_health_error_read(health_errors.Element)

            switch_provider_blocking_error_details = cls._schema_on_200.value.Element.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").appliances.Element.switch_provider_blocking_error_details
            switch_provider_blocking_error_details.Element = AAZObjectType()

            _element = cls._schema_on_200.value.Element.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").appliances.Element.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.value.Element.properties.provider_specific_details.discriminate_by("instance_type", "InMageRcm").appliances.Element.switch_provider_blocking_error_details.Element.error_message_parameters
            error_message_parameters.Element = AAZStrType()

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

            return cls._schema_on_200


class _ListApplianceHelper:
    """Helper class for ListAppliance"""

    _schema_health_error_read = None

    @classmethod
    def _build_schema_health_error_read(cls, _schema):
        if cls._schema_health_error_read is not None:
            _schema.creation_time_utc = cls._schema_health_error_read.creation_time_utc
            _schema.customer_resolvability = cls._schema_health_error_read.customer_resolvability
            _schema.entity_id = cls._schema_health_error_read.entity_id
            _schema.error_category = cls._schema_health_error_read.error_category
            _schema.error_code = cls._schema_health_error_read.error_code
            _schema.error_id = cls._schema_health_error_read.error_id
            _schema.error_level = cls._schema_health_error_read.error_level
            _schema.error_message = cls._schema_health_error_read.error_message
            _schema.error_source = cls._schema_health_error_read.error_source
            _schema.error_type = cls._schema_health_error_read.error_type
            _schema.inner_health_errors = cls._schema_health_error_read.inner_health_errors
            _schema.possible_causes = cls._schema_health_error_read.possible_causes
            _schema.recommended_action = cls._schema_health_error_read.recommended_action
            _schema.recovery_provider_error_message = cls._schema_health_error_read.recovery_provider_error_message
            _schema.summary_message = cls._schema_health_error_read.summary_message
            return

        cls._schema_health_error_read = _schema_health_error_read = AAZObjectType()

        health_error_read = _schema_health_error_read
        health_error_read.creation_time_utc = AAZStrType(
            serialized_name="creationTimeUtc",
        )
        health_error_read.customer_resolvability = AAZStrType(
            serialized_name="customerResolvability",
        )
        health_error_read.entity_id = AAZStrType(
            serialized_name="entityId",
        )
        health_error_read.error_category = AAZStrType(
            serialized_name="errorCategory",
        )
        health_error_read.error_code = AAZStrType(
            serialized_name="errorCode",
        )
        health_error_read.error_id = AAZStrType(
            serialized_name="errorId",
        )
        health_error_read.error_level = AAZStrType(
            serialized_name="errorLevel",
        )
        health_error_read.error_message = AAZStrType(
            serialized_name="errorMessage",
        )
        health_error_read.error_source = AAZStrType(
            serialized_name="errorSource",
        )
        health_error_read.error_type = AAZStrType(
            serialized_name="errorType",
        )
        health_error_read.inner_health_errors = AAZListType(
            serialized_name="innerHealthErrors",
        )
        health_error_read.possible_causes = AAZStrType(
            serialized_name="possibleCauses",
        )
        health_error_read.recommended_action = AAZStrType(
            serialized_name="recommendedAction",
        )
        health_error_read.recovery_provider_error_message = AAZStrType(
            serialized_name="recoveryProviderErrorMessage",
        )
        health_error_read.summary_message = AAZStrType(
            serialized_name="summaryMessage",
        )

        inner_health_errors = _schema_health_error_read.inner_health_errors
        inner_health_errors.Element = AAZObjectType()

        _element = _schema_health_error_read.inner_health_errors.Element
        _element.creation_time_utc = AAZStrType(
            serialized_name="creationTimeUtc",
        )
        _element.customer_resolvability = AAZStrType(
            serialized_name="customerResolvability",
        )
        _element.entity_id = AAZStrType(
            serialized_name="entityId",
        )
        _element.error_category = AAZStrType(
            serialized_name="errorCategory",
        )
        _element.error_code = AAZStrType(
            serialized_name="errorCode",
        )
        _element.error_id = AAZStrType(
            serialized_name="errorId",
        )
        _element.error_level = AAZStrType(
            serialized_name="errorLevel",
        )
        _element.error_message = AAZStrType(
            serialized_name="errorMessage",
        )
        _element.error_source = AAZStrType(
            serialized_name="errorSource",
        )
        _element.error_type = AAZStrType(
            serialized_name="errorType",
        )
        _element.possible_causes = AAZStrType(
            serialized_name="possibleCauses",
        )
        _element.recommended_action = AAZStrType(
            serialized_name="recommendedAction",
        )
        _element.recovery_provider_error_message = AAZStrType(
            serialized_name="recoveryProviderErrorMessage",
        )
        _element.summary_message = AAZStrType(
            serialized_name="summaryMessage",
        )

        _schema.creation_time_utc = cls._schema_health_error_read.creation_time_utc
        _schema.customer_resolvability = cls._schema_health_error_read.customer_resolvability
        _schema.entity_id = cls._schema_health_error_read.entity_id
        _schema.error_category = cls._schema_health_error_read.error_category
        _schema.error_code = cls._schema_health_error_read.error_code
        _schema.error_id = cls._schema_health_error_read.error_id
        _schema.error_level = cls._schema_health_error_read.error_level
        _schema.error_message = cls._schema_health_error_read.error_message
        _schema.error_source = cls._schema_health_error_read.error_source
        _schema.error_type = cls._schema_health_error_read.error_type
        _schema.inner_health_errors = cls._schema_health_error_read.inner_health_errors
        _schema.possible_causes = cls._schema_health_error_read.possible_causes
        _schema.recommended_action = cls._schema_health_error_read.recommended_action
        _schema.recovery_provider_error_message = cls._schema_health_error_read.recovery_provider_error_message
        _schema.summary_message = cls._schema_health_error_read.summary_message


__all__ = ["ListAppliance"]
