def __init__(__self__, authentication_certificates=None, autoscale_configuration=None, backend_address_pools=None, backend_http_settings_collection=None, custom_error_configurations=None, enable_fips=None, enable_http2=None, etag=None, firewall_policy=None, force_firewall_policy_association=None, frontend_ip_configurations=None, frontend_ports=None, gateway_ip_configurations=None, http_listeners=None, id=None, identity=None, location=None, name=None, operational_state=None, private_endpoint_connections=None, private_link_configurations=None, probes=None, provisioning_state=None, redirect_configurations=None, request_routing_rules=None, resource_guid=None, rewrite_rule_sets=None, sku=None, ssl_certificates=None, ssl_policy=None, ssl_profiles=None, tags=None, trusted_client_certificates=None, trusted_root_certificates=None, type=None, url_path_maps=None, web_application_firewall_configuration=None, zones=None):
    if (authentication_certificates and (not isinstance(authentication_certificates, list))):
        raise TypeError("Expected argument 'authentication_certificates' to be a list")
    pulumi.set(__self__, 'authentication_certificates', authentication_certificates)
    if (autoscale_configuration and (not isinstance(autoscale_configuration, dict))):
        raise TypeError("Expected argument 'autoscale_configuration' to be a dict")
    pulumi.set(__self__, 'autoscale_configuration', autoscale_configuration)
    if (backend_address_pools and (not isinstance(backend_address_pools, list))):
        raise TypeError("Expected argument 'backend_address_pools' to be a list")
    pulumi.set(__self__, 'backend_address_pools', backend_address_pools)
    if (backend_http_settings_collection and (not isinstance(backend_http_settings_collection, list))):
        raise TypeError("Expected argument 'backend_http_settings_collection' to be a list")
    pulumi.set(__self__, 'backend_http_settings_collection', backend_http_settings_collection)
    if (custom_error_configurations and (not isinstance(custom_error_configurations, list))):
        raise TypeError("Expected argument 'custom_error_configurations' to be a list")
    pulumi.set(__self__, 'custom_error_configurations', custom_error_configurations)
    if (enable_fips and (not isinstance(enable_fips, bool))):
        raise TypeError("Expected argument 'enable_fips' to be a bool")
    pulumi.set(__self__, 'enable_fips', enable_fips)
    if (enable_http2 and (not isinstance(enable_http2, bool))):
        raise TypeError("Expected argument 'enable_http2' to be a bool")
    pulumi.set(__self__, 'enable_http2', enable_http2)
    if (etag and (not isinstance(etag, str))):
        raise TypeError("Expected argument 'etag' to be a str")
    pulumi.set(__self__, 'etag', etag)
    if (firewall_policy and (not isinstance(firewall_policy, dict))):
        raise TypeError("Expected argument 'firewall_policy' to be a dict")
    pulumi.set(__self__, 'firewall_policy', firewall_policy)
    if (force_firewall_policy_association and (not isinstance(force_firewall_policy_association, bool))):
        raise TypeError("Expected argument 'force_firewall_policy_association' to be a bool")
    pulumi.set(__self__, 'force_firewall_policy_association', force_firewall_policy_association)
    if (frontend_ip_configurations and (not isinstance(frontend_ip_configurations, list))):
        raise TypeError("Expected argument 'frontend_ip_configurations' to be a list")
    pulumi.set(__self__, 'frontend_ip_configurations', frontend_ip_configurations)
    if (frontend_ports and (not isinstance(frontend_ports, list))):
        raise TypeError("Expected argument 'frontend_ports' to be a list")
    pulumi.set(__self__, 'frontend_ports', frontend_ports)
    if (gateway_ip_configurations and (not isinstance(gateway_ip_configurations, list))):
        raise TypeError("Expected argument 'gateway_ip_configurations' to be a list")
    pulumi.set(__self__, 'gateway_ip_configurations', gateway_ip_configurations)
    if (http_listeners and (not isinstance(http_listeners, list))):
        raise TypeError("Expected argument 'http_listeners' to be a list")
    pulumi.set(__self__, 'http_listeners', http_listeners)
    if (id and (not isinstance(id, str))):
        raise TypeError("Expected argument 'id' to be a str")
    pulumi.set(__self__, 'id', id)
    if (identity and (not isinstance(identity, dict))):
        raise TypeError("Expected argument 'identity' to be a dict")
    pulumi.set(__self__, 'identity', identity)
    if (location and (not isinstance(location, str))):
        raise TypeError("Expected argument 'location' to be a str")
    pulumi.set(__self__, 'location', location)
    if (name and (not isinstance(name, str))):
        raise TypeError("Expected argument 'name' to be a str")
    pulumi.set(__self__, 'name', name)
    if (operational_state and (not isinstance(operational_state, str))):
        raise TypeError("Expected argument 'operational_state' to be a str")
    pulumi.set(__self__, 'operational_state', operational_state)
    if (private_endpoint_connections and (not isinstance(private_endpoint_connections, list))):
        raise TypeError("Expected argument 'private_endpoint_connections' to be a list")
    pulumi.set(__self__, 'private_endpoint_connections', private_endpoint_connections)
    if (private_link_configurations and (not isinstance(private_link_configurations, list))):
        raise TypeError("Expected argument 'private_link_configurations' to be a list")
    pulumi.set(__self__, 'private_link_configurations', private_link_configurations)
    if (probes and (not isinstance(probes, list))):
        raise TypeError("Expected argument 'probes' to be a list")
    pulumi.set(__self__, 'probes', probes)
    if (provisioning_state and (not isinstance(provisioning_state, str))):
        raise TypeError("Expected argument 'provisioning_state' to be a str")
    pulumi.set(__self__, 'provisioning_state', provisioning_state)
    if (redirect_configurations and (not isinstance(redirect_configurations, list))):
        raise TypeError("Expected argument 'redirect_configurations' to be a list")
    pulumi.set(__self__, 'redirect_configurations', redirect_configurations)
    if (request_routing_rules and (not isinstance(request_routing_rules, list))):
        raise TypeError("Expected argument 'request_routing_rules' to be a list")
    pulumi.set(__self__, 'request_routing_rules', request_routing_rules)
    if (resource_guid and (not isinstance(resource_guid, str))):
        raise TypeError("Expected argument 'resource_guid' to be a str")
    pulumi.set(__self__, 'resource_guid', resource_guid)
    if (rewrite_rule_sets and (not isinstance(rewrite_rule_sets, list))):
        raise TypeError("Expected argument 'rewrite_rule_sets' to be a list")
    pulumi.set(__self__, 'rewrite_rule_sets', rewrite_rule_sets)
    if (sku and (not isinstance(sku, dict))):
        raise TypeError("Expected argument 'sku' to be a dict")
    pulumi.set(__self__, 'sku', sku)
    if (ssl_certificates and (not isinstance(ssl_certificates, list))):
        raise TypeError("Expected argument 'ssl_certificates' to be a list")
    pulumi.set(__self__, 'ssl_certificates', ssl_certificates)
    if (ssl_policy and (not isinstance(ssl_policy, dict))):
        raise TypeError("Expected argument 'ssl_policy' to be a dict")
    pulumi.set(__self__, 'ssl_policy', ssl_policy)
    if (ssl_profiles and (not isinstance(ssl_profiles, list))):
        raise TypeError("Expected argument 'ssl_profiles' to be a list")
    pulumi.set(__self__, 'ssl_profiles', ssl_profiles)
    if (tags and (not isinstance(tags, dict))):
        raise TypeError("Expected argument 'tags' to be a dict")
    pulumi.set(__self__, 'tags', tags)
    if (trusted_client_certificates and (not isinstance(trusted_client_certificates, list))):
        raise TypeError("Expected argument 'trusted_client_certificates' to be a list")
    pulumi.set(__self__, 'trusted_client_certificates', trusted_client_certificates)
    if (trusted_root_certificates and (not isinstance(trusted_root_certificates, list))):
        raise TypeError("Expected argument 'trusted_root_certificates' to be a list")
    pulumi.set(__self__, 'trusted_root_certificates', trusted_root_certificates)
    if (type and (not isinstance(type, str))):
        raise TypeError("Expected argument 'type' to be a str")
    pulumi.set(__self__, 'type', type)
    if (url_path_maps and (not isinstance(url_path_maps, list))):
        raise TypeError("Expected argument 'url_path_maps' to be a list")
    pulumi.set(__self__, 'url_path_maps', url_path_maps)
    if (web_application_firewall_configuration and (not isinstance(web_application_firewall_configuration, dict))):
        raise TypeError("Expected argument 'web_application_firewall_configuration' to be a dict")
    pulumi.set(__self__, 'web_application_firewall_configuration', web_application_firewall_configuration)
    if (zones and (not isinstance(zones, list))):
        raise TypeError("Expected argument 'zones' to be a list")
    pulumi.set(__self__, 'zones', zones)
def __init__(__self__, authentication_certificates=None, autoscale_configuration=None, backend_address_pools=None, backend_http_settings_collection=None, custom_error_configurations=None, enable_fips=None, enable_http2=None, etag=None, firewall_policy=None, force_firewall_policy_association=None, frontend_ip_configurations=None, frontend_ports=None, gateway_ip_configurations=None, http_listeners=None, id=None, identity=None, location=None, name=None, operational_state=None, private_endpoint_connections=None, private_link_configurations=None, probes=None, provisioning_state=None, redirect_configurations=None, request_routing_rules=None, resource_guid=None, rewrite_rule_sets=None, sku=None, ssl_certificates=None, ssl_policy=None, ssl_profiles=None, tags=None, trusted_client_certificates=None, trusted_root_certificates=None, type=None, url_path_maps=None, web_application_firewall_configuration=None, zones=None):
    if (authentication_certificates and (not isinstance(authentication_certificates, list))):
        raise TypeError("Expected argument 'authentication_certificates' to be a list")
    pulumi.set(__self__, 'authentication_certificates', authentication_certificates)
    if (autoscale_configuration and (not isinstance(autoscale_configuration, dict))):
        raise TypeError("Expected argument 'autoscale_configuration' to be a dict")
    pulumi.set(__self__, 'autoscale_configuration', autoscale_configuration)
    if (backend_address_pools and (not isinstance(backend_address_pools, list))):
        raise TypeError("Expected argument 'backend_address_pools' to be a list")
    pulumi.set(__self__, 'backend_address_pools', backend_address_pools)
    if (backend_http_settings_collection and (not isinstance(backend_http_settings_collection, list))):
        raise TypeError("Expected argument 'backend_http_settings_collection' to be a list")
    pulumi.set(__self__, 'backend_http_settings_collection', backend_http_settings_collection)
    if (custom_error_configurations and (not isinstance(custom_error_configurations, list))):
        raise TypeError("Expected argument 'custom_error_configurations' to be a list")
    pulumi.set(__self__, 'custom_error_configurations', custom_error_configurations)
    if (enable_fips and (not isinstance(enable_fips, bool))):
        raise TypeError("Expected argument 'enable_fips' to be a bool")
    pulumi.set(__self__, 'enable_fips', enable_fips)
    if (enable_http2 and (not isinstance(enable_http2, bool))):
        raise TypeError("Expected argument 'enable_http2' to be a bool")
    pulumi.set(__self__, 'enable_http2', enable_http2)
    if (etag and (not isinstance(etag, str))):
        raise TypeError("Expected argument 'etag' to be a str")
    pulumi.set(__self__, 'etag', etag)
    if (firewall_policy and (not isinstance(firewall_policy, dict))):
        raise TypeError("Expected argument 'firewall_policy' to be a dict")
    pulumi.set(__self__, 'firewall_policy', firewall_policy)
    if (force_firewall_policy_association and (not isinstance(force_firewall_policy_association, bool))):
        raise TypeError("Expected argument 'force_firewall_policy_association' to be a bool")
    pulumi.set(__self__, 'force_firewall_policy_association', force_firewall_policy_association)
    if (frontend_ip_configurations and (not isinstance(frontend_ip_configurations, list))):
        raise TypeError("Expected argument 'frontend_ip_configurations' to be a list")
    pulumi.set(__self__, 'frontend_ip_configurations', frontend_ip_configurations)
    if (frontend_ports and (not isinstance(frontend_ports, list))):
        raise TypeError("Expected argument 'frontend_ports' to be a list")
    pulumi.set(__self__, 'frontend_ports', frontend_ports)
    if (gateway_ip_configurations and (not isinstance(gateway_ip_configurations, list))):
        raise TypeError("Expected argument 'gateway_ip_configurations' to be a list")
    pulumi.set(__self__, 'gateway_ip_configurations', gateway_ip_configurations)
    if (http_listeners and (not isinstance(http_listeners, list))):
        raise TypeError("Expected argument 'http_listeners' to be a list")
    pulumi.set(__self__, 'http_listeners', http_listeners)
    if (id and (not isinstance(id, str))):
        raise TypeError("Expected argument 'id' to be a str")
    pulumi.set(__self__, 'id', id)
    if (identity and (not isinstance(identity, dict))):
        raise TypeError("Expected argument 'identity' to be a dict")
    pulumi.set(__self__, 'identity', identity)
    if (location and (not isinstance(location, str))):
        raise TypeError("Expected argument 'location' to be a str")
    pulumi.set(__self__, 'location', location)
    if (name and (not isinstance(name, str))):
        raise TypeError("Expected argument 'name' to be a str")
    pulumi.set(__self__, 'name', name)
    if (operational_state and (not isinstance(operational_state, str))):
        raise TypeError("Expected argument 'operational_state' to be a str")
    pulumi.set(__self__, 'operational_state', operational_state)
    if (private_endpoint_connections and (not isinstance(private_endpoint_connections, list))):
        raise TypeError("Expected argument 'private_endpoint_connections' to be a list")
    pulumi.set(__self__, 'private_endpoint_connections', private_endpoint_connections)
    if (private_link_configurations and (not isinstance(private_link_configurations, list))):
        raise TypeError("Expected argument 'private_link_configurations' to be a list")
    pulumi.set(__self__, 'private_link_configurations', private_link_configurations)
    if (probes and (not isinstance(probes, list))):
        raise TypeError("Expected argument 'probes' to be a list")
    pulumi.set(__self__, 'probes', probes)
    if (provisioning_state and (not isinstance(provisioning_state, str))):
        raise TypeError("Expected argument 'provisioning_state' to be a str")
    pulumi.set(__self__, 'provisioning_state', provisioning_state)
    if (redirect_configurations and (not isinstance(redirect_configurations, list))):
        raise TypeError("Expected argument 'redirect_configurations' to be a list")
    pulumi.set(__self__, 'redirect_configurations', redirect_configurations)
    if (request_routing_rules and (not isinstance(request_routing_rules, list))):
        raise TypeError("Expected argument 'request_routing_rules' to be a list")
    pulumi.set(__self__, 'request_routing_rules', request_routing_rules)
    if (resource_guid and (not isinstance(resource_guid, str))):
        raise TypeError("Expected argument 'resource_guid' to be a str")
    pulumi.set(__self__, 'resource_guid', resource_guid)
    if (rewrite_rule_sets and (not isinstance(rewrite_rule_sets, list))):
        raise TypeError("Expected argument 'rewrite_rule_sets' to be a list")
    pulumi.set(__self__, 'rewrite_rule_sets', rewrite_rule_sets)
    if (sku and (not isinstance(sku, dict))):
        raise TypeError("Expected argument 'sku' to be a dict")
    pulumi.set(__self__, 'sku', sku)
    if (ssl_certificates and (not isinstance(ssl_certificates, list))):
        raise TypeError("Expected argument 'ssl_certificates' to be a list")
    pulumi.set(__self__, 'ssl_certificates', ssl_certificates)
    if (ssl_policy and (not isinstance(ssl_policy, dict))):
        raise TypeError("Expected argument 'ssl_policy' to be a dict")
    pulumi.set(__self__, 'ssl_policy', ssl_policy)
    if (ssl_profiles and (not isinstance(ssl_profiles, list))):
        raise TypeError("Expected argument 'ssl_profiles' to be a list")
    pulumi.set(__self__, 'ssl_profiles', ssl_profiles)
    if (tags and (not isinstance(tags, dict))):
        raise TypeError("Expected argument 'tags' to be a dict")
    pulumi.set(__self__, 'tags', tags)
    if (trusted_client_certificates and (not isinstance(trusted_client_certificates, list))):
        raise TypeError("Expected argument 'trusted_client_certificates' to be a list")
    pulumi.set(__self__, 'trusted_client_certificates', trusted_client_certificates)
    if (trusted_root_certificates and (not isinstance(trusted_root_certificates, list))):
        raise TypeError("Expected argument 'trusted_root_certificates' to be a list")
    pulumi.set(__self__, 'trusted_root_certificates', trusted_root_certificates)
    if (type and (not isinstance(type, str))):
        raise TypeError("Expected argument 'type' to be a str")
    pulumi.set(__self__, 'type', type)
    if (url_path_maps and (not isinstance(url_path_maps, list))):
        raise TypeError("Expected argument 'url_path_maps' to be a list")
    pulumi.set(__self__, 'url_path_maps', url_path_maps)
    if (web_application_firewall_configuration and (not isinstance(web_application_firewall_configuration, dict))):
        raise TypeError("Expected argument 'web_application_firewall_configuration' to be a dict")
    pulumi.set(__self__, 'web_application_firewall_configuration', web_application_firewall_configuration)
    if (zones and (not isinstance(zones, list))):
        raise TypeError("Expected argument 'zones' to be a list")
    pulumi.set(__self__, 'zones', zones)