
com.pulumi.awsnative.quicksight.kotlin.inputs.DataSourceRedshiftIamParametersArgs.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.awsnative.quicksight.kotlin.inputs
import com.pulumi.awsnative.quicksight.inputs.DataSourceRedshiftIamParametersArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.jvm.JvmName
/**
* A structure that grants Amazon QuickSight access to your cluster and make a call to the redshift:GetClusterCredentials
API. For more information on the redshift:GetClusterCredentials
API, see
* GetClusterCredentials
* .
* @property autoCreateDatabaseUser Automatically creates a database user. If your database doesn't have a DatabaseUser
, set this parameter to True
. If there is no DatabaseUser
, Amazon QuickSight can't connect to your cluster. The RoleArn
that you use for this operation must grant access to redshift:CreateClusterUser
to successfully create the user.
* @property databaseGroups A list of groups whose permissions will be granted to Amazon QuickSight to access the cluster. These permissions are combined with the permissions granted to Amazon QuickSight by the DatabaseUser
. If you choose to include this parameter, the RoleArn
must grant access to redshift:JoinGroup
.
* @property databaseUser The user whose permissions and group memberships will be used by Amazon QuickSight to access the cluster. If this user already exists in your database, Amazon QuickSight is granted the same permissions that the user has. If the user doesn't exist, set the value of AutoCreateDatabaseUser
to True
to create a new user with PUBLIC permissions.
* @property roleArn Use the RoleArn
structure to allow Amazon QuickSight to call redshift:GetClusterCredentials
on your cluster. The calling principal must have iam:PassRole
access to pass the role to Amazon QuickSight. The role's trust policy must allow the Amazon QuickSight service principal to assume the role.
*/
public data class DataSourceRedshiftIamParametersArgs(
public val autoCreateDatabaseUser: Output? = null,
public val databaseGroups: Output>? = null,
public val databaseUser: Output? = null,
public val roleArn: Output,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.awsnative.quicksight.inputs.DataSourceRedshiftIamParametersArgs = com.pulumi.awsnative.quicksight.inputs.DataSourceRedshiftIamParametersArgs.builder()
.autoCreateDatabaseUser(autoCreateDatabaseUser?.applyValue({ args0 -> args0 }))
.databaseGroups(databaseGroups?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.databaseUser(databaseUser?.applyValue({ args0 -> args0 }))
.roleArn(roleArn.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [DataSourceRedshiftIamParametersArgs].
*/
@PulumiTagMarker
public class DataSourceRedshiftIamParametersArgsBuilder internal constructor() {
private var autoCreateDatabaseUser: Output? = null
private var databaseGroups: Output>? = null
private var databaseUser: Output? = null
private var roleArn: Output? = null
/**
* @param value Automatically creates a database user. If your database doesn't have a DatabaseUser
, set this parameter to True
. If there is no DatabaseUser
, Amazon QuickSight can't connect to your cluster. The RoleArn
that you use for this operation must grant access to redshift:CreateClusterUser
to successfully create the user.
*/
@JvmName("nqdpuixtnsjcnapi")
public suspend fun autoCreateDatabaseUser(`value`: Output) {
this.autoCreateDatabaseUser = value
}
/**
* @param value A list of groups whose permissions will be granted to Amazon QuickSight to access the cluster. These permissions are combined with the permissions granted to Amazon QuickSight by the DatabaseUser
. If you choose to include this parameter, the RoleArn
must grant access to redshift:JoinGroup
.
*/
@JvmName("ovupdwmbstfrkpas")
public suspend fun databaseGroups(`value`: Output>) {
this.databaseGroups = value
}
@JvmName("veunerfjmdbsjjvi")
public suspend fun databaseGroups(vararg values: Output) {
this.databaseGroups = Output.all(values.asList())
}
/**
* @param values A list of groups whose permissions will be granted to Amazon QuickSight to access the cluster. These permissions are combined with the permissions granted to Amazon QuickSight by the DatabaseUser
. If you choose to include this parameter, the RoleArn
must grant access to redshift:JoinGroup
.
*/
@JvmName("owarwstgeraaabou")
public suspend fun databaseGroups(values: List