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

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

Go to download

Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.

There is a newer version: 0.122.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

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

import com.pulumi.awsnative.customerprofiles.inputs.DomainRuleBasedMatchingArgs.builder
import com.pulumi.awsnative.customerprofiles.kotlin.enums.DomainRuleBasedMatchingStatus
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.Boolean
import kotlin.Int
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * The process of matching duplicate profiles using the Rule-Based matching. If RuleBasedMatching = true, Amazon Connect Customer Profiles will start to match and merge your profiles according to your configuration in the RuleBasedMatchingRequest. You can use the ListRuleBasedMatches and GetSimilarProfiles API to return and review the results. Also, if you have configured ExportingConfig in the RuleBasedMatchingRequest, you can download the results from S3.
 * @property attributeTypesSelector Configures information about the `AttributeTypesSelector` where the rule-based identity resolution uses to match profiles.
 * @property conflictResolution Determines how the auto-merging process should resolve conflicts between different profiles. For example, if Profile A and Profile B have the same `FirstName` and `LastName` , `ConflictResolution` specifies which `EmailAddress` should be used.
 * @property enabled The flag that enables the rule-based matching process of duplicate profiles.
 * @property exportingConfig The S3 location where Identity Resolution Jobs write result files.
 * @property matchingRules Configures how the rule-based matching process should match profiles. You can have up to 15 MatchingRule in the MatchingRules.
 * @property maxAllowedRuleLevelForMatching Indicates the maximum allowed rule level for matching.
 * @property maxAllowedRuleLevelForMerging Indicates the maximum allowed rule level for merging.
 * @property status The status of rule-based matching rule.
 */
public data class DomainRuleBasedMatchingArgs(
    public val attributeTypesSelector: Output? = null,
    public val conflictResolution: Output? = null,
    public val enabled: Output,
    public val exportingConfig: Output? = null,
    public val matchingRules: Output>? = null,
    public val maxAllowedRuleLevelForMatching: Output? = null,
    public val maxAllowedRuleLevelForMerging: Output? = null,
    public val status: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.customerprofiles.inputs.DomainRuleBasedMatchingArgs =
        com.pulumi.awsnative.customerprofiles.inputs.DomainRuleBasedMatchingArgs.builder()
            .attributeTypesSelector(
                attributeTypesSelector?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .conflictResolution(
                conflictResolution?.applyValue({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                }),
            )
            .enabled(enabled.applyValue({ args0 -> args0 }))
            .exportingConfig(exportingConfig?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .matchingRules(
                matchingRules?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .maxAllowedRuleLevelForMatching(maxAllowedRuleLevelForMatching?.applyValue({ args0 -> args0 }))
            .maxAllowedRuleLevelForMerging(maxAllowedRuleLevelForMerging?.applyValue({ args0 -> args0 }))
            .status(status?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

/**
 * Builder for [DomainRuleBasedMatchingArgs].
 */
@PulumiTagMarker
public class DomainRuleBasedMatchingArgsBuilder internal constructor() {
    private var attributeTypesSelector: Output? = null

    private var conflictResolution: Output? = null

    private var enabled: Output? = null

    private var exportingConfig: Output? = null

    private var matchingRules: Output>? = null

    private var maxAllowedRuleLevelForMatching: Output? = null

    private var maxAllowedRuleLevelForMerging: Output? = null

    private var status: Output? = null

    /**
     * @param value Configures information about the `AttributeTypesSelector` where the rule-based identity resolution uses to match profiles.
     */
    @JvmName("ahtqkrwrluidtnir")
    public suspend fun attributeTypesSelector(`value`: Output) {
        this.attributeTypesSelector = value
    }

    /**
     * @param value Determines how the auto-merging process should resolve conflicts between different profiles. For example, if Profile A and Profile B have the same `FirstName` and `LastName` , `ConflictResolution` specifies which `EmailAddress` should be used.
     */
    @JvmName("bidhwtvrrjfqkwfi")
    public suspend fun conflictResolution(`value`: Output) {
        this.conflictResolution = value
    }

    /**
     * @param value The flag that enables the rule-based matching process of duplicate profiles.
     */
    @JvmName("mungcukjnmrpgexp")
    public suspend fun enabled(`value`: Output) {
        this.enabled = value
    }

    /**
     * @param value The S3 location where Identity Resolution Jobs write result files.
     */
    @JvmName("lutwpffgjhcxumqt")
    public suspend fun exportingConfig(`value`: Output) {
        this.exportingConfig = value
    }

    /**
     * @param value Configures how the rule-based matching process should match profiles. You can have up to 15 MatchingRule in the MatchingRules.
     */
    @JvmName("ysxgxdqpenxxmpnd")
    public suspend fun matchingRules(`value`: Output>) {
        this.matchingRules = value
    }

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

    /**
     * @param values Configures how the rule-based matching process should match profiles. You can have up to 15 MatchingRule in the MatchingRules.
     */
    @JvmName("schwehsnihgcnydc")
    public suspend fun matchingRules(values: List>) {
        this.matchingRules = Output.all(values)
    }

    /**
     * @param value Indicates the maximum allowed rule level for matching.
     */
    @JvmName("laauwriqhfdcpbqw")
    public suspend fun maxAllowedRuleLevelForMatching(`value`: Output) {
        this.maxAllowedRuleLevelForMatching = value
    }

    /**
     * @param value Indicates the maximum allowed rule level for merging.
     */
    @JvmName("djegbknemhffhrba")
    public suspend fun maxAllowedRuleLevelForMerging(`value`: Output) {
        this.maxAllowedRuleLevelForMerging = value
    }

    /**
     * @param value The status of rule-based matching rule.
     */
    @JvmName("fadjdytnxfyguqri")
    public suspend fun status(`value`: Output) {
        this.status = value
    }

    /**
     * @param value Configures information about the `AttributeTypesSelector` where the rule-based identity resolution uses to match profiles.
     */
    @JvmName("uocvfooeljtnpkqo")
    public suspend fun attributeTypesSelector(`value`: DomainAttributeTypesSelectorArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.attributeTypesSelector = mapped
    }

    /**
     * @param argument Configures information about the `AttributeTypesSelector` where the rule-based identity resolution uses to match profiles.
     */
    @JvmName("bbrqbjxqdlbqwnhp")
    public suspend fun attributeTypesSelector(argument: suspend DomainAttributeTypesSelectorArgsBuilder.() -> Unit) {
        val toBeMapped = DomainAttributeTypesSelectorArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.attributeTypesSelector = mapped
    }

    /**
     * @param value Determines how the auto-merging process should resolve conflicts between different profiles. For example, if Profile A and Profile B have the same `FirstName` and `LastName` , `ConflictResolution` specifies which `EmailAddress` should be used.
     */
    @JvmName("plynwlxanytwosxc")
    public suspend fun conflictResolution(`value`: DomainConflictResolutionArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.conflictResolution = mapped
    }

    /**
     * @param argument Determines how the auto-merging process should resolve conflicts between different profiles. For example, if Profile A and Profile B have the same `FirstName` and `LastName` , `ConflictResolution` specifies which `EmailAddress` should be used.
     */
    @JvmName("axxcxlfasiegqxfr")
    public suspend fun conflictResolution(argument: suspend DomainConflictResolutionArgsBuilder.() -> Unit) {
        val toBeMapped = DomainConflictResolutionArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.conflictResolution = mapped
    }

    /**
     * @param value The flag that enables the rule-based matching process of duplicate profiles.
     */
    @JvmName("dhtruggfxwlogavy")
    public suspend fun enabled(`value`: Boolean) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.enabled = mapped
    }

    /**
     * @param value The S3 location where Identity Resolution Jobs write result files.
     */
    @JvmName("beaywvhoqcyhnwmu")
    public suspend fun exportingConfig(`value`: DomainExportingConfigArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.exportingConfig = mapped
    }

    /**
     * @param argument The S3 location where Identity Resolution Jobs write result files.
     */
    @JvmName("djrlnvgmqwvyortw")
    public suspend fun exportingConfig(argument: suspend DomainExportingConfigArgsBuilder.() -> Unit) {
        val toBeMapped = DomainExportingConfigArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.exportingConfig = mapped
    }

    /**
     * @param value Configures how the rule-based matching process should match profiles. You can have up to 15 MatchingRule in the MatchingRules.
     */
    @JvmName("glrycqxvelnblyas")
    public suspend fun matchingRules(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.matchingRules = mapped
    }

    /**
     * @param argument Configures how the rule-based matching process should match profiles. You can have up to 15 MatchingRule in the MatchingRules.
     */
    @JvmName("hxftxwlgbfmkpjxb")
    public suspend fun matchingRules(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            DomainMatchingRuleArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.matchingRules = mapped
    }

    /**
     * @param argument Configures how the rule-based matching process should match profiles. You can have up to 15 MatchingRule in the MatchingRules.
     */
    @JvmName("rfoufcossgeufkyu")
    public suspend fun matchingRules(vararg argument: suspend DomainMatchingRuleArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            DomainMatchingRuleArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.matchingRules = mapped
    }

    /**
     * @param argument Configures how the rule-based matching process should match profiles. You can have up to 15 MatchingRule in the MatchingRules.
     */
    @JvmName("hdtcqwlgpmrahffl")
    public suspend fun matchingRules(argument: suspend DomainMatchingRuleArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(DomainMatchingRuleArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.matchingRules = mapped
    }

    /**
     * @param values Configures how the rule-based matching process should match profiles. You can have up to 15 MatchingRule in the MatchingRules.
     */
    @JvmName("xliyjmnfxtoeghld")
    public suspend fun matchingRules(vararg values: DomainMatchingRuleArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.matchingRules = mapped
    }

    /**
     * @param value Indicates the maximum allowed rule level for matching.
     */
    @JvmName("ahudyrmfftsocqfr")
    public suspend fun maxAllowedRuleLevelForMatching(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxAllowedRuleLevelForMatching = mapped
    }

    /**
     * @param value Indicates the maximum allowed rule level for merging.
     */
    @JvmName("bkojlukngxfagevr")
    public suspend fun maxAllowedRuleLevelForMerging(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.maxAllowedRuleLevelForMerging = mapped
    }

    /**
     * @param value The status of rule-based matching rule.
     */
    @JvmName("fatnxmhdkvcusaxv")
    public suspend fun status(`value`: DomainRuleBasedMatchingStatus?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.status = mapped
    }

    internal fun build(): DomainRuleBasedMatchingArgs = DomainRuleBasedMatchingArgs(
        attributeTypesSelector = attributeTypesSelector,
        conflictResolution = conflictResolution,
        enabled = enabled ?: throw PulumiNullFieldException("enabled"),
        exportingConfig = exportingConfig,
        matchingRules = matchingRules,
        maxAllowedRuleLevelForMatching = maxAllowedRuleLevelForMatching,
        maxAllowedRuleLevelForMerging = maxAllowedRuleLevelForMerging,
        status = status,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy