class Aws::OpsWorks::Types::CreateStackRequest

@note When making an API call, you may pass CreateStackRequest

data as a hash:

    {
      name: "String", # required
      region: "String", # required
      vpc_id: "String",
      attributes: {
        "Color" => "String",
      },
      service_role_arn: "String", # required
      default_instance_profile_arn: "String", # required
      default_os: "String",
      hostname_theme: "String",
      default_availability_zone: "String",
      default_subnet_id: "String",
      custom_json: "String",
      configuration_manager: {
        name: "String",
        version: "String",
      },
      chef_configuration: {
        manage_berkshelf: false,
        berkshelf_version: "String",
      },
      use_custom_cookbooks: false,
      use_opsworks_security_groups: false,
      custom_cookbooks_source: {
        type: "git", # accepts git, svn, archive, s3
        url: "String",
        username: "String",
        password: "String",
        ssh_key: "String",
        revision: "String",
      },
      default_ssh_key_name: "String",
      default_root_device_type: "ebs", # accepts ebs, instance-store
      agent_version: "String",
    }

@!attribute [rw] name

The stack name.
@return [String]

@!attribute [rw] region

The stack's AWS region, such as `ap-south-1`. For more information
about Amazon regions, see [Regions and Endpoints][1].

<note markdown="1"> In the AWS CLI, this API maps to the `--stack-region` parameter. If
the `--stack-region` parameter and the AWS CLI common parameter
`--region` are set to the same value, the stack uses a *regional*
endpoint. If the `--stack-region` parameter is not set, but the AWS
CLI `--region` parameter is, this also results in a stack with a
*regional* endpoint. However, if the `--region` parameter is set to
`us-east-1`, and the `--stack-region` parameter is set to one of the
following, then the stack uses a legacy or *classic* region:
`us-west-1, us-west-2, sa-east-1, eu-central-1, eu-west-1,
ap-northeast-1, ap-southeast-1, ap-southeast-2`. In this case, the
actual API endpoint of the stack is in `us-east-1`. Only the
preceding regions are supported as classic regions in the
`us-east-1` API endpoint. Because it is a best practice to choose
the regional endpoint that is closest to where you manage AWS, we
recommend that you use regional endpoints for new stacks. The AWS
CLI common `--region` parameter always specifies a regional API
endpoint; it cannot be used to specify a classic AWS OpsWorks Stacks
region.

 </note>

[1]: https://docs.aws.amazon.com/general/latest/gr/rande.html
@return [String]

@!attribute [rw] vpc_id

The ID of the VPC that the stack is to be launched into. The VPC
must be in the stack's region. All instances are launched into this
VPC. You cannot change the ID later.

* If your account supports EC2-Classic, the default value is `no
  VPC`.

* If your account does not support EC2-Classic, the default value is
  the default VPC for the specified region.

If the VPC ID corresponds to a default VPC and you have specified
either the `DefaultAvailabilityZone` or the `DefaultSubnetId`
parameter only, AWS OpsWorks Stacks infers the value of the other
parameter. If you specify neither parameter, AWS OpsWorks Stacks
sets these parameters to the first valid Availability Zone for the
specified region and the corresponding default VPC subnet ID,
respectively.

If you specify a nondefault VPC ID, note the following:

* It must belong to a VPC in your account that is in the specified
  region.

* You must specify a value for `DefaultSubnetId`.

For more information about how to use AWS OpsWorks Stacks with a
VPC, see [Running a Stack in a VPC][1]. For more information about
default VPC and EC2-Classic, see [Supported Platforms][2].

[1]: https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-vpc.html
[2]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html
@return [String]

@!attribute [rw] attributes

One or more user-defined key-value pairs to be added to the stack
attributes.
@return [Hash<String,String>]

@!attribute [rw] service_role_arn

The stack's AWS Identity and Access Management (IAM) role, which
allows AWS OpsWorks Stacks to work with AWS resources on your
behalf. You must set this parameter to the Amazon Resource Name
(ARN) for an existing IAM role. For more information about IAM ARNs,
see [Using Identifiers][1].

[1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html
@return [String]

@!attribute [rw] default_instance_profile_arn

The Amazon Resource Name (ARN) of an IAM profile that is the default
profile for all of the stack's EC2 instances. For more information
about IAM ARNs, see [Using Identifiers][1].

[1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html
@return [String]

@!attribute [rw] default_os

The stack's default operating system, which is installed on every
instance unless you specify a different operating system when you
create the instance. You can specify one of the following.

* A supported Linux operating system: An Amazon Linux version, such
  as `Amazon Linux 2018.03`, `Amazon Linux 2017.09`, `Amazon Linux
  2017.03`, `Amazon Linux 2016.09`, `Amazon Linux 2016.03`, `Amazon
  Linux 2015.09`, or `Amazon Linux 2015.03`.

* A supported Ubuntu operating system, such as `Ubuntu 16.04 LTS`,
  `Ubuntu 14.04 LTS`, or `Ubuntu 12.04 LTS`.

* `CentOS Linux 7`

* `Red Hat Enterprise Linux 7`

* A supported Windows operating system, such as `Microsoft Windows
  Server 2012 R2 Base`, `Microsoft Windows Server 2012 R2 with SQL
  Server Express`, `Microsoft Windows Server 2012 R2 with SQL Server
  Standard`, or `Microsoft Windows Server 2012 R2 with SQL Server
  Web`.

* A custom AMI: `Custom`. You specify the custom AMI you want to use
  when you create instances. For more information, see [ Using
  Custom AMIs][1].

The default option is the current Amazon Linux version. For more
information about supported operating systems, see [AWS OpsWorks
Stacks Operating Systems][2].

[1]: https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html
[2]: https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html
@return [String]

@!attribute [rw] hostname_theme

The stack's host name theme, with spaces replaced by underscores.
The theme is used to generate host names for the stack's instances.
By default, `HostnameTheme` is set to `Layer_Dependent`, which
creates host names by appending integers to the layer's short name.
The other themes are:

* `Baked_Goods`

* `Clouds`

* `Europe_Cities`

* `Fruits`

* `Greek_Deities_and_Titans`

* `Legendary_creatures_from_Japan`

* `Planets_and_Moons`

* `Roman_Deities`

* `Scottish_Islands`

* `US_Cities`

* `Wild_Cats`

To obtain a generated host name, call `GetHostNameSuggestion`, which
returns a host name based on the current theme.
@return [String]

@!attribute [rw] default_availability_zone

The stack's default Availability Zone, which must be in the
specified region. For more information, see [Regions and
Endpoints][1]. If you also specify a value for `DefaultSubnetId`,
the subnet must be in the same zone. For more information, see the
`VpcId` parameter description.

[1]: https://docs.aws.amazon.com/general/latest/gr/rande.html
@return [String]

@!attribute [rw] default_subnet_id

The stack's default VPC subnet ID. This parameter is required if
you specify a value for the `VpcId` parameter. All instances are
launched into this subnet unless you specify otherwise when you
create the instance. If you also specify a value for
`DefaultAvailabilityZone`, the subnet must be in that zone. For
information on default values and when this parameter is required,
see the `VpcId` parameter description.
@return [String]

@!attribute [rw] custom_json

A string that contains user-defined, custom JSON. It can be used to
override the corresponding default stack configuration attribute
values or to pass data to recipes. The string should be in the
following format:

`"\{"key1": "value1", "key2": "value2",...\}"`

For more information about custom JSON, see [Use Custom JSON to
Modify the Stack Configuration Attributes][1].

[1]: https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html
@return [String]

@!attribute [rw] configuration_manager

The configuration manager. When you create a stack we recommend that
you use the configuration manager to specify the Chef version: 12,
11.10, or 11.4 for Linux stacks, or 12.2 for Windows stacks. The
default value for Linux stacks is currently 12.
@return [Types::StackConfigurationManager]

@!attribute [rw] chef_configuration

A `ChefConfiguration` object that specifies whether to enable
Berkshelf and the Berkshelf version on Chef 11.10 stacks. For more
information, see [Create a New Stack][1].

[1]: https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html
@return [Types::ChefConfiguration]

@!attribute [rw] use_custom_cookbooks

Whether the stack uses custom cookbooks.
@return [Boolean]

@!attribute [rw] use_opsworks_security_groups

Whether to associate the AWS OpsWorks Stacks built-in security
groups with the stack's layers.

AWS OpsWorks Stacks provides a standard set of built-in security
groups, one for each layer, which are associated with layers by
default. With `UseOpsworksSecurityGroups` you can instead provide
your own custom security groups. `UseOpsworksSecurityGroups` has the
following settings:

* True - AWS OpsWorks Stacks automatically associates the
  appropriate built-in security group with each layer (default
  setting). You can associate additional security groups with a
  layer after you create it, but you cannot delete the built-in
  security group.

* False - AWS OpsWorks Stacks does not associate built-in security
  groups with layers. You must create appropriate EC2 security
  groups and associate a security group with each layer that you
  create. However, you can still manually associate a built-in
  security group with a layer on creation; custom security groups
  are required only for those layers that need custom settings.

For more information, see [Create a New Stack][1].

[1]: https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html
@return [Boolean]

@!attribute [rw] custom_cookbooks_source

Contains the information required to retrieve an app or cookbook
from a repository. For more information, see [Adding Apps][1] or
[Cookbooks and Recipes][2].

[1]: https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html
[2]: https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook.html
@return [Types::Source]

@!attribute [rw] default_ssh_key_name

A default Amazon EC2 key pair name. The default value is none. If
you specify a key pair name, AWS OpsWorks installs the public key on
the instance and you can use the private key with an SSH client to
log in to the instance. For more information, see [ Using SSH to
Communicate with an Instance][1] and [ Managing SSH Access][2]. You
can override this setting by specifying a different key pair, or no
key pair, when you [ create an instance][3].

[1]: https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-ssh.html
[2]: https://docs.aws.amazon.com/opsworks/latest/userguide/security-ssh-access.html
[3]: https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-add.html
@return [String]

@!attribute [rw] default_root_device_type

The default root device type. This value is the default for all
instances in the stack, but you can override it when you create an
instance. The default option is `instance-store`. For more
information, see [Storage for the Root Device][1].

[1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#storage-for-the-root-device
@return [String]

@!attribute [rw] agent_version

The default AWS OpsWorks Stacks agent version. You have the
following options:

* Auto-update - Set this parameter to `LATEST`. AWS OpsWorks Stacks
  automatically installs new agent versions on the stack's
  instances as soon as they are available.

* Fixed version - Set this parameter to your preferred agent
  version. To update the agent version, you must edit the stack
  configuration and specify a new version. AWS OpsWorks Stacks then
  automatically installs that version on the stack's instances.

The default setting is the most recent release of the agent. To
specify an agent version, you must use the complete version number,
not the abbreviated number shown on the console. For a list of
available agent version numbers, call DescribeAgentVersions.
AgentVersion cannot be set to Chef 12.2.

<note markdown="1"> You can also specify an agent version when you create or update an
instance, which overrides the stack's default setting.

 </note>
@return [String]

@see docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CreateStackRequest AWS API Documentation

Constants

SENSITIVE