All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.azurenative.network.ApplicationGatewayArgs Maven / Gradle / Ivy

There is a newer version: 2.78.0
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.azurenative.network;

import com.pulumi.azurenative.network.inputs.ApplicationGatewayAuthenticationCertificateArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayAutoscaleConfigurationArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayBackendAddressPoolArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayBackendHttpSettingsArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayBackendSettingsArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayCustomErrorArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayFrontendIPConfigurationArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayFrontendPortArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayGlobalConfigurationArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayHttpListenerArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayIPConfigurationArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayListenerArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayLoadDistributionPolicyArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayPrivateLinkConfigurationArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayProbeArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayRedirectConfigurationArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayRequestRoutingRuleArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayRewriteRuleSetArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayRoutingRuleArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewaySkuArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewaySslCertificateArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewaySslPolicyArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewaySslProfileArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayTrustedClientCertificateArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayTrustedRootCertificateArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayUrlPathMapArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayWebApplicationFirewallConfigurationArgs;
import com.pulumi.azurenative.network.inputs.ManagedServiceIdentityArgs;
import com.pulumi.azurenative.network.inputs.SubResourceArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class ApplicationGatewayArgs extends com.pulumi.resources.ResourceArgs {

    public static final ApplicationGatewayArgs Empty = new ApplicationGatewayArgs();

    /**
     * The name of the application gateway.
     * 
     */
    @Import(name="applicationGatewayName")
    private @Nullable Output applicationGatewayName;

    /**
     * @return The name of the application gateway.
     * 
     */
    public Optional> applicationGatewayName() {
        return Optional.ofNullable(this.applicationGatewayName);
    }

    /**
     * Authentication certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    @Import(name="authenticationCertificates")
    private @Nullable Output> authenticationCertificates;

    /**
     * @return Authentication certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    public Optional>> authenticationCertificates() {
        return Optional.ofNullable(this.authenticationCertificates);
    }

    /**
     * Autoscale Configuration.
     * 
     */
    @Import(name="autoscaleConfiguration")
    private @Nullable Output autoscaleConfiguration;

    /**
     * @return Autoscale Configuration.
     * 
     */
    public Optional> autoscaleConfiguration() {
        return Optional.ofNullable(this.autoscaleConfiguration);
    }

    /**
     * Backend address pool of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    @Import(name="backendAddressPools")
    private @Nullable Output> backendAddressPools;

    /**
     * @return Backend address pool of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    public Optional>> backendAddressPools() {
        return Optional.ofNullable(this.backendAddressPools);
    }

    /**
     * Backend http settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    @Import(name="backendHttpSettingsCollection")
    private @Nullable Output> backendHttpSettingsCollection;

    /**
     * @return Backend http settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    public Optional>> backendHttpSettingsCollection() {
        return Optional.ofNullable(this.backendHttpSettingsCollection);
    }

    /**
     * Backend settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    @Import(name="backendSettingsCollection")
    private @Nullable Output> backendSettingsCollection;

    /**
     * @return Backend settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    public Optional>> backendSettingsCollection() {
        return Optional.ofNullable(this.backendSettingsCollection);
    }

    /**
     * Custom error configurations of the application gateway resource.
     * 
     */
    @Import(name="customErrorConfigurations")
    private @Nullable Output> customErrorConfigurations;

    /**
     * @return Custom error configurations of the application gateway resource.
     * 
     */
    public Optional>> customErrorConfigurations() {
        return Optional.ofNullable(this.customErrorConfigurations);
    }

    /**
     * Whether FIPS is enabled on the application gateway resource.
     * 
     */
    @Import(name="enableFips")
    private @Nullable Output enableFips;

    /**
     * @return Whether FIPS is enabled on the application gateway resource.
     * 
     */
    public Optional> enableFips() {
        return Optional.ofNullable(this.enableFips);
    }

    /**
     * Whether HTTP2 is enabled on the application gateway resource.
     * 
     */
    @Import(name="enableHttp2")
    private @Nullable Output enableHttp2;

    /**
     * @return Whether HTTP2 is enabled on the application gateway resource.
     * 
     */
    public Optional> enableHttp2() {
        return Optional.ofNullable(this.enableHttp2);
    }

    /**
     * Reference to the FirewallPolicy resource.
     * 
     */
    @Import(name="firewallPolicy")
    private @Nullable Output firewallPolicy;

    /**
     * @return Reference to the FirewallPolicy resource.
     * 
     */
    public Optional> firewallPolicy() {
        return Optional.ofNullable(this.firewallPolicy);
    }

    /**
     * If true, associates a firewall policy with an application gateway regardless whether the policy differs from the WAF Config.
     * 
     */
    @Import(name="forceFirewallPolicyAssociation")
    private @Nullable Output forceFirewallPolicyAssociation;

    /**
     * @return If true, associates a firewall policy with an application gateway regardless whether the policy differs from the WAF Config.
     * 
     */
    public Optional> forceFirewallPolicyAssociation() {
        return Optional.ofNullable(this.forceFirewallPolicyAssociation);
    }

    /**
     * Frontend IP addresses of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    @Import(name="frontendIPConfigurations")
    private @Nullable Output> frontendIPConfigurations;

    /**
     * @return Frontend IP addresses of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    public Optional>> frontendIPConfigurations() {
        return Optional.ofNullable(this.frontendIPConfigurations);
    }

    /**
     * Frontend ports of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    @Import(name="frontendPorts")
    private @Nullable Output> frontendPorts;

    /**
     * @return Frontend ports of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    public Optional>> frontendPorts() {
        return Optional.ofNullable(this.frontendPorts);
    }

    /**
     * Subnets of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    @Import(name="gatewayIPConfigurations")
    private @Nullable Output> gatewayIPConfigurations;

    /**
     * @return Subnets of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    public Optional>> gatewayIPConfigurations() {
        return Optional.ofNullable(this.gatewayIPConfigurations);
    }

    /**
     * Global Configuration.
     * 
     */
    @Import(name="globalConfiguration")
    private @Nullable Output globalConfiguration;

    /**
     * @return Global Configuration.
     * 
     */
    public Optional> globalConfiguration() {
        return Optional.ofNullable(this.globalConfiguration);
    }

    /**
     * Http listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    @Import(name="httpListeners")
    private @Nullable Output> httpListeners;

    /**
     * @return Http listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    public Optional>> httpListeners() {
        return Optional.ofNullable(this.httpListeners);
    }

    /**
     * Resource ID.
     * 
     */
    @Import(name="id")
    private @Nullable Output id;

    /**
     * @return Resource ID.
     * 
     */
    public Optional> id() {
        return Optional.ofNullable(this.id);
    }

    /**
     * The identity of the application gateway, if configured.
     * 
     */
    @Import(name="identity")
    private @Nullable Output identity;

    /**
     * @return The identity of the application gateway, if configured.
     * 
     */
    public Optional> identity() {
        return Optional.ofNullable(this.identity);
    }

    /**
     * Listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    @Import(name="listeners")
    private @Nullable Output> listeners;

    /**
     * @return Listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    public Optional>> listeners() {
        return Optional.ofNullable(this.listeners);
    }

    /**
     * Load distribution policies of the application gateway resource.
     * 
     */
    @Import(name="loadDistributionPolicies")
    private @Nullable Output> loadDistributionPolicies;

    /**
     * @return Load distribution policies of the application gateway resource.
     * 
     */
    public Optional>> loadDistributionPolicies() {
        return Optional.ofNullable(this.loadDistributionPolicies);
    }

    /**
     * Resource location.
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return Resource location.
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * PrivateLink configurations on application gateway.
     * 
     */
    @Import(name="privateLinkConfigurations")
    private @Nullable Output> privateLinkConfigurations;

    /**
     * @return PrivateLink configurations on application gateway.
     * 
     */
    public Optional>> privateLinkConfigurations() {
        return Optional.ofNullable(this.privateLinkConfigurations);
    }

    /**
     * Probes of the application gateway resource.
     * 
     */
    @Import(name="probes")
    private @Nullable Output> probes;

    /**
     * @return Probes of the application gateway resource.
     * 
     */
    public Optional>> probes() {
        return Optional.ofNullable(this.probes);
    }

    /**
     * Redirect configurations of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    @Import(name="redirectConfigurations")
    private @Nullable Output> redirectConfigurations;

    /**
     * @return Redirect configurations of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    public Optional>> redirectConfigurations() {
        return Optional.ofNullable(this.redirectConfigurations);
    }

    /**
     * Request routing rules of the application gateway resource.
     * 
     */
    @Import(name="requestRoutingRules")
    private @Nullable Output> requestRoutingRules;

    /**
     * @return Request routing rules of the application gateway resource.
     * 
     */
    public Optional>> requestRoutingRules() {
        return Optional.ofNullable(this.requestRoutingRules);
    }

    /**
     * The name of the resource group.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * Rewrite rules for the application gateway resource.
     * 
     */
    @Import(name="rewriteRuleSets")
    private @Nullable Output> rewriteRuleSets;

    /**
     * @return Rewrite rules for the application gateway resource.
     * 
     */
    public Optional>> rewriteRuleSets() {
        return Optional.ofNullable(this.rewriteRuleSets);
    }

    /**
     * Routing rules of the application gateway resource.
     * 
     */
    @Import(name="routingRules")
    private @Nullable Output> routingRules;

    /**
     * @return Routing rules of the application gateway resource.
     * 
     */
    public Optional>> routingRules() {
        return Optional.ofNullable(this.routingRules);
    }

    /**
     * SKU of the application gateway resource.
     * 
     */
    @Import(name="sku")
    private @Nullable Output sku;

    /**
     * @return SKU of the application gateway resource.
     * 
     */
    public Optional> sku() {
        return Optional.ofNullable(this.sku);
    }

    /**
     * SSL certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    @Import(name="sslCertificates")
    private @Nullable Output> sslCertificates;

    /**
     * @return SSL certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    public Optional>> sslCertificates() {
        return Optional.ofNullable(this.sslCertificates);
    }

    /**
     * SSL policy of the application gateway resource.
     * 
     */
    @Import(name="sslPolicy")
    private @Nullable Output sslPolicy;

    /**
     * @return SSL policy of the application gateway resource.
     * 
     */
    public Optional> sslPolicy() {
        return Optional.ofNullable(this.sslPolicy);
    }

    /**
     * SSL profiles of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    @Import(name="sslProfiles")
    private @Nullable Output> sslProfiles;

    /**
     * @return SSL profiles of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    public Optional>> sslProfiles() {
        return Optional.ofNullable(this.sslProfiles);
    }

    /**
     * Resource tags.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Resource tags.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * Trusted client certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    @Import(name="trustedClientCertificates")
    private @Nullable Output> trustedClientCertificates;

    /**
     * @return Trusted client certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    public Optional>> trustedClientCertificates() {
        return Optional.ofNullable(this.trustedClientCertificates);
    }

    /**
     * Trusted Root certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    @Import(name="trustedRootCertificates")
    private @Nullable Output> trustedRootCertificates;

    /**
     * @return Trusted Root certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    public Optional>> trustedRootCertificates() {
        return Optional.ofNullable(this.trustedRootCertificates);
    }

    /**
     * URL path map of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    @Import(name="urlPathMaps")
    private @Nullable Output> urlPathMaps;

    /**
     * @return URL path map of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
     * 
     */
    public Optional>> urlPathMaps() {
        return Optional.ofNullable(this.urlPathMaps);
    }

    /**
     * Web application firewall configuration.
     * 
     */
    @Import(name="webApplicationFirewallConfiguration")
    private @Nullable Output webApplicationFirewallConfiguration;

    /**
     * @return Web application firewall configuration.
     * 
     */
    public Optional> webApplicationFirewallConfiguration() {
        return Optional.ofNullable(this.webApplicationFirewallConfiguration);
    }

    /**
     * A list of availability zones denoting where the resource needs to come from.
     * 
     */
    @Import(name="zones")
    private @Nullable Output> zones;

    /**
     * @return A list of availability zones denoting where the resource needs to come from.
     * 
     */
    public Optional>> zones() {
        return Optional.ofNullable(this.zones);
    }

    private ApplicationGatewayArgs() {}

    private ApplicationGatewayArgs(ApplicationGatewayArgs $) {
        this.applicationGatewayName = $.applicationGatewayName;
        this.authenticationCertificates = $.authenticationCertificates;
        this.autoscaleConfiguration = $.autoscaleConfiguration;
        this.backendAddressPools = $.backendAddressPools;
        this.backendHttpSettingsCollection = $.backendHttpSettingsCollection;
        this.backendSettingsCollection = $.backendSettingsCollection;
        this.customErrorConfigurations = $.customErrorConfigurations;
        this.enableFips = $.enableFips;
        this.enableHttp2 = $.enableHttp2;
        this.firewallPolicy = $.firewallPolicy;
        this.forceFirewallPolicyAssociation = $.forceFirewallPolicyAssociation;
        this.frontendIPConfigurations = $.frontendIPConfigurations;
        this.frontendPorts = $.frontendPorts;
        this.gatewayIPConfigurations = $.gatewayIPConfigurations;
        this.globalConfiguration = $.globalConfiguration;
        this.httpListeners = $.httpListeners;
        this.id = $.id;
        this.identity = $.identity;
        this.listeners = $.listeners;
        this.loadDistributionPolicies = $.loadDistributionPolicies;
        this.location = $.location;
        this.privateLinkConfigurations = $.privateLinkConfigurations;
        this.probes = $.probes;
        this.redirectConfigurations = $.redirectConfigurations;
        this.requestRoutingRules = $.requestRoutingRules;
        this.resourceGroupName = $.resourceGroupName;
        this.rewriteRuleSets = $.rewriteRuleSets;
        this.routingRules = $.routingRules;
        this.sku = $.sku;
        this.sslCertificates = $.sslCertificates;
        this.sslPolicy = $.sslPolicy;
        this.sslProfiles = $.sslProfiles;
        this.tags = $.tags;
        this.trustedClientCertificates = $.trustedClientCertificates;
        this.trustedRootCertificates = $.trustedRootCertificates;
        this.urlPathMaps = $.urlPathMaps;
        this.webApplicationFirewallConfiguration = $.webApplicationFirewallConfiguration;
        this.zones = $.zones;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(ApplicationGatewayArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private ApplicationGatewayArgs $;

        public Builder() {
            $ = new ApplicationGatewayArgs();
        }

        public Builder(ApplicationGatewayArgs defaults) {
            $ = new ApplicationGatewayArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param applicationGatewayName The name of the application gateway.
         * 
         * @return builder
         * 
         */
        public Builder applicationGatewayName(@Nullable Output applicationGatewayName) {
            $.applicationGatewayName = applicationGatewayName;
            return this;
        }

        /**
         * @param applicationGatewayName The name of the application gateway.
         * 
         * @return builder
         * 
         */
        public Builder applicationGatewayName(String applicationGatewayName) {
            return applicationGatewayName(Output.of(applicationGatewayName));
        }

        /**
         * @param authenticationCertificates Authentication certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder authenticationCertificates(@Nullable Output> authenticationCertificates) {
            $.authenticationCertificates = authenticationCertificates;
            return this;
        }

        /**
         * @param authenticationCertificates Authentication certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder authenticationCertificates(List authenticationCertificates) {
            return authenticationCertificates(Output.of(authenticationCertificates));
        }

        /**
         * @param authenticationCertificates Authentication certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder authenticationCertificates(ApplicationGatewayAuthenticationCertificateArgs... authenticationCertificates) {
            return authenticationCertificates(List.of(authenticationCertificates));
        }

        /**
         * @param autoscaleConfiguration Autoscale Configuration.
         * 
         * @return builder
         * 
         */
        public Builder autoscaleConfiguration(@Nullable Output autoscaleConfiguration) {
            $.autoscaleConfiguration = autoscaleConfiguration;
            return this;
        }

        /**
         * @param autoscaleConfiguration Autoscale Configuration.
         * 
         * @return builder
         * 
         */
        public Builder autoscaleConfiguration(ApplicationGatewayAutoscaleConfigurationArgs autoscaleConfiguration) {
            return autoscaleConfiguration(Output.of(autoscaleConfiguration));
        }

        /**
         * @param backendAddressPools Backend address pool of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder backendAddressPools(@Nullable Output> backendAddressPools) {
            $.backendAddressPools = backendAddressPools;
            return this;
        }

        /**
         * @param backendAddressPools Backend address pool of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder backendAddressPools(List backendAddressPools) {
            return backendAddressPools(Output.of(backendAddressPools));
        }

        /**
         * @param backendAddressPools Backend address pool of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder backendAddressPools(ApplicationGatewayBackendAddressPoolArgs... backendAddressPools) {
            return backendAddressPools(List.of(backendAddressPools));
        }

        /**
         * @param backendHttpSettingsCollection Backend http settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder backendHttpSettingsCollection(@Nullable Output> backendHttpSettingsCollection) {
            $.backendHttpSettingsCollection = backendHttpSettingsCollection;
            return this;
        }

        /**
         * @param backendHttpSettingsCollection Backend http settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder backendHttpSettingsCollection(List backendHttpSettingsCollection) {
            return backendHttpSettingsCollection(Output.of(backendHttpSettingsCollection));
        }

        /**
         * @param backendHttpSettingsCollection Backend http settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder backendHttpSettingsCollection(ApplicationGatewayBackendHttpSettingsArgs... backendHttpSettingsCollection) {
            return backendHttpSettingsCollection(List.of(backendHttpSettingsCollection));
        }

        /**
         * @param backendSettingsCollection Backend settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder backendSettingsCollection(@Nullable Output> backendSettingsCollection) {
            $.backendSettingsCollection = backendSettingsCollection;
            return this;
        }

        /**
         * @param backendSettingsCollection Backend settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder backendSettingsCollection(List backendSettingsCollection) {
            return backendSettingsCollection(Output.of(backendSettingsCollection));
        }

        /**
         * @param backendSettingsCollection Backend settings of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder backendSettingsCollection(ApplicationGatewayBackendSettingsArgs... backendSettingsCollection) {
            return backendSettingsCollection(List.of(backendSettingsCollection));
        }

        /**
         * @param customErrorConfigurations Custom error configurations of the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder customErrorConfigurations(@Nullable Output> customErrorConfigurations) {
            $.customErrorConfigurations = customErrorConfigurations;
            return this;
        }

        /**
         * @param customErrorConfigurations Custom error configurations of the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder customErrorConfigurations(List customErrorConfigurations) {
            return customErrorConfigurations(Output.of(customErrorConfigurations));
        }

        /**
         * @param customErrorConfigurations Custom error configurations of the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder customErrorConfigurations(ApplicationGatewayCustomErrorArgs... customErrorConfigurations) {
            return customErrorConfigurations(List.of(customErrorConfigurations));
        }

        /**
         * @param enableFips Whether FIPS is enabled on the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder enableFips(@Nullable Output enableFips) {
            $.enableFips = enableFips;
            return this;
        }

        /**
         * @param enableFips Whether FIPS is enabled on the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder enableFips(Boolean enableFips) {
            return enableFips(Output.of(enableFips));
        }

        /**
         * @param enableHttp2 Whether HTTP2 is enabled on the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder enableHttp2(@Nullable Output enableHttp2) {
            $.enableHttp2 = enableHttp2;
            return this;
        }

        /**
         * @param enableHttp2 Whether HTTP2 is enabled on the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder enableHttp2(Boolean enableHttp2) {
            return enableHttp2(Output.of(enableHttp2));
        }

        /**
         * @param firewallPolicy Reference to the FirewallPolicy resource.
         * 
         * @return builder
         * 
         */
        public Builder firewallPolicy(@Nullable Output firewallPolicy) {
            $.firewallPolicy = firewallPolicy;
            return this;
        }

        /**
         * @param firewallPolicy Reference to the FirewallPolicy resource.
         * 
         * @return builder
         * 
         */
        public Builder firewallPolicy(SubResourceArgs firewallPolicy) {
            return firewallPolicy(Output.of(firewallPolicy));
        }

        /**
         * @param forceFirewallPolicyAssociation If true, associates a firewall policy with an application gateway regardless whether the policy differs from the WAF Config.
         * 
         * @return builder
         * 
         */
        public Builder forceFirewallPolicyAssociation(@Nullable Output forceFirewallPolicyAssociation) {
            $.forceFirewallPolicyAssociation = forceFirewallPolicyAssociation;
            return this;
        }

        /**
         * @param forceFirewallPolicyAssociation If true, associates a firewall policy with an application gateway regardless whether the policy differs from the WAF Config.
         * 
         * @return builder
         * 
         */
        public Builder forceFirewallPolicyAssociation(Boolean forceFirewallPolicyAssociation) {
            return forceFirewallPolicyAssociation(Output.of(forceFirewallPolicyAssociation));
        }

        /**
         * @param frontendIPConfigurations Frontend IP addresses of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder frontendIPConfigurations(@Nullable Output> frontendIPConfigurations) {
            $.frontendIPConfigurations = frontendIPConfigurations;
            return this;
        }

        /**
         * @param frontendIPConfigurations Frontend IP addresses of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder frontendIPConfigurations(List frontendIPConfigurations) {
            return frontendIPConfigurations(Output.of(frontendIPConfigurations));
        }

        /**
         * @param frontendIPConfigurations Frontend IP addresses of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder frontendIPConfigurations(ApplicationGatewayFrontendIPConfigurationArgs... frontendIPConfigurations) {
            return frontendIPConfigurations(List.of(frontendIPConfigurations));
        }

        /**
         * @param frontendPorts Frontend ports of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder frontendPorts(@Nullable Output> frontendPorts) {
            $.frontendPorts = frontendPorts;
            return this;
        }

        /**
         * @param frontendPorts Frontend ports of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder frontendPorts(List frontendPorts) {
            return frontendPorts(Output.of(frontendPorts));
        }

        /**
         * @param frontendPorts Frontend ports of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder frontendPorts(ApplicationGatewayFrontendPortArgs... frontendPorts) {
            return frontendPorts(List.of(frontendPorts));
        }

        /**
         * @param gatewayIPConfigurations Subnets of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder gatewayIPConfigurations(@Nullable Output> gatewayIPConfigurations) {
            $.gatewayIPConfigurations = gatewayIPConfigurations;
            return this;
        }

        /**
         * @param gatewayIPConfigurations Subnets of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder gatewayIPConfigurations(List gatewayIPConfigurations) {
            return gatewayIPConfigurations(Output.of(gatewayIPConfigurations));
        }

        /**
         * @param gatewayIPConfigurations Subnets of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder gatewayIPConfigurations(ApplicationGatewayIPConfigurationArgs... gatewayIPConfigurations) {
            return gatewayIPConfigurations(List.of(gatewayIPConfigurations));
        }

        /**
         * @param globalConfiguration Global Configuration.
         * 
         * @return builder
         * 
         */
        public Builder globalConfiguration(@Nullable Output globalConfiguration) {
            $.globalConfiguration = globalConfiguration;
            return this;
        }

        /**
         * @param globalConfiguration Global Configuration.
         * 
         * @return builder
         * 
         */
        public Builder globalConfiguration(ApplicationGatewayGlobalConfigurationArgs globalConfiguration) {
            return globalConfiguration(Output.of(globalConfiguration));
        }

        /**
         * @param httpListeners Http listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder httpListeners(@Nullable Output> httpListeners) {
            $.httpListeners = httpListeners;
            return this;
        }

        /**
         * @param httpListeners Http listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder httpListeners(List httpListeners) {
            return httpListeners(Output.of(httpListeners));
        }

        /**
         * @param httpListeners Http listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder httpListeners(ApplicationGatewayHttpListenerArgs... httpListeners) {
            return httpListeners(List.of(httpListeners));
        }

        /**
         * @param id Resource ID.
         * 
         * @return builder
         * 
         */
        public Builder id(@Nullable Output id) {
            $.id = id;
            return this;
        }

        /**
         * @param id Resource ID.
         * 
         * @return builder
         * 
         */
        public Builder id(String id) {
            return id(Output.of(id));
        }

        /**
         * @param identity The identity of the application gateway, if configured.
         * 
         * @return builder
         * 
         */
        public Builder identity(@Nullable Output identity) {
            $.identity = identity;
            return this;
        }

        /**
         * @param identity The identity of the application gateway, if configured.
         * 
         * @return builder
         * 
         */
        public Builder identity(ManagedServiceIdentityArgs identity) {
            return identity(Output.of(identity));
        }

        /**
         * @param listeners Listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder listeners(@Nullable Output> listeners) {
            $.listeners = listeners;
            return this;
        }

        /**
         * @param listeners Listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder listeners(List listeners) {
            return listeners(Output.of(listeners));
        }

        /**
         * @param listeners Listeners of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder listeners(ApplicationGatewayListenerArgs... listeners) {
            return listeners(List.of(listeners));
        }

        /**
         * @param loadDistributionPolicies Load distribution policies of the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder loadDistributionPolicies(@Nullable Output> loadDistributionPolicies) {
            $.loadDistributionPolicies = loadDistributionPolicies;
            return this;
        }

        /**
         * @param loadDistributionPolicies Load distribution policies of the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder loadDistributionPolicies(List loadDistributionPolicies) {
            return loadDistributionPolicies(Output.of(loadDistributionPolicies));
        }

        /**
         * @param loadDistributionPolicies Load distribution policies of the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder loadDistributionPolicies(ApplicationGatewayLoadDistributionPolicyArgs... loadDistributionPolicies) {
            return loadDistributionPolicies(List.of(loadDistributionPolicies));
        }

        /**
         * @param location Resource location.
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location Resource location.
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param privateLinkConfigurations PrivateLink configurations on application gateway.
         * 
         * @return builder
         * 
         */
        public Builder privateLinkConfigurations(@Nullable Output> privateLinkConfigurations) {
            $.privateLinkConfigurations = privateLinkConfigurations;
            return this;
        }

        /**
         * @param privateLinkConfigurations PrivateLink configurations on application gateway.
         * 
         * @return builder
         * 
         */
        public Builder privateLinkConfigurations(List privateLinkConfigurations) {
            return privateLinkConfigurations(Output.of(privateLinkConfigurations));
        }

        /**
         * @param privateLinkConfigurations PrivateLink configurations on application gateway.
         * 
         * @return builder
         * 
         */
        public Builder privateLinkConfigurations(ApplicationGatewayPrivateLinkConfigurationArgs... privateLinkConfigurations) {
            return privateLinkConfigurations(List.of(privateLinkConfigurations));
        }

        /**
         * @param probes Probes of the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder probes(@Nullable Output> probes) {
            $.probes = probes;
            return this;
        }

        /**
         * @param probes Probes of the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder probes(List probes) {
            return probes(Output.of(probes));
        }

        /**
         * @param probes Probes of the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder probes(ApplicationGatewayProbeArgs... probes) {
            return probes(List.of(probes));
        }

        /**
         * @param redirectConfigurations Redirect configurations of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder redirectConfigurations(@Nullable Output> redirectConfigurations) {
            $.redirectConfigurations = redirectConfigurations;
            return this;
        }

        /**
         * @param redirectConfigurations Redirect configurations of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder redirectConfigurations(List redirectConfigurations) {
            return redirectConfigurations(Output.of(redirectConfigurations));
        }

        /**
         * @param redirectConfigurations Redirect configurations of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder redirectConfigurations(ApplicationGatewayRedirectConfigurationArgs... redirectConfigurations) {
            return redirectConfigurations(List.of(redirectConfigurations));
        }

        /**
         * @param requestRoutingRules Request routing rules of the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder requestRoutingRules(@Nullable Output> requestRoutingRules) {
            $.requestRoutingRules = requestRoutingRules;
            return this;
        }

        /**
         * @param requestRoutingRules Request routing rules of the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder requestRoutingRules(List requestRoutingRules) {
            return requestRoutingRules(Output.of(requestRoutingRules));
        }

        /**
         * @param requestRoutingRules Request routing rules of the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder requestRoutingRules(ApplicationGatewayRequestRoutingRuleArgs... requestRoutingRules) {
            return requestRoutingRules(List.of(requestRoutingRules));
        }

        /**
         * @param resourceGroupName The name of the resource group.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param rewriteRuleSets Rewrite rules for the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder rewriteRuleSets(@Nullable Output> rewriteRuleSets) {
            $.rewriteRuleSets = rewriteRuleSets;
            return this;
        }

        /**
         * @param rewriteRuleSets Rewrite rules for the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder rewriteRuleSets(List rewriteRuleSets) {
            return rewriteRuleSets(Output.of(rewriteRuleSets));
        }

        /**
         * @param rewriteRuleSets Rewrite rules for the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder rewriteRuleSets(ApplicationGatewayRewriteRuleSetArgs... rewriteRuleSets) {
            return rewriteRuleSets(List.of(rewriteRuleSets));
        }

        /**
         * @param routingRules Routing rules of the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder routingRules(@Nullable Output> routingRules) {
            $.routingRules = routingRules;
            return this;
        }

        /**
         * @param routingRules Routing rules of the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder routingRules(List routingRules) {
            return routingRules(Output.of(routingRules));
        }

        /**
         * @param routingRules Routing rules of the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder routingRules(ApplicationGatewayRoutingRuleArgs... routingRules) {
            return routingRules(List.of(routingRules));
        }

        /**
         * @param sku SKU of the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder sku(@Nullable Output sku) {
            $.sku = sku;
            return this;
        }

        /**
         * @param sku SKU of the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder sku(ApplicationGatewaySkuArgs sku) {
            return sku(Output.of(sku));
        }

        /**
         * @param sslCertificates SSL certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder sslCertificates(@Nullable Output> sslCertificates) {
            $.sslCertificates = sslCertificates;
            return this;
        }

        /**
         * @param sslCertificates SSL certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder sslCertificates(List sslCertificates) {
            return sslCertificates(Output.of(sslCertificates));
        }

        /**
         * @param sslCertificates SSL certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder sslCertificates(ApplicationGatewaySslCertificateArgs... sslCertificates) {
            return sslCertificates(List.of(sslCertificates));
        }

        /**
         * @param sslPolicy SSL policy of the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder sslPolicy(@Nullable Output sslPolicy) {
            $.sslPolicy = sslPolicy;
            return this;
        }

        /**
         * @param sslPolicy SSL policy of the application gateway resource.
         * 
         * @return builder
         * 
         */
        public Builder sslPolicy(ApplicationGatewaySslPolicyArgs sslPolicy) {
            return sslPolicy(Output.of(sslPolicy));
        }

        /**
         * @param sslProfiles SSL profiles of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder sslProfiles(@Nullable Output> sslProfiles) {
            $.sslProfiles = sslProfiles;
            return this;
        }

        /**
         * @param sslProfiles SSL profiles of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder sslProfiles(List sslProfiles) {
            return sslProfiles(Output.of(sslProfiles));
        }

        /**
         * @param sslProfiles SSL profiles of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder sslProfiles(ApplicationGatewaySslProfileArgs... sslProfiles) {
            return sslProfiles(List.of(sslProfiles));
        }

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Resource tags.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param trustedClientCertificates Trusted client certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder trustedClientCertificates(@Nullable Output> trustedClientCertificates) {
            $.trustedClientCertificates = trustedClientCertificates;
            return this;
        }

        /**
         * @param trustedClientCertificates Trusted client certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder trustedClientCertificates(List trustedClientCertificates) {
            return trustedClientCertificates(Output.of(trustedClientCertificates));
        }

        /**
         * @param trustedClientCertificates Trusted client certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder trustedClientCertificates(ApplicationGatewayTrustedClientCertificateArgs... trustedClientCertificates) {
            return trustedClientCertificates(List.of(trustedClientCertificates));
        }

        /**
         * @param trustedRootCertificates Trusted Root certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder trustedRootCertificates(@Nullable Output> trustedRootCertificates) {
            $.trustedRootCertificates = trustedRootCertificates;
            return this;
        }

        /**
         * @param trustedRootCertificates Trusted Root certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder trustedRootCertificates(List trustedRootCertificates) {
            return trustedRootCertificates(Output.of(trustedRootCertificates));
        }

        /**
         * @param trustedRootCertificates Trusted Root certificates of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder trustedRootCertificates(ApplicationGatewayTrustedRootCertificateArgs... trustedRootCertificates) {
            return trustedRootCertificates(List.of(trustedRootCertificates));
        }

        /**
         * @param urlPathMaps URL path map of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder urlPathMaps(@Nullable Output> urlPathMaps) {
            $.urlPathMaps = urlPathMaps;
            return this;
        }

        /**
         * @param urlPathMaps URL path map of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder urlPathMaps(List urlPathMaps) {
            return urlPathMaps(Output.of(urlPathMaps));
        }

        /**
         * @param urlPathMaps URL path map of the application gateway resource. For default limits, see [Application Gateway limits](https://docs.microsoft.com/azure/azure-subscription-service-limits#application-gateway-limits).
         * 
         * @return builder
         * 
         */
        public Builder urlPathMaps(ApplicationGatewayUrlPathMapArgs... urlPathMaps) {
            return urlPathMaps(List.of(urlPathMaps));
        }

        /**
         * @param webApplicationFirewallConfiguration Web application firewall configuration.
         * 
         * @return builder
         * 
         */
        public Builder webApplicationFirewallConfiguration(@Nullable Output webApplicationFirewallConfiguration) {
            $.webApplicationFirewallConfiguration = webApplicationFirewallConfiguration;
            return this;
        }

        /**
         * @param webApplicationFirewallConfiguration Web application firewall configuration.
         * 
         * @return builder
         * 
         */
        public Builder webApplicationFirewallConfiguration(ApplicationGatewayWebApplicationFirewallConfigurationArgs webApplicationFirewallConfiguration) {
            return webApplicationFirewallConfiguration(Output.of(webApplicationFirewallConfiguration));
        }

        /**
         * @param zones A list of availability zones denoting where the resource needs to come from.
         * 
         * @return builder
         * 
         */
        public Builder zones(@Nullable Output> zones) {
            $.zones = zones;
            return this;
        }

        /**
         * @param zones A list of availability zones denoting where the resource needs to come from.
         * 
         * @return builder
         * 
         */
        public Builder zones(List zones) {
            return zones(Output.of(zones));
        }

        /**
         * @param zones A list of availability zones denoting where the resource needs to come from.
         * 
         * @return builder
         * 
         */
        public Builder zones(String... zones) {
            return zones(List.of(zones));
        }

        public ApplicationGatewayArgs build() {
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("ApplicationGatewayArgs", "resourceGroupName");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy