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

com.pulumi.aws.redshiftserverless.inputs.UsageLimitState 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.redshiftserverless.inputs;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Integer;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final UsageLimitState Empty = new UsageLimitState();

    /**
     * The limit amount. If time-based, this amount is in Redshift Processing Units (RPU) consumed per hour. If data-based, this amount is in terabytes (TB) of data transferred between Regions in cross-account sharing. The value must be a positive number.
     * 
     */
    @Import(name="amount")
    private @Nullable Output amount;

    /**
     * @return The limit amount. If time-based, this amount is in Redshift Processing Units (RPU) consumed per hour. If data-based, this amount is in terabytes (TB) of data transferred between Regions in cross-account sharing. The value must be a positive number.
     * 
     */
    public Optional> amount() {
        return Optional.ofNullable(this.amount);
    }

    /**
     * Amazon Resource Name (ARN) of the Redshift Serverless Usage Limit.
     * 
     */
    @Import(name="arn")
    private @Nullable Output arn;

    /**
     * @return Amazon Resource Name (ARN) of the Redshift Serverless Usage Limit.
     * 
     */
    public Optional> arn() {
        return Optional.ofNullable(this.arn);
    }

    /**
     * The action that Amazon Redshift Serverless takes when the limit is reached. Valid values are `log`, `emit-metric`, and `deactivate`. The default is `log`.
     * 
     */
    @Import(name="breachAction")
    private @Nullable Output breachAction;

    /**
     * @return The action that Amazon Redshift Serverless takes when the limit is reached. Valid values are `log`, `emit-metric`, and `deactivate`. The default is `log`.
     * 
     */
    public Optional> breachAction() {
        return Optional.ofNullable(this.breachAction);
    }

    /**
     * The time period that the amount applies to. A weekly period begins on Sunday. Valid values are `daily`, `weekly`, and `monthly`. The default is `monthly`.
     * 
     */
    @Import(name="period")
    private @Nullable Output period;

    /**
     * @return The time period that the amount applies to. A weekly period begins on Sunday. Valid values are `daily`, `weekly`, and `monthly`. The default is `monthly`.
     * 
     */
    public Optional> period() {
        return Optional.ofNullable(this.period);
    }

    /**
     * The Amazon Resource Name (ARN) of the Amazon Redshift Serverless resource to create the usage limit for.
     * 
     */
    @Import(name="resourceArn")
    private @Nullable Output resourceArn;

    /**
     * @return The Amazon Resource Name (ARN) of the Amazon Redshift Serverless resource to create the usage limit for.
     * 
     */
    public Optional> resourceArn() {
        return Optional.ofNullable(this.resourceArn);
    }

    /**
     * The type of Amazon Redshift Serverless usage to create a usage limit for. Valid values are `serverless-compute` or `cross-region-datasharing`.
     * 
     */
    @Import(name="usageType")
    private @Nullable Output usageType;

    /**
     * @return The type of Amazon Redshift Serverless usage to create a usage limit for. Valid values are `serverless-compute` or `cross-region-datasharing`.
     * 
     */
    public Optional> usageType() {
        return Optional.ofNullable(this.usageType);
    }

    private UsageLimitState() {}

    private UsageLimitState(UsageLimitState $) {
        this.amount = $.amount;
        this.arn = $.arn;
        this.breachAction = $.breachAction;
        this.period = $.period;
        this.resourceArn = $.resourceArn;
        this.usageType = $.usageType;
    }

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

    public static final class Builder {
        private UsageLimitState $;

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

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

        /**
         * @param amount The limit amount. If time-based, this amount is in Redshift Processing Units (RPU) consumed per hour. If data-based, this amount is in terabytes (TB) of data transferred between Regions in cross-account sharing. The value must be a positive number.
         * 
         * @return builder
         * 
         */
        public Builder amount(@Nullable Output amount) {
            $.amount = amount;
            return this;
        }

        /**
         * @param amount The limit amount. If time-based, this amount is in Redshift Processing Units (RPU) consumed per hour. If data-based, this amount is in terabytes (TB) of data transferred between Regions in cross-account sharing. The value must be a positive number.
         * 
         * @return builder
         * 
         */
        public Builder amount(Integer amount) {
            return amount(Output.of(amount));
        }

        /**
         * @param arn Amazon Resource Name (ARN) of the Redshift Serverless Usage Limit.
         * 
         * @return builder
         * 
         */
        public Builder arn(@Nullable Output arn) {
            $.arn = arn;
            return this;
        }

        /**
         * @param arn Amazon Resource Name (ARN) of the Redshift Serverless Usage Limit.
         * 
         * @return builder
         * 
         */
        public Builder arn(String arn) {
            return arn(Output.of(arn));
        }

        /**
         * @param breachAction The action that Amazon Redshift Serverless takes when the limit is reached. Valid values are `log`, `emit-metric`, and `deactivate`. The default is `log`.
         * 
         * @return builder
         * 
         */
        public Builder breachAction(@Nullable Output breachAction) {
            $.breachAction = breachAction;
            return this;
        }

        /**
         * @param breachAction The action that Amazon Redshift Serverless takes when the limit is reached. Valid values are `log`, `emit-metric`, and `deactivate`. The default is `log`.
         * 
         * @return builder
         * 
         */
        public Builder breachAction(String breachAction) {
            return breachAction(Output.of(breachAction));
        }

        /**
         * @param period The time period that the amount applies to. A weekly period begins on Sunday. Valid values are `daily`, `weekly`, and `monthly`. The default is `monthly`.
         * 
         * @return builder
         * 
         */
        public Builder period(@Nullable Output period) {
            $.period = period;
            return this;
        }

        /**
         * @param period The time period that the amount applies to. A weekly period begins on Sunday. Valid values are `daily`, `weekly`, and `monthly`. The default is `monthly`.
         * 
         * @return builder
         * 
         */
        public Builder period(String period) {
            return period(Output.of(period));
        }

        /**
         * @param resourceArn The Amazon Resource Name (ARN) of the Amazon Redshift Serverless resource to create the usage limit for.
         * 
         * @return builder
         * 
         */
        public Builder resourceArn(@Nullable Output resourceArn) {
            $.resourceArn = resourceArn;
            return this;
        }

        /**
         * @param resourceArn The Amazon Resource Name (ARN) of the Amazon Redshift Serverless resource to create the usage limit for.
         * 
         * @return builder
         * 
         */
        public Builder resourceArn(String resourceArn) {
            return resourceArn(Output.of(resourceArn));
        }

        /**
         * @param usageType The type of Amazon Redshift Serverless usage to create a usage limit for. Valid values are `serverless-compute` or `cross-region-datasharing`.
         * 
         * @return builder
         * 
         */
        public Builder usageType(@Nullable Output usageType) {
            $.usageType = usageType;
            return this;
        }

        /**
         * @param usageType The type of Amazon Redshift Serverless usage to create a usage limit for. Valid values are `serverless-compute` or `cross-region-datasharing`.
         * 
         * @return builder
         * 
         */
        public Builder usageType(String usageType) {
            return usageType(Output.of(usageType));
        }

        public UsageLimitState build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy