com.pulumi.alicloud.cloudsso.kotlin.AccessManagementArgs.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-alicloud-kotlin Show documentation
Show all versions of pulumi-alicloud-kotlin Show documentation
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.alicloud.cloudsso.kotlin
import com.pulumi.alicloud.cloudsso.AccessManagementArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName
/**
* Provides a Cloud SSO Access Assignment resource.
* For information about Cloud SSO Access Assignment and how to use it, see [What is Access Assignment](https://www.alibabacloud.com/help/en/doc-detail/265996.htm).
* > **NOTE:** When you configure access assignment for the first time, access configuration will be automatically deployed.
* > **NOTE:** Available since v1.145.0.
* > **NOTE:** Cloud SSO Only Support `cn-shanghai` And `us-west-1` Region
* ## Import
* Cloud SSO Access Assignment can be imported using the id, e.g.
* ```sh
* $ pulumi import alicloud:cloudsso/accessManagement:AccessManagement example :::::
* ```
* @property accessConfigurationId The Access configuration ID.
* @property deprovisionStrategy The deprovision strategy. Valid values: `DeprovisionForLastAccessAssignmentOnAccount` and `None`. Default Value: `DeprovisionForLastAccessAssignmentOnAccount`. **NOTE:** When `deprovision_strategy` is `DeprovisionForLastAccessAssignmentOnAccount`, and the access assignment to be deleted is the last access assignment for the same account and the same AC, this option is used for the undeployment operation。
* @property directoryId The ID of the Directory.
* @property principalId The ID of the access assignment.
* @property principalType The identity type of the access assignment, which can be a user or a user group. Valid values: `Group`, `User`.
* @property targetId The ID of the target to create the resource range.
* @property targetType The type of the resource range target to be accessed. Valid values: `RD-Account`.
*/
public data class AccessManagementArgs(
public val accessConfigurationId: Output? = null,
public val deprovisionStrategy: Output? = null,
public val directoryId: Output? = null,
public val principalId: Output? = null,
public val principalType: Output? = null,
public val targetId: Output? = null,
public val targetType: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.alicloud.cloudsso.AccessManagementArgs =
com.pulumi.alicloud.cloudsso.AccessManagementArgs.builder()
.accessConfigurationId(accessConfigurationId?.applyValue({ args0 -> args0 }))
.deprovisionStrategy(deprovisionStrategy?.applyValue({ args0 -> args0 }))
.directoryId(directoryId?.applyValue({ args0 -> args0 }))
.principalId(principalId?.applyValue({ args0 -> args0 }))
.principalType(principalType?.applyValue({ args0 -> args0 }))
.targetId(targetId?.applyValue({ args0 -> args0 }))
.targetType(targetType?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [AccessManagementArgs].
*/
@PulumiTagMarker
public class AccessManagementArgsBuilder internal constructor() {
private var accessConfigurationId: Output? = null
private var deprovisionStrategy: Output? = null
private var directoryId: Output? = null
private var principalId: Output? = null
private var principalType: Output? = null
private var targetId: Output? = null
private var targetType: Output? = null
/**
* @param value The Access configuration ID.
*/
@JvmName("ixqxhlwsbqgbphye")
public suspend fun accessConfigurationId(`value`: Output) {
this.accessConfigurationId = value
}
/**
* @param value The deprovision strategy. Valid values: `DeprovisionForLastAccessAssignmentOnAccount` and `None`. Default Value: `DeprovisionForLastAccessAssignmentOnAccount`. **NOTE:** When `deprovision_strategy` is `DeprovisionForLastAccessAssignmentOnAccount`, and the access assignment to be deleted is the last access assignment for the same account and the same AC, this option is used for the undeployment operation。
*/
@JvmName("tvphwhmwiilbdivm")
public suspend fun deprovisionStrategy(`value`: Output) {
this.deprovisionStrategy = value
}
/**
* @param value The ID of the Directory.
*/
@JvmName("bqticoauiywjhofe")
public suspend fun directoryId(`value`: Output) {
this.directoryId = value
}
/**
* @param value The ID of the access assignment.
*/
@JvmName("wpdtsfviwqdnateb")
public suspend fun principalId(`value`: Output) {
this.principalId = value
}
/**
* @param value The identity type of the access assignment, which can be a user or a user group. Valid values: `Group`, `User`.
*/
@JvmName("mbaadpelnvkfyctw")
public suspend fun principalType(`value`: Output) {
this.principalType = value
}
/**
* @param value The ID of the target to create the resource range.
*/
@JvmName("lgcsywfadmpwektj")
public suspend fun targetId(`value`: Output) {
this.targetId = value
}
/**
* @param value The type of the resource range target to be accessed. Valid values: `RD-Account`.
*/
@JvmName("djeuqywknnrdxpax")
public suspend fun targetType(`value`: Output) {
this.targetType = value
}
/**
* @param value The Access configuration ID.
*/
@JvmName("qyofemsvnsexweox")
public suspend fun accessConfigurationId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.accessConfigurationId = mapped
}
/**
* @param value The deprovision strategy. Valid values: `DeprovisionForLastAccessAssignmentOnAccount` and `None`. Default Value: `DeprovisionForLastAccessAssignmentOnAccount`. **NOTE:** When `deprovision_strategy` is `DeprovisionForLastAccessAssignmentOnAccount`, and the access assignment to be deleted is the last access assignment for the same account and the same AC, this option is used for the undeployment operation。
*/
@JvmName("bcgjnnaldeeigasi")
public suspend fun deprovisionStrategy(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.deprovisionStrategy = mapped
}
/**
* @param value The ID of the Directory.
*/
@JvmName("qtvyurnylejwfeor")
public suspend fun directoryId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.directoryId = mapped
}
/**
* @param value The ID of the access assignment.
*/
@JvmName("rmaseouxrxmbukqa")
public suspend fun principalId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.principalId = mapped
}
/**
* @param value The identity type of the access assignment, which can be a user or a user group. Valid values: `Group`, `User`.
*/
@JvmName("usuvpktkepyqllcu")
public suspend fun principalType(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.principalType = mapped
}
/**
* @param value The ID of the target to create the resource range.
*/
@JvmName("awnvxvcnibtlvobs")
public suspend fun targetId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.targetId = mapped
}
/**
* @param value The type of the resource range target to be accessed. Valid values: `RD-Account`.
*/
@JvmName("qfxkqbpdkfagoykq")
public suspend fun targetType(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.targetType = mapped
}
internal fun build(): AccessManagementArgs = AccessManagementArgs(
accessConfigurationId = accessConfigurationId,
deprovisionStrategy = deprovisionStrategy,
directoryId = directoryId,
principalId = principalId,
principalType = principalType,
targetId = targetId,
targetType = targetType,
)
}