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

com.pulumi.awsnative.athena.kotlin.inputs.WorkGroupConfigurationArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.athena.kotlin.inputs

import com.pulumi.awsnative.athena.inputs.WorkGroupConfigurationArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName

/**
 *
 * @property additionalConfiguration Specifies a user defined JSON string that is passed to the session engine.
 * @property bytesScannedCutoffPerQuery The upper limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to scan. No default is defined.
 * > This property currently supports integer types. Support for long values is planned.
 * @property customerContentEncryptionConfiguration Specifies the KMS key that is used to encrypt the user's data stores in Athena. This setting does not apply to Athena SQL workgroups.
 * @property enforceWorkGroupConfiguration If set to "true", the settings for the workgroup override client-side settings. If set to "false", client-side settings are used. For more information, see [Workgroup Settings Override Client-Side Settings](https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html) .
 * @property engineVersion The engine version that all queries running on the workgroup use.
 * @property executionRole Role used to access user resources in an Athena for Apache Spark session. This property applies only to Spark-enabled workgroups in Athena.
 * @property publishCloudWatchMetricsEnabled Indicates that the Amazon CloudWatch metrics are enabled for the workgroup.
 * @property requesterPaysEnabled If set to `true` , allows members assigned to a workgroup to reference Amazon S3 Requester Pays buckets in queries. If set to `false` , workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is `false` . For more information about Requester Pays buckets, see [Requester Pays Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) in the *Amazon Simple Storage Service Developer Guide* .
 * @property resultConfiguration Specifies the location in Amazon S3 where query results are stored and the encryption option, if any, used for query results. For more information, see [Working with Query Results, Output Files, and Query History](https://docs.aws.amazon.com/athena/latest/ug/querying.html) .
 */
public data class WorkGroupConfigurationArgs(
    public val additionalConfiguration: Output? = null,
    public val bytesScannedCutoffPerQuery: Output? = null,
    public val customerContentEncryptionConfiguration: Output? = null,
    public val enforceWorkGroupConfiguration: Output? = null,
    public val engineVersion: Output? = null,
    public val executionRole: Output? = null,
    public val publishCloudWatchMetricsEnabled: Output? = null,
    public val requesterPaysEnabled: Output? = null,
    public val resultConfiguration: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.athena.inputs.WorkGroupConfigurationArgs =
        com.pulumi.awsnative.athena.inputs.WorkGroupConfigurationArgs.builder()
            .additionalConfiguration(additionalConfiguration?.applyValue({ args0 -> args0 }))
            .bytesScannedCutoffPerQuery(bytesScannedCutoffPerQuery?.applyValue({ args0 -> args0 }))
            .customerContentEncryptionConfiguration(
                customerContentEncryptionConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 -> args0.toJava() })
                }),
            )
            .enforceWorkGroupConfiguration(enforceWorkGroupConfiguration?.applyValue({ args0 -> args0 }))
            .engineVersion(engineVersion?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .executionRole(executionRole?.applyValue({ args0 -> args0 }))
            .publishCloudWatchMetricsEnabled(publishCloudWatchMetricsEnabled?.applyValue({ args0 -> args0 }))
            .requesterPaysEnabled(requesterPaysEnabled?.applyValue({ args0 -> args0 }))
            .resultConfiguration(
                resultConfiguration?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            ).build()
}

/**
 * Builder for [WorkGroupConfigurationArgs].
 */
@PulumiTagMarker
public class WorkGroupConfigurationArgsBuilder internal constructor() {
    private var additionalConfiguration: Output? = null

    private var bytesScannedCutoffPerQuery: Output? = null

    private var customerContentEncryptionConfiguration:
        Output? = null

    private var enforceWorkGroupConfiguration: Output? = null

    private var engineVersion: Output? = null

    private var executionRole: Output? = null

    private var publishCloudWatchMetricsEnabled: Output? = null

    private var requesterPaysEnabled: Output? = null

    private var resultConfiguration: Output? = null

    /**
     * @param value Specifies a user defined JSON string that is passed to the session engine.
     */
    @JvmName("xhvvpguxycixuyct")
    public suspend fun additionalConfiguration(`value`: Output) {
        this.additionalConfiguration = value
    }

    /**
     * @param value The upper limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to scan. No default is defined.
     * > This property currently supports integer types. Support for long values is planned.
     */
    @JvmName("ypynefctxcujeanf")
    public suspend fun bytesScannedCutoffPerQuery(`value`: Output) {
        this.bytesScannedCutoffPerQuery = value
    }

    /**
     * @param value Specifies the KMS key that is used to encrypt the user's data stores in Athena. This setting does not apply to Athena SQL workgroups.
     */
    @JvmName("wonfwvhwtbvvprof")
    public suspend fun customerContentEncryptionConfiguration(`value`: Output) {
        this.customerContentEncryptionConfiguration = value
    }

    /**
     * @param value If set to "true", the settings for the workgroup override client-side settings. If set to "false", client-side settings are used. For more information, see [Workgroup Settings Override Client-Side Settings](https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html) .
     */
    @JvmName("kuyjqdmkhdpppiey")
    public suspend fun enforceWorkGroupConfiguration(`value`: Output) {
        this.enforceWorkGroupConfiguration = value
    }

    /**
     * @param value The engine version that all queries running on the workgroup use.
     */
    @JvmName("iumxglwxaljepdsa")
    public suspend fun engineVersion(`value`: Output) {
        this.engineVersion = value
    }

    /**
     * @param value Role used to access user resources in an Athena for Apache Spark session. This property applies only to Spark-enabled workgroups in Athena.
     */
    @JvmName("fpimexmobeultptd")
    public suspend fun executionRole(`value`: Output) {
        this.executionRole = value
    }

    /**
     * @param value Indicates that the Amazon CloudWatch metrics are enabled for the workgroup.
     */
    @JvmName("fpuchlfsaetfwdbf")
    public suspend fun publishCloudWatchMetricsEnabled(`value`: Output) {
        this.publishCloudWatchMetricsEnabled = value
    }

    /**
     * @param value If set to `true` , allows members assigned to a workgroup to reference Amazon S3 Requester Pays buckets in queries. If set to `false` , workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is `false` . For more information about Requester Pays buckets, see [Requester Pays Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) in the *Amazon Simple Storage Service Developer Guide* .
     */
    @JvmName("gmccswxkblqcusks")
    public suspend fun requesterPaysEnabled(`value`: Output) {
        this.requesterPaysEnabled = value
    }

    /**
     * @param value Specifies the location in Amazon S3 where query results are stored and the encryption option, if any, used for query results. For more information, see [Working with Query Results, Output Files, and Query History](https://docs.aws.amazon.com/athena/latest/ug/querying.html) .
     */
    @JvmName("rrvhwfjlsvvlywuw")
    public suspend fun resultConfiguration(`value`: Output) {
        this.resultConfiguration = value
    }

    /**
     * @param value Specifies a user defined JSON string that is passed to the session engine.
     */
    @JvmName("neahwtwnhimqoscx")
    public suspend fun additionalConfiguration(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.additionalConfiguration = mapped
    }

    /**
     * @param value The upper limit (cutoff) for the amount of bytes a single query in a workgroup is allowed to scan. No default is defined.
     * > This property currently supports integer types. Support for long values is planned.
     */
    @JvmName("edaioukcjegbdoid")
    public suspend fun bytesScannedCutoffPerQuery(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.bytesScannedCutoffPerQuery = mapped
    }

    /**
     * @param value Specifies the KMS key that is used to encrypt the user's data stores in Athena. This setting does not apply to Athena SQL workgroups.
     */
    @JvmName("jplvwqrbuegagdka")
    public suspend fun customerContentEncryptionConfiguration(`value`: WorkGroupCustomerContentEncryptionConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.customerContentEncryptionConfiguration = mapped
    }

    /**
     * @param argument Specifies the KMS key that is used to encrypt the user's data stores in Athena. This setting does not apply to Athena SQL workgroups.
     */
    @JvmName("autawdrkmogvcbio")
    public suspend fun customerContentEncryptionConfiguration(argument: suspend WorkGroupCustomerContentEncryptionConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = WorkGroupCustomerContentEncryptionConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.customerContentEncryptionConfiguration = mapped
    }

    /**
     * @param value If set to "true", the settings for the workgroup override client-side settings. If set to "false", client-side settings are used. For more information, see [Workgroup Settings Override Client-Side Settings](https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html) .
     */
    @JvmName("cbjweykhsrovufun")
    public suspend fun enforceWorkGroupConfiguration(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.enforceWorkGroupConfiguration = mapped
    }

    /**
     * @param value The engine version that all queries running on the workgroup use.
     */
    @JvmName("gwpxhnyspxkqqbyk")
    public suspend fun engineVersion(`value`: WorkGroupEngineVersionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.engineVersion = mapped
    }

    /**
     * @param argument The engine version that all queries running on the workgroup use.
     */
    @JvmName("lhxahllpcbfbdsvj")
    public suspend fun engineVersion(argument: suspend WorkGroupEngineVersionArgsBuilder.() -> Unit) {
        val toBeMapped = WorkGroupEngineVersionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.engineVersion = mapped
    }

    /**
     * @param value Role used to access user resources in an Athena for Apache Spark session. This property applies only to Spark-enabled workgroups in Athena.
     */
    @JvmName("weksfjdakxwnmdgb")
    public suspend fun executionRole(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.executionRole = mapped
    }

    /**
     * @param value Indicates that the Amazon CloudWatch metrics are enabled for the workgroup.
     */
    @JvmName("icyrvekwivnieobs")
    public suspend fun publishCloudWatchMetricsEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.publishCloudWatchMetricsEnabled = mapped
    }

    /**
     * @param value If set to `true` , allows members assigned to a workgroup to reference Amazon S3 Requester Pays buckets in queries. If set to `false` , workgroup members cannot query data from Requester Pays buckets, and queries that retrieve data from Requester Pays buckets cause an error. The default is `false` . For more information about Requester Pays buckets, see [Requester Pays Buckets](https://docs.aws.amazon.com/AmazonS3/latest/dev/RequesterPaysBuckets.html) in the *Amazon Simple Storage Service Developer Guide* .
     */
    @JvmName("xanuucejbtrcfidf")
    public suspend fun requesterPaysEnabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.requesterPaysEnabled = mapped
    }

    /**
     * @param value Specifies the location in Amazon S3 where query results are stored and the encryption option, if any, used for query results. For more information, see [Working with Query Results, Output Files, and Query History](https://docs.aws.amazon.com/athena/latest/ug/querying.html) .
     */
    @JvmName("kwcadfmdpvpyhkiy")
    public suspend fun resultConfiguration(`value`: WorkGroupResultConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.resultConfiguration = mapped
    }

    /**
     * @param argument Specifies the location in Amazon S3 where query results are stored and the encryption option, if any, used for query results. For more information, see [Working with Query Results, Output Files, and Query History](https://docs.aws.amazon.com/athena/latest/ug/querying.html) .
     */
    @JvmName("pvoqrvtapfxqwhyp")
    public suspend fun resultConfiguration(argument: suspend WorkGroupResultConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = WorkGroupResultConfigurationArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.resultConfiguration = mapped
    }

    internal fun build(): WorkGroupConfigurationArgs = WorkGroupConfigurationArgs(
        additionalConfiguration = additionalConfiguration,
        bytesScannedCutoffPerQuery = bytesScannedCutoffPerQuery,
        customerContentEncryptionConfiguration = customerContentEncryptionConfiguration,
        enforceWorkGroupConfiguration = enforceWorkGroupConfiguration,
        engineVersion = engineVersion,
        executionRole = executionRole,
        publishCloudWatchMetricsEnabled = publishCloudWatchMetricsEnabled,
        requesterPaysEnabled = requesterPaysEnabled,
        resultConfiguration = resultConfiguration,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy