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

com.pulumi.gcp.cloudrunv2.kotlin.inputs.ServiceTemplateVolumeSecretArgs.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.cloudrunv2.kotlin.inputs

import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.gcp.cloudrunv2.inputs.ServiceTemplateVolumeSecretArgs.builder
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiNullFieldException
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Int
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.jvm.JvmName

/**
 *
 * @property defaultMode Integer representation of mode bits to use on created files by default. Must be a value between 0000 and 0777 (octal), defaulting to 0444. Directories within the path are not affected by this setting.
 * @property items If unspecified, the volume will expose a file whose name is the secret, relative to VolumeMount.mount_path. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a path and a version.
 * Structure is documented below.
 * @property secret The name of the secret in Cloud Secret Manager. Format: {secret} if the secret is in the same project. projects/{project}/secrets/{secret} if the secret is in a different project.
 */
public data class ServiceTemplateVolumeSecretArgs(
    public val defaultMode: Output? = null,
    public val items: Output>? = null,
    public val secret: Output,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.gcp.cloudrunv2.inputs.ServiceTemplateVolumeSecretArgs =
        com.pulumi.gcp.cloudrunv2.inputs.ServiceTemplateVolumeSecretArgs.builder()
            .defaultMode(defaultMode?.applyValue({ args0 -> args0 }))
            .items(items?.applyValue({ args0 -> args0.map({ args0 -> args0.let({ args0 -> args0.toJava() }) }) }))
            .secret(secret.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ServiceTemplateVolumeSecretArgs].
 */
@PulumiTagMarker
public class ServiceTemplateVolumeSecretArgsBuilder internal constructor() {
    private var defaultMode: Output? = null

    private var items: Output>? = null

    private var secret: Output? = null

    /**
     * @param value Integer representation of mode bits to use on created files by default. Must be a value between 0000 and 0777 (octal), defaulting to 0444. Directories within the path are not affected by this setting.
     */
    @JvmName("dwuwojmtsyqednll")
    public suspend fun defaultMode(`value`: Output) {
        this.defaultMode = value
    }

    /**
     * @param value If unspecified, the volume will expose a file whose name is the secret, relative to VolumeMount.mount_path. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a path and a version.
     * Structure is documented below.
     */
    @JvmName("yqhlsdglonfljccx")
    public suspend fun items(`value`: Output>) {
        this.items = value
    }

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

    /**
     * @param values If unspecified, the volume will expose a file whose name is the secret, relative to VolumeMount.mount_path. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a path and a version.
     * Structure is documented below.
     */
    @JvmName("sxbvbgpprqbfdqup")
    public suspend fun items(values: List>) {
        this.items = Output.all(values)
    }

    /**
     * @param value The name of the secret in Cloud Secret Manager. Format: {secret} if the secret is in the same project. projects/{project}/secrets/{secret} if the secret is in a different project.
     */
    @JvmName("hfkswhbudllsylkr")
    public suspend fun secret(`value`: Output) {
        this.secret = value
    }

    /**
     * @param value Integer representation of mode bits to use on created files by default. Must be a value between 0000 and 0777 (octal), defaulting to 0444. Directories within the path are not affected by this setting.
     */
    @JvmName("rloyqloqyobajawc")
    public suspend fun defaultMode(`value`: Int?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultMode = mapped
    }

    /**
     * @param value If unspecified, the volume will expose a file whose name is the secret, relative to VolumeMount.mount_path. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a path and a version.
     * Structure is documented below.
     */
    @JvmName("prjkfgvsrwthrcay")
    public suspend fun items(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.items = mapped
    }

    /**
     * @param argument If unspecified, the volume will expose a file whose name is the secret, relative to VolumeMount.mount_path. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a path and a version.
     * Structure is documented below.
     */
    @JvmName("qabfamipelhurxck")
    public suspend fun items(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            ServiceTemplateVolumeSecretItemArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.items = mapped
    }

    /**
     * @param argument If unspecified, the volume will expose a file whose name is the secret, relative to VolumeMount.mount_path. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a path and a version.
     * Structure is documented below.
     */
    @JvmName("ulhlyukkkridwrqq")
    public suspend fun items(vararg argument: suspend ServiceTemplateVolumeSecretItemArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            ServiceTemplateVolumeSecretItemArgsBuilder().applySuspend { it() }.build()
        }
        val mapped = of(toBeMapped)
        this.items = mapped
    }

    /**
     * @param argument If unspecified, the volume will expose a file whose name is the secret, relative to VolumeMount.mount_path. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a path and a version.
     * Structure is documented below.
     */
    @JvmName("rygroowmbjtqpysj")
    public suspend fun items(argument: suspend ServiceTemplateVolumeSecretItemArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            ServiceTemplateVolumeSecretItemArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.items = mapped
    }

    /**
     * @param values If unspecified, the volume will expose a file whose name is the secret, relative to VolumeMount.mount_path. If specified, the key will be used as the version to fetch from Cloud Secret Manager and the path will be the name of the file exposed in the volume. When items are defined, they must specify a path and a version.
     * Structure is documented below.
     */
    @JvmName("kelkiqunsmxjsbit")
    public suspend fun items(vararg values: ServiceTemplateVolumeSecretItemArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.items = mapped
    }

    /**
     * @param value The name of the secret in Cloud Secret Manager. Format: {secret} if the secret is in the same project. projects/{project}/secrets/{secret} if the secret is in a different project.
     */
    @JvmName("rolisfcompoldnky")
    public suspend fun secret(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.secret = mapped
    }

    internal fun build(): ServiceTemplateVolumeSecretArgs = ServiceTemplateVolumeSecretArgs(
        defaultMode = defaultMode,
        items = items,
        secret = secret ?: throw PulumiNullFieldException("secret"),
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy