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

com.pulumi.aws.wafv2.inputs.WebAclRuleStatementRateBasedStatementCustomKeyArgs 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.aws.wafv2.inputs;

import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementRateBasedStatementCustomKeyCookieArgs;
import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementRateBasedStatementCustomKeyForwardedIpArgs;
import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementRateBasedStatementCustomKeyHeaderArgs;
import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementRateBasedStatementCustomKeyHttpMethodArgs;
import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementRateBasedStatementCustomKeyIpArgs;
import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementRateBasedStatementCustomKeyLabelNamespaceArgs;
import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementRateBasedStatementCustomKeyQueryArgumentArgs;
import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementRateBasedStatementCustomKeyQueryStringArgs;
import com.pulumi.aws.wafv2.inputs.WebAclRuleStatementRateBasedStatementCustomKeyUriPathArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final WebAclRuleStatementRateBasedStatementCustomKeyArgs Empty = new WebAclRuleStatementRateBasedStatementCustomKeyArgs();

    /**
     * Use the value of a cookie in the request as an aggregate key. See RateLimit `cookie` below for details.
     * 
     */
    @Import(name="cookie")
    private @Nullable Output cookie;

    /**
     * @return Use the value of a cookie in the request as an aggregate key. See RateLimit `cookie` below for details.
     * 
     */
    public Optional> cookie() {
        return Optional.ofNullable(this.cookie);
    }

    /**
     * Use the first IP address in an HTTP header as an aggregate key. See `forwarded_ip` below for details.
     * 
     */
    @Import(name="forwardedIp")
    private @Nullable Output forwardedIp;

    /**
     * @return Use the first IP address in an HTTP header as an aggregate key. See `forwarded_ip` below for details.
     * 
     */
    public Optional> forwardedIp() {
        return Optional.ofNullable(this.forwardedIp);
    }

    /**
     * Use the value of a header in the request as an aggregate key. See RateLimit `header` below for details.
     * 
     */
    @Import(name="header")
    private @Nullable Output header;

    /**
     * @return Use the value of a header in the request as an aggregate key. See RateLimit `header` below for details.
     * 
     */
    public Optional> header() {
        return Optional.ofNullable(this.header);
    }

    /**
     * Use the request's HTTP method as an aggregate key. See RateLimit `http_method` below for details.
     * 
     */
    @Import(name="httpMethod")
    private @Nullable Output httpMethod;

    /**
     * @return Use the request's HTTP method as an aggregate key. See RateLimit `http_method` below for details.
     * 
     */
    public Optional> httpMethod() {
        return Optional.ofNullable(this.httpMethod);
    }

    /**
     * Use the request's originating IP address as an aggregate key. See `RateLimit ip` below for details.
     * 
     */
    @Import(name="ip")
    private @Nullable Output ip;

    /**
     * @return Use the request's originating IP address as an aggregate key. See `RateLimit ip` below for details.
     * 
     */
    public Optional> ip() {
        return Optional.ofNullable(this.ip);
    }

    /**
     * Use the specified label namespace as an aggregate key. See RateLimit `label_namespace` below for details.
     * 
     */
    @Import(name="labelNamespace")
    private @Nullable Output labelNamespace;

    /**
     * @return Use the specified label namespace as an aggregate key. See RateLimit `label_namespace` below for details.
     * 
     */
    public Optional> labelNamespace() {
        return Optional.ofNullable(this.labelNamespace);
    }

    /**
     * Use the specified query argument as an aggregate key. See RateLimit `query_argument` below for details.
     * 
     */
    @Import(name="queryArgument")
    private @Nullable Output queryArgument;

    /**
     * @return Use the specified query argument as an aggregate key. See RateLimit `query_argument` below for details.
     * 
     */
    public Optional> queryArgument() {
        return Optional.ofNullable(this.queryArgument);
    }

    /**
     * Use the request's query string as an aggregate key. See RateLimit `query_string` below for details.
     * 
     */
    @Import(name="queryString")
    private @Nullable Output queryString;

    /**
     * @return Use the request's query string as an aggregate key. See RateLimit `query_string` below for details.
     * 
     */
    public Optional> queryString() {
        return Optional.ofNullable(this.queryString);
    }

    /**
     * Use the request's URI path as an aggregate key. See RateLimit `uri_path` below for details.
     * 
     */
    @Import(name="uriPath")
    private @Nullable Output uriPath;

    /**
     * @return Use the request's URI path as an aggregate key. See RateLimit `uri_path` below for details.
     * 
     */
    public Optional> uriPath() {
        return Optional.ofNullable(this.uriPath);
    }

    private WebAclRuleStatementRateBasedStatementCustomKeyArgs() {}

    private WebAclRuleStatementRateBasedStatementCustomKeyArgs(WebAclRuleStatementRateBasedStatementCustomKeyArgs $) {
        this.cookie = $.cookie;
        this.forwardedIp = $.forwardedIp;
        this.header = $.header;
        this.httpMethod = $.httpMethod;
        this.ip = $.ip;
        this.labelNamespace = $.labelNamespace;
        this.queryArgument = $.queryArgument;
        this.queryString = $.queryString;
        this.uriPath = $.uriPath;
    }

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

    public static final class Builder {
        private WebAclRuleStatementRateBasedStatementCustomKeyArgs $;

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

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

        /**
         * @param cookie Use the value of a cookie in the request as an aggregate key. See RateLimit `cookie` below for details.
         * 
         * @return builder
         * 
         */
        public Builder cookie(@Nullable Output cookie) {
            $.cookie = cookie;
            return this;
        }

        /**
         * @param cookie Use the value of a cookie in the request as an aggregate key. See RateLimit `cookie` below for details.
         * 
         * @return builder
         * 
         */
        public Builder cookie(WebAclRuleStatementRateBasedStatementCustomKeyCookieArgs cookie) {
            return cookie(Output.of(cookie));
        }

        /**
         * @param forwardedIp Use the first IP address in an HTTP header as an aggregate key. See `forwarded_ip` below for details.
         * 
         * @return builder
         * 
         */
        public Builder forwardedIp(@Nullable Output forwardedIp) {
            $.forwardedIp = forwardedIp;
            return this;
        }

        /**
         * @param forwardedIp Use the first IP address in an HTTP header as an aggregate key. See `forwarded_ip` below for details.
         * 
         * @return builder
         * 
         */
        public Builder forwardedIp(WebAclRuleStatementRateBasedStatementCustomKeyForwardedIpArgs forwardedIp) {
            return forwardedIp(Output.of(forwardedIp));
        }

        /**
         * @param header Use the value of a header in the request as an aggregate key. See RateLimit `header` below for details.
         * 
         * @return builder
         * 
         */
        public Builder header(@Nullable Output header) {
            $.header = header;
            return this;
        }

        /**
         * @param header Use the value of a header in the request as an aggregate key. See RateLimit `header` below for details.
         * 
         * @return builder
         * 
         */
        public Builder header(WebAclRuleStatementRateBasedStatementCustomKeyHeaderArgs header) {
            return header(Output.of(header));
        }

        /**
         * @param httpMethod Use the request's HTTP method as an aggregate key. See RateLimit `http_method` below for details.
         * 
         * @return builder
         * 
         */
        public Builder httpMethod(@Nullable Output httpMethod) {
            $.httpMethod = httpMethod;
            return this;
        }

        /**
         * @param httpMethod Use the request's HTTP method as an aggregate key. See RateLimit `http_method` below for details.
         * 
         * @return builder
         * 
         */
        public Builder httpMethod(WebAclRuleStatementRateBasedStatementCustomKeyHttpMethodArgs httpMethod) {
            return httpMethod(Output.of(httpMethod));
        }

        /**
         * @param ip Use the request's originating IP address as an aggregate key. See `RateLimit ip` below for details.
         * 
         * @return builder
         * 
         */
        public Builder ip(@Nullable Output ip) {
            $.ip = ip;
            return this;
        }

        /**
         * @param ip Use the request's originating IP address as an aggregate key. See `RateLimit ip` below for details.
         * 
         * @return builder
         * 
         */
        public Builder ip(WebAclRuleStatementRateBasedStatementCustomKeyIpArgs ip) {
            return ip(Output.of(ip));
        }

        /**
         * @param labelNamespace Use the specified label namespace as an aggregate key. See RateLimit `label_namespace` below for details.
         * 
         * @return builder
         * 
         */
        public Builder labelNamespace(@Nullable Output labelNamespace) {
            $.labelNamespace = labelNamespace;
            return this;
        }

        /**
         * @param labelNamespace Use the specified label namespace as an aggregate key. See RateLimit `label_namespace` below for details.
         * 
         * @return builder
         * 
         */
        public Builder labelNamespace(WebAclRuleStatementRateBasedStatementCustomKeyLabelNamespaceArgs labelNamespace) {
            return labelNamespace(Output.of(labelNamespace));
        }

        /**
         * @param queryArgument Use the specified query argument as an aggregate key. See RateLimit `query_argument` below for details.
         * 
         * @return builder
         * 
         */
        public Builder queryArgument(@Nullable Output queryArgument) {
            $.queryArgument = queryArgument;
            return this;
        }

        /**
         * @param queryArgument Use the specified query argument as an aggregate key. See RateLimit `query_argument` below for details.
         * 
         * @return builder
         * 
         */
        public Builder queryArgument(WebAclRuleStatementRateBasedStatementCustomKeyQueryArgumentArgs queryArgument) {
            return queryArgument(Output.of(queryArgument));
        }

        /**
         * @param queryString Use the request's query string as an aggregate key. See RateLimit `query_string` below for details.
         * 
         * @return builder
         * 
         */
        public Builder queryString(@Nullable Output queryString) {
            $.queryString = queryString;
            return this;
        }

        /**
         * @param queryString Use the request's query string as an aggregate key. See RateLimit `query_string` below for details.
         * 
         * @return builder
         * 
         */
        public Builder queryString(WebAclRuleStatementRateBasedStatementCustomKeyQueryStringArgs queryString) {
            return queryString(Output.of(queryString));
        }

        /**
         * @param uriPath Use the request's URI path as an aggregate key. See RateLimit `uri_path` below for details.
         * 
         * @return builder
         * 
         */
        public Builder uriPath(@Nullable Output uriPath) {
            $.uriPath = uriPath;
            return this;
        }

        /**
         * @param uriPath Use the request's URI path as an aggregate key. See RateLimit `uri_path` below for details.
         * 
         * @return builder
         * 
         */
        public Builder uriPath(WebAclRuleStatementRateBasedStatementCustomKeyUriPathArgs uriPath) {
            return uriPath(Output.of(uriPath));
        }

        public WebAclRuleStatementRateBasedStatementCustomKeyArgs build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy