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

com.pulumi.awsnative.entityresolution.kotlin.inputs.MatchingWorkflowRuleBasedPropertiesArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.entityresolution.kotlin.inputs

import com.pulumi.awsnative.entityresolution.inputs.MatchingWorkflowRuleBasedPropertiesArgs.builder
import com.pulumi.awsnative.entityresolution.kotlin.enums.MatchingWorkflowRuleBasedPropertiesAttributeMatchingModel
import com.pulumi.awsnative.entityresolution.kotlin.enums.MatchingWorkflowRuleBasedPropertiesMatchPurpose
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.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property attributeMatchingModel The comparison type. You can either choose `ONE_TO_ONE` or `MANY_TO_MANY` as the AttributeMatchingModel. When choosing `MANY_TO_MANY` , the system can match attributes across the sub-types of an attribute type. For example, if the value of the `Email` field of Profile A and the value of `BusinessEmail` field of Profile B matches, the two profiles are matched on the `Email` type. When choosing `ONE_TO_ONE` ,the system can only match if the sub-types are exact matches. For example, only when the value of the `Email` field of Profile A and the value of the `Email` field of Profile B matches, the two profiles are matched on the `Email` type.
 * @property matchPurpose
 * @property rules A list of `Rule` objects, each of which have fields `RuleName` and `MatchingKeys` .
 */
public data class MatchingWorkflowRuleBasedPropertiesArgs(
    public val attributeMatchingModel: Output,
    public val matchPurpose: Output? = null,
    public val rules: Output>,
) :
    ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.entityresolution.inputs.MatchingWorkflowRuleBasedPropertiesArgs =
        com.pulumi.awsnative.entityresolution.inputs.MatchingWorkflowRuleBasedPropertiesArgs.builder()
            .attributeMatchingModel(
                attributeMatchingModel.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .matchPurpose(matchPurpose?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .rules(
                rules.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [MatchingWorkflowRuleBasedPropertiesArgs].
 */
@PulumiTagMarker
public class MatchingWorkflowRuleBasedPropertiesArgsBuilder internal constructor() {
    private var attributeMatchingModel:
        Output? = null

    private var matchPurpose: Output? = null

    private var rules: Output>? = null

    /**
     * @param value The comparison type. You can either choose `ONE_TO_ONE` or `MANY_TO_MANY` as the AttributeMatchingModel. When choosing `MANY_TO_MANY` , the system can match attributes across the sub-types of an attribute type. For example, if the value of the `Email` field of Profile A and the value of `BusinessEmail` field of Profile B matches, the two profiles are matched on the `Email` type. When choosing `ONE_TO_ONE` ,the system can only match if the sub-types are exact matches. For example, only when the value of the `Email` field of Profile A and the value of the `Email` field of Profile B matches, the two profiles are matched on the `Email` type.
     */
    @JvmName("mbfjdptpiqlibgrd")
    public suspend fun attributeMatchingModel(`value`: Output) {
        this.attributeMatchingModel = value
    }

    /**
     * @param value
     */
    @JvmName("jbtpffhdvvtfpbih")
    public suspend fun matchPurpose(`value`: Output) {
        this.matchPurpose = value
    }

    /**
     * @param value A list of `Rule` objects, each of which have fields `RuleName` and `MatchingKeys` .
     */
    @JvmName("wgnqilqnnsdwqqkn")
    public suspend fun rules(`value`: Output>) {
        this.rules = value
    }

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

    /**
     * @param values A list of `Rule` objects, each of which have fields `RuleName` and `MatchingKeys` .
     */
    @JvmName("thumqjkfmxgcoayt")
    public suspend fun rules(values: List>) {
        this.rules = Output.all(values)
    }

    /**
     * @param value The comparison type. You can either choose `ONE_TO_ONE` or `MANY_TO_MANY` as the AttributeMatchingModel. When choosing `MANY_TO_MANY` , the system can match attributes across the sub-types of an attribute type. For example, if the value of the `Email` field of Profile A and the value of `BusinessEmail` field of Profile B matches, the two profiles are matched on the `Email` type. When choosing `ONE_TO_ONE` ,the system can only match if the sub-types are exact matches. For example, only when the value of the `Email` field of Profile A and the value of the `Email` field of Profile B matches, the two profiles are matched on the `Email` type.
     */
    @JvmName("tslwajjgpxobprao")
    public suspend fun attributeMatchingModel(`value`: MatchingWorkflowRuleBasedPropertiesAttributeMatchingModel) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.attributeMatchingModel = mapped
    }

    /**
     * @param value
     */
    @JvmName("oigwxfoxnthueine")
    public suspend fun matchPurpose(`value`: MatchingWorkflowRuleBasedPropertiesMatchPurpose?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.matchPurpose = mapped
    }

    /**
     * @param value A list of `Rule` objects, each of which have fields `RuleName` and `MatchingKeys` .
     */
    @JvmName("bjsrnbfccjkdvyyx")
    public suspend fun rules(`value`: List) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.rules = mapped
    }

    /**
     * @param argument A list of `Rule` objects, each of which have fields `RuleName` and `MatchingKeys` .
     */
    @JvmName("sfaaefabxfohurao")
    public suspend fun rules(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            MatchingWorkflowRuleArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.rules = mapped
    }

    /**
     * @param argument A list of `Rule` objects, each of which have fields `RuleName` and `MatchingKeys` .
     */
    @JvmName("ireqokjvvsyfmmdj")
    public suspend fun rules(vararg argument: suspend MatchingWorkflowRuleArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            MatchingWorkflowRuleArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.rules = mapped
    }

    /**
     * @param argument A list of `Rule` objects, each of which have fields `RuleName` and `MatchingKeys` .
     */
    @JvmName("dxypdqfkiwlhctpd")
    public suspend fun rules(argument: suspend MatchingWorkflowRuleArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(MatchingWorkflowRuleArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.rules = mapped
    }

    /**
     * @param values A list of `Rule` objects, each of which have fields `RuleName` and `MatchingKeys` .
     */
    @JvmName("tuaqtieogmapqbku")
    public suspend fun rules(vararg values: MatchingWorkflowRuleArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.rules = mapped
    }

    internal fun build(): MatchingWorkflowRuleBasedPropertiesArgs =
        MatchingWorkflowRuleBasedPropertiesArgs(
            attributeMatchingModel = attributeMatchingModel ?: throw
                PulumiNullFieldException("attributeMatchingModel"),
            matchPurpose = matchPurpose,
            rules = rules ?: throw PulumiNullFieldException("rules"),
        )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy