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

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

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

package com.pulumi.awsnative.sagemaker.kotlin

import com.pulumi.awsnative.kotlin.inputs.CreateOnlyTagArgs
import com.pulumi.awsnative.kotlin.inputs.CreateOnlyTagArgsBuilder
import com.pulumi.awsnative.sagemaker.DomainArgs.builder
import com.pulumi.awsnative.sagemaker.kotlin.enums.DomainAppNetworkAccessType
import com.pulumi.awsnative.sagemaker.kotlin.enums.DomainAppSecurityGroupManagement
import com.pulumi.awsnative.sagemaker.kotlin.enums.DomainAuthMode
import com.pulumi.awsnative.sagemaker.kotlin.inputs.DomainDefaultSpaceSettingsArgs
import com.pulumi.awsnative.sagemaker.kotlin.inputs.DomainDefaultSpaceSettingsArgsBuilder
import com.pulumi.awsnative.sagemaker.kotlin.inputs.DomainSettingsArgs
import com.pulumi.awsnative.sagemaker.kotlin.inputs.DomainSettingsArgsBuilder
import com.pulumi.awsnative.sagemaker.kotlin.inputs.DomainUserSettingsArgs
import com.pulumi.awsnative.sagemaker.kotlin.inputs.DomainUserSettingsArgsBuilder
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

/**
 * Resource Type definition for AWS::SageMaker::Domain
 * @property appNetworkAccessType Specifies the VPC used for non-EFS traffic. The default value is PublicInternetOnly.
 * @property appSecurityGroupManagement The entity that creates and manages the required security groups for inter-app communication in VPCOnly mode. Required when CreateDomain.AppNetworkAccessType is VPCOnly and DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn is provided.
 * @property authMode The mode of authentication that members use to access the domain.
 * @property defaultSpaceSettings The default space settings.
 * @property defaultUserSettings The default user settings.
 * @property domainName A name for the domain.
 * @property domainSettings A collection of settings that apply to the `SageMaker Domain` . These settings are specified through the `CreateDomain` API call.
 * @property kmsKeyId SageMaker uses AWS KMS to encrypt the EFS volume attached to the domain with an AWS managed customer master key (CMK) by default.
 * @property subnetIds The VPC subnets that Studio uses for communication.
 * @property tags A list of tags to apply to the user profile.
 * @property vpcId The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.
 */
public data class DomainArgs(
    public val appNetworkAccessType: Output? = null,
    public val appSecurityGroupManagement: Output? = null,
    public val authMode: Output? = null,
    public val defaultSpaceSettings: Output? = null,
    public val defaultUserSettings: Output? = null,
    public val domainName: Output? = null,
    public val domainSettings: Output? = null,
    public val kmsKeyId: Output? = null,
    public val subnetIds: Output>? = null,
    public val tags: Output>? = null,
    public val vpcId: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.sagemaker.DomainArgs =
        com.pulumi.awsnative.sagemaker.DomainArgs.builder()
            .appNetworkAccessType(
                appNetworkAccessType?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .appSecurityGroupManagement(
                appSecurityGroupManagement?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .authMode(authMode?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .defaultSpaceSettings(
                defaultSpaceSettings?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .defaultUserSettings(
                defaultUserSettings?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .domainName(domainName?.applyValue({ args0 -> args0 }))
            .domainSettings(domainSettings?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .kmsKeyId(kmsKeyId?.applyValue({ args0 -> args0 }))
            .subnetIds(subnetIds?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .vpcId(vpcId?.applyValue({ args0 -> args0 })).build()
}

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

    private var appSecurityGroupManagement: Output? = null

    private var authMode: Output? = null

    private var defaultSpaceSettings: Output? = null

    private var defaultUserSettings: Output? = null

    private var domainName: Output? = null

    private var domainSettings: Output? = null

    private var kmsKeyId: Output? = null

    private var subnetIds: Output>? = null

    private var tags: Output>? = null

    private var vpcId: Output? = null

    /**
     * @param value Specifies the VPC used for non-EFS traffic. The default value is PublicInternetOnly.
     */
    @JvmName("bmfofyhxgcjwslyu")
    public suspend fun appNetworkAccessType(`value`: Output) {
        this.appNetworkAccessType = value
    }

    /**
     * @param value The entity that creates and manages the required security groups for inter-app communication in VPCOnly mode. Required when CreateDomain.AppNetworkAccessType is VPCOnly and DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn is provided.
     */
    @JvmName("dvabrhuotpfpmtwi")
    public suspend fun appSecurityGroupManagement(`value`: Output) {
        this.appSecurityGroupManagement = value
    }

    /**
     * @param value The mode of authentication that members use to access the domain.
     */
    @JvmName("bkwtglefxfyytkcn")
    public suspend fun authMode(`value`: Output) {
        this.authMode = value
    }

    /**
     * @param value The default space settings.
     */
    @JvmName("aptuwoarjkljuybo")
    public suspend fun defaultSpaceSettings(`value`: Output) {
        this.defaultSpaceSettings = value
    }

    /**
     * @param value The default user settings.
     */
    @JvmName("jfyjwuuhidotnmlv")
    public suspend fun defaultUserSettings(`value`: Output) {
        this.defaultUserSettings = value
    }

    /**
     * @param value A name for the domain.
     */
    @JvmName("vqaltwtwcxicobcd")
    public suspend fun domainName(`value`: Output) {
        this.domainName = value
    }

    /**
     * @param value A collection of settings that apply to the `SageMaker Domain` . These settings are specified through the `CreateDomain` API call.
     */
    @JvmName("qcvalxdpjydltquw")
    public suspend fun domainSettings(`value`: Output) {
        this.domainSettings = value
    }

    /**
     * @param value SageMaker uses AWS KMS to encrypt the EFS volume attached to the domain with an AWS managed customer master key (CMK) by default.
     */
    @JvmName("bnqtgtrfyjjrlwxm")
    public suspend fun kmsKeyId(`value`: Output) {
        this.kmsKeyId = value
    }

    /**
     * @param value The VPC subnets that Studio uses for communication.
     */
    @JvmName("wcvstugevjrtjall")
    public suspend fun subnetIds(`value`: Output>) {
        this.subnetIds = value
    }

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

    /**
     * @param values The VPC subnets that Studio uses for communication.
     */
    @JvmName("fgurqhgfqmttydke")
    public suspend fun subnetIds(values: List>) {
        this.subnetIds = Output.all(values)
    }

    /**
     * @param value A list of tags to apply to the user profile.
     */
    @JvmName("ckayxkxrtcqmqmjp")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values A list of tags to apply to the user profile.
     */
    @JvmName("ptlvxshhccgvhfko")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.
     */
    @JvmName("ddklhmrjoheaoaqb")
    public suspend fun vpcId(`value`: Output) {
        this.vpcId = value
    }

    /**
     * @param value Specifies the VPC used for non-EFS traffic. The default value is PublicInternetOnly.
     */
    @JvmName("mtphakhcdfohuyln")
    public suspend fun appNetworkAccessType(`value`: DomainAppNetworkAccessType?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.appNetworkAccessType = mapped
    }

    /**
     * @param value The entity that creates and manages the required security groups for inter-app communication in VPCOnly mode. Required when CreateDomain.AppNetworkAccessType is VPCOnly and DomainSettings.RStudioServerProDomainSettings.DomainExecutionRoleArn is provided.
     */
    @JvmName("tefhthcalxpinvhg")
    public suspend fun appSecurityGroupManagement(`value`: DomainAppSecurityGroupManagement?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.appSecurityGroupManagement = mapped
    }

    /**
     * @param value The mode of authentication that members use to access the domain.
     */
    @JvmName("pjjnfybaxivorsnu")
    public suspend fun authMode(`value`: DomainAuthMode?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.authMode = mapped
    }

    /**
     * @param value The default space settings.
     */
    @JvmName("scnllskhmbgjktfe")
    public suspend fun defaultSpaceSettings(`value`: DomainDefaultSpaceSettingsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultSpaceSettings = mapped
    }

    /**
     * @param argument The default space settings.
     */
    @JvmName("ayycvgxmyxnxgytu")
    public suspend fun defaultSpaceSettings(argument: suspend DomainDefaultSpaceSettingsArgsBuilder.() -> Unit) {
        val toBeMapped = DomainDefaultSpaceSettingsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.defaultSpaceSettings = mapped
    }

    /**
     * @param value The default user settings.
     */
    @JvmName("npfoknflrxbmkftj")
    public suspend fun defaultUserSettings(`value`: DomainUserSettingsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultUserSettings = mapped
    }

    /**
     * @param argument The default user settings.
     */
    @JvmName("iywnthfjqxbjkhxc")
    public suspend fun defaultUserSettings(argument: suspend DomainUserSettingsArgsBuilder.() -> Unit) {
        val toBeMapped = DomainUserSettingsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.defaultUserSettings = mapped
    }

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

    /**
     * @param value A collection of settings that apply to the `SageMaker Domain` . These settings are specified through the `CreateDomain` API call.
     */
    @JvmName("gxvpnkdxodclfkng")
    public suspend fun domainSettings(`value`: DomainSettingsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.domainSettings = mapped
    }

    /**
     * @param argument A collection of settings that apply to the `SageMaker Domain` . These settings are specified through the `CreateDomain` API call.
     */
    @JvmName("ncumcnjcrdievijp")
    public suspend fun domainSettings(argument: suspend DomainSettingsArgsBuilder.() -> Unit) {
        val toBeMapped = DomainSettingsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.domainSettings = mapped
    }

    /**
     * @param value SageMaker uses AWS KMS to encrypt the EFS volume attached to the domain with an AWS managed customer master key (CMK) by default.
     */
    @JvmName("kqlxoohjamqsaekw")
    public suspend fun kmsKeyId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kmsKeyId = mapped
    }

    /**
     * @param value The VPC subnets that Studio uses for communication.
     */
    @JvmName("exnyycocptjhiqry")
    public suspend fun subnetIds(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.subnetIds = mapped
    }

    /**
     * @param values The VPC subnets that Studio uses for communication.
     */
    @JvmName("tlwtokusuimrijjl")
    public suspend fun subnetIds(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.subnetIds = mapped
    }

    /**
     * @param value A list of tags to apply to the user profile.
     */
    @JvmName("maqmlphyylohkvgh")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument A list of tags to apply to the user profile.
     */
    @JvmName("xjxbmvqlmxkecxcs")
    public suspend fun tags(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            CreateOnlyTagArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument A list of tags to apply to the user profile.
     */
    @JvmName("fjilxgeejhuhuoek")
    public suspend fun tags(vararg argument: suspend CreateOnlyTagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            CreateOnlyTagArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument A list of tags to apply to the user profile.
     */
    @JvmName("vifntnugywcckexx")
    public suspend fun tags(argument: suspend CreateOnlyTagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(CreateOnlyTagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values A list of tags to apply to the user profile.
     */
    @JvmName("offlbindomjsgowk")
    public suspend fun tags(vararg values: CreateOnlyTagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value The ID of the Amazon Virtual Private Cloud (VPC) that Studio uses for communication.
     */
    @JvmName("wxaftjqwwyobbehy")
    public suspend fun vpcId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vpcId = mapped
    }

    internal fun build(): DomainArgs = DomainArgs(
        appNetworkAccessType = appNetworkAccessType,
        appSecurityGroupManagement = appSecurityGroupManagement,
        authMode = authMode,
        defaultSpaceSettings = defaultSpaceSettings,
        defaultUserSettings = defaultUserSettings,
        domainName = domainName,
        domainSettings = domainSettings,
        kmsKeyId = kmsKeyId,
        subnetIds = subnetIds,
        tags = tags,
        vpcId = vpcId,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy