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

commonMain.aws.sdk.kotlin.services.connect.model.ParticipantTimerConfiguration.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.connect.model



/**
 * Configuration information for the timer. After the timer configuration is set, it persists for the duration of the chat. It persists across new contacts in the chain, for example, transfer contacts.
 *
 * For more information about how chat timeouts work, see [Set up chat timeouts for human participants](https://docs.aws.amazon.com/connect/latest/adminguide/setup-chat-timeouts.html).
 */
public class ParticipantTimerConfiguration private constructor(builder: Builder) {
    /**
     * The role of the participant in the chat conversation.
     */
    public val participantRole: aws.sdk.kotlin.services.connect.model.TimerEligibleParticipantRoles? = builder.participantRole
    /**
     * The type of timer. `IDLE` indicates the timer applies for considering a human chat participant as idle. `DISCONNECT_NONCUSTOMER` indicates the timer applies to automatically disconnecting a chat participant due to idleness.
     */
    public val timerType: aws.sdk.kotlin.services.connect.model.ParticipantTimerType? = builder.timerType
    /**
     * The value of the timer. Either the timer action (Unset to delete the timer), or the duration of the timer in minutes. Only one value can be set.
     */
    public val timerValue: aws.sdk.kotlin.services.connect.model.ParticipantTimerValue? = builder.timerValue

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

    override fun toString(): kotlin.String = buildString {
        append("ParticipantTimerConfiguration(")
        append("participantRole=$participantRole,")
        append("timerType=$timerType,")
        append("timerValue=$timerValue")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = participantRole?.hashCode() ?: 0
        result = 31 * result + (timerType?.hashCode() ?: 0)
        result = 31 * result + (timerValue?.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 ParticipantTimerConfiguration

        if (participantRole != other.participantRole) return false
        if (timerType != other.timerType) return false
        if (timerValue != other.timerValue) return false

        return true
    }

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

    public class Builder {
        /**
         * The role of the participant in the chat conversation.
         */
        public var participantRole: aws.sdk.kotlin.services.connect.model.TimerEligibleParticipantRoles? = null
        /**
         * The type of timer. `IDLE` indicates the timer applies for considering a human chat participant as idle. `DISCONNECT_NONCUSTOMER` indicates the timer applies to automatically disconnecting a chat participant due to idleness.
         */
        public var timerType: aws.sdk.kotlin.services.connect.model.ParticipantTimerType? = null
        /**
         * The value of the timer. Either the timer action (Unset to delete the timer), or the duration of the timer in minutes. Only one value can be set.
         */
        public var timerValue: aws.sdk.kotlin.services.connect.model.ParticipantTimerValue? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.connect.model.ParticipantTimerConfiguration) : this() {
            this.participantRole = x.participantRole
            this.timerType = x.timerType
            this.timerValue = x.timerValue
        }

        @PublishedApi
        internal fun build(): aws.sdk.kotlin.services.connect.model.ParticipantTimerConfiguration = ParticipantTimerConfiguration(this)
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy