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

com.pulumi.aws.redshift.LoggingArgs Maven / Gradle / Ivy

Go to download

A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.

There is a newer version: 6.66.3
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.aws.redshift;

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


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

    public static final LoggingArgs Empty = new LoggingArgs();

    /**
     * Name of an existing S3 bucket where the log files are to be stored. Required when `log_destination_type` is `s3`. Must be in the same region as the cluster and the cluster must have read bucket and put object permissions. For more information on the permissions required for the bucket, please read the AWS [documentation](http://docs.aws.amazon.com/redshift/latest/mgmt/db-auditing.html#db-auditing-enable-logging)
     * 
     */
    @Import(name="bucketName")
    private @Nullable Output bucketName;

    /**
     * @return Name of an existing S3 bucket where the log files are to be stored. Required when `log_destination_type` is `s3`. Must be in the same region as the cluster and the cluster must have read bucket and put object permissions. For more information on the permissions required for the bucket, please read the AWS [documentation](http://docs.aws.amazon.com/redshift/latest/mgmt/db-auditing.html#db-auditing-enable-logging)
     * 
     */
    public Optional> bucketName() {
        return Optional.ofNullable(this.bucketName);
    }

    /**
     * Identifier of the source cluster.
     * 
     * The following arguments are optional:
     * 
     */
    @Import(name="clusterIdentifier", required=true)
    private Output clusterIdentifier;

    /**
     * @return Identifier of the source cluster.
     * 
     * The following arguments are optional:
     * 
     */
    public Output clusterIdentifier() {
        return this.clusterIdentifier;
    }

    /**
     * Log destination type. Valid values are `s3` and `cloudwatch`.
     * 
     */
    @Import(name="logDestinationType")
    private @Nullable Output logDestinationType;

    /**
     * @return Log destination type. Valid values are `s3` and `cloudwatch`.
     * 
     */
    public Optional> logDestinationType() {
        return Optional.ofNullable(this.logDestinationType);
    }

    /**
     * Collection of exported log types. Required when `log_destination_type` is `cloudwatch`. Valid values are `connectionlog`, `useractivitylog`, and `userlog`.
     * 
     */
    @Import(name="logExports")
    private @Nullable Output> logExports;

    /**
     * @return Collection of exported log types. Required when `log_destination_type` is `cloudwatch`. Valid values are `connectionlog`, `useractivitylog`, and `userlog`.
     * 
     */
    public Optional>> logExports() {
        return Optional.ofNullable(this.logExports);
    }

    /**
     * Prefix applied to the log file names.
     * 
     */
    @Import(name="s3KeyPrefix")
    private @Nullable Output s3KeyPrefix;

    /**
     * @return Prefix applied to the log file names.
     * 
     */
    public Optional> s3KeyPrefix() {
        return Optional.ofNullable(this.s3KeyPrefix);
    }

    private LoggingArgs() {}

    private LoggingArgs(LoggingArgs $) {
        this.bucketName = $.bucketName;
        this.clusterIdentifier = $.clusterIdentifier;
        this.logDestinationType = $.logDestinationType;
        this.logExports = $.logExports;
        this.s3KeyPrefix = $.s3KeyPrefix;
    }

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

    public static final class Builder {
        private LoggingArgs $;

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

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

        /**
         * @param bucketName Name of an existing S3 bucket where the log files are to be stored. Required when `log_destination_type` is `s3`. Must be in the same region as the cluster and the cluster must have read bucket and put object permissions. For more information on the permissions required for the bucket, please read the AWS [documentation](http://docs.aws.amazon.com/redshift/latest/mgmt/db-auditing.html#db-auditing-enable-logging)
         * 
         * @return builder
         * 
         */
        public Builder bucketName(@Nullable Output bucketName) {
            $.bucketName = bucketName;
            return this;
        }

        /**
         * @param bucketName Name of an existing S3 bucket where the log files are to be stored. Required when `log_destination_type` is `s3`. Must be in the same region as the cluster and the cluster must have read bucket and put object permissions. For more information on the permissions required for the bucket, please read the AWS [documentation](http://docs.aws.amazon.com/redshift/latest/mgmt/db-auditing.html#db-auditing-enable-logging)
         * 
         * @return builder
         * 
         */
        public Builder bucketName(String bucketName) {
            return bucketName(Output.of(bucketName));
        }

        /**
         * @param clusterIdentifier Identifier of the source cluster.
         * 
         * The following arguments are optional:
         * 
         * @return builder
         * 
         */
        public Builder clusterIdentifier(Output clusterIdentifier) {
            $.clusterIdentifier = clusterIdentifier;
            return this;
        }

        /**
         * @param clusterIdentifier Identifier of the source cluster.
         * 
         * The following arguments are optional:
         * 
         * @return builder
         * 
         */
        public Builder clusterIdentifier(String clusterIdentifier) {
            return clusterIdentifier(Output.of(clusterIdentifier));
        }

        /**
         * @param logDestinationType Log destination type. Valid values are `s3` and `cloudwatch`.
         * 
         * @return builder
         * 
         */
        public Builder logDestinationType(@Nullable Output logDestinationType) {
            $.logDestinationType = logDestinationType;
            return this;
        }

        /**
         * @param logDestinationType Log destination type. Valid values are `s3` and `cloudwatch`.
         * 
         * @return builder
         * 
         */
        public Builder logDestinationType(String logDestinationType) {
            return logDestinationType(Output.of(logDestinationType));
        }

        /**
         * @param logExports Collection of exported log types. Required when `log_destination_type` is `cloudwatch`. Valid values are `connectionlog`, `useractivitylog`, and `userlog`.
         * 
         * @return builder
         * 
         */
        public Builder logExports(@Nullable Output> logExports) {
            $.logExports = logExports;
            return this;
        }

        /**
         * @param logExports Collection of exported log types. Required when `log_destination_type` is `cloudwatch`. Valid values are `connectionlog`, `useractivitylog`, and `userlog`.
         * 
         * @return builder
         * 
         */
        public Builder logExports(List logExports) {
            return logExports(Output.of(logExports));
        }

        /**
         * @param logExports Collection of exported log types. Required when `log_destination_type` is `cloudwatch`. Valid values are `connectionlog`, `useractivitylog`, and `userlog`.
         * 
         * @return builder
         * 
         */
        public Builder logExports(String... logExports) {
            return logExports(List.of(logExports));
        }

        /**
         * @param s3KeyPrefix Prefix applied to the log file names.
         * 
         * @return builder
         * 
         */
        public Builder s3KeyPrefix(@Nullable Output s3KeyPrefix) {
            $.s3KeyPrefix = s3KeyPrefix;
            return this;
        }

        /**
         * @param s3KeyPrefix Prefix applied to the log file names.
         * 
         * @return builder
         * 
         */
        public Builder s3KeyPrefix(String s3KeyPrefix) {
            return s3KeyPrefix(Output.of(s3KeyPrefix));
        }

        public LoggingArgs build() {
            if ($.clusterIdentifier == null) {
                throw new MissingRequiredPropertyException("LoggingArgs", "clusterIdentifier");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy