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

com.pulumi.awsnative.customerprofiles.kotlin.inputs.IntegrationFlowDefinitionArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.customerprofiles.kotlin.inputs

import com.pulumi.awsnative.customerprofiles.inputs.IntegrationFlowDefinitionArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
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

/**
 *
 * @property description A description of the flow you want to create.
 * @property flowName The specified name of the flow. Use underscores (_) or hyphens (-) only. Spaces are not allowed.
 * @property kmsArn The Amazon Resource Name (ARN) of the AWS Key Management Service (KMS) key you provide for encryption.
 * @property sourceFlowConfig The configuration that controls how Customer Profiles retrieves data from the source.
 * @property tasks A list of tasks that Customer Profiles performs while transferring the data in the flow run.
 * @property triggerConfig The trigger settings that determine how and when the flow runs.
 */
public data class IntegrationFlowDefinitionArgs(
    public val description: Output? = null,
    public val flowName: Output,
    public val kmsArn: Output,
    public val sourceFlowConfig: Output,
    public val tasks: Output>,
    public val triggerConfig: Output,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.customerprofiles.inputs.IntegrationFlowDefinitionArgs = com.pulumi.awsnative.customerprofiles.inputs.IntegrationFlowDefinitionArgs.builder()
        .description(description?.applyValue({ args0 -> args0 }))
        .flowName(flowName.applyValue({ args0 -> args0 }))
        .kmsArn(kmsArn.applyValue({ args0 -> args0 }))
        .sourceFlowConfig(sourceFlowConfig.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
        .tasks(tasks.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
        .triggerConfig(triggerConfig.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

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

    private var flowName: Output? = null

    private var kmsArn: Output? = null

    private var sourceFlowConfig: Output? = null

    private var tasks: Output>? = null

    private var triggerConfig: Output? = null

    /**
     * @param value A description of the flow you want to create.
     */
    @JvmName("vshgfanrwggqhedq")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value The specified name of the flow. Use underscores (_) or hyphens (-) only. Spaces are not allowed.
     */
    @JvmName("vbxltjtqfnocfrgx")
    public suspend fun flowName(`value`: Output) {
        this.flowName = value
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the AWS Key Management Service (KMS) key you provide for encryption.
     */
    @JvmName("ylpnuvesutptdqmg")
    public suspend fun kmsArn(`value`: Output) {
        this.kmsArn = value
    }

    /**
     * @param value The configuration that controls how Customer Profiles retrieves data from the source.
     */
    @JvmName("ykelotcceyfjvmsr")
    public suspend fun sourceFlowConfig(`value`: Output) {
        this.sourceFlowConfig = value
    }

    /**
     * @param value A list of tasks that Customer Profiles performs while transferring the data in the flow run.
     */
    @JvmName("xybeiklrlvfdwspx")
    public suspend fun tasks(`value`: Output>) {
        this.tasks = value
    }

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

    /**
     * @param values A list of tasks that Customer Profiles performs while transferring the data in the flow run.
     */
    @JvmName("byqvpdvclnuujnse")
    public suspend fun tasks(values: List>) {
        this.tasks = Output.all(values)
    }

    /**
     * @param value The trigger settings that determine how and when the flow runs.
     */
    @JvmName("xafdpudbloynsdeq")
    public suspend fun triggerConfig(`value`: Output) {
        this.triggerConfig = value
    }

    /**
     * @param value A description of the flow you want to create.
     */
    @JvmName("jhqpjojyxmlifkcv")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value The specified name of the flow. Use underscores (_) or hyphens (-) only. Spaces are not allowed.
     */
    @JvmName("lkhoavxvuboqyvwt")
    public suspend fun flowName(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.flowName = mapped
    }

    /**
     * @param value The Amazon Resource Name (ARN) of the AWS Key Management Service (KMS) key you provide for encryption.
     */
    @JvmName("wdaguhkajijmvwpa")
    public suspend fun kmsArn(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.kmsArn = mapped
    }

    /**
     * @param value The configuration that controls how Customer Profiles retrieves data from the source.
     */
    @JvmName("jvqafivweiyyprsf")
    public suspend fun sourceFlowConfig(`value`: IntegrationSourceFlowConfigArgs) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.sourceFlowConfig = mapped
    }

    /**
     * @param argument The configuration that controls how Customer Profiles retrieves data from the source.
     */
    @JvmName("iamomcohkbyekljw")
    public suspend fun sourceFlowConfig(argument: suspend IntegrationSourceFlowConfigArgsBuilder.() -> Unit) {
        val toBeMapped = IntegrationSourceFlowConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.sourceFlowConfig = mapped
    }

    /**
     * @param value A list of tasks that Customer Profiles performs while transferring the data in the flow run.
     */
    @JvmName("dpsgaapjrfialoom")
    public suspend fun tasks(`value`: List) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tasks = mapped
    }

    /**
     * @param argument A list of tasks that Customer Profiles performs while transferring the data in the flow run.
     */
    @JvmName("sfddixknnubxvqup")
    public suspend fun tasks(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            IntegrationTaskArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.tasks = mapped
    }

    /**
     * @param argument A list of tasks that Customer Profiles performs while transferring the data in the flow run.
     */
    @JvmName("ynnjyqfpqkqfddcw")
    public suspend fun tasks(vararg argument: suspend IntegrationTaskArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            IntegrationTaskArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.tasks = mapped
    }

    /**
     * @param argument A list of tasks that Customer Profiles performs while transferring the data in the flow run.
     */
    @JvmName("uvlrnyhfvrvmgvak")
    public suspend fun tasks(argument: suspend IntegrationTaskArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(IntegrationTaskArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tasks = mapped
    }

    /**
     * @param values A list of tasks that Customer Profiles performs while transferring the data in the flow run.
     */
    @JvmName("icfbpuuigjrxbsih")
    public suspend fun tasks(vararg values: IntegrationTaskArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tasks = mapped
    }

    /**
     * @param value The trigger settings that determine how and when the flow runs.
     */
    @JvmName("giskjcnwytwmdvhq")
    public suspend fun triggerConfig(`value`: IntegrationTriggerConfigArgs) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.triggerConfig = mapped
    }

    /**
     * @param argument The trigger settings that determine how and when the flow runs.
     */
    @JvmName("aprabebfailhsgkr")
    public suspend fun triggerConfig(argument: suspend IntegrationTriggerConfigArgsBuilder.() -> Unit) {
        val toBeMapped = IntegrationTriggerConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.triggerConfig = mapped
    }

    internal fun build(): IntegrationFlowDefinitionArgs = IntegrationFlowDefinitionArgs(
        description = description,
        flowName = flowName ?: throw PulumiNullFieldException("flowName"),
        kmsArn = kmsArn ?: throw PulumiNullFieldException("kmsArn"),
        sourceFlowConfig = sourceFlowConfig ?: throw PulumiNullFieldException("sourceFlowConfig"),
        tasks = tasks ?: throw PulumiNullFieldException("tasks"),
        triggerConfig = triggerConfig ?: throw PulumiNullFieldException("triggerConfig"),
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy