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

com.pulumi.aws.ssm.kotlin.ParameterArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.aws.ssm.kotlin

import com.pulumi.aws.ssm.ParameterArgs.builder
import com.pulumi.aws.ssm.kotlin.enums.ParameterType
import com.pulumi.core.Either
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.Deprecated
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Provides an SSM Parameter resource.
 * > **Note:** `overwrite` also makes it possible to overwrite an existing SSM Parameter that's not created by the provider before. This argument has been deprecated and will be removed in v6.0.0 of the provider. For more information on how this affects the behavior of this resource, see this issue comment.
 * ## Example Usage
 * ### Basic example
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 * const foo = new aws.ssm.Parameter("foo", {
 *     name: "foo",
 *     type: aws.ssm.ParameterType.String,
 *     value: "bar",
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_aws as aws
 * foo = aws.ssm.Parameter("foo",
 *     name="foo",
 *     type=aws.ssm.ParameterType.STRING,
 *     value="bar")
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Aws = Pulumi.Aws;
 * return await Deployment.RunAsync(() =>
 * {
 *     var foo = new Aws.Ssm.Parameter("foo", new()
 *     {
 *         Name = "foo",
 *         Type = Aws.Ssm.ParameterType.String,
 *         Value = "bar",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := ssm.NewParameter(ctx, "foo", &ssm.ParameterArgs{
 * 			Name:  pulumi.String("foo"),
 * 			Type:  pulumi.String(ssm.ParameterTypeString),
 * 			Value: pulumi.String("bar"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.ssm.Parameter;
 * import com.pulumi.aws.ssm.ParameterArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var foo = new Parameter("foo", ParameterArgs.builder()
 *             .name("foo")
 *             .type("String")
 *             .value("bar")
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   foo:
 *     type: aws:ssm:Parameter
 *     properties:
 *       name: foo
 *       type: String
 *       value: bar
 * ```
 * 
 * ### Encrypted string using default SSM KMS key
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 * const _default = new aws.rds.Instance("default", {
 *     allocatedStorage: 10,
 *     storageType: aws.rds.StorageType.GP2,
 *     engine: "mysql",
 *     engineVersion: "5.7.16",
 *     instanceClass: aws.rds.InstanceType.T2_Micro,
 *     dbName: "mydb",
 *     username: "foo",
 *     password: databaseMasterPassword,
 *     dbSubnetGroupName: "my_database_subnet_group",
 *     parameterGroupName: "default.mysql5.7",
 * });
 * const secret = new aws.ssm.Parameter("secret", {
 *     name: "/production/database/password/master",
 *     description: "The parameter description",
 *     type: aws.ssm.ParameterType.SecureString,
 *     value: databaseMasterPassword,
 *     tags: {
 *         environment: "production",
 *     },
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_aws as aws
 * default = aws.rds.Instance("default",
 *     allocated_storage=10,
 *     storage_type=aws.rds.StorageType.GP2,
 *     engine="mysql",
 *     engine_version="5.7.16",
 *     instance_class=aws.rds.InstanceType.T2_MICRO,
 *     db_name="mydb",
 *     username="foo",
 *     password=database_master_password,
 *     db_subnet_group_name="my_database_subnet_group",
 *     parameter_group_name="default.mysql5.7")
 * secret = aws.ssm.Parameter("secret",
 *     name="/production/database/password/master",
 *     description="The parameter description",
 *     type=aws.ssm.ParameterType.SECURE_STRING,
 *     value=database_master_password,
 *     tags={
 *         "environment": "production",
 *     })
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Aws = Pulumi.Aws;
 * return await Deployment.RunAsync(() =>
 * {
 *     var @default = new Aws.Rds.Instance("default", new()
 *     {
 *         AllocatedStorage = 10,
 *         StorageType = Aws.Rds.StorageType.GP2,
 *         Engine = "mysql",
 *         EngineVersion = "5.7.16",
 *         InstanceClass = Aws.Rds.InstanceType.T2_Micro,
 *         DbName = "mydb",
 *         Username = "foo",
 *         Password = databaseMasterPassword,
 *         DbSubnetGroupName = "my_database_subnet_group",
 *         ParameterGroupName = "default.mysql5.7",
 *     });
 *     var secret = new Aws.Ssm.Parameter("secret", new()
 *     {
 *         Name = "/production/database/password/master",
 *         Description = "The parameter description",
 *         Type = Aws.Ssm.ParameterType.SecureString,
 *         Value = databaseMasterPassword,
 *         Tags =
 *         {
 *             { "environment", "production" },
 *         },
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/rds"
 * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := rds.NewInstance(ctx, "default", &rds.InstanceArgs{
 * 			AllocatedStorage:   pulumi.Int(10),
 * 			StorageType:        pulumi.String(rds.StorageTypeGP2),
 * 			Engine:             pulumi.String("mysql"),
 * 			EngineVersion:      pulumi.String("5.7.16"),
 * 			InstanceClass:      pulumi.String(rds.InstanceType_T2_Micro),
 * 			DbName:             pulumi.String("mydb"),
 * 			Username:           pulumi.String("foo"),
 * 			Password:           pulumi.Any(databaseMasterPassword),
 * 			DbSubnetGroupName:  pulumi.String("my_database_subnet_group"),
 * 			ParameterGroupName: pulumi.String("default.mysql5.7"),
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		_, err = ssm.NewParameter(ctx, "secret", &ssm.ParameterArgs{
 * 			Name:        pulumi.String("/production/database/password/master"),
 * 			Description: pulumi.String("The parameter description"),
 * 			Type:        pulumi.String(ssm.ParameterTypeSecureString),
 * 			Value:       pulumi.Any(databaseMasterPassword),
 * 			Tags: pulumi.StringMap{
 * 				"environment": pulumi.String("production"),
 * 			},
 * 		})
 * 		if err != nil {
 * 			return err
 * 		}
 * 		return nil
 * 	})
 * }
 * ```
 * ```java
 * package generated_program;
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.aws.rds.Instance;
 * import com.pulumi.aws.rds.InstanceArgs;
 * import com.pulumi.aws.ssm.Parameter;
 * import com.pulumi.aws.ssm.ParameterArgs;
 * import java.util.List;
 * import java.util.ArrayList;
 * import java.util.Map;
 * import java.io.File;
 * import java.nio.file.Files;
 * import java.nio.file.Paths;
 * public class App {
 *     public static void main(String[] args) {
 *         Pulumi.run(App::stack);
 *     }
 *     public static void stack(Context ctx) {
 *         var default_ = new Instance("default", InstanceArgs.builder()
 *             .allocatedStorage(10)
 *             .storageType("gp2")
 *             .engine("mysql")
 *             .engineVersion("5.7.16")
 *             .instanceClass("db.t2.micro")
 *             .dbName("mydb")
 *             .username("foo")
 *             .password(databaseMasterPassword)
 *             .dbSubnetGroupName("my_database_subnet_group")
 *             .parameterGroupName("default.mysql5.7")
 *             .build());
 *         var secret = new Parameter("secret", ParameterArgs.builder()
 *             .name("/production/database/password/master")
 *             .description("The parameter description")
 *             .type("SecureString")
 *             .value(databaseMasterPassword)
 *             .tags(Map.of("environment", "production"))
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   default:
 *     type: aws:rds:Instance
 *     properties:
 *       allocatedStorage: 10
 *       storageType: gp2
 *       engine: mysql
 *       engineVersion: 5.7.16
 *       instanceClass: db.t2.micro
 *       dbName: mydb
 *       username: foo
 *       password: ${databaseMasterPassword}
 *       dbSubnetGroupName: my_database_subnet_group
 *       parameterGroupName: default.mysql5.7
 *   secret:
 *     type: aws:ssm:Parameter
 *     properties:
 *       name: /production/database/password/master
 *       description: The parameter description
 *       type: SecureString
 *       value: ${databaseMasterPassword}
 *       tags:
 *         environment: production
 * ```
 * 
 * ## Import
 * Using `pulumi import`, import SSM Parameters using the parameter store `name`. For example:
 * ```sh
 * $ pulumi import aws:ssm/parameter:Parameter my_param /my_path/my_paramname
 * ```
 * @property allowedPattern Regular expression used to validate the parameter value.
 * @property arn ARN of the parameter.
 * @property dataType Data type of the parameter. Valid values: `text`, `aws:ssm:integration` and `aws:ec2:image` for AMI format, see the [Native parameter support for Amazon Machine Image IDs](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html).
 * @property description Description of the parameter.
 * @property insecureValue Value of the parameter. **Use caution:** This value is _never_ marked as sensitive in the pulumi preview output. This argument is not valid with a `type` of `SecureString`.
 * @property keyId KMS key ID or ARN for encrypting a SecureString.
 * @property name Name of the parameter. If the name contains a path (e.g., any forward slashes (`/`)), it must be fully qualified with a leading forward slash (`/`). For additional requirements and constraints, see the [AWS SSM User Guide](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-parameter-name-constraints.html).
 * @property overwrite Overwrite an existing parameter. If not specified, defaults to `false` if the resource has not been created by Pulumi to avoid overwrite of existing resource, and will default to `true` otherwise (Pulumi lifecycle rules should then be used to manage the update behavior).
 * @property tags Map of tags to assign to the object. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
 * @property tier Parameter tier to assign to the parameter. If not specified, will use the default parameter tier for the region. Valid tiers are `Standard`, `Advanced`, and `Intelligent-Tiering`. Downgrading an `Advanced` tier parameter to `Standard` will recreate the resource. For more information on parameter tiers, see the [AWS SSM Parameter tier comparison and guide](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-advanced-parameters.html).
 * @property type Type of the parameter. Valid types are `String`, `StringList` and `SecureString`.
 * The following arguments are optional:
 * @property value Value of the parameter. This value is always marked as sensitive in the pulumi preview output, regardless of `type`.
 * > **NOTE:** `aws:ssm:integration` data_type parameters must be of the type `SecureString` and the name must start with the prefix `/d9d01087-4a3f-49e0-b0b4-d568d7826553/ssm/integrations/webhook/`. See [here](https://docs.aws.amazon.com/systems-manager/latest/userguide/creating-integrations.html) for information on the usage of `aws:ssm:integration` parameters.
 */
public data class ParameterArgs(
    public val allowedPattern: Output? = null,
    public val arn: Output? = null,
    public val dataType: Output? = null,
    public val description: Output? = null,
    public val insecureValue: Output? = null,
    public val keyId: Output? = null,
    public val name: Output? = null,
    @Deprecated(
        message = """
  this attribute has been deprecated
  """,
    )
    public val overwrite: Output? = null,
    public val tags: Output>? = null,
    public val tier: Output? = null,
    public val type: Output>? = null,
    public val `value`: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.aws.ssm.ParameterArgs =
        com.pulumi.aws.ssm.ParameterArgs.builder()
            .allowedPattern(allowedPattern?.applyValue({ args0 -> args0 }))
            .arn(arn?.applyValue({ args0 -> args0 }))
            .dataType(dataType?.applyValue({ args0 -> args0 }))
            .description(description?.applyValue({ args0 -> args0 }))
            .insecureValue(insecureValue?.applyValue({ args0 -> args0 }))
            .keyId(keyId?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .overwrite(overwrite?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .tier(tier?.applyValue({ args0 -> args0 }))
            .type(
                type?.applyValue({ args0 ->
                    args0.transform({ args0 -> args0 }, { args0 ->
                        args0.let({ args0 ->
                            args0.toJava()
                        })
                    })
                }),
            )
            .`value`(`value`?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [ParameterArgs].
 */
@PulumiTagMarker
public class ParameterArgsBuilder internal constructor() {
    private var allowedPattern: Output? = null

    private var arn: Output? = null

    private var dataType: Output? = null

    private var description: Output? = null

    private var insecureValue: Output? = null

    private var keyId: Output? = null

    private var name: Output? = null

    private var overwrite: Output? = null

    private var tags: Output>? = null

    private var tier: Output? = null

    private var type: Output>? = null

    private var `value`: Output? = null

    /**
     * @param value Regular expression used to validate the parameter value.
     */
    @JvmName("wiywiivlrxdbrsxp")
    public suspend fun allowedPattern(`value`: Output) {
        this.allowedPattern = value
    }

    /**
     * @param value ARN of the parameter.
     */
    @JvmName("hhrdnxhidqdyajyv")
    public suspend fun arn(`value`: Output) {
        this.arn = value
    }

    /**
     * @param value Data type of the parameter. Valid values: `text`, `aws:ssm:integration` and `aws:ec2:image` for AMI format, see the [Native parameter support for Amazon Machine Image IDs](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html).
     */
    @JvmName("tgnsmhykeqbikqpe")
    public suspend fun dataType(`value`: Output) {
        this.dataType = value
    }

    /**
     * @param value Description of the parameter.
     */
    @JvmName("ulaiwummchvtwpic")
    public suspend fun description(`value`: Output) {
        this.description = value
    }

    /**
     * @param value Value of the parameter. **Use caution:** This value is _never_ marked as sensitive in the pulumi preview output. This argument is not valid with a `type` of `SecureString`.
     */
    @JvmName("tsigacxehdgfnqbi")
    public suspend fun insecureValue(`value`: Output) {
        this.insecureValue = value
    }

    /**
     * @param value KMS key ID or ARN for encrypting a SecureString.
     */
    @JvmName("totftphkdnmynpud")
    public suspend fun keyId(`value`: Output) {
        this.keyId = value
    }

    /**
     * @param value Name of the parameter. If the name contains a path (e.g., any forward slashes (`/`)), it must be fully qualified with a leading forward slash (`/`). For additional requirements and constraints, see the [AWS SSM User Guide](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-parameter-name-constraints.html).
     */
    @JvmName("cqekggtadpgepbkn")
    public suspend fun name(`value`: Output) {
        this.name = value
    }

    /**
     * @param value Overwrite an existing parameter. If not specified, defaults to `false` if the resource has not been created by Pulumi to avoid overwrite of existing resource, and will default to `true` otherwise (Pulumi lifecycle rules should then be used to manage the update behavior).
     */
    @Deprecated(
        message = """
  this attribute has been deprecated
  """,
    )
    @JvmName("aoislqbpkltpolcg")
    public suspend fun overwrite(`value`: Output) {
        this.overwrite = value
    }

    /**
     * @param value Map of tags to assign to the object. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     */
    @JvmName("ggoxolhwilpntxhx")
    public suspend fun tags(`value`: Output>) {
        this.tags = value
    }

    /**
     * @param value Parameter tier to assign to the parameter. If not specified, will use the default parameter tier for the region. Valid tiers are `Standard`, `Advanced`, and `Intelligent-Tiering`. Downgrading an `Advanced` tier parameter to `Standard` will recreate the resource. For more information on parameter tiers, see the [AWS SSM Parameter tier comparison and guide](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-advanced-parameters.html).
     */
    @JvmName("rijtnesodyxxiqrr")
    public suspend fun tier(`value`: Output) {
        this.tier = value
    }

    /**
     * @param value Type of the parameter. Valid types are `String`, `StringList` and `SecureString`.
     * The following arguments are optional:
     */
    @JvmName("sjudhuavuaexrkrq")
    public suspend fun type(`value`: Output>) {
        this.type = value
    }

    /**
     * @param value Value of the parameter. This value is always marked as sensitive in the pulumi preview output, regardless of `type`.
     * > **NOTE:** `aws:ssm:integration` data_type parameters must be of the type `SecureString` and the name must start with the prefix `/d9d01087-4a3f-49e0-b0b4-d568d7826553/ssm/integrations/webhook/`. See [here](https://docs.aws.amazon.com/systems-manager/latest/userguide/creating-integrations.html) for information on the usage of `aws:ssm:integration` parameters.
     */
    @JvmName("wnujsjbwnxvaskqp")
    public suspend fun `value`(`value`: Output) {
        this.`value` = value
    }

    /**
     * @param value Regular expression used to validate the parameter value.
     */
    @JvmName("wdhfmnmiojpdsvca")
    public suspend fun allowedPattern(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.allowedPattern = mapped
    }

    /**
     * @param value ARN of the parameter.
     */
    @JvmName("nwtrxokajkpntijp")
    public suspend fun arn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.arn = mapped
    }

    /**
     * @param value Data type of the parameter. Valid values: `text`, `aws:ssm:integration` and `aws:ec2:image` for AMI format, see the [Native parameter support for Amazon Machine Image IDs](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-ec2-aliases.html).
     */
    @JvmName("qgbqmfhnsoqxwvry")
    public suspend fun dataType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.dataType = mapped
    }

    /**
     * @param value Description of the parameter.
     */
    @JvmName("mqbehadlbqqqjtcm")
    public suspend fun description(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.description = mapped
    }

    /**
     * @param value Value of the parameter. **Use caution:** This value is _never_ marked as sensitive in the pulumi preview output. This argument is not valid with a `type` of `SecureString`.
     */
    @JvmName("kahqhbkifiongafw")
    public suspend fun insecureValue(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.insecureValue = mapped
    }

    /**
     * @param value KMS key ID or ARN for encrypting a SecureString.
     */
    @JvmName("teaqwomtqqxtvbja")
    public suspend fun keyId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.keyId = mapped
    }

    /**
     * @param value Name of the parameter. If the name contains a path (e.g., any forward slashes (`/`)), it must be fully qualified with a leading forward slash (`/`). For additional requirements and constraints, see the [AWS SSM User Guide](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-parameter-name-constraints.html).
     */
    @JvmName("pbbydykapujdrfex")
    public suspend fun name(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.name = mapped
    }

    /**
     * @param value Overwrite an existing parameter. If not specified, defaults to `false` if the resource has not been created by Pulumi to avoid overwrite of existing resource, and will default to `true` otherwise (Pulumi lifecycle rules should then be used to manage the update behavior).
     */
    @Deprecated(
        message = """
  this attribute has been deprecated
  """,
    )
    @JvmName("wiecdgdeqqkjyoml")
    public suspend fun overwrite(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.overwrite = mapped
    }

    /**
     * @param value Map of tags to assign to the object. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     */
    @JvmName("unkyqrvbjtftddbr")
    public suspend fun tags(`value`: Map?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param values Map of tags to assign to the object. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     */
    @JvmName("aelfplomauxjumpo")
    public fun tags(vararg values: Pair) {
        val toBeMapped = values.toMap()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.tags = mapped
    }

    /**
     * @param value Parameter tier to assign to the parameter. If not specified, will use the default parameter tier for the region. Valid tiers are `Standard`, `Advanced`, and `Intelligent-Tiering`. Downgrading an `Advanced` tier parameter to `Standard` will recreate the resource. For more information on parameter tiers, see the [AWS SSM Parameter tier comparison and guide](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-advanced-parameters.html).
     */
    @JvmName("eksvcmuokyhljpvs")
    public suspend fun tier(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.tier = mapped
    }

    /**
     * @param value Type of the parameter. Valid types are `String`, `StringList` and `SecureString`.
     * The following arguments are optional:
     */
    @JvmName("gyraigkhobchfwtx")
    public suspend fun type(`value`: Either?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.type = mapped
    }

    /**
     * @param value Type of the parameter. Valid types are `String`, `StringList` and `SecureString`.
     * The following arguments are optional:
     */
    @JvmName("drqqdrlhidrhouoo")
    public fun type(`value`: String) {
        val toBeMapped = Either.ofLeft(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.type = mapped
    }

    /**
     * @param value Type of the parameter. Valid types are `String`, `StringList` and `SecureString`.
     * The following arguments are optional:
     */
    @JvmName("ngvacryirflhmsua")
    public fun type(`value`: ParameterType) {
        val toBeMapped = Either.ofRight(value)
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.type = mapped
    }

    /**
     * @param value Value of the parameter. This value is always marked as sensitive in the pulumi preview output, regardless of `type`.
     * > **NOTE:** `aws:ssm:integration` data_type parameters must be of the type `SecureString` and the name must start with the prefix `/d9d01087-4a3f-49e0-b0b4-d568d7826553/ssm/integrations/webhook/`. See [here](https://docs.aws.amazon.com/systems-manager/latest/userguide/creating-integrations.html) for information on the usage of `aws:ssm:integration` parameters.
     */
    @JvmName("aiewghxyxlumogmo")
    public suspend fun `value`(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.`value` = mapped
    }

    internal fun build(): ParameterArgs = ParameterArgs(
        allowedPattern = allowedPattern,
        arn = arn,
        dataType = dataType,
        description = description,
        insecureValue = insecureValue,
        keyId = keyId,
        name = name,
        overwrite = overwrite,
        tags = tags,
        tier = tier,
        type = type,
        `value` = `value`,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy