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

commonMain.aws.sdk.kotlin.services.kinesisanalytics.model.ReferenceDataSourceDescription.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.kinesisanalytics.model



/**
 * Describes the reference data source configured for an application.
 */
public class ReferenceDataSourceDescription private constructor(builder: Builder) {
    /**
     * ID of the reference data source. This is the ID that Amazon Kinesis Analytics assigns when you add the reference data source to your application using the [AddApplicationReferenceDataSource](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_AddApplicationReferenceDataSource.html) operation.
     */
    public val referenceId: kotlin.String = requireNotNull(builder.referenceId) { "A non-null value must be provided for referenceId" }
    /**
     * Describes the format of the data in the streaming source, and how each data element maps to corresponding columns created in the in-application stream.
     */
    public val referenceSchema: aws.sdk.kotlin.services.kinesisanalytics.model.SourceSchema? = builder.referenceSchema
    /**
     * Provides the S3 bucket name, the object key name that contains the reference data. It also provides the Amazon Resource Name (ARN) of the IAM role that Amazon Kinesis Analytics can assume to read the Amazon S3 object and populate the in-application reference table.
     */
    public val s3ReferenceDataSourceDescription: aws.sdk.kotlin.services.kinesisanalytics.model.S3ReferenceDataSourceDescription? = builder.s3ReferenceDataSourceDescription
    /**
     * The in-application table name created by the specific reference data source configuration.
     */
    public val tableName: kotlin.String = requireNotNull(builder.tableName) { "A non-null value must be provided for tableName" }

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

    override fun toString(): kotlin.String = buildString {
        append("ReferenceDataSourceDescription(")
        append("referenceId=$referenceId,")
        append("referenceSchema=$referenceSchema,")
        append("s3ReferenceDataSourceDescription=$s3ReferenceDataSourceDescription,")
        append("tableName=$tableName")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = referenceId.hashCode()
        result = 31 * result + (referenceSchema?.hashCode() ?: 0)
        result = 31 * result + (s3ReferenceDataSourceDescription?.hashCode() ?: 0)
        result = 31 * result + (tableName.hashCode())
        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 ReferenceDataSourceDescription

        if (referenceId != other.referenceId) return false
        if (referenceSchema != other.referenceSchema) return false
        if (s3ReferenceDataSourceDescription != other.s3ReferenceDataSourceDescription) return false
        if (tableName != other.tableName) return false

        return true
    }

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

    public class Builder {
        /**
         * ID of the reference data source. This is the ID that Amazon Kinesis Analytics assigns when you add the reference data source to your application using the [AddApplicationReferenceDataSource](https://docs.aws.amazon.com/kinesisanalytics/latest/dev/API_AddApplicationReferenceDataSource.html) operation.
         */
        public var referenceId: kotlin.String? = null
        /**
         * Describes the format of the data in the streaming source, and how each data element maps to corresponding columns created in the in-application stream.
         */
        public var referenceSchema: aws.sdk.kotlin.services.kinesisanalytics.model.SourceSchema? = null
        /**
         * Provides the S3 bucket name, the object key name that contains the reference data. It also provides the Amazon Resource Name (ARN) of the IAM role that Amazon Kinesis Analytics can assume to read the Amazon S3 object and populate the in-application reference table.
         */
        public var s3ReferenceDataSourceDescription: aws.sdk.kotlin.services.kinesisanalytics.model.S3ReferenceDataSourceDescription? = null
        /**
         * The in-application table name created by the specific reference data source configuration.
         */
        public var tableName: kotlin.String? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.kinesisanalytics.model.ReferenceDataSourceDescription) : this() {
            this.referenceId = x.referenceId
            this.referenceSchema = x.referenceSchema
            this.s3ReferenceDataSourceDescription = x.s3ReferenceDataSourceDescription
            this.tableName = x.tableName
        }

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

        /**
         * construct an [aws.sdk.kotlin.services.kinesisanalytics.model.SourceSchema] inside the given [block]
         */
        public fun referenceSchema(block: aws.sdk.kotlin.services.kinesisanalytics.model.SourceSchema.Builder.() -> kotlin.Unit) {
            this.referenceSchema = aws.sdk.kotlin.services.kinesisanalytics.model.SourceSchema.invoke(block)
        }

        /**
         * construct an [aws.sdk.kotlin.services.kinesisanalytics.model.S3ReferenceDataSourceDescription] inside the given [block]
         */
        public fun s3ReferenceDataSourceDescription(block: aws.sdk.kotlin.services.kinesisanalytics.model.S3ReferenceDataSourceDescription.Builder.() -> kotlin.Unit) {
            this.s3ReferenceDataSourceDescription = aws.sdk.kotlin.services.kinesisanalytics.model.S3ReferenceDataSourceDescription.invoke(block)
        }

        internal fun correctErrors(): Builder {
            if (referenceId == null) referenceId = ""
            if (tableName == null) tableName = ""
            return this
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy