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

com.pulumi.awsnative.databrew.kotlin.inputs.RulesetRuleArgs.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.databrew.kotlin.inputs

import com.pulumi.awsnative.databrew.inputs.RulesetRuleArgs.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.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Data quality rule for a target resource (dataset)
 * @property checkExpression The expression which includes column references, condition names followed by variable references, possibly grouped and combined with other conditions. For example, `(:col1 starts_with :prefix1 or :col1 starts_with :prefix2) and (:col1 ends_with :suffix1 or :col1 ends_with :suffix2)` . Column and value references are substitution variables that should start with the ':' symbol. Depending on the context, substitution variables' values can be either an actual value or a column name. These values are defined in the SubstitutionMap. If a CheckExpression starts with a column reference, then ColumnSelectors in the rule should be null. If ColumnSelectors has been defined, then there should be no columnn reference in the left side of a condition, for example, `is_between :val1 and :val2` .
 * @property columnSelectors List of column selectors. Selectors can be used to select columns using a name or regular expression from the dataset. Rule will be applied to selected columns.
 * @property disabled A value that specifies whether the rule is disabled. Once a rule is disabled, a profile job will not validate it during a job run. Default value is false.
 * @property name Name of the rule
 * @property substitutionMap The map of substitution variable names to their values used in a check expression. Variable names should start with a ':' (colon). Variable values can either be actual values or column names. To differentiate between the two, column names should be enclosed in backticks, for example, `":col1": "`Column A`".`
 * @property threshold The threshold used with a non-aggregate check expression. Non-aggregate check expressions will be applied to each row in a specific column, and the threshold will be used to determine whether the validation succeeds.
 */
public data class RulesetRuleArgs(
    public val checkExpression: Output,
    public val columnSelectors: Output>? = null,
    public val disabled: Output? = null,
    public val name: Output,
    public val substitutionMap: Output>? = null,
    public val threshold: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.databrew.inputs.RulesetRuleArgs =
        com.pulumi.awsnative.databrew.inputs.RulesetRuleArgs.builder()
            .checkExpression(checkExpression.applyValue({ args0 -> args0 }))
            .columnSelectors(
                columnSelectors?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .disabled(disabled?.applyValue({ args0 -> args0 }))
            .name(name.applyValue({ args0 -> args0 }))
            .substitutionMap(
                substitutionMap?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .threshold(threshold?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) })).build()
}

/**
 * Builder for [RulesetRuleArgs].
 */
@PulumiTagMarker
public class RulesetRuleArgsBuilder internal constructor() {
    private var checkExpression: Output? = null

    private var columnSelectors: Output>? = null

    private var disabled: Output? = null

    private var name: Output? = null

    private var substitutionMap: Output>? = null

    private var threshold: Output? = null

    /**
     * @param value The expression which includes column references, condition names followed by variable references, possibly grouped and combined with other conditions. For example, `(:col1 starts_with :prefix1 or :col1 starts_with :prefix2) and (:col1 ends_with :suffix1 or :col1 ends_with :suffix2)` . Column and value references are substitution variables that should start with the ':' symbol. Depending on the context, substitution variables' values can be either an actual value or a column name. These values are defined in the SubstitutionMap. If a CheckExpression starts with a column reference, then ColumnSelectors in the rule should be null. If ColumnSelectors has been defined, then there should be no columnn reference in the left side of a condition, for example, `is_between :val1 and :val2` .
     */
    @JvmName("uwgexvmqekemkfas")
    public suspend fun checkExpression(`value`: Output) {
        this.checkExpression = value
    }

    /**
     * @param value List of column selectors. Selectors can be used to select columns using a name or regular expression from the dataset. Rule will be applied to selected columns.
     */
    @JvmName("lcjmnulhkvcxxcnk")
    public suspend fun columnSelectors(`value`: Output>) {
        this.columnSelectors = value
    }

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

    /**
     * @param values List of column selectors. Selectors can be used to select columns using a name or regular expression from the dataset. Rule will be applied to selected columns.
     */
    @JvmName("iptgdsyknajijxuw")
    public suspend fun columnSelectors(values: List>) {
        this.columnSelectors = Output.all(values)
    }

    /**
     * @param value A value that specifies whether the rule is disabled. Once a rule is disabled, a profile job will not validate it during a job run. Default value is false.
     */
    @JvmName("jhcuomvvivshlfyc")
    public suspend fun disabled(`value`: Output) {
        this.disabled = value
    }

    /**
     * @param value Name of the rule
     */
    @JvmName("fabmwnokkyeoouws")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The map of substitution variable names to their values used in a check expression. Variable names should start with a ':' (colon). Variable values can either be actual values or column names. To differentiate between the two, column names should be enclosed in backticks, for example, `":col1": "`Column A`".`
     */
    @JvmName("nrgredsnxrhuqaag")
    public suspend fun substitutionMap(`value`: Output>) {
        this.substitutionMap = value
    }

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

    /**
     * @param values The map of substitution variable names to their values used in a check expression. Variable names should start with a ':' (colon). Variable values can either be actual values or column names. To differentiate between the two, column names should be enclosed in backticks, for example, `":col1": "`Column A`".`
     */
    @JvmName("hxxipspyfnyiubbj")
    public suspend fun substitutionMap(values: List>) {
        this.substitutionMap = Output.all(values)
    }

    /**
     * @param value The threshold used with a non-aggregate check expression. Non-aggregate check expressions will be applied to each row in a specific column, and the threshold will be used to determine whether the validation succeeds.
     */
    @JvmName("iikfkimljxjaiaai")
    public suspend fun threshold(`value`: Output) {
        this.threshold = value
    }

    /**
     * @param value The expression which includes column references, condition names followed by variable references, possibly grouped and combined with other conditions. For example, `(:col1 starts_with :prefix1 or :col1 starts_with :prefix2) and (:col1 ends_with :suffix1 or :col1 ends_with :suffix2)` . Column and value references are substitution variables that should start with the ':' symbol. Depending on the context, substitution variables' values can be either an actual value or a column name. These values are defined in the SubstitutionMap. If a CheckExpression starts with a column reference, then ColumnSelectors in the rule should be null. If ColumnSelectors has been defined, then there should be no columnn reference in the left side of a condition, for example, `is_between :val1 and :val2` .
     */
    @JvmName("gnmlhaeselknjdoi")
    public suspend fun checkExpression(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.checkExpression = mapped
    }

    /**
     * @param value List of column selectors. Selectors can be used to select columns using a name or regular expression from the dataset. Rule will be applied to selected columns.
     */
    @JvmName("pdxdaximhygvabes")
    public suspend fun columnSelectors(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.columnSelectors = mapped
    }

    /**
     * @param argument List of column selectors. Selectors can be used to select columns using a name or regular expression from the dataset. Rule will be applied to selected columns.
     */
    @JvmName("jwrsbiyehiaeyupg")
    public suspend fun columnSelectors(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            RulesetColumnSelectorArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.columnSelectors = mapped
    }

    /**
     * @param argument List of column selectors. Selectors can be used to select columns using a name or regular expression from the dataset. Rule will be applied to selected columns.
     */
    @JvmName("sgswofoxcphevkdi")
    public suspend fun columnSelectors(vararg argument: suspend RulesetColumnSelectorArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            RulesetColumnSelectorArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.columnSelectors = mapped
    }

    /**
     * @param argument List of column selectors. Selectors can be used to select columns using a name or regular expression from the dataset. Rule will be applied to selected columns.
     */
    @JvmName("nnqsexmekkwihqeg")
    public suspend fun columnSelectors(argument: suspend RulesetColumnSelectorArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(RulesetColumnSelectorArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.columnSelectors = mapped
    }

    /**
     * @param values List of column selectors. Selectors can be used to select columns using a name or regular expression from the dataset. Rule will be applied to selected columns.
     */
    @JvmName("ervjyjgcianfnffx")
    public suspend fun columnSelectors(vararg values: RulesetColumnSelectorArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.columnSelectors = mapped
    }

    /**
     * @param value A value that specifies whether the rule is disabled. Once a rule is disabled, a profile job will not validate it during a job run. Default value is false.
     */
    @JvmName("dibrahrgesseiwgq")
    public suspend fun disabled(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.disabled = mapped
    }

    /**
     * @param value Name of the rule
     */
    @JvmName("leknctusndbgvpmo")
    public suspend fun name(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The map of substitution variable names to their values used in a check expression. Variable names should start with a ':' (colon). Variable values can either be actual values or column names. To differentiate between the two, column names should be enclosed in backticks, for example, `":col1": "`Column A`".`
     */
    @JvmName("ekiwyedlgbekevrb")
    public suspend fun substitutionMap(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.substitutionMap = mapped
    }

    /**
     * @param argument The map of substitution variable names to their values used in a check expression. Variable names should start with a ':' (colon). Variable values can either be actual values or column names. To differentiate between the two, column names should be enclosed in backticks, for example, `":col1": "`Column A`".`
     */
    @JvmName("pasptehtrsaqppwp")
    public suspend fun substitutionMap(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            RulesetSubstitutionValueArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.substitutionMap = mapped
    }

    /**
     * @param argument The map of substitution variable names to their values used in a check expression. Variable names should start with a ':' (colon). Variable values can either be actual values or column names. To differentiate between the two, column names should be enclosed in backticks, for example, `":col1": "`Column A`".`
     */
    @JvmName("ktrfifouttwkxmwt")
    public suspend fun substitutionMap(vararg argument: suspend RulesetSubstitutionValueArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            RulesetSubstitutionValueArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.substitutionMap = mapped
    }

    /**
     * @param argument The map of substitution variable names to their values used in a check expression. Variable names should start with a ':' (colon). Variable values can either be actual values or column names. To differentiate between the two, column names should be enclosed in backticks, for example, `":col1": "`Column A`".`
     */
    @JvmName("kqudclwvpcohvkxc")
    public suspend fun substitutionMap(argument: suspend RulesetSubstitutionValueArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            RulesetSubstitutionValueArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.substitutionMap = mapped
    }

    /**
     * @param values The map of substitution variable names to their values used in a check expression. Variable names should start with a ':' (colon). Variable values can either be actual values or column names. To differentiate between the two, column names should be enclosed in backticks, for example, `":col1": "`Column A`".`
     */
    @JvmName("sxqwpmkbepbdepbc")
    public suspend fun substitutionMap(vararg values: RulesetSubstitutionValueArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.substitutionMap = mapped
    }

    /**
     * @param value The threshold used with a non-aggregate check expression. Non-aggregate check expressions will be applied to each row in a specific column, and the threshold will be used to determine whether the validation succeeds.
     */
    @JvmName("kevhfvlavmnatxex")
    public suspend fun threshold(`value`: RulesetThresholdArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.threshold = mapped
    }

    /**
     * @param argument The threshold used with a non-aggregate check expression. Non-aggregate check expressions will be applied to each row in a specific column, and the threshold will be used to determine whether the validation succeeds.
     */
    @JvmName("cetcavthfyjetunw")
    public suspend fun threshold(argument: suspend RulesetThresholdArgsBuilder.() -> Unit) {
        val toBeMapped = RulesetThresholdArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.threshold = mapped
    }

    internal fun build(): RulesetRuleArgs = RulesetRuleArgs(
        checkExpression = checkExpression ?: throw PulumiNullFieldException("checkExpression"),
        columnSelectors = columnSelectors,
        disabled = disabled,
        name = name ?: throw PulumiNullFieldException("name"),
        substitutionMap = substitutionMap,
        threshold = threshold,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy