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

com.pulumi.awsnative.cleanrooms.kotlin.PrivacyBudgetTemplateArgs.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: 1.24.0.0
Show newest version
@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.cleanrooms.kotlin

import com.pulumi.awsnative.cleanrooms.PrivacyBudgetTemplateArgs.builder
import com.pulumi.awsnative.cleanrooms.kotlin.enums.PrivacyBudgetTemplateAutoRefresh
import com.pulumi.awsnative.cleanrooms.kotlin.enums.PrivacyBudgetTemplatePrivacyBudgetType
import com.pulumi.awsnative.cleanrooms.kotlin.inputs.ParametersPropertiesArgs
import com.pulumi.awsnative.cleanrooms.kotlin.inputs.ParametersPropertiesArgsBuilder
import com.pulumi.awsnative.kotlin.inputs.TagArgs
import com.pulumi.awsnative.kotlin.inputs.TagArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 * Represents a privacy budget within a collaboration
 * @property autoRefresh How often the privacy budget refreshes.
 * > If you plan to regularly bring new data into the collaboration, use `CALENDAR_MONTH` to automatically get a new privacy budget for the collaboration every calendar month. Choosing this option allows arbitrary amounts of information to be revealed about rows of the data when repeatedly queried across refreshes. Avoid choosing this if the same rows will be repeatedly queried between privacy budget refreshes.
 * @property membershipIdentifier The identifier for a membership resource.
 * @property parameters Specifies the epislon and noise parameters for the privacy budget template.
 * @property privacyBudgetType Specifies the type of the privacy budget template.
 * @property tags An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget template.
 */
public data class PrivacyBudgetTemplateArgs(
    public val autoRefresh: Output? = null,
    public val membershipIdentifier: Output? = null,
    public val parameters: Output? = null,
    public val privacyBudgetType: Output? = null,
    public val tags: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.cleanrooms.PrivacyBudgetTemplateArgs =
        com.pulumi.awsnative.cleanrooms.PrivacyBudgetTemplateArgs.builder()
            .autoRefresh(autoRefresh?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .membershipIdentifier(membershipIdentifier?.applyValue({ args0 -> args0 }))
            .parameters(parameters?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .privacyBudgetType(privacyBudgetType?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
            .tags(
                tags?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            ).build()
}

/**
 * Builder for [PrivacyBudgetTemplateArgs].
 */
@PulumiTagMarker
public class PrivacyBudgetTemplateArgsBuilder internal constructor() {
    private var autoRefresh: Output? = null

    private var membershipIdentifier: Output? = null

    private var parameters: Output? = null

    private var privacyBudgetType: Output? = null

    private var tags: Output>? = null

    /**
     * @param value How often the privacy budget refreshes.
     * > If you plan to regularly bring new data into the collaboration, use `CALENDAR_MONTH` to automatically get a new privacy budget for the collaboration every calendar month. Choosing this option allows arbitrary amounts of information to be revealed about rows of the data when repeatedly queried across refreshes. Avoid choosing this if the same rows will be repeatedly queried between privacy budget refreshes.
     */
    @JvmName("pgdlkbntvgisrwuf")
    public suspend fun autoRefresh(`value`: Output) {
        this.autoRefresh = value
    }

    /**
     * @param value The identifier for a membership resource.
     */
    @JvmName("fpdrgvqkcskonhwe")
    public suspend fun membershipIdentifier(`value`: Output) {
        this.membershipIdentifier = value
    }

    /**
     * @param value Specifies the epislon and noise parameters for the privacy budget template.
     */
    @JvmName("whdbafvdbawappqc")
    public suspend fun parameters(`value`: Output) {
        this.parameters = value
    }

    /**
     * @param value Specifies the type of the privacy budget template.
     */
    @JvmName("qebgxmskdodxpyjt")
    public suspend fun privacyBudgetType(`value`: Output) {
        this.privacyBudgetType = value
    }

    /**
     * @param value An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget template.
     */
    @JvmName("ewlvabbixppyuhax")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

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

    /**
     * @param values An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget template.
     */
    @JvmName("uyjjyrwwtoqcaoej")
    public suspend fun tags(values: List>) {
        this.tags = Output.all(values)
    }

    /**
     * @param value How often the privacy budget refreshes.
     * > If you plan to regularly bring new data into the collaboration, use `CALENDAR_MONTH` to automatically get a new privacy budget for the collaboration every calendar month. Choosing this option allows arbitrary amounts of information to be revealed about rows of the data when repeatedly queried across refreshes. Avoid choosing this if the same rows will be repeatedly queried between privacy budget refreshes.
     */
    @JvmName("seftyegmiwerljmb")
    public suspend fun autoRefresh(`value`: PrivacyBudgetTemplateAutoRefresh?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.autoRefresh = mapped
    }

    /**
     * @param value The identifier for a membership resource.
     */
    @JvmName("bkkjlsdmtugbignq")
    public suspend fun membershipIdentifier(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.membershipIdentifier = mapped
    }

    /**
     * @param value Specifies the epislon and noise parameters for the privacy budget template.
     */
    @JvmName("geolpscfygujfpao")
    public suspend fun parameters(`value`: ParametersPropertiesArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.parameters = mapped
    }

    /**
     * @param argument Specifies the epislon and noise parameters for the privacy budget template.
     */
    @JvmName("aocfqnxwgkpjirth")
    public suspend fun parameters(argument: suspend ParametersPropertiesArgsBuilder.() -> Unit) {
        val toBeMapped = ParametersPropertiesArgsBuilder().applySuspend { argument() }.build()
        val mapped = of(toBeMapped)
        this.parameters = mapped
    }

    /**
     * @param value Specifies the type of the privacy budget template.
     */
    @JvmName("djmdysrypmcmpasn")
    public suspend fun privacyBudgetType(`value`: PrivacyBudgetTemplatePrivacyBudgetType?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.privacyBudgetType = mapped
    }

    /**
     * @param value An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget template.
     */
    @JvmName("fqfwivalgelycvyt")
    public suspend fun tags(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param argument An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget template.
     */
    @JvmName("ecjwhpjvtmfkxqfy")
    public suspend fun tags(argument: List Unit>) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget template.
     */
    @JvmName("tbpgxbhesxhbkdng")
    public suspend fun tags(vararg argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map { TagArgsBuilder().applySuspend { it() }.build() }
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param argument An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget template.
     */
    @JvmName("uvhgdulhlivphuev")
    public suspend fun tags(argument: suspend TagArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(TagArgsBuilder().applySuspend { argument() }.build())
        val mapped = of(toBeMapped)
        this.tags = mapped
    }

    /**
     * @param values An arbitrary set of tags (key-value pairs) for this cleanrooms privacy budget template.
     */
    @JvmName("sxoflrijywuelctu")
    public suspend fun tags(vararg values: TagArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    internal fun build(): PrivacyBudgetTemplateArgs = PrivacyBudgetTemplateArgs(
        autoRefresh = autoRefresh,
        membershipIdentifier = membershipIdentifier,
        parameters = parameters,
        privacyBudgetType = privacyBudgetType,
        tags = tags,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy