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

com.pulumi.awsnative.datazone.kotlin.DomainArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.datazone.kotlin

import com.pulumi.awsnative.datazone.DomainArgs.builder
import com.pulumi.awsnative.datazone.kotlin.inputs.DomainSingleSignOnArgs
import com.pulumi.awsnative.datazone.kotlin.inputs.DomainSingleSignOnArgsBuilder
import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * A domain is an organizing entity for connecting together assets, users, and their projects
 * @property description The description of the Amazon DataZone domain.
 * @property domainExecutionRole The domain execution role that is created when an Amazon DataZone domain is created. The domain execution role is created in the AWS account that houses the Amazon DataZone domain.
 * @property kmsKeyIdentifier The identifier of the AWS Key Management Service (KMS) key that is used to encrypt the Amazon DataZone domain, metadata, and reporting data.
 * @property name The name of the Amazon DataZone domain.
 * @property singleSignOn The single-sign on configuration of the Amazon DataZone domain.
 * @property tags The tags specified for the Amazon DataZone domain.
 */
public data class DomainArgs(
    public val description: Output? = null,
    public val domainExecutionRole: Output? = null,
    public val kmsKeyIdentifier: Output? = null,
    public val name: Output? = null,
    public val singleSignOn: Output? = null,
    public val tags: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.datazone.DomainArgs =
        com.pulumi.awsnative.datazone.DomainArgs.builder()
            .description(description?.applyValue({ args0 -> args0 }))
            .domainExecutionRole(domainExecutionRole?.applyValue({ args0 -> args0 }))
            .kmsKeyIdentifier(kmsKeyIdentifier?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .singleSignOn(singleSignOn?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .tags(
                tags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [DomainArgs].
 */
@PulumiTagMarker
public class DomainArgsBuilder internal constructor() {
    private var description: Output? = null

    private var domainExecutionRole: Output? = null

    private var kmsKeyIdentifier: Output? = null

    private var name: Output? = null

    private var singleSignOn: Output? = null

    private var tags: Output>? = null

    /**
     * @param value The description of the Amazon DataZone domain.
     */
    @JvmName("dyaikrbdhuajupfj")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value The domain execution role that is created when an Amazon DataZone domain is created. The domain execution role is created in the AWS account that houses the Amazon DataZone domain.
     */
    @JvmName("uhdlumjyhblqbsac")
    public suspend fun domainExecutionRole(`value`: Output) {
        this.domainExecutionRole = value
    }

    /**
     * @param value The identifier of the AWS Key Management Service (KMS) key that is used to encrypt the Amazon DataZone domain, metadata, and reporting data.
     */
    @JvmName("jmhqbjdrxvjjplcm")
    public suspend fun kmsKeyIdentifier(`value`: Output) {
        this.kmsKeyIdentifier = value
    }

    /**
     * @param value The name of the Amazon DataZone domain.
     */
    @JvmName("eqabpvhuevulwytx")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The single-sign on configuration of the Amazon DataZone domain.
     */
    @JvmName("ohidpeesvkuvugwp")
    public suspend fun singleSignOn(`value`: Output) {
        this.singleSignOn = value
    }

    /**
     * @param value The tags specified for the Amazon DataZone domain.
     */
    @JvmName("tfnyxwriivdmggup")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    @JvmName("xxiqihvyqjxvxocr")
    public suspend fun tags(vararg values: Output) {
        this.tags = Output.all(values.asList())
    }

    /**
     * @param values The tags specified for the Amazon DataZone domain.
     */
    @JvmName("xdkxkthcomgkflnc")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value The description of the Amazon DataZone domain.
     */
    @JvmName("kkxfppcbqeqofdau")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value The domain execution role that is created when an Amazon DataZone domain is created. The domain execution role is created in the AWS account that houses the Amazon DataZone domain.
     */
    @JvmName("jjeplsmqtopesxgc")
    public suspend fun domainExecutionRole(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.domainExecutionRole = mapped
    }

    /**
     * @param value The identifier of the AWS Key Management Service (KMS) key that is used to encrypt the Amazon DataZone domain, metadata, and reporting data.
     */
    @JvmName("qykpfdeesbhwmptk")
    public suspend fun kmsKeyIdentifier(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kmsKeyIdentifier = mapped
    }

    /**
     * @param value The name of the Amazon DataZone domain.
     */
    @JvmName("fgnfiixcebwpuctx")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The single-sign on configuration of the Amazon DataZone domain.
     */
    @JvmName("lwddmbpsmjlwwmhr")
    public suspend fun singleSignOn(`value`: DomainSingleSignOnArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.singleSignOn = mapped
    }

    /**
     * @param argument The single-sign on configuration of the Amazon DataZone domain.
     */
    @JvmName("slngndtjegfidjbf")
    public suspend fun singleSignOn(argument: suspend DomainSingleSignOnArgsBuilder.() -> Unit) {
        val toBeMapped = DomainSingleSignOnArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.singleSignOn = mapped
    }

    /**
     * @param value The tags specified for the Amazon DataZone domain.
     */
    @JvmName("gtcxmehcjmdjnhhr")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument The tags specified for the Amazon DataZone domain.
     */
    @JvmName("xjcdbmggypsmjlkw")
    public suspend fun tags(argument: List Unit>) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument The tags specified for the Amazon DataZone domain.
     */
    @JvmName("djpcdjbcreewoiru")
    public suspend fun tags(vararg argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument The tags specified for the Amazon DataZone domain.
     */
    @JvmName("hnsuqewdgbedeiyd")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values The tags specified for the Amazon DataZone domain.
     */
    @JvmName("ohoffmdvnqfkuepd")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    internal fun build(): DomainArgs = DomainArgs(
        description = description,
        domainExecutionRole = domainExecutionRole,
        kmsKeyIdentifier = kmsKeyIdentifier,
        name = name,
        singleSignOn = singleSignOn,
        tags = tags,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy