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

com.pulumi.awsnative.iotsitewise.kotlin.AssetModelArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.iotsitewise.kotlin

import com.pulumi.awsnative.iotsitewise.AssetModelArgs.builder
import com.pulumi.awsnative.iotsitewise.kotlin.inputs.AssetModelCompositeModelArgs
import com.pulumi.awsnative.iotsitewise.kotlin.inputs.AssetModelCompositeModelArgsBuilder
import com.pulumi.awsnative.iotsitewise.kotlin.inputs.AssetModelHierarchyArgs
import com.pulumi.awsnative.iotsitewise.kotlin.inputs.AssetModelHierarchyArgsBuilder
import com.pulumi.awsnative.iotsitewise.kotlin.inputs.AssetModelPropertyArgs
import com.pulumi.awsnative.iotsitewise.kotlin.inputs.AssetModelPropertyArgsBuilder
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

/**
 * Resource schema for AWS::IoTSiteWise::AssetModel
 * @property assetModelCompositeModels The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties.
 * @property assetModelDescription A description for the asset model.
 * @property assetModelExternalId The external ID of the asset model.
 * @property assetModelHierarchies The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. You can specify up to 10 hierarchies per asset model.
 * @property assetModelName A unique, friendly name for the asset model.
 * @property assetModelProperties The property definitions of the asset model. You can specify up to 200 properties per asset model.
 * @property assetModelType The type of the asset model (ASSET_MODEL OR COMPONENT_MODEL)
 * @property tags A list of key-value pairs that contain metadata for the asset model.
 */
public data class AssetModelArgs(
    public val assetModelCompositeModels: Output>? = null,
    public val assetModelDescription: Output? = null,
    public val assetModelExternalId: Output? = null,
    public val assetModelHierarchies: Output>? = null,
    public val assetModelName: Output? = null,
    public val assetModelProperties: Output>? = null,
    public val assetModelType: Output? = null,
    public val tags: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.iotsitewise.AssetModelArgs =
        com.pulumi.awsnative.iotsitewise.AssetModelArgs.builder()
            .assetModelCompositeModels(
                assetModelCompositeModels?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .assetModelDescription(assetModelDescription?.applyValue({ args0 -> args0 }))
            .assetModelExternalId(assetModelExternalId?.applyValue({ args0 -> args0 }))
            .assetModelHierarchies(
                assetModelHierarchies?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .assetModelName(assetModelName?.applyValue({ args0 -> args0 }))
            .assetModelProperties(
                assetModelProperties?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .assetModelType(assetModelType?.applyValue({ args0 -> args0 }))
            .tags(
                tags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [AssetModelArgs].
 */
@PulumiTagMarker
public class AssetModelArgsBuilder internal constructor() {
    private var assetModelCompositeModels: Output>? = null

    private var assetModelDescription: Output? = null

    private var assetModelExternalId: Output? = null

    private var assetModelHierarchies: Output>? = null

    private var assetModelName: Output? = null

    private var assetModelProperties: Output>? = null

    private var assetModelType: Output? = null

    private var tags: Output>? = null

    /**
     * @param value The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties.
     */
    @JvmName("ioubdhpldlvphurw")
    public suspend fun assetModelCompositeModels(`value`: Output>) {
        this.assetModelCompositeModels = value
    }

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

    /**
     * @param values The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties.
     */
    @JvmName("rrbhtsyaqkjtkjlx")
    public suspend fun assetModelCompositeModels(values: List>) {
        this.assetModelCompositeModels = Output.all(values)
    }

    /**
     * @param value A description for the asset model.
     */
    @JvmName("viebjavxxkkvriyr")
    public suspend fun assetModelDescription(`value`: Output) {
        this.assetModelDescription = value
    }

    /**
     * @param value The external ID of the asset model.
     */
    @JvmName("slhvaswvbhbeqwrl")
    public suspend fun assetModelExternalId(`value`: Output) {
        this.assetModelExternalId = value
    }

    /**
     * @param value The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. You can specify up to 10 hierarchies per asset model.
     */
    @JvmName("hylmptdwywffiiks")
    public suspend fun assetModelHierarchies(`value`: Output>) {
        this.assetModelHierarchies = value
    }

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

    /**
     * @param values The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. You can specify up to 10 hierarchies per asset model.
     */
    @JvmName("fqltidqweyoraikc")
    public suspend fun assetModelHierarchies(values: List>) {
        this.assetModelHierarchies = Output.all(values)
    }

    /**
     * @param value A unique, friendly name for the asset model.
     */
    @JvmName("ivecagyhwhocqptf")
    public suspend fun assetModelName(`value`: Output) {
        this.assetModelName = value
    }

    /**
     * @param value The property definitions of the asset model. You can specify up to 200 properties per asset model.
     */
    @JvmName("paxtuffwnljcrjtd")
    public suspend fun assetModelProperties(`value`: Output>) {
        this.assetModelProperties = value
    }

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

    /**
     * @param values The property definitions of the asset model. You can specify up to 200 properties per asset model.
     */
    @JvmName("onvxijoiiompwfde")
    public suspend fun assetModelProperties(values: List>) {
        this.assetModelProperties = Output.all(values)
    }

    /**
     * @param value The type of the asset model (ASSET_MODEL OR COMPONENT_MODEL)
     */
    @JvmName("csaborucuvrhkplp")
    public suspend fun assetModelType(`value`: Output) {
        this.assetModelType = value
    }

    /**
     * @param value A list of key-value pairs that contain metadata for the asset model.
     */
    @JvmName("egsylltwwnlxbcev")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values A list of key-value pairs that contain metadata for the asset model.
     */
    @JvmName("ndctiseikfgebtax")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties.
     */
    @JvmName("shonlqmddiyodidc")
    public suspend fun assetModelCompositeModels(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.assetModelCompositeModels = mapped
    }

    /**
     * @param argument The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties.
     */
    @JvmName("ekcxqnqgifwcbren")
    public suspend fun assetModelCompositeModels(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            AssetModelCompositeModelArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.assetModelCompositeModels = mapped
    }

    /**
     * @param argument The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties.
     */
    @JvmName("krunrilcqkhvuvdt")
    public suspend fun assetModelCompositeModels(vararg argument: suspend AssetModelCompositeModelArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            AssetModelCompositeModelArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.assetModelCompositeModels = mapped
    }

    /**
     * @param argument The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties.
     */
    @JvmName("bevdsnvbsoieisri")
    public suspend fun assetModelCompositeModels(argument: suspend AssetModelCompositeModelArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            AssetModelCompositeModelArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.assetModelCompositeModels = mapped
    }

    /**
     * @param values The composite asset models that are part of this asset model. Composite asset models are asset models that contain specific properties.
     */
    @JvmName("tqpsfwppbbirbrkd")
    public suspend fun assetModelCompositeModels(vararg values: AssetModelCompositeModelArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.assetModelCompositeModels = mapped
    }

    /**
     * @param value A description for the asset model.
     */
    @JvmName("eyebmehtfecrxiqo")
    public suspend fun assetModelDescription(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.assetModelDescription = mapped
    }

    /**
     * @param value The external ID of the asset model.
     */
    @JvmName("bqffuuetgrlwnlna")
    public suspend fun assetModelExternalId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.assetModelExternalId = mapped
    }

    /**
     * @param value The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. You can specify up to 10 hierarchies per asset model.
     */
    @JvmName("bnvdvyaxuqyirudp")
    public suspend fun assetModelHierarchies(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.assetModelHierarchies = mapped
    }

    /**
     * @param argument The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. You can specify up to 10 hierarchies per asset model.
     */
    @JvmName("fwmvrarkrgpkvmob")
    public suspend fun assetModelHierarchies(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            AssetModelHierarchyArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.assetModelHierarchies = mapped
    }

    /**
     * @param argument The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. You can specify up to 10 hierarchies per asset model.
     */
    @JvmName("klwygwheqfmxddfo")
    public suspend fun assetModelHierarchies(vararg argument: suspend AssetModelHierarchyArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            AssetModelHierarchyArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.assetModelHierarchies = mapped
    }

    /**
     * @param argument The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. You can specify up to 10 hierarchies per asset model.
     */
    @JvmName("wlujawvctjioaojb")
    public suspend fun assetModelHierarchies(argument: suspend AssetModelHierarchyArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(AssetModelHierarchyArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.assetModelHierarchies = mapped
    }

    /**
     * @param values The hierarchy definitions of the asset model. Each hierarchy specifies an asset model whose assets can be children of any other assets created from this asset model. You can specify up to 10 hierarchies per asset model.
     */
    @JvmName("psvjfklvoysfjjre")
    public suspend fun assetModelHierarchies(vararg values: AssetModelHierarchyArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.assetModelHierarchies = mapped
    }

    /**
     * @param value A unique, friendly name for the asset model.
     */
    @JvmName("bmfapdkkkulxqifd")
    public suspend fun assetModelName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.assetModelName = mapped
    }

    /**
     * @param value The property definitions of the asset model. You can specify up to 200 properties per asset model.
     */
    @JvmName("gmtgbhdvynpxdgus")
    public suspend fun assetModelProperties(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.assetModelProperties = mapped
    }

    /**
     * @param argument The property definitions of the asset model. You can specify up to 200 properties per asset model.
     */
    @JvmName("qsnfxkcnnkinrhmu")
    public suspend fun assetModelProperties(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            AssetModelPropertyArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.assetModelProperties = mapped
    }

    /**
     * @param argument The property definitions of the asset model. You can specify up to 200 properties per asset model.
     */
    @JvmName("jaddfwppyfkxfpio")
    public suspend fun assetModelProperties(vararg argument: suspend AssetModelPropertyArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            AssetModelPropertyArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.assetModelProperties = mapped
    }

    /**
     * @param argument The property definitions of the asset model. You can specify up to 200 properties per asset model.
     */
    @JvmName("htxtxbeanbqbvshy")
    public suspend fun assetModelProperties(argument: suspend AssetModelPropertyArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(AssetModelPropertyArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.assetModelProperties = mapped
    }

    /**
     * @param values The property definitions of the asset model. You can specify up to 200 properties per asset model.
     */
    @JvmName("oivfpeerxflmsbpt")
    public suspend fun assetModelProperties(vararg values: AssetModelPropertyArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.assetModelProperties = mapped
    }

    /**
     * @param value The type of the asset model (ASSET_MODEL OR COMPONENT_MODEL)
     */
    @JvmName("irycsinhymrhvvjx")
    public suspend fun assetModelType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.assetModelType = mapped
    }

    /**
     * @param value A list of key-value pairs that contain metadata for the asset model.
     */
    @JvmName("nhbrjftstkgexuvm")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument A list of key-value pairs that contain metadata for the asset model.
     */
    @JvmName("kqmgofyctuvwkvul")
    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 A list of key-value pairs that contain metadata for the asset model.
     */
    @JvmName("pprysxwxncborkid")
    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 A list of key-value pairs that contain metadata for the asset model.
     */
    @JvmName("lcpcgvjvmbmxqbsp")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values A list of key-value pairs that contain metadata for the asset model.
     */
    @JvmName("dduvfcmtnarffosv")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    internal fun build(): AssetModelArgs = AssetModelArgs(
        assetModelCompositeModels = assetModelCompositeModels,
        assetModelDescription = assetModelDescription,
        assetModelExternalId = assetModelExternalId,
        assetModelHierarchies = assetModelHierarchies,
        assetModelName = assetModelName,
        assetModelProperties = assetModelProperties,
        assetModelType = assetModelType,
        tags = tags,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy