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

com.pulumi.aws.opsworks.kotlin.StackArgs.kt Maven / Gradle / Ivy

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

package com.pulumi.aws.opsworks.kotlin

import com.pulumi.aws.opsworks.StackArgs.builder
import com.pulumi.aws.opsworks.kotlin.inputs.StackCustomCookbooksSourceArgs
import com.pulumi.aws.opsworks.kotlin.inputs.StackCustomCookbooksSourceArgsBuilder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.Boolean
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import kotlin.jvm.JvmName

/**
 * Provides an OpsWorks stack resource.
 * ## Example Usage
 * 
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws from "@pulumi/aws";
 * const main = new aws.opsworks.Stack("main", {
 *     name: "awesome-stack",
 *     region: "us-west-1",
 *     serviceRoleArn: opsworksAwsIamRole.arn,
 *     defaultInstanceProfileArn: opsworks.arn,
 *     tags: {
 *         Name: "foobar-stack",
 *     },
 *     customJson: `{
 *  "foobar": {
 *     "version": "1.0.0"
 *   }
 * }
 * `,
 * });
 * ```
 * ```python
 * import pulumi
 * import pulumi_aws as aws
 * main = aws.opsworks.Stack("main",
 *     name="awesome-stack",
 *     region="us-west-1",
 *     service_role_arn=opsworks_aws_iam_role["arn"],
 *     default_instance_profile_arn=opsworks["arn"],
 *     tags={
 *         "Name": "foobar-stack",
 *     },
 *     custom_json="""{
 *  "foobar": {
 *     "version": "1.0.0"
 *   }
 * }
 * """)
 * ```
 * ```csharp
 * using System.Collections.Generic;
 * using System.Linq;
 * using Pulumi;
 * using Aws = Pulumi.Aws;
 * return await Deployment.RunAsync(() =>
 * {
 *     var main = new Aws.OpsWorks.Stack("main", new()
 *     {
 *         Name = "awesome-stack",
 *         Region = "us-west-1",
 *         ServiceRoleArn = opsworksAwsIamRole.Arn,
 *         DefaultInstanceProfileArn = opsworks.Arn,
 *         Tags =
 *         {
 *             { "Name", "foobar-stack" },
 *         },
 *         CustomJson = @"{
 *  ""foobar"": {
 *     ""version"": ""1.0.0""
 *   }
 * }
 * ",
 *     });
 * });
 * ```
 * ```go
 * package main
 * import (
 * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opsworks"
 * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
 * )
 * func main() {
 * 	pulumi.Run(func(ctx *pulumi.Context) error {
 * 		_, err := opsworks.NewStack(ctx, "main", &opsworks.StackArgs{
 * 			Name:                      pulumi.String("awesome-stack"),
 * 			Region:                    pulumi.String("us-west-1"),
 * 			ServiceRoleArn:            pulumi.Any(opsworksAwsIamRole.Arn),
 * 			DefaultInstanceProfileArn: pulumi.Any(opsworks.Arn),
 * 			Tags: pulumi.StringMap{
 * 				"Name": pulumi.String("foobar-stack"),
 * 			},
 * 			CustomJson: pulumi.String("{\n \"foobar\": {\n    \"version\": \"1.0.0\"\n  }\n}\n"),
 * 		})
 * 		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.opsworks.Stack;
 * import com.pulumi.aws.opsworks.StackArgs;
 * 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 main = new Stack("main", StackArgs.builder()
 *             .name("awesome-stack")
 *             .region("us-west-1")
 *             .serviceRoleArn(opsworksAwsIamRole.arn())
 *             .defaultInstanceProfileArn(opsworks.arn())
 *             .tags(Map.of("Name", "foobar-stack"))
 *             .customJson("""
 * {
 *  "foobar": {
 *     "version": "1.0.0"
 *   }
 * }
 *             """)
 *             .build());
 *     }
 * }
 * ```
 * ```yaml
 * resources:
 *   main:
 *     type: aws:opsworks:Stack
 *     properties:
 *       name: awesome-stack
 *       region: us-west-1
 *       serviceRoleArn: ${opsworksAwsIamRole.arn}
 *       defaultInstanceProfileArn: ${opsworks.arn}
 *       tags:
 *         Name: foobar-stack
 *       customJson: |
 *         {
 *          "foobar": {
 *             "version": "1.0.0"
 *           }
 *         }
 * ```
 * 
 * ## Import
 * Using `pulumi import`, import OpsWorks stacks using the `id`. For example:
 * ```sh
 * $ pulumi import aws:opsworks/stack:Stack bar 00000000-0000-0000-0000-000000000000
 * ```
 * @property agentVersion If set to `"LATEST"`, OpsWorks will automatically install the latest version.
 * @property berkshelfVersion If `manage_berkshelf` is enabled, the version of Berkshelf to use.
 * @property color Color to paint next to the stack's resources in the OpsWorks console.
 * @property configurationManagerName Name of the configuration manager to use. Defaults to "Chef".
 * @property configurationManagerVersion Version of the configuration manager to use. Defaults to "11.4".
 * @property customCookbooksSources When `use_custom_cookbooks` is set, provide this sub-object as described below.
 * @property customJson Custom JSON attributes to apply to the entire stack.
 * @property defaultAvailabilityZone Name of the availability zone where instances will be created by default.
 * Cannot be set when `vpc_id` is set.
 * @property defaultInstanceProfileArn The ARN of an IAM Instance Profile that created instances will have by default.
 * @property defaultOs Name of OS that will be installed on instances by default.
 * @property defaultRootDeviceType Name of the type of root device instances will have by default.
 * @property defaultSshKeyName Name of the SSH keypair that instances will have by default.
 * @property defaultSubnetId ID of the subnet in which instances will be created by default.
 * Required if `vpc_id` is set to a VPC other than the default VPC, and forbidden if it isn't.
 * @property hostnameTheme Keyword representing the naming scheme that will be used for instance hostnames within this stack.
 * @property manageBerkshelf Boolean value controlling whether Opsworks will run Berkshelf for this stack.
 * @property name The name of the stack.
 * @property region The name of the region where the stack will exist.
 * @property serviceRoleArn The ARN of an IAM role that the OpsWorks service will act as.
 * @property tags A map of tags to assign to the resource.
 * If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
 * @property useCustomCookbooks Boolean value controlling whether the custom cookbook settings are enabled.
 * @property useOpsworksSecurityGroups Boolean value controlling whether the standard OpsWorks security groups apply to created instances.
 * @property vpcId ID of the VPC that this stack belongs to.
 * Defaults to the region's default VPC.
 */
public data class StackArgs(
    public val agentVersion: Output? = null,
    public val berkshelfVersion: Output? = null,
    public val color: Output? = null,
    public val configurationManagerName: Output? = null,
    public val configurationManagerVersion: Output? = null,
    public val customCookbooksSources: Output>? = null,
    public val customJson: Output? = null,
    public val defaultAvailabilityZone: Output? = null,
    public val defaultInstanceProfileArn: Output? = null,
    public val defaultOs: Output? = null,
    public val defaultRootDeviceType: Output? = null,
    public val defaultSshKeyName: Output? = null,
    public val defaultSubnetId: Output? = null,
    public val hostnameTheme: Output? = null,
    public val manageBerkshelf: Output? = null,
    public val name: Output? = null,
    public val region: Output? = null,
    public val serviceRoleArn: Output? = null,
    public val tags: Output>? = null,
    public val useCustomCookbooks: Output? = null,
    public val useOpsworksSecurityGroups: Output? = null,
    public val vpcId: Output? = null,
) : ConvertibleToJava {
    override fun toJava(): com.pulumi.aws.opsworks.StackArgs =
        com.pulumi.aws.opsworks.StackArgs.builder()
            .agentVersion(agentVersion?.applyValue({ args0 -> args0 }))
            .berkshelfVersion(berkshelfVersion?.applyValue({ args0 -> args0 }))
            .color(color?.applyValue({ args0 -> args0 }))
            .configurationManagerName(configurationManagerName?.applyValue({ args0 -> args0 }))
            .configurationManagerVersion(configurationManagerVersion?.applyValue({ args0 -> args0 }))
            .customCookbooksSources(
                customCookbooksSources?.applyValue({ args0 ->
                    args0.map({ args0 ->
                        args0.let({ args0 -> args0.toJava() })
                    })
                }),
            )
            .customJson(customJson?.applyValue({ args0 -> args0 }))
            .defaultAvailabilityZone(defaultAvailabilityZone?.applyValue({ args0 -> args0 }))
            .defaultInstanceProfileArn(defaultInstanceProfileArn?.applyValue({ args0 -> args0 }))
            .defaultOs(defaultOs?.applyValue({ args0 -> args0 }))
            .defaultRootDeviceType(defaultRootDeviceType?.applyValue({ args0 -> args0 }))
            .defaultSshKeyName(defaultSshKeyName?.applyValue({ args0 -> args0 }))
            .defaultSubnetId(defaultSubnetId?.applyValue({ args0 -> args0 }))
            .hostnameTheme(hostnameTheme?.applyValue({ args0 -> args0 }))
            .manageBerkshelf(manageBerkshelf?.applyValue({ args0 -> args0 }))
            .name(name?.applyValue({ args0 -> args0 }))
            .region(region?.applyValue({ args0 -> args0 }))
            .serviceRoleArn(serviceRoleArn?.applyValue({ args0 -> args0 }))
            .tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
            .useCustomCookbooks(useCustomCookbooks?.applyValue({ args0 -> args0 }))
            .useOpsworksSecurityGroups(useOpsworksSecurityGroups?.applyValue({ args0 -> args0 }))
            .vpcId(vpcId?.applyValue({ args0 -> args0 })).build()
}

/**
 * Builder for [StackArgs].
 */
@PulumiTagMarker
public class StackArgsBuilder internal constructor() {
    private var agentVersion: Output? = null

    private var berkshelfVersion: Output? = null

    private var color: Output? = null

    private var configurationManagerName: Output? = null

    private var configurationManagerVersion: Output? = null

    private var customCookbooksSources: Output>? = null

    private var customJson: Output? = null

    private var defaultAvailabilityZone: Output? = null

    private var defaultInstanceProfileArn: Output? = null

    private var defaultOs: Output? = null

    private var defaultRootDeviceType: Output? = null

    private var defaultSshKeyName: Output? = null

    private var defaultSubnetId: Output? = null

    private var hostnameTheme: Output? = null

    private var manageBerkshelf: Output? = null

    private var name: Output? = null

    private var region: Output? = null

    private var serviceRoleArn: Output? = null

    private var tags: Output>? = null

    private var useCustomCookbooks: Output? = null

    private var useOpsworksSecurityGroups: Output? = null

    private var vpcId: Output? = null

    /**
     * @param value If set to `"LATEST"`, OpsWorks will automatically install the latest version.
     */
    @JvmName("aissiigfbkvauics")
    public suspend fun agentVersion(`value`: Output) {
        this.agentVersion = value
    }

    /**
     * @param value If `manage_berkshelf` is enabled, the version of Berkshelf to use.
     */
    @JvmName("hoaaxuqpqkvlfdqa")
    public suspend fun berkshelfVersion(`value`: Output) {
        this.berkshelfVersion = value
    }

    /**
     * @param value Color to paint next to the stack's resources in the OpsWorks console.
     */
    @JvmName("lmvsqrssoqrstrxp")
    public suspend fun color(`value`: Output) {
        this.color = value
    }

    /**
     * @param value Name of the configuration manager to use. Defaults to "Chef".
     */
    @JvmName("ngsjnwrcqimkfgkf")
    public suspend fun configurationManagerName(`value`: Output) {
        this.configurationManagerName = value
    }

    /**
     * @param value Version of the configuration manager to use. Defaults to "11.4".
     */
    @JvmName("yconkfvrtquaupgt")
    public suspend fun configurationManagerVersion(`value`: Output) {
        this.configurationManagerVersion = value
    }

    /**
     * @param value When `use_custom_cookbooks` is set, provide this sub-object as described below.
     */
    @JvmName("cvjlhhmbivoeojwk")
    public suspend fun customCookbooksSources(`value`: Output>) {
        this.customCookbooksSources = value
    }

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

    /**
     * @param values When `use_custom_cookbooks` is set, provide this sub-object as described below.
     */
    @JvmName("sywjubbcpmjvblrd")
    public suspend fun customCookbooksSources(values: List>) {
        this.customCookbooksSources = Output.all(values)
    }

    /**
     * @param value Custom JSON attributes to apply to the entire stack.
     */
    @JvmName("xkwcrlqddcdphciq")
    public suspend fun customJson(`value`: Output) {
        this.customJson = value
    }

    /**
     * @param value Name of the availability zone where instances will be created by default.
     * Cannot be set when `vpc_id` is set.
     */
    @JvmName("cygepssbdvaphxog")
    public suspend fun defaultAvailabilityZone(`value`: Output) {
        this.defaultAvailabilityZone = value
    }

    /**
     * @param value The ARN of an IAM Instance Profile that created instances will have by default.
     */
    @JvmName("oewgoajcbldokahk")
    public suspend fun defaultInstanceProfileArn(`value`: Output) {
        this.defaultInstanceProfileArn = value
    }

    /**
     * @param value Name of OS that will be installed on instances by default.
     */
    @JvmName("cxdypxealwhthshi")
    public suspend fun defaultOs(`value`: Output) {
        this.defaultOs = value
    }

    /**
     * @param value Name of the type of root device instances will have by default.
     */
    @JvmName("vrslhxjqrimmonac")
    public suspend fun defaultRootDeviceType(`value`: Output) {
        this.defaultRootDeviceType = value
    }

    /**
     * @param value Name of the SSH keypair that instances will have by default.
     */
    @JvmName("oqxhceesesrrnlvy")
    public suspend fun defaultSshKeyName(`value`: Output) {
        this.defaultSshKeyName = value
    }

    /**
     * @param value ID of the subnet in which instances will be created by default.
     * Required if `vpc_id` is set to a VPC other than the default VPC, and forbidden if it isn't.
     */
    @JvmName("iylhtktwvxgygkfj")
    public suspend fun defaultSubnetId(`value`: Output) {
        this.defaultSubnetId = value
    }

    /**
     * @param value Keyword representing the naming scheme that will be used for instance hostnames within this stack.
     */
    @JvmName("ewcpcgtqjlbiecjb")
    public suspend fun hostnameTheme(`value`: Output) {
        this.hostnameTheme = value
    }

    /**
     * @param value Boolean value controlling whether Opsworks will run Berkshelf for this stack.
     */
    @JvmName("ypioydsvshmrjbeu")
    public suspend fun manageBerkshelf(`value`: Output) {
        this.manageBerkshelf = value
    }

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

    /**
     * @param value The name of the region where the stack will exist.
     */
    @JvmName("bccvxmqhfjkxjgeu")
    public suspend fun region(`value`: Output) {
        this.region = value
    }

    /**
     * @param value The ARN of an IAM role that the OpsWorks service will act as.
     */
    @JvmName("eidotabhtgqqmhfd")
    public suspend fun serviceRoleArn(`value`: Output) {
        this.serviceRoleArn = value
    }

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

    /**
     * @param value Boolean value controlling whether the custom cookbook settings are enabled.
     */
    @JvmName("yvicrupolvdvlcxn")
    public suspend fun useCustomCookbooks(`value`: Output) {
        this.useCustomCookbooks = value
    }

    /**
     * @param value Boolean value controlling whether the standard OpsWorks security groups apply to created instances.
     */
    @JvmName("elvhgwoomnmwlyyf")
    public suspend fun useOpsworksSecurityGroups(`value`: Output) {
        this.useOpsworksSecurityGroups = value
    }

    /**
     * @param value ID of the VPC that this stack belongs to.
     * Defaults to the region's default VPC.
     */
    @JvmName("lagflrqixslbcmrq")
    public suspend fun vpcId(`value`: Output) {
        this.vpcId = value
    }

    /**
     * @param value If set to `"LATEST"`, OpsWorks will automatically install the latest version.
     */
    @JvmName("lxinigpgflnkedhs")
    public suspend fun agentVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.agentVersion = mapped
    }

    /**
     * @param value If `manage_berkshelf` is enabled, the version of Berkshelf to use.
     */
    @JvmName("tjtoibmgmuvlhnlj")
    public suspend fun berkshelfVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.berkshelfVersion = mapped
    }

    /**
     * @param value Color to paint next to the stack's resources in the OpsWorks console.
     */
    @JvmName("lcvcriwatobawulp")
    public suspend fun color(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.color = mapped
    }

    /**
     * @param value Name of the configuration manager to use. Defaults to "Chef".
     */
    @JvmName("vdpqxrffctwsxunf")
    public suspend fun configurationManagerName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.configurationManagerName = mapped
    }

    /**
     * @param value Version of the configuration manager to use. Defaults to "11.4".
     */
    @JvmName("guxwefaruhggpyie")
    public suspend fun configurationManagerVersion(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.configurationManagerVersion = mapped
    }

    /**
     * @param value When `use_custom_cookbooks` is set, provide this sub-object as described below.
     */
    @JvmName("ssjrpgnrnwtsbtpp")
    public suspend fun customCookbooksSources(`value`: List?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.customCookbooksSources = mapped
    }

    /**
     * @param argument When `use_custom_cookbooks` is set, provide this sub-object as described below.
     */
    @JvmName("byuevwcyatrenvna")
    public suspend fun customCookbooksSources(argument: List Unit>) {
        val toBeMapped = argument.toList().map {
            StackCustomCookbooksSourceArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.customCookbooksSources = mapped
    }

    /**
     * @param argument When `use_custom_cookbooks` is set, provide this sub-object as described below.
     */
    @JvmName("mjrenmhdfgqnffte")
    public suspend fun customCookbooksSources(vararg argument: suspend StackCustomCookbooksSourceArgsBuilder.() -> Unit) {
        val toBeMapped = argument.toList().map {
            StackCustomCookbooksSourceArgsBuilder().applySuspend {
                it()
            }.build()
        }
        val mapped = of(toBeMapped)
        this.customCookbooksSources = mapped
    }

    /**
     * @param argument When `use_custom_cookbooks` is set, provide this sub-object as described below.
     */
    @JvmName("hguvjcanhuypnpqq")
    public suspend fun customCookbooksSources(argument: suspend StackCustomCookbooksSourceArgsBuilder.() -> Unit) {
        val toBeMapped = listOf(
            StackCustomCookbooksSourceArgsBuilder().applySuspend {
                argument()
            }.build(),
        )
        val mapped = of(toBeMapped)
        this.customCookbooksSources = mapped
    }

    /**
     * @param values When `use_custom_cookbooks` is set, provide this sub-object as described below.
     */
    @JvmName("ggettdllixgsuqjf")
    public suspend fun customCookbooksSources(vararg values: StackCustomCookbooksSourceArgs) {
        val toBeMapped = values.toList()
        val mapped = toBeMapped.let({ args0 -> of(args0) })
        this.customCookbooksSources = mapped
    }

    /**
     * @param value Custom JSON attributes to apply to the entire stack.
     */
    @JvmName("nbnacsmqdvyybdxl")
    public suspend fun customJson(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.customJson = mapped
    }

    /**
     * @param value Name of the availability zone where instances will be created by default.
     * Cannot be set when `vpc_id` is set.
     */
    @JvmName("mwchyyflworiwwjf")
    public suspend fun defaultAvailabilityZone(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultAvailabilityZone = mapped
    }

    /**
     * @param value The ARN of an IAM Instance Profile that created instances will have by default.
     */
    @JvmName("mgdormakksuyjwdv")
    public suspend fun defaultInstanceProfileArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultInstanceProfileArn = mapped
    }

    /**
     * @param value Name of OS that will be installed on instances by default.
     */
    @JvmName("vdtdelbhqtymkhjc")
    public suspend fun defaultOs(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultOs = mapped
    }

    /**
     * @param value Name of the type of root device instances will have by default.
     */
    @JvmName("kfepwklwvfhtuptj")
    public suspend fun defaultRootDeviceType(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultRootDeviceType = mapped
    }

    /**
     * @param value Name of the SSH keypair that instances will have by default.
     */
    @JvmName("imratsclmownqfek")
    public suspend fun defaultSshKeyName(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultSshKeyName = mapped
    }

    /**
     * @param value ID of the subnet in which instances will be created by default.
     * Required if `vpc_id` is set to a VPC other than the default VPC, and forbidden if it isn't.
     */
    @JvmName("pffndjgttusqqvdx")
    public suspend fun defaultSubnetId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.defaultSubnetId = mapped
    }

    /**
     * @param value Keyword representing the naming scheme that will be used for instance hostnames within this stack.
     */
    @JvmName("enlqqfltpafdiffv")
    public suspend fun hostnameTheme(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.hostnameTheme = mapped
    }

    /**
     * @param value Boolean value controlling whether Opsworks will run Berkshelf for this stack.
     */
    @JvmName("dxxaknjhqpfcmjkc")
    public suspend fun manageBerkshelf(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.manageBerkshelf = mapped
    }

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

    /**
     * @param value The name of the region where the stack will exist.
     */
    @JvmName("kyfblywcrrcnresb")
    public suspend fun region(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.region = mapped
    }

    /**
     * @param value The ARN of an IAM role that the OpsWorks service will act as.
     */
    @JvmName("suudqimtrqmxxten")
    public suspend fun serviceRoleArn(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.serviceRoleArn = mapped
    }

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

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

    /**
     * @param value Boolean value controlling whether the custom cookbook settings are enabled.
     */
    @JvmName("jmycbbnpsrqeqaik")
    public suspend fun useCustomCookbooks(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.useCustomCookbooks = mapped
    }

    /**
     * @param value Boolean value controlling whether the standard OpsWorks security groups apply to created instances.
     */
    @JvmName("rgrdqsbihbmoprfl")
    public suspend fun useOpsworksSecurityGroups(`value`: Boolean?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.useOpsworksSecurityGroups = mapped
    }

    /**
     * @param value ID of the VPC that this stack belongs to.
     * Defaults to the region's default VPC.
     */
    @JvmName("cavfaftlfaxyefrf")
    public suspend fun vpcId(`value`: String?) {
        val toBeMapped = value
        val mapped = toBeMapped?.let({ args0 -> of(args0) })
        this.vpcId = mapped
    }

    internal fun build(): StackArgs = StackArgs(
        agentVersion = agentVersion,
        berkshelfVersion = berkshelfVersion,
        color = color,
        configurationManagerName = configurationManagerName,
        configurationManagerVersion = configurationManagerVersion,
        customCookbooksSources = customCookbooksSources,
        customJson = customJson,
        defaultAvailabilityZone = defaultAvailabilityZone,
        defaultInstanceProfileArn = defaultInstanceProfileArn,
        defaultOs = defaultOs,
        defaultRootDeviceType = defaultRootDeviceType,
        defaultSshKeyName = defaultSshKeyName,
        defaultSubnetId = defaultSubnetId,
        hostnameTheme = hostnameTheme,
        manageBerkshelf = manageBerkshelf,
        name = name,
        region = region,
        serviceRoleArn = serviceRoleArn,
        tags = tags,
        useCustomCookbooks = useCustomCookbooks,
        useOpsworksSecurityGroups = useOpsworksSecurityGroups,
        vpcId = vpcId,
    )
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy