All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.awsnative.nimblestudio.kotlin.StudioComponentArgs.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.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.awsnative.nimblestudio.kotlin
import com.pulumi.awsnative.nimblestudio.StudioComponentArgs.builder
import com.pulumi.awsnative.nimblestudio.kotlin.enums.StudioComponentSubtype
import com.pulumi.awsnative.nimblestudio.kotlin.enums.StudioComponentType
import com.pulumi.awsnative.nimblestudio.kotlin.inputs.StudioComponentInitializationScriptArgs
import com.pulumi.awsnative.nimblestudio.kotlin.inputs.StudioComponentInitializationScriptArgsBuilder
import com.pulumi.awsnative.nimblestudio.kotlin.inputs.StudioComponentScriptParameterKeyValueArgs
import com.pulumi.awsnative.nimblestudio.kotlin.inputs.StudioComponentScriptParameterKeyValueArgsBuilder
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.Any
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName
/**
* Represents a studio component that connects a non-Nimble Studio resource in your account to your studio
* @property configuration The configuration of the studio component, based on component type.
* @property description The description.
* @property ec2SecurityGroupIds The EC2 security groups that control access to the studio component.
* @property initializationScripts Initialization scripts for studio components.
* @property name The name for the studio component.
* @property runtimeRoleArn An IAM role attached to a Studio Component that gives the studio component access to AWS resources at anytime while the instance is running.
* @property scriptParameters Parameters for the studio component scripts.
* @property secureInitializationRoleArn An IAM role attached to Studio Component when the system initialization script runs which give the studio component access to AWS resources when the system initialization script runs.
* @property studioId The studio ID.
* @property subtype The specific subtype of a studio component.
* @property tags An array of key-value pairs to apply to this resource.
* For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
* @property type The type of the studio component.
*/
public data class StudioComponentArgs(
public val configuration: Output? = null,
public val description: Output? = null,
public val ec2SecurityGroupIds: Output>? = null,
public val initializationScripts: Output>? = null,
public val name: Output? = null,
public val runtimeRoleArn: Output? = null,
public val scriptParameters: Output>? = null,
public val secureInitializationRoleArn: Output? = null,
public val studioId: Output? = null,
public val subtype: Output? = null,
public val tags: Output>? = null,
public val type: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.awsnative.nimblestudio.StudioComponentArgs =
com.pulumi.awsnative.nimblestudio.StudioComponentArgs.builder()
.configuration(configuration?.applyValue({ args0 -> args0 }))
.description(description?.applyValue({ args0 -> args0 }))
.ec2SecurityGroupIds(ec2SecurityGroupIds?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
.initializationScripts(
initializationScripts?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 -> args0.toJava() })
})
}),
)
.name(name?.applyValue({ args0 -> args0 }))
.runtimeRoleArn(runtimeRoleArn?.applyValue({ args0 -> args0 }))
.scriptParameters(
scriptParameters?.applyValue({ args0 ->
args0.map({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
})
}),
)
.secureInitializationRoleArn(secureInitializationRoleArn?.applyValue({ args0 -> args0 }))
.studioId(studioId?.applyValue({ args0 -> args0 }))
.subtype(subtype?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
.type(type?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}
/**
* Builder for [StudioComponentArgs].
*/
@PulumiTagMarker
public class StudioComponentArgsBuilder internal constructor() {
private var configuration: Output? = null
private var description: Output? = null
private var ec2SecurityGroupIds: Output>? = null
private var initializationScripts: Output>? = null
private var name: Output? = null
private var runtimeRoleArn: Output? = null
private var scriptParameters: Output>? = null
private var secureInitializationRoleArn: Output? = null
private var studioId: Output? = null
private var subtype: Output? = null
private var tags: Output>? = null
private var type: Output? = null
/**
* @param value The configuration of the studio component, based on component type.
*/
@JvmName("ogovgvqyktpopkhe")
public suspend fun configuration(`value`: Output) {
this.configuration = value
}
/**
* @param value The description.
*/
@JvmName("drexpmmbotpccefw")
public suspend fun description(`value`: Output) {
this.description = value
}
/**
* @param value The EC2 security groups that control access to the studio component.
*/
@JvmName("yymjdsqthtwmeeul")
public suspend fun ec2SecurityGroupIds(`value`: Output>) {
this.ec2SecurityGroupIds = value
}
@JvmName("occybmemayunnycv")
public suspend fun ec2SecurityGroupIds(vararg values: Output) {
this.ec2SecurityGroupIds = Output.all(values.asList())
}
/**
* @param values The EC2 security groups that control access to the studio component.
*/
@JvmName("bffqlofrnsekqhdq")
public suspend fun ec2SecurityGroupIds(values: List>) {
this.ec2SecurityGroupIds = Output.all(values)
}
/**
* @param value Initialization scripts for studio components.
*/
@JvmName("smuwytaitjfrcakp")
public suspend fun initializationScripts(`value`: Output>) {
this.initializationScripts = value
}
@JvmName("pppscytekojbekpj")
public suspend fun initializationScripts(vararg values: Output) {
this.initializationScripts = Output.all(values.asList())
}
/**
* @param values Initialization scripts for studio components.
*/
@JvmName("bgrtabiuavtqhgnb")
public suspend fun initializationScripts(values: List>) {
this.initializationScripts = Output.all(values)
}
/**
* @param value The name for the studio component.
*/
@JvmName("enpgkysqjudjrvou")
public suspend fun name(`value`: Output) {
this.name = value
}
/**
* @param value An IAM role attached to a Studio Component that gives the studio component access to AWS resources at anytime while the instance is running.
*/
@JvmName("bcbqinqrelarqksi")
public suspend fun runtimeRoleArn(`value`: Output) {
this.runtimeRoleArn = value
}
/**
* @param value Parameters for the studio component scripts.
*/
@JvmName("aiprecuqtxtneofu")
public suspend fun scriptParameters(`value`: Output>) {
this.scriptParameters = value
}
@JvmName("wllhoqihygoannvt")
public suspend fun scriptParameters(vararg values: Output) {
this.scriptParameters = Output.all(values.asList())
}
/**
* @param values Parameters for the studio component scripts.
*/
@JvmName("hwhmkyutpsuimtnf")
public suspend fun scriptParameters(values: List>) {
this.scriptParameters = Output.all(values)
}
/**
* @param value An IAM role attached to Studio Component when the system initialization script runs which give the studio component access to AWS resources when the system initialization script runs.
*/
@JvmName("yrqoehfcgbhclfcn")
public suspend fun secureInitializationRoleArn(`value`: Output) {
this.secureInitializationRoleArn = value
}
/**
* @param value The studio ID.
*/
@JvmName("jagjqdtwmloqulhe")
public suspend fun studioId(`value`: Output) {
this.studioId = value
}
/**
* @param value The specific subtype of a studio component.
*/
@JvmName("paisftpgevdipabg")
public suspend fun subtype(`value`: Output) {
this.subtype = value
}
/**
* @param value An array of key-value pairs to apply to this resource.
* For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
*/
@JvmName("ebutpqnukgmynqkx")
public suspend fun tags(`value`: Output>) {
this.tags = value
}
/**
* @param value The type of the studio component.
*/
@JvmName("slpofepdgjdjxymb")
public suspend fun type(`value`: Output) {
this.type = value
}
/**
* @param value The configuration of the studio component, based on component type.
*/
@JvmName("rwpaktkyivdexvkh")
public suspend fun configuration(`value`: Any?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.configuration = mapped
}
/**
* @param value The description.
*/
@JvmName("otbgbimbmheprmmo")
public suspend fun description(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.description = mapped
}
/**
* @param value The EC2 security groups that control access to the studio component.
*/
@JvmName("hdfhoxkkaxtuevjl")
public suspend fun ec2SecurityGroupIds(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.ec2SecurityGroupIds = mapped
}
/**
* @param values The EC2 security groups that control access to the studio component.
*/
@JvmName("wimlovlmjqdhfvyv")
public suspend fun ec2SecurityGroupIds(vararg values: String) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.ec2SecurityGroupIds = mapped
}
/**
* @param value Initialization scripts for studio components.
*/
@JvmName("qvhelhgxkbsqlwto")
public suspend fun initializationScripts(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.initializationScripts = mapped
}
/**
* @param argument Initialization scripts for studio components.
*/
@JvmName("imeqmvmhyubmasnb")
public suspend fun initializationScripts(argument: List Unit>) {
val toBeMapped = argument.toList().map {
StudioComponentInitializationScriptArgsBuilder().applySuspend { it() }.build()
}
val mapped = of(toBeMapped)
this.initializationScripts = mapped
}
/**
* @param argument Initialization scripts for studio components.
*/
@JvmName("puraubpeedcdfwjr")
public suspend fun initializationScripts(vararg argument: suspend StudioComponentInitializationScriptArgsBuilder.() -> Unit) {
val toBeMapped = argument.toList().map {
StudioComponentInitializationScriptArgsBuilder().applySuspend { it() }.build()
}
val mapped = of(toBeMapped)
this.initializationScripts = mapped
}
/**
* @param argument Initialization scripts for studio components.
*/
@JvmName("aufmysmnjrhtspsw")
public suspend fun initializationScripts(argument: suspend StudioComponentInitializationScriptArgsBuilder.() -> Unit) {
val toBeMapped = listOf(
StudioComponentInitializationScriptArgsBuilder().applySuspend {
argument()
}.build(),
)
val mapped = of(toBeMapped)
this.initializationScripts = mapped
}
/**
* @param values Initialization scripts for studio components.
*/
@JvmName("fibcgvrmgpomnids")
public suspend fun initializationScripts(vararg values: StudioComponentInitializationScriptArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.initializationScripts = mapped
}
/**
* @param value The name for the studio component.
*/
@JvmName("misuqoeygxwnawbg")
public suspend fun name(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.name = mapped
}
/**
* @param value An IAM role attached to a Studio Component that gives the studio component access to AWS resources at anytime while the instance is running.
*/
@JvmName("orbkjqcgquvrgmpp")
public suspend fun runtimeRoleArn(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.runtimeRoleArn = mapped
}
/**
* @param value Parameters for the studio component scripts.
*/
@JvmName("tanrmtlxrrtoevct")
public suspend fun scriptParameters(`value`: List?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.scriptParameters = mapped
}
/**
* @param argument Parameters for the studio component scripts.
*/
@JvmName("fcgwnkheyolmfcwx")
public suspend fun scriptParameters(argument: List Unit>) {
val toBeMapped = argument.toList().map {
StudioComponentScriptParameterKeyValueArgsBuilder().applySuspend { it() }.build()
}
val mapped = of(toBeMapped)
this.scriptParameters = mapped
}
/**
* @param argument Parameters for the studio component scripts.
*/
@JvmName("igsybdmtpegcawnp")
public suspend fun scriptParameters(vararg argument: suspend StudioComponentScriptParameterKeyValueArgsBuilder.() -> Unit) {
val toBeMapped = argument.toList().map {
StudioComponentScriptParameterKeyValueArgsBuilder().applySuspend { it() }.build()
}
val mapped = of(toBeMapped)
this.scriptParameters = mapped
}
/**
* @param argument Parameters for the studio component scripts.
*/
@JvmName("gvgefrmpxuvvouhl")
public suspend fun scriptParameters(argument: suspend StudioComponentScriptParameterKeyValueArgsBuilder.() -> Unit) {
val toBeMapped = listOf(
StudioComponentScriptParameterKeyValueArgsBuilder().applySuspend {
argument()
}.build(),
)
val mapped = of(toBeMapped)
this.scriptParameters = mapped
}
/**
* @param values Parameters for the studio component scripts.
*/
@JvmName("gpvsxokkrytudksl")
public suspend fun scriptParameters(vararg values: StudioComponentScriptParameterKeyValueArgs) {
val toBeMapped = values.toList()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.scriptParameters = mapped
}
/**
* @param value An IAM role attached to Studio Component when the system initialization script runs which give the studio component access to AWS resources when the system initialization script runs.
*/
@JvmName("hbvjkuggreebvhnt")
public suspend fun secureInitializationRoleArn(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.secureInitializationRoleArn = mapped
}
/**
* @param value The studio ID.
*/
@JvmName("obwjwdyaxnclmwfx")
public suspend fun studioId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.studioId = mapped
}
/**
* @param value The specific subtype of a studio component.
*/
@JvmName("tmpjphmyxltarhcu")
public suspend fun subtype(`value`: StudioComponentSubtype?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.subtype = mapped
}
/**
* @param value An array of key-value pairs to apply to this resource.
* For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
*/
@JvmName("dwrjbjjuivbtijbc")
public suspend fun tags(`value`: Map?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.tags = mapped
}
/**
* @param values An array of key-value pairs to apply to this resource.
* For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .
*/
@JvmName("bhynhcyuoeuattwq")
public fun tags(vararg values: Pair) {
val toBeMapped = values.toMap()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.tags = mapped
}
/**
* @param value The type of the studio component.
*/
@JvmName("xfetopbmemsiuhjm")
public suspend fun type(`value`: StudioComponentType?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.type = mapped
}
internal fun build(): StudioComponentArgs = StudioComponentArgs(
configuration = configuration,
description = description,
ec2SecurityGroupIds = ec2SecurityGroupIds,
initializationScripts = initializationScripts,
name = name,
runtimeRoleArn = runtimeRoleArn,
scriptParameters = scriptParameters,
secureInitializationRoleArn = secureInitializationRoleArn,
studioId = studioId,
subtype = subtype,
tags = tags,
type = type,
)
}