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

commonMain.aws.sdk.kotlin.services.quicksight.model.JoinInstruction.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.quicksight.model



/**
 * The instructions associated with a join.
 */
class JoinInstruction private constructor(builder: Builder) {
    /**
     * Join key properties of the left operand.
     */
    val leftJoinKeyProperties: aws.sdk.kotlin.services.quicksight.model.JoinKeyProperties? = builder.leftJoinKeyProperties
    /**
     * The operand on the left side of a join.
     */
    val leftOperand: kotlin.String? = builder.leftOperand
    /**
     * The join instructions provided in the `ON` clause of a join.
     */
    val onClause: kotlin.String? = builder.onClause
    /**
     * Join key properties of the right operand.
     */
    val rightJoinKeyProperties: aws.sdk.kotlin.services.quicksight.model.JoinKeyProperties? = builder.rightJoinKeyProperties
    /**
     * The operand on the right side of a join.
     */
    val rightOperand: kotlin.String? = builder.rightOperand
    /**
     * The type of join that it is.
     */
    val type: aws.sdk.kotlin.services.quicksight.model.JoinType? = builder.type

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

    override fun toString(): kotlin.String = buildString {
        append("JoinInstruction(")
        append("leftJoinKeyProperties=$leftJoinKeyProperties,")
        append("leftOperand=$leftOperand,")
        append("onClause=$onClause,")
        append("rightJoinKeyProperties=$rightJoinKeyProperties,")
        append("rightOperand=$rightOperand,")
        append("type=$type)")
    }

    override fun hashCode(): kotlin.Int {
        var result = leftJoinKeyProperties?.hashCode() ?: 0
        result = 31 * result + (leftOperand?.hashCode() ?: 0)
        result = 31 * result + (onClause?.hashCode() ?: 0)
        result = 31 * result + (rightJoinKeyProperties?.hashCode() ?: 0)
        result = 31 * result + (rightOperand?.hashCode() ?: 0)
        result = 31 * result + (type?.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 JoinInstruction

        if (leftJoinKeyProperties != other.leftJoinKeyProperties) return false
        if (leftOperand != other.leftOperand) return false
        if (onClause != other.onClause) return false
        if (rightJoinKeyProperties != other.rightJoinKeyProperties) return false
        if (rightOperand != other.rightOperand) return false
        if (type != other.type) return false

        return true
    }

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

    class Builder {
        /**
         * Join key properties of the left operand.
         */
        var leftJoinKeyProperties: aws.sdk.kotlin.services.quicksight.model.JoinKeyProperties? = null
        /**
         * The operand on the left side of a join.
         */
        var leftOperand: kotlin.String? = null
        /**
         * The join instructions provided in the `ON` clause of a join.
         */
        var onClause: kotlin.String? = null
        /**
         * Join key properties of the right operand.
         */
        var rightJoinKeyProperties: aws.sdk.kotlin.services.quicksight.model.JoinKeyProperties? = null
        /**
         * The operand on the right side of a join.
         */
        var rightOperand: kotlin.String? = null
        /**
         * The type of join that it is.
         */
        var type: aws.sdk.kotlin.services.quicksight.model.JoinType? = null

        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.quicksight.model.JoinInstruction) : this() {
            this.leftJoinKeyProperties = x.leftJoinKeyProperties
            this.leftOperand = x.leftOperand
            this.onClause = x.onClause
            this.rightJoinKeyProperties = x.rightJoinKeyProperties
            this.rightOperand = x.rightOperand
            this.type = x.type
        }

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

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

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




© 2015 - 2025 Weber Informatics LLC | Privacy Policy