com.pulumi.awsnative.customerprofiles.kotlin.inputs.DomainRuleBasedMatchingArgs.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pulumi-aws-native-kotlin Show documentation
Show all versions of pulumi-aws-native-kotlin Show documentation
Build cloud applications and infrastructure by combining the safety and reliability of infrastructure as code with the power of the Kotlin programming language.
@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