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

commonMain.aws.sdk.kotlin.services.iotfleetwise.model.TimestreamConfig.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.iotfleetwise.model

import aws.smithy.kotlin.runtime.SdkDsl

/**
 * The Amazon Timestream table where the Amazon Web Services IoT FleetWise campaign sends data. Timestream stores and organizes data to optimize query processing time and to reduce storage costs. For more information, see [Data modeling](https://docs.aws.amazon.com/timestream/latest/developerguide/data-modeling.html) in the *Amazon Timestream Developer Guide*.
 */
public class TimestreamConfig private constructor(builder: Builder) {
    /**
     * The Amazon Resource Name (ARN) of the task execution role that grants Amazon Web Services IoT FleetWise permission to deliver data to the Amazon Timestream table.
     */
    public val executionRoleArn: kotlin.String = requireNotNull(builder.executionRoleArn) { "A non-null value must be provided for executionRoleArn" }
    /**
     * The Amazon Resource Name (ARN) of the Amazon Timestream table.
     */
    public val timestreamTableArn: kotlin.String = requireNotNull(builder.timestreamTableArn) { "A non-null value must be provided for timestreamTableArn" }

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

    override fun toString(): kotlin.String = buildString {
        append("TimestreamConfig(")
        append("executionRoleArn=$executionRoleArn,")
        append("timestreamTableArn=$timestreamTableArn")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = executionRoleArn.hashCode()
        result = 31 * result + (timestreamTableArn.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 TimestreamConfig

        if (executionRoleArn != other.executionRoleArn) return false
        if (timestreamTableArn != other.timestreamTableArn) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * The Amazon Resource Name (ARN) of the task execution role that grants Amazon Web Services IoT FleetWise permission to deliver data to the Amazon Timestream table.
         */
        public var executionRoleArn: kotlin.String? = null
        /**
         * The Amazon Resource Name (ARN) of the Amazon Timestream table.
         */
        public var timestreamTableArn: kotlin.String? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.iotfleetwise.model.TimestreamConfig) : this() {
            this.executionRoleArn = x.executionRoleArn
            this.timestreamTableArn = x.timestreamTableArn
        }

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

        internal fun correctErrors(): Builder {
            if (executionRoleArn == null) executionRoleArn = ""
            if (timestreamTableArn == null) timestreamTableArn = ""
            return this
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy