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

com.pulumi.awsnative.ecs.kotlin.inputs.ServiceSecretArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.awsnative.ecs.kotlin.inputs

import com.pulumi.awsnative.ecs.inputs.ServiceSecretArgs.builder
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 kotlin.String
import kotlin.Suppress
import kotlin.jvm.JvmName

/**
 * An object representing the secret to expose to your container. Secrets can be exposed to a container in the following ways:
 *   +  To inject sensitive data into your containers as environment variables, use the ``secrets`` container definition parameter.
 *   +  To reference sensitive information in the log configuration of a container, use the ``secretOptions`` container definition parameter.
 *  For more information, see [Specifying sensitive data](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data.html) in the *Amazon Elastic Container Service Developer Guide*.
 * @property name The name of the secret.
 * @property valueFrom The secret to expose to the container. The supported values are either the full ARN of the ASMlong secret or the full ARN of the parameter in the SSM Parameter Store.
 *  For information about the require IAMlong permissions, see [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html#secrets-iam) (for Secrets Manager) or [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-parameters.html) (for Systems Manager Parameter store) in the *Amazon Elastic Container Service Developer Guide*.
 *   If the SSM Parameter Store parameter exists in the same Region as the task you're launching, then you can use either the full ARN or name of the parameter. If the parameter exists in a different Region, then the full ARN must be specified.
 */
public data class ServiceSecretArgs(
    public val name: Output,
    public val valueFrom: Output,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.awsnative.ecs.inputs.ServiceSecretArgs =
        com.pulumi.awsnative.ecs.inputs.ServiceSecretArgs.builder()
            .name(name.applyValue({ args0 -> args0 }))
            .valueFrom(valueFrom.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ServiceSecretArgs].
 */
@PulumiTagMarker
public class ServiceSecretArgsBuilder internal constructor() {
    private var name: Output? = null

    private var valueFrom: Output? = null

    /**
     * @param value The name of the secret.
     */
    @JvmName("eiyhbksrldayciey")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value The secret to expose to the container. The supported values are either the full ARN of the ASMlong secret or the full ARN of the parameter in the SSM Parameter Store.
     *  For information about the require IAMlong permissions, see [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html#secrets-iam) (for Secrets Manager) or [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-parameters.html) (for Systems Manager Parameter store) in the *Amazon Elastic Container Service Developer Guide*.
     *   If the SSM Parameter Store parameter exists in the same Region as the task you're launching, then you can use either the full ARN or name of the parameter. If the parameter exists in a different Region, then the full ARN must be specified.
     */
    @JvmName("hohxobfegpxyvhrj")
    public suspend fun valueFrom(`value`: Output) {
        this.valueFrom = value
    }

    /**
     * @param value The name of the secret.
     */
    @JvmName("eopatutlkvqnhfhi")
    public suspend fun name(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value The secret to expose to the container. The supported values are either the full ARN of the ASMlong secret or the full ARN of the parameter in the SSM Parameter Store.
     *  For information about the require IAMlong permissions, see [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-secrets.html#secrets-iam) (for Secrets Manager) or [Required IAM permissions for Amazon ECS secrets](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/specifying-sensitive-data-parameters.html) (for Systems Manager Parameter store) in the *Amazon Elastic Container Service Developer Guide*.
     *   If the SSM Parameter Store parameter exists in the same Region as the task you're launching, then you can use either the full ARN or name of the parameter. If the parameter exists in a different Region, then the full ARN must be specified.
     */
    @JvmName("xgnollhmhxlilytk")
    public suspend fun valueFrom(`value`: String) {
        val toBeMapped = value
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.valueFrom = mapped
    }

    internal fun build(): ServiceSecretArgs = ServiceSecretArgs(
        name = name ?: throw PulumiNullFieldException("name"),
        valueFrom = valueFrom ?: throw PulumiNullFieldException("valueFrom"),
    )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy