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

com.pulumi.aws.qldb.StreamArgs 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.72.0
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.qldb;

import com.pulumi.aws.qldb.inputs.StreamKinesisConfigurationArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final StreamArgs Empty = new StreamArgs();

    /**
     * The exclusive date and time that specifies when the stream ends. If you don't define this parameter, the stream runs indefinitely until you cancel it. It must be in ISO 8601 date and time format and in Universal Coordinated Time (UTC). For example: `"2019-06-13T21:36:34Z"`.
     * 
     */
    @Import(name="exclusiveEndTime")
    private @Nullable Output exclusiveEndTime;

    /**
     * @return The exclusive date and time that specifies when the stream ends. If you don't define this parameter, the stream runs indefinitely until you cancel it. It must be in ISO 8601 date and time format and in Universal Coordinated Time (UTC). For example: `"2019-06-13T21:36:34Z"`.
     * 
     */
    public Optional> exclusiveEndTime() {
        return Optional.ofNullable(this.exclusiveEndTime);
    }

    /**
     * The inclusive start date and time from which to start streaming journal data. This parameter must be in ISO 8601 date and time format and in Universal Coordinated Time (UTC). For example: `"2019-06-13T21:36:34Z"`.  This cannot be in the future and must be before `exclusive_end_time`.  If you provide a value that is before the ledger's `CreationDateTime`, QLDB effectively defaults it to the ledger's `CreationDateTime`.
     * 
     */
    @Import(name="inclusiveStartTime", required=true)
    private Output inclusiveStartTime;

    /**
     * @return The inclusive start date and time from which to start streaming journal data. This parameter must be in ISO 8601 date and time format and in Universal Coordinated Time (UTC). For example: `"2019-06-13T21:36:34Z"`.  This cannot be in the future and must be before `exclusive_end_time`.  If you provide a value that is before the ledger's `CreationDateTime`, QLDB effectively defaults it to the ledger's `CreationDateTime`.
     * 
     */
    public Output inclusiveStartTime() {
        return this.inclusiveStartTime;
    }

    /**
     * The configuration settings of the Kinesis Data Streams destination for your stream request. Documented below.
     * 
     */
    @Import(name="kinesisConfiguration", required=true)
    private Output kinesisConfiguration;

    /**
     * @return The configuration settings of the Kinesis Data Streams destination for your stream request. Documented below.
     * 
     */
    public Output kinesisConfiguration() {
        return this.kinesisConfiguration;
    }

    /**
     * The name of the QLDB ledger.
     * 
     */
    @Import(name="ledgerName", required=true)
    private Output ledgerName;

    /**
     * @return The name of the QLDB ledger.
     * 
     */
    public Output ledgerName() {
        return this.ledgerName;
    }

    /**
     * The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for a journal stream to write data records to a Kinesis Data Streams resource.
     * 
     */
    @Import(name="roleArn", required=true)
    private Output roleArn;

    /**
     * @return The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for a journal stream to write data records to a Kinesis Data Streams resource.
     * 
     */
    public Output roleArn() {
        return this.roleArn;
    }

    /**
     * The name that you want to assign to the QLDB journal stream. User-defined names can help identify and indicate the purpose of a stream.  Your stream name must be unique among other active streams for a given ledger. Stream names have the same naming constraints as ledger names, as defined in the [Amazon QLDB Developer Guide](https://docs.aws.amazon.com/qldb/latest/developerguide/limits.html#limits.naming).
     * 
     */
    @Import(name="streamName", required=true)
    private Output streamName;

    /**
     * @return The name that you want to assign to the QLDB journal stream. User-defined names can help identify and indicate the purpose of a stream.  Your stream name must be unique among other active streams for a given ledger. Stream names have the same naming constraints as ledger names, as defined in the [Amazon QLDB Developer Guide](https://docs.aws.amazon.com/qldb/latest/developerguide/limits.html#limits.naming).
     * 
     */
    public Output streamName() {
        return this.streamName;
    }

    /**
     * Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    private StreamArgs() {}

    private StreamArgs(StreamArgs $) {
        this.exclusiveEndTime = $.exclusiveEndTime;
        this.inclusiveStartTime = $.inclusiveStartTime;
        this.kinesisConfiguration = $.kinesisConfiguration;
        this.ledgerName = $.ledgerName;
        this.roleArn = $.roleArn;
        this.streamName = $.streamName;
        this.tags = $.tags;
    }

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

    public static final class Builder {
        private StreamArgs $;

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

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

        /**
         * @param exclusiveEndTime The exclusive date and time that specifies when the stream ends. If you don't define this parameter, the stream runs indefinitely until you cancel it. It must be in ISO 8601 date and time format and in Universal Coordinated Time (UTC). For example: `"2019-06-13T21:36:34Z"`.
         * 
         * @return builder
         * 
         */
        public Builder exclusiveEndTime(@Nullable Output exclusiveEndTime) {
            $.exclusiveEndTime = exclusiveEndTime;
            return this;
        }

        /**
         * @param exclusiveEndTime The exclusive date and time that specifies when the stream ends. If you don't define this parameter, the stream runs indefinitely until you cancel it. It must be in ISO 8601 date and time format and in Universal Coordinated Time (UTC). For example: `"2019-06-13T21:36:34Z"`.
         * 
         * @return builder
         * 
         */
        public Builder exclusiveEndTime(String exclusiveEndTime) {
            return exclusiveEndTime(Output.of(exclusiveEndTime));
        }

        /**
         * @param inclusiveStartTime The inclusive start date and time from which to start streaming journal data. This parameter must be in ISO 8601 date and time format and in Universal Coordinated Time (UTC). For example: `"2019-06-13T21:36:34Z"`.  This cannot be in the future and must be before `exclusive_end_time`.  If you provide a value that is before the ledger's `CreationDateTime`, QLDB effectively defaults it to the ledger's `CreationDateTime`.
         * 
         * @return builder
         * 
         */
        public Builder inclusiveStartTime(Output inclusiveStartTime) {
            $.inclusiveStartTime = inclusiveStartTime;
            return this;
        }

        /**
         * @param inclusiveStartTime The inclusive start date and time from which to start streaming journal data. This parameter must be in ISO 8601 date and time format and in Universal Coordinated Time (UTC). For example: `"2019-06-13T21:36:34Z"`.  This cannot be in the future and must be before `exclusive_end_time`.  If you provide a value that is before the ledger's `CreationDateTime`, QLDB effectively defaults it to the ledger's `CreationDateTime`.
         * 
         * @return builder
         * 
         */
        public Builder inclusiveStartTime(String inclusiveStartTime) {
            return inclusiveStartTime(Output.of(inclusiveStartTime));
        }

        /**
         * @param kinesisConfiguration The configuration settings of the Kinesis Data Streams destination for your stream request. Documented below.
         * 
         * @return builder
         * 
         */
        public Builder kinesisConfiguration(Output kinesisConfiguration) {
            $.kinesisConfiguration = kinesisConfiguration;
            return this;
        }

        /**
         * @param kinesisConfiguration The configuration settings of the Kinesis Data Streams destination for your stream request. Documented below.
         * 
         * @return builder
         * 
         */
        public Builder kinesisConfiguration(StreamKinesisConfigurationArgs kinesisConfiguration) {
            return kinesisConfiguration(Output.of(kinesisConfiguration));
        }

        /**
         * @param ledgerName The name of the QLDB ledger.
         * 
         * @return builder
         * 
         */
        public Builder ledgerName(Output ledgerName) {
            $.ledgerName = ledgerName;
            return this;
        }

        /**
         * @param ledgerName The name of the QLDB ledger.
         * 
         * @return builder
         * 
         */
        public Builder ledgerName(String ledgerName) {
            return ledgerName(Output.of(ledgerName));
        }

        /**
         * @param roleArn The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for a journal stream to write data records to a Kinesis Data Streams resource.
         * 
         * @return builder
         * 
         */
        public Builder roleArn(Output roleArn) {
            $.roleArn = roleArn;
            return this;
        }

        /**
         * @param roleArn The Amazon Resource Name (ARN) of the IAM role that grants QLDB permissions for a journal stream to write data records to a Kinesis Data Streams resource.
         * 
         * @return builder
         * 
         */
        public Builder roleArn(String roleArn) {
            return roleArn(Output.of(roleArn));
        }

        /**
         * @param streamName The name that you want to assign to the QLDB journal stream. User-defined names can help identify and indicate the purpose of a stream.  Your stream name must be unique among other active streams for a given ledger. Stream names have the same naming constraints as ledger names, as defined in the [Amazon QLDB Developer Guide](https://docs.aws.amazon.com/qldb/latest/developerguide/limits.html#limits.naming).
         * 
         * @return builder
         * 
         */
        public Builder streamName(Output streamName) {
            $.streamName = streamName;
            return this;
        }

        /**
         * @param streamName The name that you want to assign to the QLDB journal stream. User-defined names can help identify and indicate the purpose of a stream.  Your stream name must be unique among other active streams for a given ledger. Stream names have the same naming constraints as ledger names, as defined in the [Amazon QLDB Developer Guide](https://docs.aws.amazon.com/qldb/latest/developerguide/limits.html#limits.naming).
         * 
         * @return builder
         * 
         */
        public Builder streamName(String streamName) {
            return streamName(Output.of(streamName));
        }

        /**
         * @param tags Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags Key-value map of resource tags. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        public StreamArgs build() {
            if ($.inclusiveStartTime == null) {
                throw new MissingRequiredPropertyException("StreamArgs", "inclusiveStartTime");
            }
            if ($.kinesisConfiguration == null) {
                throw new MissingRequiredPropertyException("StreamArgs", "kinesisConfiguration");
            }
            if ($.ledgerName == null) {
                throw new MissingRequiredPropertyException("StreamArgs", "ledgerName");
            }
            if ($.roleArn == null) {
                throw new MissingRequiredPropertyException("StreamArgs", "roleArn");
            }
            if ($.streamName == null) {
                throw new MissingRequiredPropertyException("StreamArgs", "streamName");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy