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

com.pulumi.awsnative.b2bi.kotlin.CapabilityArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.b2bi.kotlin

import com.pulumi.awsnative.b2bi.CapabilityArgs.builder
import com.pulumi.awsnative.b2bi.kotlin.enums.CapabilityType
import com.pulumi.awsnative.b2bi.kotlin.inputs.CapabilityConfigurationPropertiesArgs
import com.pulumi.awsnative.b2bi.kotlin.inputs.CapabilityConfigurationPropertiesArgsBuilder
import com.pulumi.awsnative.b2bi.kotlin.inputs.CapabilityS3LocationArgs
import com.pulumi.awsnative.b2bi.kotlin.inputs.CapabilityS3LocationArgsBuilder
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

/**
 * Definition of AWS::B2BI::Capability Resource Type
 * @property configuration Specifies a structure that contains the details for a capability.
 * @property instructionsDocuments Specifies one or more locations in Amazon S3, each specifying an EDI document that can be used with this capability. Each item contains the name of the bucket and the key, to identify the document's location.
 * @property name The display name of the capability.
 * @property tags Specifies the key-value pairs assigned to ARNs that you can use to group and search for resources by type. You can attach this metadata to resources (capabilities, partnerships, and so on) for any purpose.
 * @property type Returns the type of the capability. Currently, only `edi` is supported.
 */
public data class CapabilityArgs(
    public val configuration: Output? = null,
    public val instructionsDocuments: Output>? = null,
    public val name: Output? = null,
    public val tags: Output>? = null,
    public val type: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.b2bi.CapabilityArgs =
        com.pulumi.awsnative.b2bi.CapabilityArgs.builder()
            .configuration(configuration?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .instructionsDocuments(
                instructionsDocuments?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .name(name?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .type(type?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

/**
 * Builder for [CapabilityArgs].
 */
@PulumiTagMarker
public class CapabilityArgsBuilder internal constructor() {
    private var configuration: Output? = null

    private var instructionsDocuments: Output>? = null

    private var name: Output? = null

    private var tags: Output>? = null

    private var type: Output? = null

    /**
     * @param value Specifies a structure that contains the details for a capability.
     */
    @JvmName("usuwrmhkkgblfewh")
    public suspend fun configuration(`value`: Output) {
        this.configuration = value
    }

    /**
     * @param value Specifies one or more locations in Amazon S3, each specifying an EDI document that can be used with this capability. Each item contains the name of the bucket and the key, to identify the document's location.
     */
    @JvmName("wyjqqsvsxwqthmif")
    public suspend fun instructionsDocuments(`value`: Output>) {
        this.instructionsDocuments = value
    }

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

    /**
     * @param values Specifies one or more locations in Amazon S3, each specifying an EDI document that can be used with this capability. Each item contains the name of the bucket and the key, to identify the document's location.
     */
    @JvmName("bdjutjkqeegwcyik")
    public suspend fun instructionsDocuments(values: List>) {
        this.instructionsDocuments = Output.all(values)
    }

    /**
     * @param value The display name of the capability.
     */
    @JvmName("aiggepysucmhacvs")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value Specifies the key-value pairs assigned to ARNs that you can use to group and search for resources by type. You can attach this metadata to resources (capabilities, partnerships, and so on) for any purpose.
     */
    @JvmName("kvbbnylaistgmdwr")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values Specifies the key-value pairs assigned to ARNs that you can use to group and search for resources by type. You can attach this metadata to resources (capabilities, partnerships, and so on) for any purpose.
     */
    @JvmName("bfyhkqwawosofhjw")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value Returns the type of the capability. Currently, only `edi` is supported.
     */
    @JvmName("oebnwbgplngrbqya")
    public suspend fun type(`value`: Output) {
        this.type = value
    }

    /**
     * @param value Specifies a structure that contains the details for a capability.
     */
    @JvmName("fxbwhrvrfwrbafbv")
    public suspend fun configuration(`value`: CapabilityConfigurationPropertiesArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.configuration = mapped
    }

    /**
     * @param argument Specifies a structure that contains the details for a capability.
     */
    @JvmName("borewadbirkonldt")
    public suspend fun configuration(argument: suspend CapabilityConfigurationPropertiesArgsBuilder.() -> Unit) {
        val toBeMapped = CapabilityConfigurationPropertiesArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.configuration = mapped
    }

    /**
     * @param value Specifies one or more locations in Amazon S3, each specifying an EDI document that can be used with this capability. Each item contains the name of the bucket and the key, to identify the document's location.
     */
    @JvmName("xpvlfjejngdutskl")
    public suspend fun instructionsDocuments(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.instructionsDocuments = mapped
    }

    /**
     * @param argument Specifies one or more locations in Amazon S3, each specifying an EDI document that can be used with this capability. Each item contains the name of the bucket and the key, to identify the document's location.
     */
    @JvmName("ajleljagfplqipws")
    public suspend fun instructionsDocuments(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            CapabilityS3LocationArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.instructionsDocuments = mapped
    }

    /**
     * @param argument Specifies one or more locations in Amazon S3, each specifying an EDI document that can be used with this capability. Each item contains the name of the bucket and the key, to identify the document's location.
     */
    @JvmName("posixwsyfexdndwd")
    public suspend fun instructionsDocuments(vararg argument: suspend CapabilityS3LocationArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            CapabilityS3LocationArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.instructionsDocuments = mapped
    }

    /**
     * @param argument Specifies one or more locations in Amazon S3, each specifying an EDI document that can be used with this capability. Each item contains the name of the bucket and the key, to identify the document's location.
     */
    @JvmName("krxnifhtdkfihgdq")
    public suspend fun instructionsDocuments(argument: suspend CapabilityS3LocationArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(CapabilityS3LocationArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.instructionsDocuments = mapped
    }

    /**
     * @param values Specifies one or more locations in Amazon S3, each specifying an EDI document that can be used with this capability. Each item contains the name of the bucket and the key, to identify the document's location.
     */
    @JvmName("utvchbhexcplbcst")
    public suspend fun instructionsDocuments(vararg values: CapabilityS3LocationArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.instructionsDocuments = mapped
    }

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

    /**
     * @param value Specifies the key-value pairs assigned to ARNs that you can use to group and search for resources by type. You can attach this metadata to resources (capabilities, partnerships, and so on) for any purpose.
     */
    @JvmName("wnuvfqbwqndqyqtg")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument Specifies the key-value pairs assigned to ARNs that you can use to group and search for resources by type. You can attach this metadata to resources (capabilities, partnerships, and so on) for any purpose.
     */
    @JvmName("nlbathsmrtnvhvmy")
    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 Specifies the key-value pairs assigned to ARNs that you can use to group and search for resources by type. You can attach this metadata to resources (capabilities, partnerships, and so on) for any purpose.
     */
    @JvmName("tfnwelsjoyhdqkyq")
    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 Specifies the key-value pairs assigned to ARNs that you can use to group and search for resources by type. You can attach this metadata to resources (capabilities, partnerships, and so on) for any purpose.
     */
    @JvmName("iqvgtcpnyotkoujx")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values Specifies the key-value pairs assigned to ARNs that you can use to group and search for resources by type. You can attach this metadata to resources (capabilities, partnerships, and so on) for any purpose.
     */
    @JvmName("ntyuvvlcqagsljci")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value Returns the type of the capability. Currently, only `edi` is supported.
     */
    @JvmName("godfuqfcyvkljcur")
    public suspend fun type(`value`: CapabilityType?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.type = mapped
    }

    internal fun build(): CapabilityArgs = CapabilityArgs(
        configuration = configuration,
        instructionsDocuments = instructionsDocuments,
        name = name,
        tags = tags,
        type = type,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy