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

com.pulumi.awsnative.athena.kotlin.outputs.WorkGroupResultConfiguration.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.athena.kotlin.outputs

import kotlin.String
import kotlin.Suppress

/**
 * The location in Amazon S3 where query results are stored and the encryption option, if any, used for query results. These are known as "client-side settings". If workgroup settings override client-side settings, then the query uses the workgroup settings.
 * @property aclConfiguration Indicates that an Amazon S3 canned ACL should be set to control ownership of stored query results. Currently the only supported canned ACL is `BUCKET_OWNER_FULL_CONTROL` . This is a client-side setting. If workgroup settings override client-side settings, then the query uses the ACL configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See `EnforceWorkGroupConfiguration` .
 * @property encryptionConfiguration If query results are encrypted in Amazon S3, indicates the encryption option used (for example, `SSE_KMS` or `CSE_KMS` ) and key information. This is a client-side setting. If workgroup settings override client-side settings, then the query uses the encryption configuration that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See `EnforceWorkGroupConfiguration` and [Workgroup Settings Override Client-Side Settings](https://docs.aws.amazon.com/athena/latest/ug/workgroups-settings-override.html) .
 * @property expectedBucketOwner The account ID that you expect to be the owner of the Amazon S3 bucket specified by `ResultConfiguration:OutputLocation` . If set, Athena uses the value for `ExpectedBucketOwner` when it makes Amazon S3 calls to your specified output location. If the `ExpectedBucketOwner` account ID does not match the actual owner of the Amazon S3 bucket, the call fails with a permissions error.
 * This is a client-side setting. If workgroup settings override client-side settings, then the query uses the `ExpectedBucketOwner` setting that is specified for the workgroup, and also uses the location for storing query results specified in the workgroup. See `EnforceWorkGroupConfiguration` .
 * @property outputLocation The location in Amazon S3 where your query results are stored, such as `s3://path/to/query/bucket/` . To run a query, you must specify the query results location using either a client-side setting for individual queries or a location specified by the workgroup. If workgroup settings override client-side settings, then the query uses the location specified for the workgroup. If no query location is set, Athena issues an error. For more information, see [Working with Query Results, Output Files, and Query History](https://docs.aws.amazon.com/athena/latest/ug/querying.html) and `EnforceWorkGroupConfiguration` .
 */
public data class WorkGroupResultConfiguration(
    public val aclConfiguration: WorkGroupAclConfiguration? = null,
    public val encryptionConfiguration: WorkGroupEncryptionConfiguration? = null,
    public val expectedBucketOwner: String? = null,
    public val outputLocation: String? = null,
) {
    public companion object {
        public fun toKotlin(javaType: com.pulumi.awsnative.athena.outputs.WorkGroupResultConfiguration): WorkGroupResultConfiguration = WorkGroupResultConfiguration(
            aclConfiguration = javaType.aclConfiguration().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.athena.kotlin.outputs.WorkGroupAclConfiguration.Companion.toKotlin(args0)
                })
            }).orElse(null),
            encryptionConfiguration = javaType.encryptionConfiguration().map({ args0 ->
                args0.let({ args0 ->
                    com.pulumi.awsnative.athena.kotlin.outputs.WorkGroupEncryptionConfiguration.Companion.toKotlin(args0)
                })
            }).orElse(null),
            expectedBucketOwner = javaType.expectedBucketOwner().map({ args0 -> args0 }).orElse(null),
            outputLocation = javaType.outputLocation().map({ args0 -> args0 }).orElse(null),
        )
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy