def _build_schema_application_gateway_read()

in src/azure-cli/azure/cli/command_modules/network/aaz/latest/network/application_gateway/routing_rule/_create.py [0:0]


    def _build_schema_application_gateway_read(cls, _schema):
        if cls._schema_application_gateway_read is not None:
            _schema.etag = cls._schema_application_gateway_read.etag
            _schema.id = cls._schema_application_gateway_read.id
            _schema.identity = cls._schema_application_gateway_read.identity
            _schema.location = cls._schema_application_gateway_read.location
            _schema.name = cls._schema_application_gateway_read.name
            _schema.properties = cls._schema_application_gateway_read.properties
            _schema.tags = cls._schema_application_gateway_read.tags
            _schema.type = cls._schema_application_gateway_read.type
            _schema.zones = cls._schema_application_gateway_read.zones
            return

        cls._schema_application_gateway_read = _schema_application_gateway_read = AAZObjectType()

        application_gateway_read = _schema_application_gateway_read
        application_gateway_read.etag = AAZStrType(
            flags={"read_only": True},
        )
        application_gateway_read.id = AAZStrType()
        application_gateway_read.identity = AAZObjectType()
        application_gateway_read.location = AAZStrType()
        application_gateway_read.name = AAZStrType(
            flags={"read_only": True},
        )
        application_gateway_read.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        application_gateway_read.tags = AAZDictType()
        application_gateway_read.type = AAZStrType(
            flags={"read_only": True},
        )
        application_gateway_read.zones = AAZListType()

        identity = _schema_application_gateway_read.identity
        identity.principal_id = AAZStrType(
            serialized_name="principalId",
            flags={"read_only": True},
        )
        identity.tenant_id = AAZStrType(
            serialized_name="tenantId",
            flags={"read_only": True},
        )
        identity.type = AAZStrType()
        identity.user_assigned_identities = AAZDictType(
            serialized_name="userAssignedIdentities",
        )

        user_assigned_identities = _schema_application_gateway_read.identity.user_assigned_identities
        user_assigned_identities.Element = AAZObjectType()

        _element = _schema_application_gateway_read.identity.user_assigned_identities.Element
        _element.client_id = AAZStrType(
            serialized_name="clientId",
            flags={"read_only": True},
        )
        _element.principal_id = AAZStrType(
            serialized_name="principalId",
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties
        properties.authentication_certificates = AAZListType(
            serialized_name="authenticationCertificates",
        )
        properties.autoscale_configuration = AAZObjectType(
            serialized_name="autoscaleConfiguration",
        )
        properties.backend_address_pools = AAZListType(
            serialized_name="backendAddressPools",
        )
        properties.backend_http_settings_collection = AAZListType(
            serialized_name="backendHttpSettingsCollection",
        )
        properties.backend_settings_collection = AAZListType(
            serialized_name="backendSettingsCollection",
        )
        properties.custom_error_configurations = AAZListType(
            serialized_name="customErrorConfigurations",
        )
        properties.default_predefined_ssl_policy = AAZStrType(
            serialized_name="defaultPredefinedSslPolicy",
            flags={"read_only": True},
        )
        properties.enable_fips = AAZBoolType(
            serialized_name="enableFips",
        )
        properties.enable_http2 = AAZBoolType(
            serialized_name="enableHttp2",
        )
        properties.firewall_policy = AAZObjectType(
            serialized_name="firewallPolicy",
        )
        cls._build_schema_sub_resource_read(properties.firewall_policy)
        properties.force_firewall_policy_association = AAZBoolType(
            serialized_name="forceFirewallPolicyAssociation",
        )
        properties.frontend_ip_configurations = AAZListType(
            serialized_name="frontendIPConfigurations",
        )
        properties.frontend_ports = AAZListType(
            serialized_name="frontendPorts",
        )
        properties.gateway_ip_configurations = AAZListType(
            serialized_name="gatewayIPConfigurations",
        )
        properties.global_configuration = AAZObjectType(
            serialized_name="globalConfiguration",
        )
        properties.http_listeners = AAZListType(
            serialized_name="httpListeners",
        )
        properties.listeners = AAZListType()
        properties.load_distribution_policies = AAZListType(
            serialized_name="loadDistributionPolicies",
        )
        properties.operational_state = AAZStrType(
            serialized_name="operationalState",
            flags={"read_only": True},
        )
        properties.private_endpoint_connections = AAZListType(
            serialized_name="privateEndpointConnections",
            flags={"read_only": True},
        )
        properties.private_link_configurations = AAZListType(
            serialized_name="privateLinkConfigurations",
        )
        properties.probes = AAZListType()
        properties.provisioning_state = AAZStrType(
            serialized_name="provisioningState",
            flags={"read_only": True},
        )
        properties.redirect_configurations = AAZListType(
            serialized_name="redirectConfigurations",
        )
        properties.request_routing_rules = AAZListType(
            serialized_name="requestRoutingRules",
        )
        properties.resource_guid = AAZStrType(
            serialized_name="resourceGuid",
            flags={"read_only": True},
        )
        properties.rewrite_rule_sets = AAZListType(
            serialized_name="rewriteRuleSets",
        )
        properties.routing_rules = AAZListType(
            serialized_name="routingRules",
        )
        properties.sku = AAZObjectType()
        properties.ssl_certificates = AAZListType(
            serialized_name="sslCertificates",
        )
        properties.ssl_policy = AAZObjectType(
            serialized_name="sslPolicy",
        )
        cls._build_schema_application_gateway_ssl_policy_read(properties.ssl_policy)
        properties.ssl_profiles = AAZListType(
            serialized_name="sslProfiles",
        )
        properties.trusted_client_certificates = AAZListType(
            serialized_name="trustedClientCertificates",
        )
        properties.trusted_root_certificates = AAZListType(
            serialized_name="trustedRootCertificates",
        )
        properties.url_path_maps = AAZListType(
            serialized_name="urlPathMaps",
        )
        properties.web_application_firewall_configuration = AAZObjectType(
            serialized_name="webApplicationFirewallConfiguration",
        )

        authentication_certificates = _schema_application_gateway_read.properties.authentication_certificates
        authentication_certificates.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.authentication_certificates.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        _element.type = AAZStrType(
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties.authentication_certificates.Element.properties
        properties.data = AAZStrType()
        properties.provisioning_state = AAZStrType(
            serialized_name="provisioningState",
            flags={"read_only": True},
        )

        autoscale_configuration = _schema_application_gateway_read.properties.autoscale_configuration
        autoscale_configuration.max_capacity = AAZIntType(
            serialized_name="maxCapacity",
        )
        autoscale_configuration.min_capacity = AAZIntType(
            serialized_name="minCapacity",
            flags={"required": True},
        )

        backend_address_pools = _schema_application_gateway_read.properties.backend_address_pools
        backend_address_pools.Element = AAZObjectType()
        cls._build_schema_application_gateway_backend_address_pool_read(backend_address_pools.Element)

        backend_http_settings_collection = _schema_application_gateway_read.properties.backend_http_settings_collection
        backend_http_settings_collection.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.backend_http_settings_collection.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        _element.type = AAZStrType(
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties.backend_http_settings_collection.Element.properties
        properties.affinity_cookie_name = AAZStrType(
            serialized_name="affinityCookieName",
        )
        properties.authentication_certificates = AAZListType(
            serialized_name="authenticationCertificates",
        )
        properties.connection_draining = AAZObjectType(
            serialized_name="connectionDraining",
        )
        properties.cookie_based_affinity = AAZStrType(
            serialized_name="cookieBasedAffinity",
        )
        properties.host_name = AAZStrType(
            serialized_name="hostName",
        )
        properties.path = AAZStrType()
        properties.pick_host_name_from_backend_address = AAZBoolType(
            serialized_name="pickHostNameFromBackendAddress",
        )
        properties.port = AAZIntType()
        properties.probe = AAZObjectType()
        cls._build_schema_sub_resource_read(properties.probe)
        properties.probe_enabled = AAZBoolType(
            serialized_name="probeEnabled",
        )
        properties.protocol = AAZStrType()
        properties.provisioning_state = AAZStrType(
            serialized_name="provisioningState",
            flags={"read_only": True},
        )
        properties.request_timeout = AAZIntType(
            serialized_name="requestTimeout",
        )
        properties.trusted_root_certificates = AAZListType(
            serialized_name="trustedRootCertificates",
        )

        authentication_certificates = _schema_application_gateway_read.properties.backend_http_settings_collection.Element.properties.authentication_certificates
        authentication_certificates.Element = AAZObjectType()
        cls._build_schema_sub_resource_read(authentication_certificates.Element)

        connection_draining = _schema_application_gateway_read.properties.backend_http_settings_collection.Element.properties.connection_draining
        connection_draining.drain_timeout_in_sec = AAZIntType(
            serialized_name="drainTimeoutInSec",
            flags={"required": True},
        )
        connection_draining.enabled = AAZBoolType(
            flags={"required": True},
        )

        trusted_root_certificates = _schema_application_gateway_read.properties.backend_http_settings_collection.Element.properties.trusted_root_certificates
        trusted_root_certificates.Element = AAZObjectType()
        cls._build_schema_sub_resource_read(trusted_root_certificates.Element)

        backend_settings_collection = _schema_application_gateway_read.properties.backend_settings_collection
        backend_settings_collection.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.backend_settings_collection.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        _element.type = AAZStrType(
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties.backend_settings_collection.Element.properties
        properties.host_name = AAZStrType(
            serialized_name="hostName",
        )
        properties.pick_host_name_from_backend_address = AAZBoolType(
            serialized_name="pickHostNameFromBackendAddress",
        )
        properties.port = AAZIntType()
        properties.probe = AAZObjectType()
        cls._build_schema_sub_resource_read(properties.probe)
        properties.protocol = AAZStrType()
        properties.provisioning_state = AAZStrType(
            serialized_name="provisioningState",
            flags={"read_only": True},
        )
        properties.timeout = AAZIntType()
        properties.trusted_root_certificates = AAZListType(
            serialized_name="trustedRootCertificates",
        )

        trusted_root_certificates = _schema_application_gateway_read.properties.backend_settings_collection.Element.properties.trusted_root_certificates
        trusted_root_certificates.Element = AAZObjectType()
        cls._build_schema_sub_resource_read(trusted_root_certificates.Element)

        custom_error_configurations = _schema_application_gateway_read.properties.custom_error_configurations
        custom_error_configurations.Element = AAZObjectType()
        cls._build_schema_application_gateway_custom_error_read(custom_error_configurations.Element)

        frontend_ip_configurations = _schema_application_gateway_read.properties.frontend_ip_configurations
        frontend_ip_configurations.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.frontend_ip_configurations.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        _element.type = AAZStrType(
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties.frontend_ip_configurations.Element.properties
        properties.private_ip_address = AAZStrType(
            serialized_name="privateIPAddress",
        )
        properties.private_ip_allocation_method = AAZStrType(
            serialized_name="privateIPAllocationMethod",
        )
        properties.private_link_configuration = AAZObjectType(
            serialized_name="privateLinkConfiguration",
        )
        cls._build_schema_sub_resource_read(properties.private_link_configuration)
        properties.provisioning_state = AAZStrType(
            serialized_name="provisioningState",
            flags={"read_only": True},
        )
        properties.public_ip_address = AAZObjectType(
            serialized_name="publicIPAddress",
        )
        cls._build_schema_sub_resource_read(properties.public_ip_address)
        properties.subnet = AAZObjectType()
        cls._build_schema_sub_resource_read(properties.subnet)

        frontend_ports = _schema_application_gateway_read.properties.frontend_ports
        frontend_ports.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.frontend_ports.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        _element.type = AAZStrType(
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties.frontend_ports.Element.properties
        properties.port = AAZIntType()
        properties.provisioning_state = AAZStrType(
            serialized_name="provisioningState",
            flags={"read_only": True},
        )

        gateway_ip_configurations = _schema_application_gateway_read.properties.gateway_ip_configurations
        gateway_ip_configurations.Element = AAZObjectType()
        cls._build_schema_application_gateway_ip_configuration_read(gateway_ip_configurations.Element)

        global_configuration = _schema_application_gateway_read.properties.global_configuration
        global_configuration.enable_request_buffering = AAZBoolType(
            serialized_name="enableRequestBuffering",
        )
        global_configuration.enable_response_buffering = AAZBoolType(
            serialized_name="enableResponseBuffering",
        )

        http_listeners = _schema_application_gateway_read.properties.http_listeners
        http_listeners.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.http_listeners.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        _element.type = AAZStrType(
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties.http_listeners.Element.properties
        properties.custom_error_configurations = AAZListType(
            serialized_name="customErrorConfigurations",
        )
        properties.firewall_policy = AAZObjectType(
            serialized_name="firewallPolicy",
        )
        cls._build_schema_sub_resource_read(properties.firewall_policy)
        properties.frontend_ip_configuration = AAZObjectType(
            serialized_name="frontendIPConfiguration",
        )
        cls._build_schema_sub_resource_read(properties.frontend_ip_configuration)
        properties.frontend_port = AAZObjectType(
            serialized_name="frontendPort",
        )
        cls._build_schema_sub_resource_read(properties.frontend_port)
        properties.host_name = AAZStrType(
            serialized_name="hostName",
        )
        properties.host_names = AAZListType(
            serialized_name="hostNames",
        )
        properties.protocol = AAZStrType()
        properties.provisioning_state = AAZStrType(
            serialized_name="provisioningState",
            flags={"read_only": True},
        )
        properties.require_server_name_indication = AAZBoolType(
            serialized_name="requireServerNameIndication",
        )
        properties.ssl_certificate = AAZObjectType(
            serialized_name="sslCertificate",
        )
        cls._build_schema_sub_resource_read(properties.ssl_certificate)
        properties.ssl_profile = AAZObjectType(
            serialized_name="sslProfile",
        )
        cls._build_schema_sub_resource_read(properties.ssl_profile)

        custom_error_configurations = _schema_application_gateway_read.properties.http_listeners.Element.properties.custom_error_configurations
        custom_error_configurations.Element = AAZObjectType()
        cls._build_schema_application_gateway_custom_error_read(custom_error_configurations.Element)

        host_names = _schema_application_gateway_read.properties.http_listeners.Element.properties.host_names
        host_names.Element = AAZStrType()

        listeners = _schema_application_gateway_read.properties.listeners
        listeners.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.listeners.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        _element.type = AAZStrType(
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties.listeners.Element.properties
        properties.frontend_ip_configuration = AAZObjectType(
            serialized_name="frontendIPConfiguration",
        )
        cls._build_schema_sub_resource_read(properties.frontend_ip_configuration)
        properties.frontend_port = AAZObjectType(
            serialized_name="frontendPort",
        )
        cls._build_schema_sub_resource_read(properties.frontend_port)
        properties.host_names = AAZListType(
            serialized_name="hostNames",
        )
        properties.protocol = AAZStrType()
        properties.provisioning_state = AAZStrType(
            serialized_name="provisioningState",
            flags={"read_only": True},
        )
        properties.ssl_certificate = AAZObjectType(
            serialized_name="sslCertificate",
        )
        cls._build_schema_sub_resource_read(properties.ssl_certificate)
        properties.ssl_profile = AAZObjectType(
            serialized_name="sslProfile",
        )
        cls._build_schema_sub_resource_read(properties.ssl_profile)

        host_names = _schema_application_gateway_read.properties.listeners.Element.properties.host_names
        host_names.Element = AAZStrType()

        load_distribution_policies = _schema_application_gateway_read.properties.load_distribution_policies
        load_distribution_policies.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.load_distribution_policies.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        _element.type = AAZStrType(
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties.load_distribution_policies.Element.properties
        properties.load_distribution_algorithm = AAZStrType(
            serialized_name="loadDistributionAlgorithm",
        )
        properties.load_distribution_targets = AAZListType(
            serialized_name="loadDistributionTargets",
        )
        properties.provisioning_state = AAZStrType(
            serialized_name="provisioningState",
            flags={"read_only": True},
        )

        load_distribution_targets = _schema_application_gateway_read.properties.load_distribution_policies.Element.properties.load_distribution_targets
        load_distribution_targets.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.load_distribution_policies.Element.properties.load_distribution_targets.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        _element.type = AAZStrType(
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties.load_distribution_policies.Element.properties.load_distribution_targets.Element.properties
        properties.backend_address_pool = AAZObjectType(
            serialized_name="backendAddressPool",
        )
        cls._build_schema_sub_resource_read(properties.backend_address_pool)
        properties.weight_per_server = AAZIntType(
            serialized_name="weightPerServer",
        )

        private_endpoint_connections = _schema_application_gateway_read.properties.private_endpoint_connections
        private_endpoint_connections.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.private_endpoint_connections.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        _element.type = AAZStrType(
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties.private_endpoint_connections.Element.properties
        properties.link_identifier = AAZStrType(
            serialized_name="linkIdentifier",
            flags={"read_only": True},
        )
        properties.private_endpoint = AAZObjectType(
            serialized_name="privateEndpoint",
            flags={"read_only": True},
        )
        cls._build_schema_private_endpoint_read(properties.private_endpoint)
        properties.private_link_service_connection_state = AAZObjectType(
            serialized_name="privateLinkServiceConnectionState",
        )
        cls._build_schema_private_link_service_connection_state_read(properties.private_link_service_connection_state)
        properties.provisioning_state = AAZStrType(
            serialized_name="provisioningState",
            flags={"read_only": True},
        )

        private_link_configurations = _schema_application_gateway_read.properties.private_link_configurations
        private_link_configurations.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.private_link_configurations.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        _element.type = AAZStrType(
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties.private_link_configurations.Element.properties
        properties.ip_configurations = AAZListType(
            serialized_name="ipConfigurations",
        )
        properties.provisioning_state = AAZStrType(
            serialized_name="provisioningState",
            flags={"read_only": True},
        )

        ip_configurations = _schema_application_gateway_read.properties.private_link_configurations.Element.properties.ip_configurations
        ip_configurations.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.private_link_configurations.Element.properties.ip_configurations.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        _element.type = AAZStrType(
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties.private_link_configurations.Element.properties.ip_configurations.Element.properties
        properties.primary = AAZBoolType()
        properties.private_ip_address = AAZStrType(
            serialized_name="privateIPAddress",
        )
        properties.private_ip_allocation_method = AAZStrType(
            serialized_name="privateIPAllocationMethod",
        )
        properties.provisioning_state = AAZStrType(
            serialized_name="provisioningState",
            flags={"read_only": True},
        )
        properties.subnet = AAZObjectType()
        cls._build_schema_sub_resource_read(properties.subnet)

        probes = _schema_application_gateway_read.properties.probes
        probes.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.probes.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        _element.type = AAZStrType(
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties.probes.Element.properties
        properties.host = AAZStrType()
        properties.interval = AAZIntType()
        properties.match = AAZObjectType()
        properties.min_servers = AAZIntType(
            serialized_name="minServers",
        )
        properties.path = AAZStrType()
        properties.pick_host_name_from_backend_http_settings = AAZBoolType(
            serialized_name="pickHostNameFromBackendHttpSettings",
        )
        properties.pick_host_name_from_backend_settings = AAZBoolType(
            serialized_name="pickHostNameFromBackendSettings",
        )
        properties.port = AAZIntType()
        properties.protocol = AAZStrType()
        properties.provisioning_state = AAZStrType(
            serialized_name="provisioningState",
            flags={"read_only": True},
        )
        properties.timeout = AAZIntType()
        properties.unhealthy_threshold = AAZIntType(
            serialized_name="unhealthyThreshold",
        )

        match = _schema_application_gateway_read.properties.probes.Element.properties.match
        match.body = AAZStrType()
        match.status_codes = AAZListType(
            serialized_name="statusCodes",
        )

        status_codes = _schema_application_gateway_read.properties.probes.Element.properties.match.status_codes
        status_codes.Element = AAZStrType()

        redirect_configurations = _schema_application_gateway_read.properties.redirect_configurations
        redirect_configurations.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.redirect_configurations.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        _element.type = AAZStrType(
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties.redirect_configurations.Element.properties
        properties.include_path = AAZBoolType(
            serialized_name="includePath",
        )
        properties.include_query_string = AAZBoolType(
            serialized_name="includeQueryString",
        )
        properties.path_rules = AAZListType(
            serialized_name="pathRules",
        )
        properties.redirect_type = AAZStrType(
            serialized_name="redirectType",
        )
        properties.request_routing_rules = AAZListType(
            serialized_name="requestRoutingRules",
        )
        properties.target_listener = AAZObjectType(
            serialized_name="targetListener",
        )
        cls._build_schema_sub_resource_read(properties.target_listener)
        properties.target_url = AAZStrType(
            serialized_name="targetUrl",
        )
        properties.url_path_maps = AAZListType(
            serialized_name="urlPathMaps",
        )

        path_rules = _schema_application_gateway_read.properties.redirect_configurations.Element.properties.path_rules
        path_rules.Element = AAZObjectType()
        cls._build_schema_sub_resource_read(path_rules.Element)

        request_routing_rules = _schema_application_gateway_read.properties.redirect_configurations.Element.properties.request_routing_rules
        request_routing_rules.Element = AAZObjectType()
        cls._build_schema_sub_resource_read(request_routing_rules.Element)

        url_path_maps = _schema_application_gateway_read.properties.redirect_configurations.Element.properties.url_path_maps
        url_path_maps.Element = AAZObjectType()
        cls._build_schema_sub_resource_read(url_path_maps.Element)

        request_routing_rules = _schema_application_gateway_read.properties.request_routing_rules
        request_routing_rules.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.request_routing_rules.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        _element.type = AAZStrType(
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties.request_routing_rules.Element.properties
        properties.backend_address_pool = AAZObjectType(
            serialized_name="backendAddressPool",
        )
        cls._build_schema_sub_resource_read(properties.backend_address_pool)
        properties.backend_http_settings = AAZObjectType(
            serialized_name="backendHttpSettings",
        )
        cls._build_schema_sub_resource_read(properties.backend_http_settings)
        properties.http_listener = AAZObjectType(
            serialized_name="httpListener",
        )
        cls._build_schema_sub_resource_read(properties.http_listener)
        properties.load_distribution_policy = AAZObjectType(
            serialized_name="loadDistributionPolicy",
        )
        cls._build_schema_sub_resource_read(properties.load_distribution_policy)
        properties.priority = AAZIntType()
        properties.provisioning_state = AAZStrType(
            serialized_name="provisioningState",
            flags={"read_only": True},
        )
        properties.redirect_configuration = AAZObjectType(
            serialized_name="redirectConfiguration",
        )
        cls._build_schema_sub_resource_read(properties.redirect_configuration)
        properties.rewrite_rule_set = AAZObjectType(
            serialized_name="rewriteRuleSet",
        )
        cls._build_schema_sub_resource_read(properties.rewrite_rule_set)
        properties.rule_type = AAZStrType(
            serialized_name="ruleType",
        )
        properties.url_path_map = AAZObjectType(
            serialized_name="urlPathMap",
        )
        cls._build_schema_sub_resource_read(properties.url_path_map)

        rewrite_rule_sets = _schema_application_gateway_read.properties.rewrite_rule_sets
        rewrite_rule_sets.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.rewrite_rule_sets.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )

        properties = _schema_application_gateway_read.properties.rewrite_rule_sets.Element.properties
        properties.provisioning_state = AAZStrType(
            serialized_name="provisioningState",
            flags={"read_only": True},
        )
        properties.rewrite_rules = AAZListType(
            serialized_name="rewriteRules",
        )

        rewrite_rules = _schema_application_gateway_read.properties.rewrite_rule_sets.Element.properties.rewrite_rules
        rewrite_rules.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.rewrite_rule_sets.Element.properties.rewrite_rules.Element
        _element.action_set = AAZObjectType(
            serialized_name="actionSet",
        )
        _element.conditions = AAZListType()
        _element.name = AAZStrType()
        _element.rule_sequence = AAZIntType(
            serialized_name="ruleSequence",
        )

        action_set = _schema_application_gateway_read.properties.rewrite_rule_sets.Element.properties.rewrite_rules.Element.action_set
        action_set.request_header_configurations = AAZListType(
            serialized_name="requestHeaderConfigurations",
        )
        action_set.response_header_configurations = AAZListType(
            serialized_name="responseHeaderConfigurations",
        )
        action_set.url_configuration = AAZObjectType(
            serialized_name="urlConfiguration",
        )

        request_header_configurations = _schema_application_gateway_read.properties.rewrite_rule_sets.Element.properties.rewrite_rules.Element.action_set.request_header_configurations
        request_header_configurations.Element = AAZObjectType()
        cls._build_schema_application_gateway_header_configuration_read(request_header_configurations.Element)

        response_header_configurations = _schema_application_gateway_read.properties.rewrite_rule_sets.Element.properties.rewrite_rules.Element.action_set.response_header_configurations
        response_header_configurations.Element = AAZObjectType()
        cls._build_schema_application_gateway_header_configuration_read(response_header_configurations.Element)

        url_configuration = _schema_application_gateway_read.properties.rewrite_rule_sets.Element.properties.rewrite_rules.Element.action_set.url_configuration
        url_configuration.modified_path = AAZStrType(
            serialized_name="modifiedPath",
        )
        url_configuration.modified_query_string = AAZStrType(
            serialized_name="modifiedQueryString",
        )
        url_configuration.reroute = AAZBoolType()

        conditions = _schema_application_gateway_read.properties.rewrite_rule_sets.Element.properties.rewrite_rules.Element.conditions
        conditions.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.rewrite_rule_sets.Element.properties.rewrite_rules.Element.conditions.Element
        _element.ignore_case = AAZBoolType(
            serialized_name="ignoreCase",
        )
        _element.negate = AAZBoolType()
        _element.pattern = AAZStrType()
        _element.variable = AAZStrType()

        routing_rules = _schema_application_gateway_read.properties.routing_rules
        routing_rules.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.routing_rules.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        _element.type = AAZStrType(
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties.routing_rules.Element.properties
        properties.backend_address_pool = AAZObjectType(
            serialized_name="backendAddressPool",
        )
        cls._build_schema_sub_resource_read(properties.backend_address_pool)
        properties.backend_settings = AAZObjectType(
            serialized_name="backendSettings",
        )
        cls._build_schema_sub_resource_read(properties.backend_settings)
        properties.listener = AAZObjectType()
        cls._build_schema_sub_resource_read(properties.listener)
        properties.priority = AAZIntType(
            flags={"required": True},
        )
        properties.provisioning_state = AAZStrType(
            serialized_name="provisioningState",
            flags={"read_only": True},
        )
        properties.rule_type = AAZStrType(
            serialized_name="ruleType",
        )

        sku = _schema_application_gateway_read.properties.sku
        sku.capacity = AAZIntType()
        sku.family = AAZStrType()
        sku.name = AAZStrType()
        sku.tier = AAZStrType()

        ssl_certificates = _schema_application_gateway_read.properties.ssl_certificates
        ssl_certificates.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.ssl_certificates.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        _element.type = AAZStrType(
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties.ssl_certificates.Element.properties
        properties.data = AAZStrType()
        properties.key_vault_secret_id = AAZStrType(
            serialized_name="keyVaultSecretId",
        )
        properties.password = AAZStrType()
        properties.provisioning_state = AAZStrType(
            serialized_name="provisioningState",
            flags={"read_only": True},
        )
        properties.public_cert_data = AAZStrType(
            serialized_name="publicCertData",
            flags={"read_only": True},
        )

        ssl_profiles = _schema_application_gateway_read.properties.ssl_profiles
        ssl_profiles.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.ssl_profiles.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        _element.type = AAZStrType(
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties.ssl_profiles.Element.properties
        properties.client_auth_configuration = AAZObjectType(
            serialized_name="clientAuthConfiguration",
        )
        properties.provisioning_state = AAZStrType(
            serialized_name="provisioningState",
            flags={"read_only": True},
        )
        properties.ssl_policy = AAZObjectType(
            serialized_name="sslPolicy",
        )
        cls._build_schema_application_gateway_ssl_policy_read(properties.ssl_policy)
        properties.trusted_client_certificates = AAZListType(
            serialized_name="trustedClientCertificates",
        )

        client_auth_configuration = _schema_application_gateway_read.properties.ssl_profiles.Element.properties.client_auth_configuration
        client_auth_configuration.verify_client_cert_issuer_dn = AAZBoolType(
            serialized_name="verifyClientCertIssuerDN",
        )
        client_auth_configuration.verify_client_revocation = AAZStrType(
            serialized_name="verifyClientRevocation",
        )

        trusted_client_certificates = _schema_application_gateway_read.properties.ssl_profiles.Element.properties.trusted_client_certificates
        trusted_client_certificates.Element = AAZObjectType()
        cls._build_schema_sub_resource_read(trusted_client_certificates.Element)

        trusted_client_certificates = _schema_application_gateway_read.properties.trusted_client_certificates
        trusted_client_certificates.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.trusted_client_certificates.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        _element.type = AAZStrType(
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties.trusted_client_certificates.Element.properties
        properties.client_cert_issuer_dn = AAZStrType(
            serialized_name="clientCertIssuerDN",
            flags={"read_only": True},
        )
        properties.data = AAZStrType()
        properties.provisioning_state = AAZStrType(
            serialized_name="provisioningState",
            flags={"read_only": True},
        )
        properties.validated_cert_data = AAZStrType(
            serialized_name="validatedCertData",
            flags={"read_only": True},
        )

        trusted_root_certificates = _schema_application_gateway_read.properties.trusted_root_certificates
        trusted_root_certificates.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.trusted_root_certificates.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        _element.type = AAZStrType(
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties.trusted_root_certificates.Element.properties
        properties.data = AAZStrType()
        properties.key_vault_secret_id = AAZStrType(
            serialized_name="keyVaultSecretId",
        )
        properties.provisioning_state = AAZStrType(
            serialized_name="provisioningState",
            flags={"read_only": True},
        )

        url_path_maps = _schema_application_gateway_read.properties.url_path_maps
        url_path_maps.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.url_path_maps.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        _element.type = AAZStrType(
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties.url_path_maps.Element.properties
        properties.default_backend_address_pool = AAZObjectType(
            serialized_name="defaultBackendAddressPool",
        )
        cls._build_schema_sub_resource_read(properties.default_backend_address_pool)
        properties.default_backend_http_settings = AAZObjectType(
            serialized_name="defaultBackendHttpSettings",
        )
        cls._build_schema_sub_resource_read(properties.default_backend_http_settings)
        properties.default_load_distribution_policy = AAZObjectType(
            serialized_name="defaultLoadDistributionPolicy",
        )
        cls._build_schema_sub_resource_read(properties.default_load_distribution_policy)
        properties.default_redirect_configuration = AAZObjectType(
            serialized_name="defaultRedirectConfiguration",
        )
        cls._build_schema_sub_resource_read(properties.default_redirect_configuration)
        properties.default_rewrite_rule_set = AAZObjectType(
            serialized_name="defaultRewriteRuleSet",
        )
        cls._build_schema_sub_resource_read(properties.default_rewrite_rule_set)
        properties.path_rules = AAZListType(
            serialized_name="pathRules",
        )
        properties.provisioning_state = AAZStrType(
            serialized_name="provisioningState",
            flags={"read_only": True},
        )

        path_rules = _schema_application_gateway_read.properties.url_path_maps.Element.properties.path_rules
        path_rules.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.url_path_maps.Element.properties.path_rules.Element
        _element.etag = AAZStrType(
            flags={"read_only": True},
        )
        _element.id = AAZStrType()
        _element.name = AAZStrType()
        _element.properties = AAZObjectType(
            flags={"client_flatten": True},
        )
        _element.type = AAZStrType(
            flags={"read_only": True},
        )

        properties = _schema_application_gateway_read.properties.url_path_maps.Element.properties.path_rules.Element.properties
        properties.backend_address_pool = AAZObjectType(
            serialized_name="backendAddressPool",
        )
        cls._build_schema_sub_resource_read(properties.backend_address_pool)
        properties.backend_http_settings = AAZObjectType(
            serialized_name="backendHttpSettings",
        )
        cls._build_schema_sub_resource_read(properties.backend_http_settings)
        properties.firewall_policy = AAZObjectType(
            serialized_name="firewallPolicy",
        )
        cls._build_schema_sub_resource_read(properties.firewall_policy)
        properties.load_distribution_policy = AAZObjectType(
            serialized_name="loadDistributionPolicy",
        )
        cls._build_schema_sub_resource_read(properties.load_distribution_policy)
        properties.paths = AAZListType()
        properties.provisioning_state = AAZStrType(
            serialized_name="provisioningState",
            flags={"read_only": True},
        )
        properties.redirect_configuration = AAZObjectType(
            serialized_name="redirectConfiguration",
        )
        cls._build_schema_sub_resource_read(properties.redirect_configuration)
        properties.rewrite_rule_set = AAZObjectType(
            serialized_name="rewriteRuleSet",
        )
        cls._build_schema_sub_resource_read(properties.rewrite_rule_set)

        paths = _schema_application_gateway_read.properties.url_path_maps.Element.properties.path_rules.Element.properties.paths
        paths.Element = AAZStrType()

        web_application_firewall_configuration = _schema_application_gateway_read.properties.web_application_firewall_configuration
        web_application_firewall_configuration.disabled_rule_groups = AAZListType(
            serialized_name="disabledRuleGroups",
        )
        web_application_firewall_configuration.enabled = AAZBoolType(
            flags={"required": True},
        )
        web_application_firewall_configuration.exclusions = AAZListType()
        web_application_firewall_configuration.file_upload_limit_in_mb = AAZIntType(
            serialized_name="fileUploadLimitInMb",
        )
        web_application_firewall_configuration.firewall_mode = AAZStrType(
            serialized_name="firewallMode",
            flags={"required": True},
        )
        web_application_firewall_configuration.max_request_body_size = AAZIntType(
            serialized_name="maxRequestBodySize",
        )
        web_application_firewall_configuration.max_request_body_size_in_kb = AAZIntType(
            serialized_name="maxRequestBodySizeInKb",
        )
        web_application_firewall_configuration.request_body_check = AAZBoolType(
            serialized_name="requestBodyCheck",
        )
        web_application_firewall_configuration.rule_set_type = AAZStrType(
            serialized_name="ruleSetType",
            flags={"required": True},
        )
        web_application_firewall_configuration.rule_set_version = AAZStrType(
            serialized_name="ruleSetVersion",
            flags={"required": True},
        )

        disabled_rule_groups = _schema_application_gateway_read.properties.web_application_firewall_configuration.disabled_rule_groups
        disabled_rule_groups.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.web_application_firewall_configuration.disabled_rule_groups.Element
        _element.rule_group_name = AAZStrType(
            serialized_name="ruleGroupName",
            flags={"required": True},
        )
        _element.rules = AAZListType()

        rules = _schema_application_gateway_read.properties.web_application_firewall_configuration.disabled_rule_groups.Element.rules
        rules.Element = AAZIntType()

        exclusions = _schema_application_gateway_read.properties.web_application_firewall_configuration.exclusions
        exclusions.Element = AAZObjectType()

        _element = _schema_application_gateway_read.properties.web_application_firewall_configuration.exclusions.Element
        _element.match_variable = AAZStrType(
            serialized_name="matchVariable",
            flags={"required": True},
        )
        _element.selector = AAZStrType(
            flags={"required": True},
        )
        _element.selector_match_operator = AAZStrType(
            serialized_name="selectorMatchOperator",
            flags={"required": True},
        )

        tags = _schema_application_gateway_read.tags
        tags.Element = AAZStrType()

        zones = _schema_application_gateway_read.zones
        zones.Element = AAZStrType()

        _schema.etag = cls._schema_application_gateway_read.etag
        _schema.id = cls._schema_application_gateway_read.id
        _schema.identity = cls._schema_application_gateway_read.identity
        _schema.location = cls._schema_application_gateway_read.location
        _schema.name = cls._schema_application_gateway_read.name
        _schema.properties = cls._schema_application_gateway_read.properties
        _schema.tags = cls._schema_application_gateway_read.tags
        _schema.type = cls._schema_application_gateway_read.type
        _schema.zones = cls._schema_application_gateway_read.zones