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

commonMain.aws.sdk.kotlin.services.dynamodbstreams.model.StreamDescription.kt Maven / Gradle / Ivy

// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.dynamodbstreams.model

import aws.smithy.kotlin.runtime.time.Instant

/**
 * Represents all of the data describing a particular stream.
 */
public class StreamDescription private constructor(builder: Builder) {
    /**
     * The date and time when the request to create this stream was issued.
     */
    public val creationRequestDateTime: aws.smithy.kotlin.runtime.time.Instant? = builder.creationRequestDateTime
    /**
     * The key attribute(s) of the stream's DynamoDB table.
     */
    public val keySchema: List? = builder.keySchema
    /**
     * The shard ID of the item where the operation stopped, inclusive of the previous result set. Use this value to start a new operation, excluding this value in the new request.
     *
     * If `LastEvaluatedShardId` is empty, then the "last page" of results has been processed and there is currently no more data to be retrieved.
     *
     * If `LastEvaluatedShardId` is not empty, it does not necessarily mean that there is more data in the result set. The only way to know when you have reached the end of the result set is when `LastEvaluatedShardId` is empty.
     */
    public val lastEvaluatedShardId: kotlin.String? = builder.lastEvaluatedShardId
    /**
     * The shards that comprise the stream.
     */
    public val shards: List? = builder.shards
    /**
     * The Amazon Resource Name (ARN) for the stream.
     */
    public val streamArn: kotlin.String? = builder.streamArn
    /**
     * A timestamp, in ISO 8601 format, for this stream.
     *
     * Note that `LatestStreamLabel` is not a unique identifier for the stream, because it is possible that a stream from another table might have the same timestamp. However, the combination of the following three elements is guaranteed to be unique:
     * + the Amazon Web Services customer ID.
     * + the table name
     * + the `StreamLabel`
     */
    public val streamLabel: kotlin.String? = builder.streamLabel
    /**
     * Indicates the current status of the stream:
     * + `ENABLING` - Streams is currently being enabled on the DynamoDB table.
     * + `ENABLED` - the stream is enabled.
     * + `DISABLING` - Streams is currently being disabled on the DynamoDB table.
     * + `DISABLED` - the stream is disabled.
     */
    public val streamStatus: aws.sdk.kotlin.services.dynamodbstreams.model.StreamStatus? = builder.streamStatus
    /**
     * Indicates the format of the records within this stream:
     * + `KEYS_ONLY` - only the key attributes of items that were modified in the DynamoDB table.
     * + `NEW_IMAGE` - entire items from the table, as they appeared after they were modified.
     * + `OLD_IMAGE` - entire items from the table, as they appeared before they were modified.
     * + `NEW_AND_OLD_IMAGES` - both the new and the old images of the items from the table.
     */
    public val streamViewType: aws.sdk.kotlin.services.dynamodbstreams.model.StreamViewType? = builder.streamViewType
    /**
     * The DynamoDB table with which the stream is associated.
     */
    public val tableName: kotlin.String? = builder.tableName

    public companion object {
        public operator fun invoke(block: Builder.() -> kotlin.Unit): aws.sdk.kotlin.services.dynamodbstreams.model.StreamDescription = Builder().apply(block).build()
    }

    override fun toString(): kotlin.String = buildString {
        append("StreamDescription(")
        append("creationRequestDateTime=$creationRequestDateTime,")
        append("keySchema=$keySchema,")
        append("lastEvaluatedShardId=$lastEvaluatedShardId,")
        append("shards=$shards,")
        append("streamArn=$streamArn,")
        append("streamLabel=$streamLabel,")
        append("streamStatus=$streamStatus,")
        append("streamViewType=$streamViewType,")
        append("tableName=$tableName")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = creationRequestDateTime?.hashCode() ?: 0
        result = 31 * result + (keySchema?.hashCode() ?: 0)
        result = 31 * result + (lastEvaluatedShardId?.hashCode() ?: 0)
        result = 31 * result + (shards?.hashCode() ?: 0)
        result = 31 * result + (streamArn?.hashCode() ?: 0)
        result = 31 * result + (streamLabel?.hashCode() ?: 0)
        result = 31 * result + (streamStatus?.hashCode() ?: 0)
        result = 31 * result + (streamViewType?.hashCode() ?: 0)
        result = 31 * result + (tableName?.hashCode() ?: 0)
        return result
    }

    override fun equals(other: kotlin.Any?): kotlin.Boolean {
        if (this === other) return true
        if (other == null || this::class != other::class) return false

        other as StreamDescription

        if (creationRequestDateTime != other.creationRequestDateTime) return false
        if (keySchema != other.keySchema) return false
        if (lastEvaluatedShardId != other.lastEvaluatedShardId) return false
        if (shards != other.shards) return false
        if (streamArn != other.streamArn) return false
        if (streamLabel != other.streamLabel) return false
        if (streamStatus != other.streamStatus) return false
        if (streamViewType != other.streamViewType) return false
        if (tableName != other.tableName) return false

        return true
    }

    public inline fun copy(block: Builder.() -> kotlin.Unit = {}): aws.sdk.kotlin.services.dynamodbstreams.model.StreamDescription = Builder(this).apply(block).build()

    public class Builder {
        /**
         * The date and time when the request to create this stream was issued.
         */
        public var creationRequestDateTime: aws.smithy.kotlin.runtime.time.Instant? = null
        /**
         * The key attribute(s) of the stream's DynamoDB table.
         */
        public var keySchema: List? = null
        /**
         * The shard ID of the item where the operation stopped, inclusive of the previous result set. Use this value to start a new operation, excluding this value in the new request.
         *
         * If `LastEvaluatedShardId` is empty, then the "last page" of results has been processed and there is currently no more data to be retrieved.
         *
         * If `LastEvaluatedShardId` is not empty, it does not necessarily mean that there is more data in the result set. The only way to know when you have reached the end of the result set is when `LastEvaluatedShardId` is empty.
         */
        public var lastEvaluatedShardId: kotlin.String? = null
        /**
         * The shards that comprise the stream.
         */
        public var shards: List? = null
        /**
         * The Amazon Resource Name (ARN) for the stream.
         */
        public var streamArn: kotlin.String? = null
        /**
         * A timestamp, in ISO 8601 format, for this stream.
         *
         * Note that `LatestStreamLabel` is not a unique identifier for the stream, because it is possible that a stream from another table might have the same timestamp. However, the combination of the following three elements is guaranteed to be unique:
         * + the Amazon Web Services customer ID.
         * + the table name
         * + the `StreamLabel`
         */
        public var streamLabel: kotlin.String? = null
        /**
         * Indicates the current status of the stream:
         * + `ENABLING` - Streams is currently being enabled on the DynamoDB table.
         * + `ENABLED` - the stream is enabled.
         * + `DISABLING` - Streams is currently being disabled on the DynamoDB table.
         * + `DISABLED` - the stream is disabled.
         */
        public var streamStatus: aws.sdk.kotlin.services.dynamodbstreams.model.StreamStatus? = null
        /**
         * Indicates the format of the records within this stream:
         * + `KEYS_ONLY` - only the key attributes of items that were modified in the DynamoDB table.
         * + `NEW_IMAGE` - entire items from the table, as they appeared after they were modified.
         * + `OLD_IMAGE` - entire items from the table, as they appeared before they were modified.
         * + `NEW_AND_OLD_IMAGES` - both the new and the old images of the items from the table.
         */
        public var streamViewType: aws.sdk.kotlin.services.dynamodbstreams.model.StreamViewType? = null
        /**
         * The DynamoDB table with which the stream is associated.
         */
        public var tableName: kotlin.String? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.dynamodbstreams.model.StreamDescription) : this() {
            this.creationRequestDateTime = x.creationRequestDateTime
            this.keySchema = x.keySchema
            this.lastEvaluatedShardId = x.lastEvaluatedShardId
            this.shards = x.shards
            this.streamArn = x.streamArn
            this.streamLabel = x.streamLabel
            this.streamStatus = x.streamStatus
            this.streamViewType = x.streamViewType
            this.tableName = x.tableName
        }

        @PublishedApi
        internal fun build(): aws.sdk.kotlin.services.dynamodbstreams.model.StreamDescription = StreamDescription(this)

        internal fun correctErrors(): Builder {
            return this
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy