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

com.pulumi.gcp.firebase.kotlin.inputs.ExtensionsInstanceConfigArgs.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.firebase.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.firebase.inputs.ExtensionsInstanceConfigArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 *
 * @property allowedEventTypes List of extension events selected by consumer that extension is allowed to
 * emit, identified by their types.
 * @property createTime (Output)
 * The time at which the Extension Instance Config was created.
 * @property eventarcChannel Fully qualified Eventarc resource name that consumers should use for event triggers.
 * @property extensionRef The ref of the Extension from the Registry (e.g. publisher-id/awesome-extension)
 * @property extensionVersion The version of the Extension from the Registry (e.g. 1.0.3). If left blank, latest is assumed.
 * @property name (Output)
 * The unique identifier for this configuration.
 * @property params Environment variables that may be configured for the Extension
 * @property populatedPostinstallContent (Output)
 * Postinstall instructions to be shown for this Extension, with
 * template strings representing function and parameter values substituted
 * with actual values. These strings include: ${param:FOO},
 * ${function:myFunc.url},
 * ${function:myFunc.name}, and ${function:myFunc.location}
 * - - -
 * @property systemParams Params whose values are only available at deployment time.
 * Unlike other params, these will not be set as environment variables on
 * functions. See a full list of system parameters at
 * https://firebase.google.com/docs/extensions/publishers/parameters#system_parameters
 */
public data class ExtensionsInstanceConfigArgs(
    public val allowedEventTypes: Output>? = null,
    public val createTime: Output? = null,
    public val eventarcChannel: Output? = null,
    public val extensionRef: Output,
    public val extensionVersion: Output? = null,
    public val name: Output? = null,
    public val params: Output>,
    public val populatedPostinstallContent: Output? = null,
    public val systemParams: Output>? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.firebase.inputs.ExtensionsInstanceConfigArgs =
        com.pulumi.gcp.firebase.inputs.ExtensionsInstanceConfigArgs.builder()
            .allowedEventTypes(allowedEventTypes?.applyValue({ args0 -> args0.map({ args0 -> args0 }) }))
            .createTime(createTime?.applyValue({ args0 -> args0 }))
            .eventarcChannel(eventarcChannel?.applyValue({ args0 -> args0 }))
            .extensionRef(extensionRef.applyValue({ args0 -> args0 }))
            .extensionVersion(extensionVersion?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .params(params.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .populatedPostinstallContent(populatedPostinstallContent?.applyValue({ args0 -> args0 }))
            .systemParams(
                systemParams?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.key.to(args0.value)
                    }).toMap()
                }),
            ).build()
}

/**
 * Builder for [ExtensionsInstanceConfigArgs].
 */
@PulumiTagMarker
public class ExtensionsInstanceConfigArgsBuilder internal constructor() {
    private var allowedEventTypes: Output>? = null

    private var createTime: Output? = null

    private var eventarcChannel: Output? = null

    private var extensionRef: Output? = null

    private var extensionVersion: Output? = null

    private var name: Output? = null

    private var params: Output>? = null

    private var populatedPostinstallContent: Output? = null

    private var systemParams: Output>? = null

    /**
     * @param value List of extension events selected by consumer that extension is allowed to
     * emit, identified by their types.
     */
    @JvmName("jyppfdpivsoohkim")
    public suspend fun allowedEventTypes(`value`: Output>) {
        this.allowedEventTypes = value
    }

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

    /**
     * @param values List of extension events selected by consumer that extension is allowed to
     * emit, identified by their types.
     */
    @JvmName("rhylubyuiepuqnsc")
    public suspend fun allowedEventTypes(values: List>) {
        this.allowedEventTypes = Output.all(values)
    }

    /**
     * @param value (Output)
     * The time at which the Extension Instance Config was created.
     */
    @JvmName("qgqaekfnnquwqmtg")
    public suspend fun createTime(`value`: Output) {
        this.createTime = value
    }

    /**
     * @param value Fully qualified Eventarc resource name that consumers should use for event triggers.
     */
    @JvmName("uugmiywdlfcyvcqs")
    public suspend fun eventarcChannel(`value`: Output) {
        this.eventarcChannel = value
    }

    /**
     * @param value The ref of the Extension from the Registry (e.g. publisher-id/awesome-extension)
     */
    @JvmName("vcgaweacgirojman")
    public suspend fun extensionRef(`value`: Output) {
        this.extensionRef = value
    }

    /**
     * @param value The version of the Extension from the Registry (e.g. 1.0.3). If left blank, latest is assumed.
     */
    @JvmName("vextitnlwfcrvtfg")
    public suspend fun extensionVersion(`value`: Output) {
        this.extensionVersion = value
    }

    /**
     * @param value (Output)
     * The unique identifier for this configuration.
     */
    @JvmName("jwgawenffbqbvdui")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value Environment variables that may be configured for the Extension
     */
    @JvmName("wweykdvkjwtsrgbq")
    public suspend fun params(`value`: Output>) {
        this.params = value
    }

    /**
     * @param value (Output)
     * Postinstall instructions to be shown for this Extension, with
     * template strings representing function and parameter values substituted
     * with actual values. These strings include: ${param:FOO},
     * ${function:myFunc.url},
     * ${function:myFunc.name}, and ${function:myFunc.location}
     * - - -
     */
    @JvmName("rlxsdoxfnovluheg")
    public suspend fun populatedPostinstallContent(`value`: Output) {
        this.populatedPostinstallContent = value
    }

    /**
     * @param value Params whose values are only available at deployment time.
     * Unlike other params, these will not be set as environment variables on
     * functions. See a full list of system parameters at
     * https://firebase.google.com/docs/extensions/publishers/parameters#system_parameters
     */
    @JvmName("qjmxhyjhkhfogqnn")
    public suspend fun systemParams(`value`: Output>) {
        this.systemParams = value
    }

    /**
     * @param value List of extension events selected by consumer that extension is allowed to
     * emit, identified by their types.
     */
    @JvmName("kyuuqfetrllwwdrr")
    public suspend fun allowedEventTypes(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.allowedEventTypes = mapped
    }

    /**
     * @param values List of extension events selected by consumer that extension is allowed to
     * emit, identified by their types.
     */
    @JvmName("vvfwivkwxxbymskx")
    public suspend fun allowedEventTypes(vararg values: String) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.allowedEventTypes = mapped
    }

    /**
     * @param value (Output)
     * The time at which the Extension Instance Config was created.
     */
    @JvmName("ftcbmwyjxoomfjhy")
    public suspend fun createTime(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.createTime = mapped
    }

    /**
     * @param value Fully qualified Eventarc resource name that consumers should use for event triggers.
     */
    @JvmName("svxmojmrsunudjmn")
    public suspend fun eventarcChannel(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.eventarcChannel = mapped
    }

    /**
     * @param value The ref of the Extension from the Registry (e.g. publisher-id/awesome-extension)
     */
    @JvmName("bpixktxuttuqgnhp")
    public suspend fun extensionRef(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.extensionRef = mapped
    }

    /**
     * @param value The version of the Extension from the Registry (e.g. 1.0.3). If left blank, latest is assumed.
     */
    @JvmName("egjnhsspucgyiqpt")
    public suspend fun extensionVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.extensionVersion = mapped
    }

    /**
     * @param value (Output)
     * The unique identifier for this configuration.
     */
    @JvmName("umwsfgpqqotcutwo")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value Environment variables that may be configured for the Extension
     */
    @JvmName("lwpawbammsknslto")
    public suspend fun params(`value`: Map) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.params = mapped
    }

    /**
     * @param values Environment variables that may be configured for the Extension
     */
    @JvmName("egjtnuxcmtjlblde")
    public fun params(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.params = mapped
    }

    /**
     * @param value (Output)
     * Postinstall instructions to be shown for this Extension, with
     * template strings representing function and parameter values substituted
     * with actual values. These strings include: ${param:FOO},
     * ${function:myFunc.url},
     * ${function:myFunc.name}, and ${function:myFunc.location}
     * - - -
     */
    @JvmName("cmelxxjokfnrupxu")
    public suspend fun populatedPostinstallContent(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.populatedPostinstallContent = mapped
    }

    /**
     * @param value Params whose values are only available at deployment time.
     * Unlike other params, these will not be set as environment variables on
     * functions. See a full list of system parameters at
     * https://firebase.google.com/docs/extensions/publishers/parameters#system_parameters
     */
    @JvmName("gefjotjfohwfpqdn")
    public suspend fun systemParams(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.systemParams = mapped
    }

    /**
     * @param values Params whose values are only available at deployment time.
     * Unlike other params, these will not be set as environment variables on
     * functions. See a full list of system parameters at
     * https://firebase.google.com/docs/extensions/publishers/parameters#system_parameters
     */
    @JvmName("whoeojntvywdeand")
    public fun systemParams(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.systemParams = mapped
    }

    internal fun build(): ExtensionsInstanceConfigArgs = ExtensionsInstanceConfigArgs(
        allowedEventTypes = allowedEventTypes,
        createTime = createTime,
        eventarcChannel = eventarcChannel,
        extensionRef = extensionRef ?: throw PulumiNullFieldException("extensionRef"),
        extensionVersion = extensionVersion,
        name = name,
        params = params ?: throw PulumiNullFieldException("params"),
        populatedPostinstallContent = populatedPostinstallContent,
        systemParams = systemParams,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy