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

commonMain.aws.sdk.kotlin.services.swf.model.LambdaFunctionScheduledEventAttributes.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.swf.model

import aws.smithy.kotlin.runtime.SdkDsl

/**
 * Provides the details of the `LambdaFunctionScheduled` event. It isn't set for other event types.
 */
public class LambdaFunctionScheduledEventAttributes private constructor(builder: Builder) {
    /**
     * Data attached to the event that the decider can use in subsequent workflow tasks. This data isn't sent to the Lambda task.
     */
    public val control: kotlin.String? = builder.control
    /**
     * The ID of the `LambdaFunctionCompleted` event corresponding to the decision that resulted in scheduling this activity task. To help diagnose issues, use this information to trace back the chain of events leading up to this event.
     */
    public val decisionTaskCompletedEventId: kotlin.Long = builder.decisionTaskCompletedEventId
    /**
     * The unique ID of the Lambda task.
     */
    public val id: kotlin.String = requireNotNull(builder.id) { "A non-null value must be provided for id" }
    /**
     * The input provided to the Lambda task.
     */
    public val input: kotlin.String? = builder.input
    /**
     * The name of the Lambda function.
     */
    public val name: kotlin.String = requireNotNull(builder.name) { "A non-null value must be provided for name" }
    /**
     * The maximum amount of time a worker can take to process the Lambda task.
     */
    public val startToCloseTimeout: kotlin.String? = builder.startToCloseTimeout

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

    override fun toString(): kotlin.String = buildString {
        append("LambdaFunctionScheduledEventAttributes(")
        append("control=$control,")
        append("decisionTaskCompletedEventId=$decisionTaskCompletedEventId,")
        append("id=$id,")
        append("input=$input,")
        append("name=$name,")
        append("startToCloseTimeout=$startToCloseTimeout")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = control?.hashCode() ?: 0
        result = 31 * result + (decisionTaskCompletedEventId.hashCode())
        result = 31 * result + (id.hashCode())
        result = 31 * result + (input?.hashCode() ?: 0)
        result = 31 * result + (name.hashCode())
        result = 31 * result + (startToCloseTimeout?.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 LambdaFunctionScheduledEventAttributes

        if (control != other.control) return false
        if (decisionTaskCompletedEventId != other.decisionTaskCompletedEventId) return false
        if (id != other.id) return false
        if (input != other.input) return false
        if (name != other.name) return false
        if (startToCloseTimeout != other.startToCloseTimeout) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * Data attached to the event that the decider can use in subsequent workflow tasks. This data isn't sent to the Lambda task.
         */
        public var control: kotlin.String? = null
        /**
         * The ID of the `LambdaFunctionCompleted` event corresponding to the decision that resulted in scheduling this activity task. To help diagnose issues, use this information to trace back the chain of events leading up to this event.
         */
        public var decisionTaskCompletedEventId: kotlin.Long = 0L
        /**
         * The unique ID of the Lambda task.
         */
        public var id: kotlin.String? = null
        /**
         * The input provided to the Lambda task.
         */
        public var input: kotlin.String? = null
        /**
         * The name of the Lambda function.
         */
        public var name: kotlin.String? = null
        /**
         * The maximum amount of time a worker can take to process the Lambda task.
         */
        public var startToCloseTimeout: kotlin.String? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.swf.model.LambdaFunctionScheduledEventAttributes) : this() {
            this.control = x.control
            this.decisionTaskCompletedEventId = x.decisionTaskCompletedEventId
            this.id = x.id
            this.input = x.input
            this.name = x.name
            this.startToCloseTimeout = x.startToCloseTimeout
        }

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

        internal fun correctErrors(): Builder {
            if (id == null) id = ""
            if (name == null) name = ""
            return this
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy