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

commonMain.aws.sdk.kotlin.services.athena.model.CreateWorkGroupRequest.kt Maven / Gradle / Ivy

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

package aws.sdk.kotlin.services.athena.model

import aws.smithy.kotlin.runtime.SdkDsl

public class CreateWorkGroupRequest private constructor(builder: Builder) {
    /**
     * Contains configuration information for creating an Athena SQL workgroup or Spark enabled Athena workgroup. Athena SQL workgroup configuration includes the location in Amazon S3 where query and calculation results are stored, the encryption configuration, if any, used for encrypting query results, whether the Amazon CloudWatch Metrics are enabled for the workgroup, the limit for the amount of bytes scanned (cutoff) per query, if it is specified, and whether workgroup's settings (specified with `EnforceWorkGroupConfiguration`) in the `WorkGroupConfiguration` override client-side settings. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.
     */
    public val configuration: aws.sdk.kotlin.services.athena.model.WorkGroupConfiguration? = builder.configuration
    /**
     * The workgroup description.
     */
    public val description: kotlin.String? = builder.description
    /**
     * The workgroup name.
     */
    public val name: kotlin.String? = builder.name
    /**
     * A list of comma separated tags to add to the workgroup that is created.
     */
    public val tags: List? = builder.tags

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

    override fun toString(): kotlin.String = buildString {
        append("CreateWorkGroupRequest(")
        append("configuration=$configuration,")
        append("description=$description,")
        append("name=$name,")
        append("tags=$tags")
        append(")")
    }

    override fun hashCode(): kotlin.Int {
        var result = configuration?.hashCode() ?: 0
        result = 31 * result + (description?.hashCode() ?: 0)
        result = 31 * result + (name?.hashCode() ?: 0)
        result = 31 * result + (tags?.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 CreateWorkGroupRequest

        if (configuration != other.configuration) return false
        if (description != other.description) return false
        if (name != other.name) return false
        if (tags != other.tags) return false

        return true
    }

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

    @SdkDsl
    public class Builder {
        /**
         * Contains configuration information for creating an Athena SQL workgroup or Spark enabled Athena workgroup. Athena SQL workgroup configuration includes the location in Amazon S3 where query and calculation results are stored, the encryption configuration, if any, used for encrypting query results, whether the Amazon CloudWatch Metrics are enabled for the workgroup, the limit for the amount of bytes scanned (cutoff) per query, if it is specified, and whether workgroup's settings (specified with `EnforceWorkGroupConfiguration`) in the `WorkGroupConfiguration` override client-side settings. See WorkGroupConfiguration$EnforceWorkGroupConfiguration.
         */
        public var configuration: aws.sdk.kotlin.services.athena.model.WorkGroupConfiguration? = null
        /**
         * The workgroup description.
         */
        public var description: kotlin.String? = null
        /**
         * The workgroup name.
         */
        public var name: kotlin.String? = null
        /**
         * A list of comma separated tags to add to the workgroup that is created.
         */
        public var tags: List? = null

        @PublishedApi
        internal constructor()
        @PublishedApi
        internal constructor(x: aws.sdk.kotlin.services.athena.model.CreateWorkGroupRequest) : this() {
            this.configuration = x.configuration
            this.description = x.description
            this.name = x.name
            this.tags = x.tags
        }

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

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

        internal fun correctErrors(): Builder {
            return this
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy