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

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

Go to download

A Pulumi package for creating and managing Microsoft Azure cloud resources, based on the Terraform azurerm provider. We recommend using the [Azure Native provider](https://github.com/pulumi/pulumi-azure-native) to provision Azure infrastructure. Azure Native provides complete coverage of Azure resources and same-day access to new resources and resource updates.

There is a newer version: 6.10.0-alpha.1731737215
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.azure.network;

import com.pulumi.azure.network.inputs.ApplicationGatewayAuthenticationCertificateArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewayAutoscaleConfigurationArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewayBackendAddressPoolArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewayBackendHttpSettingArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewayCustomErrorConfigurationArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewayFrontendIpConfigurationArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewayFrontendPortArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewayGatewayIpConfigurationArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewayGlobalArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewayHttpListenerArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewayIdentityArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewayPrivateLinkConfigurationArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewayProbeArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewayRedirectConfigurationArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewayRequestRoutingRuleArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewayRewriteRuleSetArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewaySkuArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewaySslCertificateArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewaySslPolicyArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewaySslProfileArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewayTrustedClientCertificateArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewayTrustedRootCertificateArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewayUrlPathMapArgs;
import com.pulumi.azure.network.inputs.ApplicationGatewayWafConfigurationArgs;
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();

    /**
     * One or more `authentication_certificate` blocks as defined below.
     * 
     */
    @Import(name="authenticationCertificates")
    private @Nullable Output> authenticationCertificates;

    /**
     * @return One or more `authentication_certificate` blocks as defined below.
     * 
     */
    public Optional>> authenticationCertificates() {
        return Optional.ofNullable(this.authenticationCertificates);
    }

    /**
     * An `autoscale_configuration` block as defined below.
     * 
     */
    @Import(name="autoscaleConfiguration")
    private @Nullable Output autoscaleConfiguration;

    /**
     * @return An `autoscale_configuration` block as defined below.
     * 
     */
    public Optional> autoscaleConfiguration() {
        return Optional.ofNullable(this.autoscaleConfiguration);
    }

    /**
     * One or more `backend_address_pool` blocks as defined below.
     * 
     */
    @Import(name="backendAddressPools", required=true)
    private Output> backendAddressPools;

    /**
     * @return One or more `backend_address_pool` blocks as defined below.
     * 
     */
    public Output> backendAddressPools() {
        return this.backendAddressPools;
    }

    /**
     * One or more `backend_http_settings` blocks as defined below.
     * 
     */
    @Import(name="backendHttpSettings", required=true)
    private Output> backendHttpSettings;

    /**
     * @return One or more `backend_http_settings` blocks as defined below.
     * 
     */
    public Output> backendHttpSettings() {
        return this.backendHttpSettings;
    }

    /**
     * One or more `custom_error_configuration` blocks as defined below.
     * 
     */
    @Import(name="customErrorConfigurations")
    private @Nullable Output> customErrorConfigurations;

    /**
     * @return One or more `custom_error_configuration` blocks as defined below.
     * 
     */
    public Optional>> customErrorConfigurations() {
        return Optional.ofNullable(this.customErrorConfigurations);
    }

    /**
     * Is HTTP2 enabled on the application gateway resource? Defaults to `false`.
     * 
     */
    @Import(name="enableHttp2")
    private @Nullable Output enableHttp2;

    /**
     * @return Is HTTP2 enabled on the application gateway resource? Defaults to `false`.
     * 
     */
    public Optional> enableHttp2() {
        return Optional.ofNullable(this.enableHttp2);
    }

    /**
     * Is FIPS enabled on the Application Gateway?
     * 
     */
    @Import(name="fipsEnabled")
    private @Nullable Output fipsEnabled;

    /**
     * @return Is FIPS enabled on the Application Gateway?
     * 
     */
    public Optional> fipsEnabled() {
        return Optional.ofNullable(this.fipsEnabled);
    }

    /**
     * The ID of the Web Application Firewall Policy.
     * 
     */
    @Import(name="firewallPolicyId")
    private @Nullable Output firewallPolicyId;

    /**
     * @return The ID of the Web Application Firewall Policy.
     * 
     */
    public Optional> firewallPolicyId() {
        return Optional.ofNullable(this.firewallPolicyId);
    }

    /**
     * Is the Firewall Policy associated with the Application Gateway?
     * 
     */
    @Import(name="forceFirewallPolicyAssociation")
    private @Nullable Output forceFirewallPolicyAssociation;

    /**
     * @return Is the Firewall Policy associated with the Application Gateway?
     * 
     */
    public Optional> forceFirewallPolicyAssociation() {
        return Optional.ofNullable(this.forceFirewallPolicyAssociation);
    }

    /**
     * One or more `frontend_ip_configuration` blocks as defined below.
     * 
     */
    @Import(name="frontendIpConfigurations", required=true)
    private Output> frontendIpConfigurations;

    /**
     * @return One or more `frontend_ip_configuration` blocks as defined below.
     * 
     */
    public Output> frontendIpConfigurations() {
        return this.frontendIpConfigurations;
    }

    /**
     * One or more `frontend_port` blocks as defined below.
     * 
     */
    @Import(name="frontendPorts", required=true)
    private Output> frontendPorts;

    /**
     * @return One or more `frontend_port` blocks as defined below.
     * 
     */
    public Output> frontendPorts() {
        return this.frontendPorts;
    }

    /**
     * One or more `gateway_ip_configuration` blocks as defined below.
     * 
     */
    @Import(name="gatewayIpConfigurations", required=true)
    private Output> gatewayIpConfigurations;

    /**
     * @return One or more `gateway_ip_configuration` blocks as defined below.
     * 
     */
    public Output> gatewayIpConfigurations() {
        return this.gatewayIpConfigurations;
    }

    /**
     * A `global` block as defined below.
     * 
     */
    @Import(name="global")
    private @Nullable Output global;

    /**
     * @return A `global` block as defined below.
     * 
     */
    public Optional> global() {
        return Optional.ofNullable(this.global);
    }

    /**
     * One or more `http_listener` blocks as defined below.
     * 
     */
    @Import(name="httpListeners", required=true)
    private Output> httpListeners;

    /**
     * @return One or more `http_listener` blocks as defined below.
     * 
     */
    public Output> httpListeners() {
        return this.httpListeners;
    }

    /**
     * An `identity` block as defined below.
     * 
     */
    @Import(name="identity")
    private @Nullable Output identity;

    /**
     * @return An `identity` block as defined below.
     * 
     */
    public Optional> identity() {
        return Optional.ofNullable(this.identity);
    }

    /**
     * The Azure region where the Application Gateway should exist. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return The Azure region where the Application Gateway should exist. Changing this forces a new resource to be created.
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * The name of the Application Gateway. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return The name of the Application Gateway. Changing this forces a new resource to be created.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * One or more `private_link_configuration` blocks as defined below.
     * 
     */
    @Import(name="privateLinkConfigurations")
    private @Nullable Output> privateLinkConfigurations;

    /**
     * @return One or more `private_link_configuration` blocks as defined below.
     * 
     */
    public Optional>> privateLinkConfigurations() {
        return Optional.ofNullable(this.privateLinkConfigurations);
    }

    /**
     * One or more `probe` blocks as defined below.
     * 
     */
    @Import(name="probes")
    private @Nullable Output> probes;

    /**
     * @return One or more `probe` blocks as defined below.
     * 
     */
    public Optional>> probes() {
        return Optional.ofNullable(this.probes);
    }

    /**
     * One or more `redirect_configuration` blocks as defined below.
     * 
     */
    @Import(name="redirectConfigurations")
    private @Nullable Output> redirectConfigurations;

    /**
     * @return One or more `redirect_configuration` blocks as defined below.
     * 
     */
    public Optional>> redirectConfigurations() {
        return Optional.ofNullable(this.redirectConfigurations);
    }

    /**
     * One or more `request_routing_rule` blocks as defined below.
     * 
     */
    @Import(name="requestRoutingRules", required=true)
    private Output> requestRoutingRules;

    /**
     * @return One or more `request_routing_rule` blocks as defined below.
     * 
     */
    public Output> requestRoutingRules() {
        return this.requestRoutingRules;
    }

    /**
     * The name of the resource group in which to the Application Gateway should exist. Changing this forces a new resource to be created.
     * 
     */
    @Import(name="resourceGroupName", required=true)
    private Output resourceGroupName;

    /**
     * @return The name of the resource group in which to the Application Gateway should exist. Changing this forces a new resource to be created.
     * 
     */
    public Output resourceGroupName() {
        return this.resourceGroupName;
    }

    /**
     * One or more `rewrite_rule_set` blocks as defined below. Only valid for v2 SKUs.
     * 
     */
    @Import(name="rewriteRuleSets")
    private @Nullable Output> rewriteRuleSets;

    /**
     * @return One or more `rewrite_rule_set` blocks as defined below. Only valid for v2 SKUs.
     * 
     */
    public Optional>> rewriteRuleSets() {
        return Optional.ofNullable(this.rewriteRuleSets);
    }

    /**
     * A `sku` block as defined below.
     * 
     */
    @Import(name="sku", required=true)
    private Output sku;

    /**
     * @return A `sku` block as defined below.
     * 
     */
    public Output sku() {
        return this.sku;
    }

    /**
     * One or more `ssl_certificate` blocks as defined below.
     * 
     */
    @Import(name="sslCertificates")
    private @Nullable Output> sslCertificates;

    /**
     * @return One or more `ssl_certificate` blocks as defined below.
     * 
     */
    public Optional>> sslCertificates() {
        return Optional.ofNullable(this.sslCertificates);
    }

    /**
     * a `ssl_policy` block as defined below.
     * 
     */
    @Import(name="sslPolicy")
    private @Nullable Output sslPolicy;

    /**
     * @return a `ssl_policy` block as defined below.
     * 
     */
    public Optional> sslPolicy() {
        return Optional.ofNullable(this.sslPolicy);
    }

    /**
     * One or more `ssl_profile` blocks as defined below.
     * 
     */
    @Import(name="sslProfiles")
    private @Nullable Output> sslProfiles;

    /**
     * @return One or more `ssl_profile` blocks as defined below.
     * 
     */
    public Optional>> sslProfiles() {
        return Optional.ofNullable(this.sslProfiles);
    }

    /**
     * A mapping of tags to assign to the resource.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return A mapping of tags to assign to the resource.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    /**
     * One or more `trusted_client_certificate` blocks as defined below.
     * 
     */
    @Import(name="trustedClientCertificates")
    private @Nullable Output> trustedClientCertificates;

    /**
     * @return One or more `trusted_client_certificate` blocks as defined below.
     * 
     */
    public Optional>> trustedClientCertificates() {
        return Optional.ofNullable(this.trustedClientCertificates);
    }

    /**
     * One or more `trusted_root_certificate` blocks as defined below.
     * 
     */
    @Import(name="trustedRootCertificates")
    private @Nullable Output> trustedRootCertificates;

    /**
     * @return One or more `trusted_root_certificate` blocks as defined below.
     * 
     */
    public Optional>> trustedRootCertificates() {
        return Optional.ofNullable(this.trustedRootCertificates);
    }

    /**
     * One or more `url_path_map` blocks as defined below.
     * 
     */
    @Import(name="urlPathMaps")
    private @Nullable Output> urlPathMaps;

    /**
     * @return One or more `url_path_map` blocks as defined below.
     * 
     */
    public Optional>> urlPathMaps() {
        return Optional.ofNullable(this.urlPathMaps);
    }

    /**
     * A `waf_configuration` block as defined below.
     * 
     */
    @Import(name="wafConfiguration")
    private @Nullable Output wafConfiguration;

    /**
     * @return A `waf_configuration` block as defined below.
     * 
     */
    public Optional> wafConfiguration() {
        return Optional.ofNullable(this.wafConfiguration);
    }

    /**
     * Specifies a list of Availability Zones in which this Application Gateway should be located. Changing this forces a new Application Gateway to be created.
     * 
     * > **Please Note**: Availability Zones are not supported in all regions at this time, please check the [official documentation](https://docs.microsoft.com/azure/availability-zones/az-overview) for more information. They are also only supported for [v2 SKUs](https://docs.microsoft.com/azure/application-gateway/application-gateway-autoscaling-zone-redundant)
     * 
     */
    @Import(name="zones")
    private @Nullable Output> zones;

    /**
     * @return Specifies a list of Availability Zones in which this Application Gateway should be located. Changing this forces a new Application Gateway to be created.
     * 
     * > **Please Note**: Availability Zones are not supported in all regions at this time, please check the [official documentation](https://docs.microsoft.com/azure/availability-zones/az-overview) for more information. They are also only supported for [v2 SKUs](https://docs.microsoft.com/azure/application-gateway/application-gateway-autoscaling-zone-redundant)
     * 
     */
    public Optional>> zones() {
        return Optional.ofNullable(this.zones);
    }

    private ApplicationGatewayArgs() {}

    private ApplicationGatewayArgs(ApplicationGatewayArgs $) {
        this.authenticationCertificates = $.authenticationCertificates;
        this.autoscaleConfiguration = $.autoscaleConfiguration;
        this.backendAddressPools = $.backendAddressPools;
        this.backendHttpSettings = $.backendHttpSettings;
        this.customErrorConfigurations = $.customErrorConfigurations;
        this.enableHttp2 = $.enableHttp2;
        this.fipsEnabled = $.fipsEnabled;
        this.firewallPolicyId = $.firewallPolicyId;
        this.forceFirewallPolicyAssociation = $.forceFirewallPolicyAssociation;
        this.frontendIpConfigurations = $.frontendIpConfigurations;
        this.frontendPorts = $.frontendPorts;
        this.gatewayIpConfigurations = $.gatewayIpConfigurations;
        this.global = $.global;
        this.httpListeners = $.httpListeners;
        this.identity = $.identity;
        this.location = $.location;
        this.name = $.name;
        this.privateLinkConfigurations = $.privateLinkConfigurations;
        this.probes = $.probes;
        this.redirectConfigurations = $.redirectConfigurations;
        this.requestRoutingRules = $.requestRoutingRules;
        this.resourceGroupName = $.resourceGroupName;
        this.rewriteRuleSets = $.rewriteRuleSets;
        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.wafConfiguration = $.wafConfiguration;
        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 authenticationCertificates One or more `authentication_certificate` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder authenticationCertificates(@Nullable Output> authenticationCertificates) {
            $.authenticationCertificates = authenticationCertificates;
            return this;
        }

        /**
         * @param authenticationCertificates One or more `authentication_certificate` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder authenticationCertificates(List authenticationCertificates) {
            return authenticationCertificates(Output.of(authenticationCertificates));
        }

        /**
         * @param authenticationCertificates One or more `authentication_certificate` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder authenticationCertificates(ApplicationGatewayAuthenticationCertificateArgs... authenticationCertificates) {
            return authenticationCertificates(List.of(authenticationCertificates));
        }

        /**
         * @param autoscaleConfiguration An `autoscale_configuration` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder autoscaleConfiguration(@Nullable Output autoscaleConfiguration) {
            $.autoscaleConfiguration = autoscaleConfiguration;
            return this;
        }

        /**
         * @param autoscaleConfiguration An `autoscale_configuration` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder autoscaleConfiguration(ApplicationGatewayAutoscaleConfigurationArgs autoscaleConfiguration) {
            return autoscaleConfiguration(Output.of(autoscaleConfiguration));
        }

        /**
         * @param backendAddressPools One or more `backend_address_pool` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder backendAddressPools(Output> backendAddressPools) {
            $.backendAddressPools = backendAddressPools;
            return this;
        }

        /**
         * @param backendAddressPools One or more `backend_address_pool` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder backendAddressPools(List backendAddressPools) {
            return backendAddressPools(Output.of(backendAddressPools));
        }

        /**
         * @param backendAddressPools One or more `backend_address_pool` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder backendAddressPools(ApplicationGatewayBackendAddressPoolArgs... backendAddressPools) {
            return backendAddressPools(List.of(backendAddressPools));
        }

        /**
         * @param backendHttpSettings One or more `backend_http_settings` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder backendHttpSettings(Output> backendHttpSettings) {
            $.backendHttpSettings = backendHttpSettings;
            return this;
        }

        /**
         * @param backendHttpSettings One or more `backend_http_settings` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder backendHttpSettings(List backendHttpSettings) {
            return backendHttpSettings(Output.of(backendHttpSettings));
        }

        /**
         * @param backendHttpSettings One or more `backend_http_settings` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder backendHttpSettings(ApplicationGatewayBackendHttpSettingArgs... backendHttpSettings) {
            return backendHttpSettings(List.of(backendHttpSettings));
        }

        /**
         * @param customErrorConfigurations One or more `custom_error_configuration` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder customErrorConfigurations(@Nullable Output> customErrorConfigurations) {
            $.customErrorConfigurations = customErrorConfigurations;
            return this;
        }

        /**
         * @param customErrorConfigurations One or more `custom_error_configuration` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder customErrorConfigurations(List customErrorConfigurations) {
            return customErrorConfigurations(Output.of(customErrorConfigurations));
        }

        /**
         * @param customErrorConfigurations One or more `custom_error_configuration` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder customErrorConfigurations(ApplicationGatewayCustomErrorConfigurationArgs... customErrorConfigurations) {
            return customErrorConfigurations(List.of(customErrorConfigurations));
        }

        /**
         * @param enableHttp2 Is HTTP2 enabled on the application gateway resource? Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder enableHttp2(@Nullable Output enableHttp2) {
            $.enableHttp2 = enableHttp2;
            return this;
        }

        /**
         * @param enableHttp2 Is HTTP2 enabled on the application gateway resource? Defaults to `false`.
         * 
         * @return builder
         * 
         */
        public Builder enableHttp2(Boolean enableHttp2) {
            return enableHttp2(Output.of(enableHttp2));
        }

        /**
         * @param fipsEnabled Is FIPS enabled on the Application Gateway?
         * 
         * @return builder
         * 
         */
        public Builder fipsEnabled(@Nullable Output fipsEnabled) {
            $.fipsEnabled = fipsEnabled;
            return this;
        }

        /**
         * @param fipsEnabled Is FIPS enabled on the Application Gateway?
         * 
         * @return builder
         * 
         */
        public Builder fipsEnabled(Boolean fipsEnabled) {
            return fipsEnabled(Output.of(fipsEnabled));
        }

        /**
         * @param firewallPolicyId The ID of the Web Application Firewall Policy.
         * 
         * @return builder
         * 
         */
        public Builder firewallPolicyId(@Nullable Output firewallPolicyId) {
            $.firewallPolicyId = firewallPolicyId;
            return this;
        }

        /**
         * @param firewallPolicyId The ID of the Web Application Firewall Policy.
         * 
         * @return builder
         * 
         */
        public Builder firewallPolicyId(String firewallPolicyId) {
            return firewallPolicyId(Output.of(firewallPolicyId));
        }

        /**
         * @param forceFirewallPolicyAssociation Is the Firewall Policy associated with the Application Gateway?
         * 
         * @return builder
         * 
         */
        public Builder forceFirewallPolicyAssociation(@Nullable Output forceFirewallPolicyAssociation) {
            $.forceFirewallPolicyAssociation = forceFirewallPolicyAssociation;
            return this;
        }

        /**
         * @param forceFirewallPolicyAssociation Is the Firewall Policy associated with the Application Gateway?
         * 
         * @return builder
         * 
         */
        public Builder forceFirewallPolicyAssociation(Boolean forceFirewallPolicyAssociation) {
            return forceFirewallPolicyAssociation(Output.of(forceFirewallPolicyAssociation));
        }

        /**
         * @param frontendIpConfigurations One or more `frontend_ip_configuration` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder frontendIpConfigurations(Output> frontendIpConfigurations) {
            $.frontendIpConfigurations = frontendIpConfigurations;
            return this;
        }

        /**
         * @param frontendIpConfigurations One or more `frontend_ip_configuration` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder frontendIpConfigurations(List frontendIpConfigurations) {
            return frontendIpConfigurations(Output.of(frontendIpConfigurations));
        }

        /**
         * @param frontendIpConfigurations One or more `frontend_ip_configuration` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder frontendIpConfigurations(ApplicationGatewayFrontendIpConfigurationArgs... frontendIpConfigurations) {
            return frontendIpConfigurations(List.of(frontendIpConfigurations));
        }

        /**
         * @param frontendPorts One or more `frontend_port` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder frontendPorts(Output> frontendPorts) {
            $.frontendPorts = frontendPorts;
            return this;
        }

        /**
         * @param frontendPorts One or more `frontend_port` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder frontendPorts(List frontendPorts) {
            return frontendPorts(Output.of(frontendPorts));
        }

        /**
         * @param frontendPorts One or more `frontend_port` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder frontendPorts(ApplicationGatewayFrontendPortArgs... frontendPorts) {
            return frontendPorts(List.of(frontendPorts));
        }

        /**
         * @param gatewayIpConfigurations One or more `gateway_ip_configuration` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder gatewayIpConfigurations(Output> gatewayIpConfigurations) {
            $.gatewayIpConfigurations = gatewayIpConfigurations;
            return this;
        }

        /**
         * @param gatewayIpConfigurations One or more `gateway_ip_configuration` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder gatewayIpConfigurations(List gatewayIpConfigurations) {
            return gatewayIpConfigurations(Output.of(gatewayIpConfigurations));
        }

        /**
         * @param gatewayIpConfigurations One or more `gateway_ip_configuration` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder gatewayIpConfigurations(ApplicationGatewayGatewayIpConfigurationArgs... gatewayIpConfigurations) {
            return gatewayIpConfigurations(List.of(gatewayIpConfigurations));
        }

        /**
         * @param global A `global` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder global(@Nullable Output global) {
            $.global = global;
            return this;
        }

        /**
         * @param global A `global` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder global(ApplicationGatewayGlobalArgs global) {
            return global(Output.of(global));
        }

        /**
         * @param httpListeners One or more `http_listener` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder httpListeners(Output> httpListeners) {
            $.httpListeners = httpListeners;
            return this;
        }

        /**
         * @param httpListeners One or more `http_listener` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder httpListeners(List httpListeners) {
            return httpListeners(Output.of(httpListeners));
        }

        /**
         * @param httpListeners One or more `http_listener` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder httpListeners(ApplicationGatewayHttpListenerArgs... httpListeners) {
            return httpListeners(List.of(httpListeners));
        }

        /**
         * @param identity An `identity` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder identity(@Nullable Output identity) {
            $.identity = identity;
            return this;
        }

        /**
         * @param identity An `identity` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder identity(ApplicationGatewayIdentityArgs identity) {
            return identity(Output.of(identity));
        }

        /**
         * @param location The Azure region where the Application Gateway should exist. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location The Azure region where the Application Gateway should exist. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param name The name of the Application Gateway. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The name of the Application Gateway. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param privateLinkConfigurations One or more `private_link_configuration` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder privateLinkConfigurations(@Nullable Output> privateLinkConfigurations) {
            $.privateLinkConfigurations = privateLinkConfigurations;
            return this;
        }

        /**
         * @param privateLinkConfigurations One or more `private_link_configuration` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder privateLinkConfigurations(List privateLinkConfigurations) {
            return privateLinkConfigurations(Output.of(privateLinkConfigurations));
        }

        /**
         * @param privateLinkConfigurations One or more `private_link_configuration` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder privateLinkConfigurations(ApplicationGatewayPrivateLinkConfigurationArgs... privateLinkConfigurations) {
            return privateLinkConfigurations(List.of(privateLinkConfigurations));
        }

        /**
         * @param probes One or more `probe` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder probes(@Nullable Output> probes) {
            $.probes = probes;
            return this;
        }

        /**
         * @param probes One or more `probe` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder probes(List probes) {
            return probes(Output.of(probes));
        }

        /**
         * @param probes One or more `probe` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder probes(ApplicationGatewayProbeArgs... probes) {
            return probes(List.of(probes));
        }

        /**
         * @param redirectConfigurations One or more `redirect_configuration` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder redirectConfigurations(@Nullable Output> redirectConfigurations) {
            $.redirectConfigurations = redirectConfigurations;
            return this;
        }

        /**
         * @param redirectConfigurations One or more `redirect_configuration` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder redirectConfigurations(List redirectConfigurations) {
            return redirectConfigurations(Output.of(redirectConfigurations));
        }

        /**
         * @param redirectConfigurations One or more `redirect_configuration` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder redirectConfigurations(ApplicationGatewayRedirectConfigurationArgs... redirectConfigurations) {
            return redirectConfigurations(List.of(redirectConfigurations));
        }

        /**
         * @param requestRoutingRules One or more `request_routing_rule` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder requestRoutingRules(Output> requestRoutingRules) {
            $.requestRoutingRules = requestRoutingRules;
            return this;
        }

        /**
         * @param requestRoutingRules One or more `request_routing_rule` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder requestRoutingRules(List requestRoutingRules) {
            return requestRoutingRules(Output.of(requestRoutingRules));
        }

        /**
         * @param requestRoutingRules One or more `request_routing_rule` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder requestRoutingRules(ApplicationGatewayRequestRoutingRuleArgs... requestRoutingRules) {
            return requestRoutingRules(List.of(requestRoutingRules));
        }

        /**
         * @param resourceGroupName The name of the resource group in which to the Application Gateway should exist. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(Output resourceGroupName) {
            $.resourceGroupName = resourceGroupName;
            return this;
        }

        /**
         * @param resourceGroupName The name of the resource group in which to the Application Gateway should exist. Changing this forces a new resource to be created.
         * 
         * @return builder
         * 
         */
        public Builder resourceGroupName(String resourceGroupName) {
            return resourceGroupName(Output.of(resourceGroupName));
        }

        /**
         * @param rewriteRuleSets One or more `rewrite_rule_set` blocks as defined below. Only valid for v2 SKUs.
         * 
         * @return builder
         * 
         */
        public Builder rewriteRuleSets(@Nullable Output> rewriteRuleSets) {
            $.rewriteRuleSets = rewriteRuleSets;
            return this;
        }

        /**
         * @param rewriteRuleSets One or more `rewrite_rule_set` blocks as defined below. Only valid for v2 SKUs.
         * 
         * @return builder
         * 
         */
        public Builder rewriteRuleSets(List rewriteRuleSets) {
            return rewriteRuleSets(Output.of(rewriteRuleSets));
        }

        /**
         * @param rewriteRuleSets One or more `rewrite_rule_set` blocks as defined below. Only valid for v2 SKUs.
         * 
         * @return builder
         * 
         */
        public Builder rewriteRuleSets(ApplicationGatewayRewriteRuleSetArgs... rewriteRuleSets) {
            return rewriteRuleSets(List.of(rewriteRuleSets));
        }

        /**
         * @param sku A `sku` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder sku(Output sku) {
            $.sku = sku;
            return this;
        }

        /**
         * @param sku A `sku` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder sku(ApplicationGatewaySkuArgs sku) {
            return sku(Output.of(sku));
        }

        /**
         * @param sslCertificates One or more `ssl_certificate` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder sslCertificates(@Nullable Output> sslCertificates) {
            $.sslCertificates = sslCertificates;
            return this;
        }

        /**
         * @param sslCertificates One or more `ssl_certificate` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder sslCertificates(List sslCertificates) {
            return sslCertificates(Output.of(sslCertificates));
        }

        /**
         * @param sslCertificates One or more `ssl_certificate` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder sslCertificates(ApplicationGatewaySslCertificateArgs... sslCertificates) {
            return sslCertificates(List.of(sslCertificates));
        }

        /**
         * @param sslPolicy a `ssl_policy` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder sslPolicy(@Nullable Output sslPolicy) {
            $.sslPolicy = sslPolicy;
            return this;
        }

        /**
         * @param sslPolicy a `ssl_policy` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder sslPolicy(ApplicationGatewaySslPolicyArgs sslPolicy) {
            return sslPolicy(Output.of(sslPolicy));
        }

        /**
         * @param sslProfiles One or more `ssl_profile` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder sslProfiles(@Nullable Output> sslProfiles) {
            $.sslProfiles = sslProfiles;
            return this;
        }

        /**
         * @param sslProfiles One or more `ssl_profile` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder sslProfiles(List sslProfiles) {
            return sslProfiles(Output.of(sslProfiles));
        }

        /**
         * @param sslProfiles One or more `ssl_profile` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder sslProfiles(ApplicationGatewaySslProfileArgs... sslProfiles) {
            return sslProfiles(List.of(sslProfiles));
        }

        /**
         * @param tags A mapping of tags to assign to the resource.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags A mapping of tags to assign to the resource.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        /**
         * @param trustedClientCertificates One or more `trusted_client_certificate` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder trustedClientCertificates(@Nullable Output> trustedClientCertificates) {
            $.trustedClientCertificates = trustedClientCertificates;
            return this;
        }

        /**
         * @param trustedClientCertificates One or more `trusted_client_certificate` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder trustedClientCertificates(List trustedClientCertificates) {
            return trustedClientCertificates(Output.of(trustedClientCertificates));
        }

        /**
         * @param trustedClientCertificates One or more `trusted_client_certificate` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder trustedClientCertificates(ApplicationGatewayTrustedClientCertificateArgs... trustedClientCertificates) {
            return trustedClientCertificates(List.of(trustedClientCertificates));
        }

        /**
         * @param trustedRootCertificates One or more `trusted_root_certificate` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder trustedRootCertificates(@Nullable Output> trustedRootCertificates) {
            $.trustedRootCertificates = trustedRootCertificates;
            return this;
        }

        /**
         * @param trustedRootCertificates One or more `trusted_root_certificate` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder trustedRootCertificates(List trustedRootCertificates) {
            return trustedRootCertificates(Output.of(trustedRootCertificates));
        }

        /**
         * @param trustedRootCertificates One or more `trusted_root_certificate` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder trustedRootCertificates(ApplicationGatewayTrustedRootCertificateArgs... trustedRootCertificates) {
            return trustedRootCertificates(List.of(trustedRootCertificates));
        }

        /**
         * @param urlPathMaps One or more `url_path_map` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder urlPathMaps(@Nullable Output> urlPathMaps) {
            $.urlPathMaps = urlPathMaps;
            return this;
        }

        /**
         * @param urlPathMaps One or more `url_path_map` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder urlPathMaps(List urlPathMaps) {
            return urlPathMaps(Output.of(urlPathMaps));
        }

        /**
         * @param urlPathMaps One or more `url_path_map` blocks as defined below.
         * 
         * @return builder
         * 
         */
        public Builder urlPathMaps(ApplicationGatewayUrlPathMapArgs... urlPathMaps) {
            return urlPathMaps(List.of(urlPathMaps));
        }

        /**
         * @param wafConfiguration A `waf_configuration` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder wafConfiguration(@Nullable Output wafConfiguration) {
            $.wafConfiguration = wafConfiguration;
            return this;
        }

        /**
         * @param wafConfiguration A `waf_configuration` block as defined below.
         * 
         * @return builder
         * 
         */
        public Builder wafConfiguration(ApplicationGatewayWafConfigurationArgs wafConfiguration) {
            return wafConfiguration(Output.of(wafConfiguration));
        }

        /**
         * @param zones Specifies a list of Availability Zones in which this Application Gateway should be located. Changing this forces a new Application Gateway to be created.
         * 
         * > **Please Note**: Availability Zones are not supported in all regions at this time, please check the [official documentation](https://docs.microsoft.com/azure/availability-zones/az-overview) for more information. They are also only supported for [v2 SKUs](https://docs.microsoft.com/azure/application-gateway/application-gateway-autoscaling-zone-redundant)
         * 
         * @return builder
         * 
         */
        public Builder zones(@Nullable Output> zones) {
            $.zones = zones;
            return this;
        }

        /**
         * @param zones Specifies a list of Availability Zones in which this Application Gateway should be located. Changing this forces a new Application Gateway to be created.
         * 
         * > **Please Note**: Availability Zones are not supported in all regions at this time, please check the [official documentation](https://docs.microsoft.com/azure/availability-zones/az-overview) for more information. They are also only supported for [v2 SKUs](https://docs.microsoft.com/azure/application-gateway/application-gateway-autoscaling-zone-redundant)
         * 
         * @return builder
         * 
         */
        public Builder zones(List zones) {
            return zones(Output.of(zones));
        }

        /**
         * @param zones Specifies a list of Availability Zones in which this Application Gateway should be located. Changing this forces a new Application Gateway to be created.
         * 
         * > **Please Note**: Availability Zones are not supported in all regions at this time, please check the [official documentation](https://docs.microsoft.com/azure/availability-zones/az-overview) for more information. They are also only supported for [v2 SKUs](https://docs.microsoft.com/azure/application-gateway/application-gateway-autoscaling-zone-redundant)
         * 
         * @return builder
         * 
         */
        public Builder zones(String... zones) {
            return zones(List.of(zones));
        }

        public ApplicationGatewayArgs build() {
            if ($.backendAddressPools == null) {
                throw new MissingRequiredPropertyException("ApplicationGatewayArgs", "backendAddressPools");
            }
            if ($.backendHttpSettings == null) {
                throw new MissingRequiredPropertyException("ApplicationGatewayArgs", "backendHttpSettings");
            }
            if ($.frontendIpConfigurations == null) {
                throw new MissingRequiredPropertyException("ApplicationGatewayArgs", "frontendIpConfigurations");
            }
            if ($.frontendPorts == null) {
                throw new MissingRequiredPropertyException("ApplicationGatewayArgs", "frontendPorts");
            }
            if ($.gatewayIpConfigurations == null) {
                throw new MissingRequiredPropertyException("ApplicationGatewayArgs", "gatewayIpConfigurations");
            }
            if ($.httpListeners == null) {
                throw new MissingRequiredPropertyException("ApplicationGatewayArgs", "httpListeners");
            }
            if ($.requestRoutingRules == null) {
                throw new MissingRequiredPropertyException("ApplicationGatewayArgs", "requestRoutingRules");
            }
            if ($.resourceGroupName == null) {
                throw new MissingRequiredPropertyException("ApplicationGatewayArgs", "resourceGroupName");
            }
            if ($.sku == null) {
                throw new MissingRequiredPropertyException("ApplicationGatewayArgs", "sku");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy