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

com.pulumi.alicloud.cloudsso.kotlin.AccessManagementArgs.kt Maven / Gradle / Ivy

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 3.62.0.0
Show newest version
@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,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy