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

com.pulumi.awsnative.appintegrations.kotlin.DataIntegrationArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.appintegrations.kotlin

import com.pulumi.awsnative.appintegrations.DataIntegrationArgs.builder
import com.pulumi.awsnative.appintegrations.kotlin.inputs.DataIntegrationFileConfigurationArgs
import com.pulumi.awsnative.appintegrations.kotlin.inputs.DataIntegrationFileConfigurationArgsBuilder
import com.pulumi.awsnative.appintegrations.kotlin.inputs.DataIntegrationScheduleConfigArgs
import com.pulumi.awsnative.appintegrations.kotlin.inputs.DataIntegrationScheduleConfigArgsBuilder
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.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

/**
 * Resource Type definition for AWS::AppIntegrations::DataIntegration
 * @property description The data integration description.
 * @property fileConfiguration The configuration for what files should be pulled from the source.
 * @property kmsKey The KMS key of the data integration.
 * @property name The name of the data integration.
 * @property objectConfiguration The configuration for what data should be pulled from the source.
 * @property scheduleConfig The name of the data and how often it should be pulled from the source.
 * @property sourceUri The URI of the data source.
 * @property tags The tags (keys and values) associated with the data integration.
 */
public data class DataIntegrationArgs(
    public val description: Output? = null,
    public val fileConfiguration: Output? = null,
    public val kmsKey: Output? = null,
    public val name: Output? = null,
    public val objectConfiguration: Output>? = null,
    public val scheduleConfig: Output? = null,
    public val sourceUri: Output? = null,
    public val tags: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.appintegrations.DataIntegrationArgs =
        com.pulumi.awsnative.appintegrations.DataIntegrationArgs.builder()
            .description(description?.applyValue({ args0 -> args0 }))
            .fileConfiguration(fileConfiguration?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .kmsKey(kmsKey?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .objectConfiguration(
                objectConfiguration?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            )
            .scheduleConfig(scheduleConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .sourceUri(sourceUri?.applyValue({ args0 -> args0 }))
            .tags(
                tags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

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

    private var fileConfiguration: Output? = null

    private var kmsKey: Output? = null

    private var name: Output? = null

    private var objectConfiguration: Output>? = null

    private var scheduleConfig: Output? = null

    private var sourceUri: Output? = null

    private var tags: Output>? = null

    /**
     * @param value The data integration description.
     */
    @JvmName("rghlwtvlduwpwmvg")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value The configuration for what files should be pulled from the source.
     */
    @JvmName("ustwfuyrbgiodore")
    public suspend fun fileConfiguration(`value`: Output) {
        this.fileConfiguration = value
    }

    /**
     * @param value The KMS key of the data integration.
     */
    @JvmName("grtrpwuspybxmqaj")
    public suspend fun kmsKey(`value`: Output) {
        this.kmsKey = value
    }

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

    /**
     * @param value The configuration for what data should be pulled from the source.
     */
    @JvmName("ypiufpurpfkmlcur")
    public suspend fun objectConfiguration(`value`: Output>) {
        this.objectConfiguration = value
    }

    /**
     * @param value The name of the data and how often it should be pulled from the source.
     */
    @JvmName("kirfdcophnnjciod")
    public suspend fun scheduleConfig(`value`: Output) {
        this.scheduleConfig = value
    }

    /**
     * @param value The URI of the data source.
     */
    @JvmName("qkwbdwjnekdtnebq")
    public suspend fun sourceUri(`value`: Output) {
        this.sourceUri = value
    }

    /**
     * @param value The tags (keys and values) associated with the data integration.
     */
    @JvmName("eqhpaugwjpcsepsv")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values The tags (keys and values) associated with the data integration.
     */
    @JvmName("xnraogxchvvdtewj")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value The data integration description.
     */
    @JvmName("vpukqjksgicbcfhv")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value The configuration for what files should be pulled from the source.
     */
    @JvmName("xallphljasnbqqah")
    public suspend fun fileConfiguration(`value`: DataIntegrationFileConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.fileConfiguration = mapped
    }

    /**
     * @param argument The configuration for what files should be pulled from the source.
     */
    @JvmName("jjiuwdistadahoit")
    public suspend fun fileConfiguration(argument: suspend DataIntegrationFileConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = DataIntegrationFileConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.fileConfiguration = mapped
    }

    /**
     * @param value The KMS key of the data integration.
     */
    @JvmName("hlojtqvgnpkltyrd")
    public suspend fun kmsKey(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.kmsKey = mapped
    }

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

    /**
     * @param value The configuration for what data should be pulled from the source.
     */
    @JvmName("hneynacywxgbtedf")
    public suspend fun objectConfiguration(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.objectConfiguration = mapped
    }

    /**
     * @param values The configuration for what data should be pulled from the source.
     */
    @JvmName("sqbbdiqxuwvxcydr")
    public fun objectConfiguration(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.objectConfiguration = mapped
    }

    /**
     * @param value The name of the data and how often it should be pulled from the source.
     */
    @JvmName("uexulypruqmknpkq")
    public suspend fun scheduleConfig(`value`: DataIntegrationScheduleConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.scheduleConfig = mapped
    }

    /**
     * @param argument The name of the data and how often it should be pulled from the source.
     */
    @JvmName("bucenmisqufaiytc")
    public suspend fun scheduleConfig(argument: suspend DataIntegrationScheduleConfigArgsBuilder.() -> Unit) {
        val toBeMapped = DataIntegrationScheduleConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.scheduleConfig = mapped
    }

    /**
     * @param value The URI of the data source.
     */
    @JvmName("jmcagxyxchlvqxhn")
    public suspend fun sourceUri(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.sourceUri = mapped
    }

    /**
     * @param value The tags (keys and values) associated with the data integration.
     */
    @JvmName("rpbtwunolreailvv")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument The tags (keys and values) associated with the data integration.
     */
    @JvmName("lnjsbsddsxluudlq")
    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 (keys and values) associated with the data integration.
     */
    @JvmName("mqcxcqnklufehkky")
    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 (keys and values) associated with the data integration.
     */
    @JvmName("mxggtewqpqrrosqi")
    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 (keys and values) associated with the data integration.
     */
    @JvmName("dhwmygxxewmsnror")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    internal fun build(): DataIntegrationArgs = DataIntegrationArgs(
        description = description,
        fileConfiguration = fileConfiguration,
        kmsKey = kmsKey,
        name = name,
        objectConfiguration = objectConfiguration,
        scheduleConfig = scheduleConfig,
        sourceUri = sourceUri,
        tags = tags,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy