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

com.pulumi.gcp.dataplex.kotlin.inputs.AssetDiscoverySpecArgs.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: 8.10.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.gcp.dataplex.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.dataplex.inputs.AssetDiscoverySpecArgs.builder
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

/**
 *
 * @property csvOptions Optional. Configuration for CSV data.
 * @property enabled Required. Whether discovery is enabled.
 * @property excludePatterns Optional. The list of patterns to apply for selecting data to exclude during discovery. For Cloud Storage bucket assets, these are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these are interpreted as patterns to match table names.
 * @property includePatterns Optional. The list of patterns to apply for selecting data to include during discovery if only a subset of the data should considered. For Cloud Storage bucket assets, these are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these are interpreted as patterns to match table names.
 * @property jsonOptions Optional. Configuration for Json data.
 * @property schedule Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running discovery periodically. Successive discovery runs must be scheduled at least 60 minutes apart. The default value is to run discovery every 60 minutes. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: "CRON_TZ=${IANA_TIME_ZONE}" or TZ=${IANA_TIME_ZONE}". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, "CRON_TZ=America/New_York 1 * * * *", or "TZ=America/New_York 1 * * * *".
 */
public data class AssetDiscoverySpecArgs(
    public val csvOptions: Output? = null,
    public val enabled: Output,
    public val excludePatterns: Output>? = null,
    public val includePatterns: Output>? = null,
    public val jsonOptions: Output? = null,
    public val schedule: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.dataplex.inputs.AssetDiscoverySpecArgs =
        com.pulumi.gcp.dataplex.inputs.AssetDiscoverySpecArgs.builder()
            .csvOptions(csvOptions?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .enabled(enabled.applyValue({ args0 -> args0 }))
            .excludePatterns(excludePatterns?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .includePatterns(includePatterns?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .jsonOptions(jsonOptions?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .schedule(schedule?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [AssetDiscoverySpecArgs].
 */
@PulumiTagMarker
public class AssetDiscoverySpecArgsBuilder internal constructor() {
    private var csvOptions: Output? = null

    private var enabled: Output? = null

    private var excludePatterns: Output>? = null

    private var includePatterns: Output>? = null

    private var jsonOptions: Output? = null

    private var schedule: Output? = null

    /**
     * @param value Optional. Configuration for CSV data.
     */
    @JvmName("wsyuducfpbwodwkp")
    public suspend fun csvOptions(`value`: Output) {
        this.csvOptions = value
    }

    /**
     * @param value Required. Whether discovery is enabled.
     */
    @JvmName("xiggxvoigakwmbeb")
    public suspend fun enabled(`value`: Output) {
        this.enabled = value
    }

    /**
     * @param value Optional. The list of patterns to apply for selecting data to exclude during discovery. For Cloud Storage bucket assets, these are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these are interpreted as patterns to match table names.
     */
    @JvmName("jijqjxjhymrxbhnd")
    public suspend fun excludePatterns(`value`: Output>) {
        this.excludePatterns = value
    }

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

    /**
     * @param values Optional. The list of patterns to apply for selecting data to exclude during discovery. For Cloud Storage bucket assets, these are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these are interpreted as patterns to match table names.
     */
    @JvmName("pxiilgbdoegvbwtj")
    public suspend fun excludePatterns(values: List>) {
        this.excludePatterns = Output.all(values)
    }

    /**
     * @param value Optional. The list of patterns to apply for selecting data to include during discovery if only a subset of the data should considered. For Cloud Storage bucket assets, these are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these are interpreted as patterns to match table names.
     */
    @JvmName("jotbycqnavawlqnw")
    public suspend fun includePatterns(`value`: Output>) {
        this.includePatterns = value
    }

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

    /**
     * @param values Optional. The list of patterns to apply for selecting data to include during discovery if only a subset of the data should considered. For Cloud Storage bucket assets, these are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these are interpreted as patterns to match table names.
     */
    @JvmName("kvpisgvtjcviccvw")
    public suspend fun includePatterns(values: List>) {
        this.includePatterns = Output.all(values)
    }

    /**
     * @param value Optional. Configuration for Json data.
     */
    @JvmName("aiopdswfpxmjhjad")
    public suspend fun jsonOptions(`value`: Output) {
        this.jsonOptions = value
    }

    /**
     * @param value Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running discovery periodically. Successive discovery runs must be scheduled at least 60 minutes apart. The default value is to run discovery every 60 minutes. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: "CRON_TZ=${IANA_TIME_ZONE}" or TZ=${IANA_TIME_ZONE}". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, "CRON_TZ=America/New_York 1 * * * *", or "TZ=America/New_York 1 * * * *".
     */
    @JvmName("lusuwenkhtapfdtc")
    public suspend fun schedule(`value`: Output) {
        this.schedule = value
    }

    /**
     * @param value Optional. Configuration for CSV data.
     */
    @JvmName("bkubfpdlgvtjlkpc")
    public suspend fun csvOptions(`value`: AssetDiscoverySpecCsvOptionsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.csvOptions = mapped
    }

    /**
     * @param argument Optional. Configuration for CSV data.
     */
    @JvmName("ndupfcljmovlwdll")
    public suspend fun csvOptions(argument: suspend AssetDiscoverySpecCsvOptionsArgsBuilder.() -> Unit) {
        val toBeMapped = AssetDiscoverySpecCsvOptionsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.csvOptions = mapped
    }

    /**
     * @param value Required. Whether discovery is enabled.
     */
    @JvmName("olxwxffwlnnerlwj")
    public suspend fun enabled(`value`: Boolean) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.enabled = mapped
    }

    /**
     * @param value Optional. The list of patterns to apply for selecting data to exclude during discovery. For Cloud Storage bucket assets, these are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these are interpreted as patterns to match table names.
     */
    @JvmName("dlfnovxviksmxlpg")
    public suspend fun excludePatterns(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.excludePatterns = mapped
    }

    /**
     * @param values Optional. The list of patterns to apply for selecting data to exclude during discovery. For Cloud Storage bucket assets, these are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these are interpreted as patterns to match table names.
     */
    @JvmName("iwmrilyrhvsygune")
    public suspend fun excludePatterns(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.excludePatterns = mapped
    }

    /**
     * @param value Optional. The list of patterns to apply for selecting data to include during discovery if only a subset of the data should considered. For Cloud Storage bucket assets, these are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these are interpreted as patterns to match table names.
     */
    @JvmName("fxydywnhrwvurmsv")
    public suspend fun includePatterns(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.includePatterns = mapped
    }

    /**
     * @param values Optional. The list of patterns to apply for selecting data to include during discovery if only a subset of the data should considered. For Cloud Storage bucket assets, these are interpreted as glob patterns used to match object names. For BigQuery dataset assets, these are interpreted as patterns to match table names.
     */
    @JvmName("jgegtsqtyxfovhub")
    public suspend fun includePatterns(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.includePatterns = mapped
    }

    /**
     * @param value Optional. Configuration for Json data.
     */
    @JvmName("crgskgjfpyxdneck")
    public suspend fun jsonOptions(`value`: AssetDiscoverySpecJsonOptionsArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.jsonOptions = mapped
    }

    /**
     * @param argument Optional. Configuration for Json data.
     */
    @JvmName("fosfhmvpuhbfyram")
    public suspend fun jsonOptions(argument: suspend AssetDiscoverySpecJsonOptionsArgsBuilder.() -> Unit) {
        val toBeMapped = AssetDiscoverySpecJsonOptionsArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.jsonOptions = mapped
    }

    /**
     * @param value Optional. Cron schedule (https://en.wikipedia.org/wiki/Cron) for running discovery periodically. Successive discovery runs must be scheduled at least 60 minutes apart. The default value is to run discovery every 60 minutes. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: "CRON_TZ=${IANA_TIME_ZONE}" or TZ=${IANA_TIME_ZONE}". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, "CRON_TZ=America/New_York 1 * * * *", or "TZ=America/New_York 1 * * * *".
     */
    @JvmName("bncdvbnlsvdvngxy")
    public suspend fun schedule(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.schedule = mapped
    }

    internal fun build(): AssetDiscoverySpecArgs = AssetDiscoverySpecArgs(
        csvOptions = csvOptions,
        enabled = enabled ?: throw PulumiNullFieldException("enabled"),
        excludePatterns = excludePatterns,
        includePatterns = includePatterns,
        jsonOptions = jsonOptions,
        schedule = schedule,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy