
com.pulumi.awsnative.quicksight.kotlin.inputs.DataSetRowLevelPermissionDataSetArgs.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.awsnative.quicksight.kotlin.inputs
import com.pulumi.awsnative.quicksight.inputs.DataSetRowLevelPermissionDataSetArgs.builder
import com.pulumi.awsnative.quicksight.kotlin.enums.DataSetRowLevelPermissionFormatVersion
import com.pulumi.awsnative.quicksight.kotlin.enums.DataSetRowLevelPermissionPolicy
import com.pulumi.awsnative.quicksight.kotlin.enums.DataSetStatus
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.String
import kotlin.Suppress
import kotlin.jvm.JvmName
/**
* Information about a dataset that contains permissions for row-level security (RLS).
* The permissions dataset maps fields to users or groups. For more information, see
* Using Row-Level Security (RLS) to Restrict Access to a Dataset in the Amazon QuickSight User
* Guide.
* The option to deny permissions by setting PermissionPolicy
to DENY_ACCESS
is
* not supported for new RLS datasets.
* @property arn The Amazon Resource Name (ARN) of the dataset that contains permissions for RLS.
* @property formatVersion The user or group rules associated with the dataset that contains permissions for RLS.
* By default, `FormatVersion` is `VERSION_1` . When `FormatVersion` is `VERSION_1` , `UserName` and `GroupName` are required. When `FormatVersion` is `VERSION_2` , `UserARN` and `GroupARN` are required, and `Namespace` must not exist.
* @property namespace The namespace associated with the dataset that contains permissions for RLS.
* @property permissionPolicy The type of permissions to use when interpreting the permissions for RLS. `DENY_ACCESS` is included for backward compatibility only.
* @property status The status of the row-level security permission dataset. If enabled, the status is `ENABLED` . If disabled, the status is `DISABLED` .
*/
public data class DataSetRowLevelPermissionDataSetArgs(
public val arn: Output,
public val formatVersion: Output? = null,
public val namespace: Output? = null,
public val permissionPolicy: Output,
public val status: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.awsnative.quicksight.inputs.DataSetRowLevelPermissionDataSetArgs = com.pulumi.awsnative.quicksight.inputs.DataSetRowLevelPermissionDataSetArgs.builder()
.arn(arn.applyValue({ args0 -> args0 }))
.formatVersion(formatVersion?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.namespace(namespace?.applyValue({ args0 -> args0 }))
.permissionPolicy(permissionPolicy.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.status(status?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}
/**
* Builder for [DataSetRowLevelPermissionDataSetArgs].
*/
@PulumiTagMarker
public class DataSetRowLevelPermissionDataSetArgsBuilder internal constructor() {
private var arn: Output? = null
private var formatVersion: Output? = null
private var namespace: Output? = null
private var permissionPolicy: Output? = null
private var status: Output? = null
/**
* @param value The Amazon Resource Name (ARN) of the dataset that contains permissions for RLS.
*/
@JvmName("mtrvcllaetqpprof")
public suspend fun arn(`value`: Output) {
this.arn = value
}
/**
* @param value The user or group rules associated with the dataset that contains permissions for RLS.
* By default, `FormatVersion` is `VERSION_1` . When `FormatVersion` is `VERSION_1` , `UserName` and `GroupName` are required. When `FormatVersion` is `VERSION_2` , `UserARN` and `GroupARN` are required, and `Namespace` must not exist.
*/
@JvmName("bjuchxdvtnjpetvi")
public suspend fun formatVersion(`value`: Output) {
this.formatVersion = value
}
/**
* @param value The namespace associated with the dataset that contains permissions for RLS.
*/
@JvmName("whacxwypcpiiwyhl")
public suspend fun namespace(`value`: Output) {
this.namespace = value
}
/**
* @param value The type of permissions to use when interpreting the permissions for RLS. `DENY_ACCESS` is included for backward compatibility only.
*/
@JvmName("vxlohlnpgbashuth")
public suspend fun permissionPolicy(`value`: Output) {
this.permissionPolicy = value
}
/**
* @param value The status of the row-level security permission dataset. If enabled, the status is `ENABLED` . If disabled, the status is `DISABLED` .
*/
@JvmName("cdrmyhamtnympoel")
public suspend fun status(`value`: Output) {
this.status = value
}
/**
* @param value The Amazon Resource Name (ARN) of the dataset that contains permissions for RLS.
*/
@JvmName("odrttkkiuonldcgf")
public suspend fun arn(`value`: String) {
val toBeMapped = value
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.arn = mapped
}
/**
* @param value The user or group rules associated with the dataset that contains permissions for RLS.
* By default, `FormatVersion` is `VERSION_1` . When `FormatVersion` is `VERSION_1` , `UserName` and `GroupName` are required. When `FormatVersion` is `VERSION_2` , `UserARN` and `GroupARN` are required, and `Namespace` must not exist.
*/
@JvmName("hhnalabhytkmtjdj")
public suspend fun formatVersion(`value`: DataSetRowLevelPermissionFormatVersion?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.formatVersion = mapped
}
/**
* @param value The namespace associated with the dataset that contains permissions for RLS.
*/
@JvmName("vdasoetvfxciwtyy")
public suspend fun namespace(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.namespace = mapped
}
/**
* @param value The type of permissions to use when interpreting the permissions for RLS. `DENY_ACCESS` is included for backward compatibility only.
*/
@JvmName("dclvuoenciimeplk")
public suspend fun permissionPolicy(`value`: DataSetRowLevelPermissionPolicy) {
val toBeMapped = value
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.permissionPolicy = mapped
}
/**
* @param value The status of the row-level security permission dataset. If enabled, the status is `ENABLED` . If disabled, the status is `DISABLED` .
*/
@JvmName("iuqdrjeuovmlikmm")
public suspend fun status(`value`: DataSetStatus?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.status = mapped
}
internal fun build(): DataSetRowLevelPermissionDataSetArgs = DataSetRowLevelPermissionDataSetArgs(
arn = arn ?: throw PulumiNullFieldException("arn"),
formatVersion = formatVersion,
namespace = namespace,
permissionPolicy = permissionPolicy ?: throw PulumiNullFieldException("permissionPolicy"),
status = status,
)
}