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

com.pulumi.awsnative.cleanrooms.kotlin.inputs.CollaborationMemberSpecificationArgs.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.awsnative.cleanrooms.kotlin.inputs

import com.pulumi.awsnative.cleanrooms.inputs.CollaborationMemberSpecificationArgs.builder
import com.pulumi.awsnative.cleanrooms.kotlin.enums.CollaborationMemberAbility
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.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property accountId The identifier used to reference members of the collaboration. Currently only supports AWS account ID.
 * @property displayName The member's display name.
 * @property memberAbilities The abilities granted to the collaboration member.
 * *Allowed Values* : `CAN_QUERY` | `CAN_RECEIVE_RESULTS`
 * @property paymentConfiguration The collaboration member's payment responsibilities set by the collaboration creator.
 * If the collaboration creator hasn't specified anyone as the member paying for query compute costs, then the member who can query is the default payer.
 */
public data class CollaborationMemberSpecificationArgs(
    public val accountId: Output,
    public val displayName: Output,
    public val memberAbilities: Output>,
    public val paymentConfiguration: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.cleanrooms.inputs.CollaborationMemberSpecificationArgs = com.pulumi.awsnative.cleanrooms.inputs.CollaborationMemberSpecificationArgs.builder()
        .accountId(accountId.applyValue({ args0 -> args0 }))
        .displayName(displayName.applyValue({ args0 -> args0 }))
        .memberAbilities(
            memberAbilities.applyValue({ args0 ->
                args0.map({ args0 ->
                    args0.let({ args0 ->
                        args0.toJava()
                    })
                })
            }),
        )
        .paymentConfiguration(
            paymentConfiguration?.applyValue({ args0 ->
                args0.let({ args0 ->
                    args0.toJava()
                })
            }),
        ).build()
}

/**
 * Builder for [CollaborationMemberSpecificationArgs].
 */
@PulumiTagMarker
public class CollaborationMemberSpecificationArgsBuilder internal constructor() {
    private var accountId: Output? = null

    private var displayName: Output? = null

    private var memberAbilities: Output>? = null

    private var paymentConfiguration: Output? = null

    /**
     * @param value The identifier used to reference members of the collaboration. Currently only supports AWS account ID.
     */
    @JvmName("fivthkbmxlwwwdbk")
    public suspend fun accountId(`value`: Output) {
        this.accountId = value
    }

    /**
     * @param value The member's display name.
     */
    @JvmName("gykmnjcbpeldghci")
    public suspend fun displayName(`value`: Output) {
        this.displayName = value
    }

    /**
     * @param value The abilities granted to the collaboration member.
     * *Allowed Values* : `CAN_QUERY` | `CAN_RECEIVE_RESULTS`
     */
    @JvmName("tydtropmgnkfvcxi")
    public suspend fun memberAbilities(`value`: Output>) {
        this.memberAbilities = value
    }

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

    /**
     * @param values The abilities granted to the collaboration member.
     * *Allowed Values* : `CAN_QUERY` | `CAN_RECEIVE_RESULTS`
     */
    @JvmName("hxduscfmxlvjycra")
    public suspend fun memberAbilities(values: List>) {
        this.memberAbilities = Output.all(values)
    }

    /**
     * @param value The collaboration member's payment responsibilities set by the collaboration creator.
     * If the collaboration creator hasn't specified anyone as the member paying for query compute costs, then the member who can query is the default payer.
     */
    @JvmName("dcurbhdymeofrjco")
    public suspend fun paymentConfiguration(`value`: Output) {
        this.paymentConfiguration = value
    }

    /**
     * @param value The identifier used to reference members of the collaboration. Currently only supports AWS account ID.
     */
    @JvmName("ynrvfvwctgovgqfc")
    public suspend fun accountId(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.accountId = mapped
    }

    /**
     * @param value The member's display name.
     */
    @JvmName("hbedncymsofqvkiw")
    public suspend fun displayName(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.displayName = mapped
    }

    /**
     * @param value The abilities granted to the collaboration member.
     * *Allowed Values* : `CAN_QUERY` | `CAN_RECEIVE_RESULTS`
     */
    @JvmName("yhslhvypplommguv")
    public suspend fun memberAbilities(`value`: List) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.memberAbilities = mapped
    }

    /**
     * @param values The abilities granted to the collaboration member.
     * *Allowed Values* : `CAN_QUERY` | `CAN_RECEIVE_RESULTS`
     */
    @JvmName("jixycuspjoibmcnl")
    public suspend fun memberAbilities(vararg values: CollaborationMemberAbility) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.memberAbilities = mapped
    }

    /**
     * @param value The collaboration member's payment responsibilities set by the collaboration creator.
     * If the collaboration creator hasn't specified anyone as the member paying for query compute costs, then the member who can query is the default payer.
     */
    @JvmName("jpvgjqqantrgllib")
    public suspend fun paymentConfiguration(`value`: CollaborationPaymentConfigurationArgs?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.paymentConfiguration = mapped
    }

    /**
     * @param argument The collaboration member's payment responsibilities set by the collaboration creator.
     * If the collaboration creator hasn't specified anyone as the member paying for query compute costs, then the member who can query is the default payer.
     */
    @JvmName("pjkprhxtrxmtnxvn")
    public suspend fun paymentConfiguration(argument: suspend CollaborationPaymentConfigurationArgsBuilder.() -> Unit) {
        val toBeMapped = CollaborationPaymentConfigurationArgsBuilder().applySuspend {
            argument()
        }.build()
        val mapped = of(toBeMapped)
        this.paymentConfiguration = mapped
    }

    internal fun build(): CollaborationMemberSpecificationArgs = CollaborationMemberSpecificationArgs(
        accountId = accountId ?: throw PulumiNullFieldException("accountId"),
        displayName = displayName ?: throw PulumiNullFieldException("displayName"),
        memberAbilities = memberAbilities ?: throw PulumiNullFieldException("memberAbilities"),
        paymentConfiguration = paymentConfiguration,
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy