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

com.pulumi.azurenative.network.inputs.ApplicationGatewayWebApplicationFirewallConfigurationArgs Maven / Gradle / Ivy

// *** 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.inputs;

import com.pulumi.azurenative.network.enums.ApplicationGatewayFirewallMode;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayFirewallDisabledRuleGroupArgs;
import com.pulumi.azurenative.network.inputs.ApplicationGatewayFirewallExclusionArgs;
import com.pulumi.core.Either;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Boolean;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


/**
 * Application gateway web application firewall configuration.
 * 
 */
public final class ApplicationGatewayWebApplicationFirewallConfigurationArgs extends com.pulumi.resources.ResourceArgs {

    public static final ApplicationGatewayWebApplicationFirewallConfigurationArgs Empty = new ApplicationGatewayWebApplicationFirewallConfigurationArgs();

    /**
     * The disabled rule groups.
     * 
     */
    @Import(name="disabledRuleGroups")
    private @Nullable Output> disabledRuleGroups;

    /**
     * @return The disabled rule groups.
     * 
     */
    public Optional>> disabledRuleGroups() {
        return Optional.ofNullable(this.disabledRuleGroups);
    }

    /**
     * Whether the web application firewall is enabled or not.
     * 
     */
    @Import(name="enabled", required=true)
    private Output enabled;

    /**
     * @return Whether the web application firewall is enabled or not.
     * 
     */
    public Output enabled() {
        return this.enabled;
    }

    /**
     * The exclusion list.
     * 
     */
    @Import(name="exclusions")
    private @Nullable Output> exclusions;

    /**
     * @return The exclusion list.
     * 
     */
    public Optional>> exclusions() {
        return Optional.ofNullable(this.exclusions);
    }

    /**
     * Maximum file upload size in Mb for WAF.
     * 
     */
    @Import(name="fileUploadLimitInMb")
    private @Nullable Output fileUploadLimitInMb;

    /**
     * @return Maximum file upload size in Mb for WAF.
     * 
     */
    public Optional> fileUploadLimitInMb() {
        return Optional.ofNullable(this.fileUploadLimitInMb);
    }

    /**
     * Web application firewall mode.
     * 
     */
    @Import(name="firewallMode", required=true)
    private Output> firewallMode;

    /**
     * @return Web application firewall mode.
     * 
     */
    public Output> firewallMode() {
        return this.firewallMode;
    }

    /**
     * Maximum request body size for WAF.
     * 
     */
    @Import(name="maxRequestBodySize")
    private @Nullable Output maxRequestBodySize;

    /**
     * @return Maximum request body size for WAF.
     * 
     */
    public Optional> maxRequestBodySize() {
        return Optional.ofNullable(this.maxRequestBodySize);
    }

    /**
     * Maximum request body size in Kb for WAF.
     * 
     */
    @Import(name="maxRequestBodySizeInKb")
    private @Nullable Output maxRequestBodySizeInKb;

    /**
     * @return Maximum request body size in Kb for WAF.
     * 
     */
    public Optional> maxRequestBodySizeInKb() {
        return Optional.ofNullable(this.maxRequestBodySizeInKb);
    }

    /**
     * Whether allow WAF to check request Body.
     * 
     */
    @Import(name="requestBodyCheck")
    private @Nullable Output requestBodyCheck;

    /**
     * @return Whether allow WAF to check request Body.
     * 
     */
    public Optional> requestBodyCheck() {
        return Optional.ofNullable(this.requestBodyCheck);
    }

    /**
     * The type of the web application firewall rule set. Possible values are: 'OWASP'.
     * 
     */
    @Import(name="ruleSetType", required=true)
    private Output ruleSetType;

    /**
     * @return The type of the web application firewall rule set. Possible values are: 'OWASP'.
     * 
     */
    public Output ruleSetType() {
        return this.ruleSetType;
    }

    /**
     * The version of the rule set type.
     * 
     */
    @Import(name="ruleSetVersion", required=true)
    private Output ruleSetVersion;

    /**
     * @return The version of the rule set type.
     * 
     */
    public Output ruleSetVersion() {
        return this.ruleSetVersion;
    }

    private ApplicationGatewayWebApplicationFirewallConfigurationArgs() {}

    private ApplicationGatewayWebApplicationFirewallConfigurationArgs(ApplicationGatewayWebApplicationFirewallConfigurationArgs $) {
        this.disabledRuleGroups = $.disabledRuleGroups;
        this.enabled = $.enabled;
        this.exclusions = $.exclusions;
        this.fileUploadLimitInMb = $.fileUploadLimitInMb;
        this.firewallMode = $.firewallMode;
        this.maxRequestBodySize = $.maxRequestBodySize;
        this.maxRequestBodySizeInKb = $.maxRequestBodySizeInKb;
        this.requestBodyCheck = $.requestBodyCheck;
        this.ruleSetType = $.ruleSetType;
        this.ruleSetVersion = $.ruleSetVersion;
    }

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

    public static final class Builder {
        private ApplicationGatewayWebApplicationFirewallConfigurationArgs $;

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

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

        /**
         * @param disabledRuleGroups The disabled rule groups.
         * 
         * @return builder
         * 
         */
        public Builder disabledRuleGroups(@Nullable Output> disabledRuleGroups) {
            $.disabledRuleGroups = disabledRuleGroups;
            return this;
        }

        /**
         * @param disabledRuleGroups The disabled rule groups.
         * 
         * @return builder
         * 
         */
        public Builder disabledRuleGroups(List disabledRuleGroups) {
            return disabledRuleGroups(Output.of(disabledRuleGroups));
        }

        /**
         * @param disabledRuleGroups The disabled rule groups.
         * 
         * @return builder
         * 
         */
        public Builder disabledRuleGroups(ApplicationGatewayFirewallDisabledRuleGroupArgs... disabledRuleGroups) {
            return disabledRuleGroups(List.of(disabledRuleGroups));
        }

        /**
         * @param enabled Whether the web application firewall is enabled or not.
         * 
         * @return builder
         * 
         */
        public Builder enabled(Output enabled) {
            $.enabled = enabled;
            return this;
        }

        /**
         * @param enabled Whether the web application firewall is enabled or not.
         * 
         * @return builder
         * 
         */
        public Builder enabled(Boolean enabled) {
            return enabled(Output.of(enabled));
        }

        /**
         * @param exclusions The exclusion list.
         * 
         * @return builder
         * 
         */
        public Builder exclusions(@Nullable Output> exclusions) {
            $.exclusions = exclusions;
            return this;
        }

        /**
         * @param exclusions The exclusion list.
         * 
         * @return builder
         * 
         */
        public Builder exclusions(List exclusions) {
            return exclusions(Output.of(exclusions));
        }

        /**
         * @param exclusions The exclusion list.
         * 
         * @return builder
         * 
         */
        public Builder exclusions(ApplicationGatewayFirewallExclusionArgs... exclusions) {
            return exclusions(List.of(exclusions));
        }

        /**
         * @param fileUploadLimitInMb Maximum file upload size in Mb for WAF.
         * 
         * @return builder
         * 
         */
        public Builder fileUploadLimitInMb(@Nullable Output fileUploadLimitInMb) {
            $.fileUploadLimitInMb = fileUploadLimitInMb;
            return this;
        }

        /**
         * @param fileUploadLimitInMb Maximum file upload size in Mb for WAF.
         * 
         * @return builder
         * 
         */
        public Builder fileUploadLimitInMb(Integer fileUploadLimitInMb) {
            return fileUploadLimitInMb(Output.of(fileUploadLimitInMb));
        }

        /**
         * @param firewallMode Web application firewall mode.
         * 
         * @return builder
         * 
         */
        public Builder firewallMode(Output> firewallMode) {
            $.firewallMode = firewallMode;
            return this;
        }

        /**
         * @param firewallMode Web application firewall mode.
         * 
         * @return builder
         * 
         */
        public Builder firewallMode(Either firewallMode) {
            return firewallMode(Output.of(firewallMode));
        }

        /**
         * @param firewallMode Web application firewall mode.
         * 
         * @return builder
         * 
         */
        public Builder firewallMode(String firewallMode) {
            return firewallMode(Either.ofLeft(firewallMode));
        }

        /**
         * @param firewallMode Web application firewall mode.
         * 
         * @return builder
         * 
         */
        public Builder firewallMode(ApplicationGatewayFirewallMode firewallMode) {
            return firewallMode(Either.ofRight(firewallMode));
        }

        /**
         * @param maxRequestBodySize Maximum request body size for WAF.
         * 
         * @return builder
         * 
         */
        public Builder maxRequestBodySize(@Nullable Output maxRequestBodySize) {
            $.maxRequestBodySize = maxRequestBodySize;
            return this;
        }

        /**
         * @param maxRequestBodySize Maximum request body size for WAF.
         * 
         * @return builder
         * 
         */
        public Builder maxRequestBodySize(Integer maxRequestBodySize) {
            return maxRequestBodySize(Output.of(maxRequestBodySize));
        }

        /**
         * @param maxRequestBodySizeInKb Maximum request body size in Kb for WAF.
         * 
         * @return builder
         * 
         */
        public Builder maxRequestBodySizeInKb(@Nullable Output maxRequestBodySizeInKb) {
            $.maxRequestBodySizeInKb = maxRequestBodySizeInKb;
            return this;
        }

        /**
         * @param maxRequestBodySizeInKb Maximum request body size in Kb for WAF.
         * 
         * @return builder
         * 
         */
        public Builder maxRequestBodySizeInKb(Integer maxRequestBodySizeInKb) {
            return maxRequestBodySizeInKb(Output.of(maxRequestBodySizeInKb));
        }

        /**
         * @param requestBodyCheck Whether allow WAF to check request Body.
         * 
         * @return builder
         * 
         */
        public Builder requestBodyCheck(@Nullable Output requestBodyCheck) {
            $.requestBodyCheck = requestBodyCheck;
            return this;
        }

        /**
         * @param requestBodyCheck Whether allow WAF to check request Body.
         * 
         * @return builder
         * 
         */
        public Builder requestBodyCheck(Boolean requestBodyCheck) {
            return requestBodyCheck(Output.of(requestBodyCheck));
        }

        /**
         * @param ruleSetType The type of the web application firewall rule set. Possible values are: 'OWASP'.
         * 
         * @return builder
         * 
         */
        public Builder ruleSetType(Output ruleSetType) {
            $.ruleSetType = ruleSetType;
            return this;
        }

        /**
         * @param ruleSetType The type of the web application firewall rule set. Possible values are: 'OWASP'.
         * 
         * @return builder
         * 
         */
        public Builder ruleSetType(String ruleSetType) {
            return ruleSetType(Output.of(ruleSetType));
        }

        /**
         * @param ruleSetVersion The version of the rule set type.
         * 
         * @return builder
         * 
         */
        public Builder ruleSetVersion(Output ruleSetVersion) {
            $.ruleSetVersion = ruleSetVersion;
            return this;
        }

        /**
         * @param ruleSetVersion The version of the rule set type.
         * 
         * @return builder
         * 
         */
        public Builder ruleSetVersion(String ruleSetVersion) {
            return ruleSetVersion(Output.of(ruleSetVersion));
        }

        public ApplicationGatewayWebApplicationFirewallConfigurationArgs build() {
            if ($.enabled == null) {
                throw new MissingRequiredPropertyException("ApplicationGatewayWebApplicationFirewallConfigurationArgs", "enabled");
            }
            if ($.firewallMode == null) {
                throw new MissingRequiredPropertyException("ApplicationGatewayWebApplicationFirewallConfigurationArgs", "firewallMode");
            }
            if ($.ruleSetType == null) {
                throw new MissingRequiredPropertyException("ApplicationGatewayWebApplicationFirewallConfigurationArgs", "ruleSetType");
            }
            if ($.ruleSetVersion == null) {
                throw new MissingRequiredPropertyException("ApplicationGatewayWebApplicationFirewallConfigurationArgs", "ruleSetVersion");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy