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

com.pulumi.cloudflare.inputs.RulesetRuleRatelimitArgs 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.cloudflare.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
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;


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

    public static final RulesetRuleRatelimitArgs Empty = new RulesetRuleRatelimitArgs();

    @Import(name="characteristics")
    private @Nullable Output> characteristics;

    public Optional>> characteristics() {
        return Optional.ofNullable(this.characteristics);
    }

    @Import(name="countingExpression")
    private @Nullable Output countingExpression;

    public Optional> countingExpression() {
        return Optional.ofNullable(this.countingExpression);
    }

    @Import(name="mitigationTimeout")
    private @Nullable Output mitigationTimeout;

    public Optional> mitigationTimeout() {
        return Optional.ofNullable(this.mitigationTimeout);
    }

    @Import(name="period")
    private @Nullable Output period;

    public Optional> period() {
        return Optional.ofNullable(this.period);
    }

    @Import(name="requestsPerPeriod")
    private @Nullable Output requestsPerPeriod;

    public Optional> requestsPerPeriod() {
        return Optional.ofNullable(this.requestsPerPeriod);
    }

    @Import(name="requestsToOrigin")
    private @Nullable Output requestsToOrigin;

    public Optional> requestsToOrigin() {
        return Optional.ofNullable(this.requestsToOrigin);
    }

    @Import(name="scorePerPeriod")
    private @Nullable Output scorePerPeriod;

    public Optional> scorePerPeriod() {
        return Optional.ofNullable(this.scorePerPeriod);
    }

    @Import(name="scoreResponseHeaderName")
    private @Nullable Output scoreResponseHeaderName;

    public Optional> scoreResponseHeaderName() {
        return Optional.ofNullable(this.scoreResponseHeaderName);
    }

    private RulesetRuleRatelimitArgs() {}

    private RulesetRuleRatelimitArgs(RulesetRuleRatelimitArgs $) {
        this.characteristics = $.characteristics;
        this.countingExpression = $.countingExpression;
        this.mitigationTimeout = $.mitigationTimeout;
        this.period = $.period;
        this.requestsPerPeriod = $.requestsPerPeriod;
        this.requestsToOrigin = $.requestsToOrigin;
        this.scorePerPeriod = $.scorePerPeriod;
        this.scoreResponseHeaderName = $.scoreResponseHeaderName;
    }

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

    public static final class Builder {
        private RulesetRuleRatelimitArgs $;

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

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

        public Builder characteristics(@Nullable Output> characteristics) {
            $.characteristics = characteristics;
            return this;
        }

        public Builder characteristics(List characteristics) {
            return characteristics(Output.of(characteristics));
        }

        public Builder characteristics(String... characteristics) {
            return characteristics(List.of(characteristics));
        }

        public Builder countingExpression(@Nullable Output countingExpression) {
            $.countingExpression = countingExpression;
            return this;
        }

        public Builder countingExpression(String countingExpression) {
            return countingExpression(Output.of(countingExpression));
        }

        public Builder mitigationTimeout(@Nullable Output mitigationTimeout) {
            $.mitigationTimeout = mitigationTimeout;
            return this;
        }

        public Builder mitigationTimeout(Integer mitigationTimeout) {
            return mitigationTimeout(Output.of(mitigationTimeout));
        }

        public Builder period(@Nullable Output period) {
            $.period = period;
            return this;
        }

        public Builder period(Integer period) {
            return period(Output.of(period));
        }

        public Builder requestsPerPeriod(@Nullable Output requestsPerPeriod) {
            $.requestsPerPeriod = requestsPerPeriod;
            return this;
        }

        public Builder requestsPerPeriod(Integer requestsPerPeriod) {
            return requestsPerPeriod(Output.of(requestsPerPeriod));
        }

        public Builder requestsToOrigin(@Nullable Output requestsToOrigin) {
            $.requestsToOrigin = requestsToOrigin;
            return this;
        }

        public Builder requestsToOrigin(Boolean requestsToOrigin) {
            return requestsToOrigin(Output.of(requestsToOrigin));
        }

        public Builder scorePerPeriod(@Nullable Output scorePerPeriod) {
            $.scorePerPeriod = scorePerPeriod;
            return this;
        }

        public Builder scorePerPeriod(Integer scorePerPeriod) {
            return scorePerPeriod(Output.of(scorePerPeriod));
        }

        public Builder scoreResponseHeaderName(@Nullable Output scoreResponseHeaderName) {
            $.scoreResponseHeaderName = scoreResponseHeaderName;
            return this;
        }

        public Builder scoreResponseHeaderName(String scoreResponseHeaderName) {
            return scoreResponseHeaderName(Output.of(scoreResponseHeaderName));
        }

        public RulesetRuleRatelimitArgs build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy