aws_sdk_opsworks/operation/create_stack/_create_stack_input.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
5pub struct CreateStackInput {
6 /// <p>The stack name. Stack names can be a maximum of 64 characters.</p>
7 pub name: ::std::option::Option<::std::string::String>,
8 /// <p>The stack's Amazon Web Services Region, such as <code>ap-south-1</code>. For more information about Amazon Web Services Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html">Regions and Endpoints</a>.</p><note>
9 /// <p>In the CLI, this API maps to the <code>--stack-region</code> parameter. If the <code>--stack-region</code> parameter and the CLI common parameter <code>--region</code> are set to the same value, the stack uses a <i>regional</i> endpoint. If the <code>--stack-region</code> parameter is not set, but the CLI <code>--region</code> parameter is, this also results in a stack with a <i>regional</i> endpoint. However, if the <code>--region</code> parameter is set to <code>us-east-1</code>, and the <code>--stack-region</code> parameter is set to one of the following, then the stack uses a legacy or <i>classic</i> region: <code>us-west-1, us-west-2, sa-east-1, eu-central-1, eu-west-1, ap-northeast-1, ap-southeast-1, ap-southeast-2</code>. In this case, the actual API endpoint of the stack is in <code>us-east-1</code>. Only the preceding regions are supported as classic regions in the <code>us-east-1</code> API endpoint. Because it is a best practice to choose the regional endpoint that is closest to where you manage Amazon Web Services, we recommend that you use regional endpoints for new stacks. The CLI common <code>--region</code> parameter always specifies a regional API endpoint; it cannot be used to specify a classic OpsWorks Stacks region.</p>
10 /// </note>
11 pub region: ::std::option::Option<::std::string::String>,
12 /// <p>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.</p>
13 /// <ul>
14 /// <li>
15 /// <p>If your account supports EC2-Classic, the default value is <code>no VPC</code>.</p></li>
16 /// <li>
17 /// <p>If your account does not support EC2-Classic, the default value is the default VPC for the specified region.</p></li>
18 /// </ul>
19 /// <p>If the VPC ID corresponds to a default VPC and you have specified either the <code>DefaultAvailabilityZone</code> or the <code>DefaultSubnetId</code> parameter only, OpsWorks Stacks infers the value of the other parameter. If you specify neither parameter, OpsWorks Stacks sets these parameters to the first valid Availability Zone for the specified region and the corresponding default VPC subnet ID, respectively.</p>
20 /// <p>If you specify a nondefault VPC ID, note the following:</p>
21 /// <ul>
22 /// <li>
23 /// <p>It must belong to a VPC in your account that is in the specified region.</p></li>
24 /// <li>
25 /// <p>You must specify a value for <code>DefaultSubnetId</code>.</p></li>
26 /// </ul>
27 /// <p>For more information about how to use OpsWorks Stacks with a VPC, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-vpc.html">Running a Stack in a VPC</a>. For more information about default VPC and EC2-Classic, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported Platforms</a>.</p>
28 pub vpc_id: ::std::option::Option<::std::string::String>,
29 /// <p>One or more user-defined key-value pairs to be added to the stack attributes.</p>
30 pub attributes: ::std::option::Option<::std::collections::HashMap<crate::types::StackAttributesKeys, ::std::string::String>>,
31 /// <p>The stack's IAM role, which allows OpsWorks Stacks to work with Amazon Web Services 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 <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>.</p>
32 pub service_role_arn: ::std::option::Option<::std::string::String>,
33 /// <p>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 <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>.</p>
34 pub default_instance_profile_arn: ::std::option::Option<::std::string::String>,
35 /// <p>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.</p>
36 /// <ul>
37 /// <li>
38 /// <p>A supported Linux operating system: An Amazon Linux version, such as <code>Amazon Linux 2</code>, <code>Amazon Linux 2018.03</code>, <code>Amazon Linux 2017.09</code>, <code>Amazon Linux 2017.03</code>, <code>Amazon Linux 2016.09</code>, <code>Amazon Linux 2016.03</code>, <code>Amazon Linux 2015.09</code>, or <code>Amazon Linux 2015.03</code>.</p></li>
39 /// <li>
40 /// <p>A supported Ubuntu operating system, such as <code>Ubuntu 18.04 LTS</code>, <code>Ubuntu 16.04 LTS</code>, <code>Ubuntu 14.04 LTS</code>, or <code>Ubuntu 12.04 LTS</code>.</p></li>
41 /// <li>
42 /// <p><code>CentOS Linux 7</code></p></li>
43 /// <li>
44 /// <p><code>Red Hat Enterprise Linux 7</code></p></li>
45 /// <li>
46 /// <p>A supported Windows operating system, such as <code>Microsoft Windows Server 2012 R2 Base</code>, <code>Microsoft Windows Server 2012 R2 with SQL Server Express</code>, <code>Microsoft Windows Server 2012 R2 with SQL Server Standard</code>, or <code>Microsoft Windows Server 2012 R2 with SQL Server Web</code>.</p></li>
47 /// <li>
48 /// <p>A custom AMI: <code>Custom</code>. You specify the custom AMI you want to use when you create instances. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html"> Using Custom AMIs</a>.</p></li>
49 /// </ul>
50 /// <p>The default option is the current Amazon Linux version. Not all operating systems are supported with all versions of Chef. For more information about supported operating systems, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html">OpsWorks Stacks Operating Systems</a>.</p>
51 pub default_os: ::std::option::Option<::std::string::String>,
52 /// <p>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, <code>HostnameTheme</code> is set to <code>Layer_Dependent</code>, which creates host names by appending integers to the layer's short name. The other themes are:</p>
53 /// <ul>
54 /// <li>
55 /// <p><code>Baked_Goods</code></p></li>
56 /// <li>
57 /// <p><code>Clouds</code></p></li>
58 /// <li>
59 /// <p><code>Europe_Cities</code></p></li>
60 /// <li>
61 /// <p><code>Fruits</code></p></li>
62 /// <li>
63 /// <p><code>Greek_Deities_and_Titans</code></p></li>
64 /// <li>
65 /// <p><code>Legendary_creatures_from_Japan</code></p></li>
66 /// <li>
67 /// <p><code>Planets_and_Moons</code></p></li>
68 /// <li>
69 /// <p><code>Roman_Deities</code></p></li>
70 /// <li>
71 /// <p><code>Scottish_Islands</code></p></li>
72 /// <li>
73 /// <p><code>US_Cities</code></p></li>
74 /// <li>
75 /// <p><code>Wild_Cats</code></p></li>
76 /// </ul>
77 /// <p>To obtain a generated host name, call <code>GetHostNameSuggestion</code>, which returns a host name based on the current theme.</p>
78 pub hostname_theme: ::std::option::Option<::std::string::String>,
79 /// <p>The stack's default Availability Zone, which must be in the specified region. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html">Regions and Endpoints</a>. If you also specify a value for <code>DefaultSubnetId</code>, the subnet must be in the same zone. For more information, see the <code>VpcId</code> parameter description.</p>
80 pub default_availability_zone: ::std::option::Option<::std::string::String>,
81 /// <p>The stack's default VPC subnet ID. This parameter is required if you specify a value for the <code>VpcId</code> parameter. All instances are launched into this subnet unless you specify otherwise when you create the instance. If you also specify a value for <code>DefaultAvailabilityZone</code>, the subnet must be in that zone. For information on default values and when this parameter is required, see the <code>VpcId</code> parameter description.</p>
82 pub default_subnet_id: ::std::option::Option<::std::string::String>,
83 /// <p>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:</p>
84 /// <p><code>"{\"key1\": \"value1\", \"key2\": \"value2\",...}"</code></p>
85 /// <p>For more information about custom JSON, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html">Use Custom JSON to Modify the Stack Configuration Attributes</a>.</p>
86 pub custom_json: ::std::option::Option<::std::string::String>,
87 /// <p>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.</p>
88 pub configuration_manager: ::std::option::Option<crate::types::StackConfigurationManager>,
89 /// <p>A <code>ChefConfiguration</code> object that specifies whether to enable Berkshelf and the Berkshelf version on Chef 11.10 stacks. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.</p>
90 pub chef_configuration: ::std::option::Option<crate::types::ChefConfiguration>,
91 /// <p>Whether the stack uses custom cookbooks.</p>
92 pub use_custom_cookbooks: ::std::option::Option<bool>,
93 /// <p>Whether to associate the OpsWorks Stacks built-in security groups with the stack's layers.</p>
94 /// <p>OpsWorks Stacks provides a standard set of built-in security groups, one for each layer, which are associated with layers by default. With <code>UseOpsworksSecurityGroups</code> you can instead provide your own custom security groups. <code>UseOpsworksSecurityGroups</code> has the following settings:</p>
95 /// <ul>
96 /// <li>
97 /// <p>True - 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.</p></li>
98 /// <li>
99 /// <p>False - 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.</p></li>
100 /// </ul>
101 /// <p>For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.</p>
102 pub use_opsworks_security_groups: ::std::option::Option<bool>,
103 /// <p>Contains the information required to retrieve an app or cookbook from a repository. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html">Adding Apps</a> or <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook.html">Cookbooks and Recipes</a>.</p>
104 pub custom_cookbooks_source: ::std::option::Option<crate::types::Source>,
105 /// <p>A default Amazon EC2 key pair name. The default value is none. If you specify a key pair name, 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 <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-ssh.html"> Using SSH to Communicate with an Instance</a> and <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/security-ssh-access.html"> Managing SSH Access</a>. You can override this setting by specifying a different key pair, or no key pair, when you <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-add.html"> create an instance</a>.</p>
106 pub default_ssh_key_name: ::std::option::Option<::std::string::String>,
107 /// <p>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 <code>instance-store</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#storage-for-the-root-device">Storage for the Root Device</a>.</p>
108 pub default_root_device_type: ::std::option::Option<crate::types::RootDeviceType>,
109 /// <p>The default OpsWorks Stacks agent version. You have the following options:</p>
110 /// <ul>
111 /// <li>
112 /// <p>Auto-update - Set this parameter to <code>LATEST</code>. OpsWorks Stacks automatically installs new agent versions on the stack's instances as soon as they are available.</p></li>
113 /// <li>
114 /// <p>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. OpsWorks Stacks installs that version on the stack's instances.</p></li>
115 /// </ul>
116 /// <p>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 <code>DescribeAgentVersions</code>. AgentVersion cannot be set to Chef 12.2.</p><note>
117 /// <p>You can also specify an agent version when you create or update an instance, which overrides the stack's default setting.</p>
118 /// </note>
119 pub agent_version: ::std::option::Option<::std::string::String>,
120}
121impl CreateStackInput {
122 /// <p>The stack name. Stack names can be a maximum of 64 characters.</p>
123 pub fn name(&self) -> ::std::option::Option<&str> {
124 self.name.as_deref()
125 }
126 /// <p>The stack's Amazon Web Services Region, such as <code>ap-south-1</code>. For more information about Amazon Web Services Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html">Regions and Endpoints</a>.</p><note>
127 /// <p>In the CLI, this API maps to the <code>--stack-region</code> parameter. If the <code>--stack-region</code> parameter and the CLI common parameter <code>--region</code> are set to the same value, the stack uses a <i>regional</i> endpoint. If the <code>--stack-region</code> parameter is not set, but the CLI <code>--region</code> parameter is, this also results in a stack with a <i>regional</i> endpoint. However, if the <code>--region</code> parameter is set to <code>us-east-1</code>, and the <code>--stack-region</code> parameter is set to one of the following, then the stack uses a legacy or <i>classic</i> region: <code>us-west-1, us-west-2, sa-east-1, eu-central-1, eu-west-1, ap-northeast-1, ap-southeast-1, ap-southeast-2</code>. In this case, the actual API endpoint of the stack is in <code>us-east-1</code>. Only the preceding regions are supported as classic regions in the <code>us-east-1</code> API endpoint. Because it is a best practice to choose the regional endpoint that is closest to where you manage Amazon Web Services, we recommend that you use regional endpoints for new stacks. The CLI common <code>--region</code> parameter always specifies a regional API endpoint; it cannot be used to specify a classic OpsWorks Stacks region.</p>
128 /// </note>
129 pub fn region(&self) -> ::std::option::Option<&str> {
130 self.region.as_deref()
131 }
132 /// <p>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.</p>
133 /// <ul>
134 /// <li>
135 /// <p>If your account supports EC2-Classic, the default value is <code>no VPC</code>.</p></li>
136 /// <li>
137 /// <p>If your account does not support EC2-Classic, the default value is the default VPC for the specified region.</p></li>
138 /// </ul>
139 /// <p>If the VPC ID corresponds to a default VPC and you have specified either the <code>DefaultAvailabilityZone</code> or the <code>DefaultSubnetId</code> parameter only, OpsWorks Stacks infers the value of the other parameter. If you specify neither parameter, OpsWorks Stacks sets these parameters to the first valid Availability Zone for the specified region and the corresponding default VPC subnet ID, respectively.</p>
140 /// <p>If you specify a nondefault VPC ID, note the following:</p>
141 /// <ul>
142 /// <li>
143 /// <p>It must belong to a VPC in your account that is in the specified region.</p></li>
144 /// <li>
145 /// <p>You must specify a value for <code>DefaultSubnetId</code>.</p></li>
146 /// </ul>
147 /// <p>For more information about how to use OpsWorks Stacks with a VPC, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-vpc.html">Running a Stack in a VPC</a>. For more information about default VPC and EC2-Classic, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported Platforms</a>.</p>
148 pub fn vpc_id(&self) -> ::std::option::Option<&str> {
149 self.vpc_id.as_deref()
150 }
151 /// <p>One or more user-defined key-value pairs to be added to the stack attributes.</p>
152 pub fn attributes(&self) -> ::std::option::Option<&::std::collections::HashMap<crate::types::StackAttributesKeys, ::std::string::String>> {
153 self.attributes.as_ref()
154 }
155 /// <p>The stack's IAM role, which allows OpsWorks Stacks to work with Amazon Web Services 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 <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>.</p>
156 pub fn service_role_arn(&self) -> ::std::option::Option<&str> {
157 self.service_role_arn.as_deref()
158 }
159 /// <p>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 <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>.</p>
160 pub fn default_instance_profile_arn(&self) -> ::std::option::Option<&str> {
161 self.default_instance_profile_arn.as_deref()
162 }
163 /// <p>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.</p>
164 /// <ul>
165 /// <li>
166 /// <p>A supported Linux operating system: An Amazon Linux version, such as <code>Amazon Linux 2</code>, <code>Amazon Linux 2018.03</code>, <code>Amazon Linux 2017.09</code>, <code>Amazon Linux 2017.03</code>, <code>Amazon Linux 2016.09</code>, <code>Amazon Linux 2016.03</code>, <code>Amazon Linux 2015.09</code>, or <code>Amazon Linux 2015.03</code>.</p></li>
167 /// <li>
168 /// <p>A supported Ubuntu operating system, such as <code>Ubuntu 18.04 LTS</code>, <code>Ubuntu 16.04 LTS</code>, <code>Ubuntu 14.04 LTS</code>, or <code>Ubuntu 12.04 LTS</code>.</p></li>
169 /// <li>
170 /// <p><code>CentOS Linux 7</code></p></li>
171 /// <li>
172 /// <p><code>Red Hat Enterprise Linux 7</code></p></li>
173 /// <li>
174 /// <p>A supported Windows operating system, such as <code>Microsoft Windows Server 2012 R2 Base</code>, <code>Microsoft Windows Server 2012 R2 with SQL Server Express</code>, <code>Microsoft Windows Server 2012 R2 with SQL Server Standard</code>, or <code>Microsoft Windows Server 2012 R2 with SQL Server Web</code>.</p></li>
175 /// <li>
176 /// <p>A custom AMI: <code>Custom</code>. You specify the custom AMI you want to use when you create instances. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html"> Using Custom AMIs</a>.</p></li>
177 /// </ul>
178 /// <p>The default option is the current Amazon Linux version. Not all operating systems are supported with all versions of Chef. For more information about supported operating systems, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html">OpsWorks Stacks Operating Systems</a>.</p>
179 pub fn default_os(&self) -> ::std::option::Option<&str> {
180 self.default_os.as_deref()
181 }
182 /// <p>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, <code>HostnameTheme</code> is set to <code>Layer_Dependent</code>, which creates host names by appending integers to the layer's short name. The other themes are:</p>
183 /// <ul>
184 /// <li>
185 /// <p><code>Baked_Goods</code></p></li>
186 /// <li>
187 /// <p><code>Clouds</code></p></li>
188 /// <li>
189 /// <p><code>Europe_Cities</code></p></li>
190 /// <li>
191 /// <p><code>Fruits</code></p></li>
192 /// <li>
193 /// <p><code>Greek_Deities_and_Titans</code></p></li>
194 /// <li>
195 /// <p><code>Legendary_creatures_from_Japan</code></p></li>
196 /// <li>
197 /// <p><code>Planets_and_Moons</code></p></li>
198 /// <li>
199 /// <p><code>Roman_Deities</code></p></li>
200 /// <li>
201 /// <p><code>Scottish_Islands</code></p></li>
202 /// <li>
203 /// <p><code>US_Cities</code></p></li>
204 /// <li>
205 /// <p><code>Wild_Cats</code></p></li>
206 /// </ul>
207 /// <p>To obtain a generated host name, call <code>GetHostNameSuggestion</code>, which returns a host name based on the current theme.</p>
208 pub fn hostname_theme(&self) -> ::std::option::Option<&str> {
209 self.hostname_theme.as_deref()
210 }
211 /// <p>The stack's default Availability Zone, which must be in the specified region. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html">Regions and Endpoints</a>. If you also specify a value for <code>DefaultSubnetId</code>, the subnet must be in the same zone. For more information, see the <code>VpcId</code> parameter description.</p>
212 pub fn default_availability_zone(&self) -> ::std::option::Option<&str> {
213 self.default_availability_zone.as_deref()
214 }
215 /// <p>The stack's default VPC subnet ID. This parameter is required if you specify a value for the <code>VpcId</code> parameter. All instances are launched into this subnet unless you specify otherwise when you create the instance. If you also specify a value for <code>DefaultAvailabilityZone</code>, the subnet must be in that zone. For information on default values and when this parameter is required, see the <code>VpcId</code> parameter description.</p>
216 pub fn default_subnet_id(&self) -> ::std::option::Option<&str> {
217 self.default_subnet_id.as_deref()
218 }
219 /// <p>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:</p>
220 /// <p><code>"{\"key1\": \"value1\", \"key2\": \"value2\",...}"</code></p>
221 /// <p>For more information about custom JSON, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html">Use Custom JSON to Modify the Stack Configuration Attributes</a>.</p>
222 pub fn custom_json(&self) -> ::std::option::Option<&str> {
223 self.custom_json.as_deref()
224 }
225 /// <p>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.</p>
226 pub fn configuration_manager(&self) -> ::std::option::Option<&crate::types::StackConfigurationManager> {
227 self.configuration_manager.as_ref()
228 }
229 /// <p>A <code>ChefConfiguration</code> object that specifies whether to enable Berkshelf and the Berkshelf version on Chef 11.10 stacks. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.</p>
230 pub fn chef_configuration(&self) -> ::std::option::Option<&crate::types::ChefConfiguration> {
231 self.chef_configuration.as_ref()
232 }
233 /// <p>Whether the stack uses custom cookbooks.</p>
234 pub fn use_custom_cookbooks(&self) -> ::std::option::Option<bool> {
235 self.use_custom_cookbooks
236 }
237 /// <p>Whether to associate the OpsWorks Stacks built-in security groups with the stack's layers.</p>
238 /// <p>OpsWorks Stacks provides a standard set of built-in security groups, one for each layer, which are associated with layers by default. With <code>UseOpsworksSecurityGroups</code> you can instead provide your own custom security groups. <code>UseOpsworksSecurityGroups</code> has the following settings:</p>
239 /// <ul>
240 /// <li>
241 /// <p>True - 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.</p></li>
242 /// <li>
243 /// <p>False - 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.</p></li>
244 /// </ul>
245 /// <p>For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.</p>
246 pub fn use_opsworks_security_groups(&self) -> ::std::option::Option<bool> {
247 self.use_opsworks_security_groups
248 }
249 /// <p>Contains the information required to retrieve an app or cookbook from a repository. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html">Adding Apps</a> or <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook.html">Cookbooks and Recipes</a>.</p>
250 pub fn custom_cookbooks_source(&self) -> ::std::option::Option<&crate::types::Source> {
251 self.custom_cookbooks_source.as_ref()
252 }
253 /// <p>A default Amazon EC2 key pair name. The default value is none. If you specify a key pair name, 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 <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-ssh.html"> Using SSH to Communicate with an Instance</a> and <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/security-ssh-access.html"> Managing SSH Access</a>. You can override this setting by specifying a different key pair, or no key pair, when you <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-add.html"> create an instance</a>.</p>
254 pub fn default_ssh_key_name(&self) -> ::std::option::Option<&str> {
255 self.default_ssh_key_name.as_deref()
256 }
257 /// <p>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 <code>instance-store</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#storage-for-the-root-device">Storage for the Root Device</a>.</p>
258 pub fn default_root_device_type(&self) -> ::std::option::Option<&crate::types::RootDeviceType> {
259 self.default_root_device_type.as_ref()
260 }
261 /// <p>The default OpsWorks Stacks agent version. You have the following options:</p>
262 /// <ul>
263 /// <li>
264 /// <p>Auto-update - Set this parameter to <code>LATEST</code>. OpsWorks Stacks automatically installs new agent versions on the stack's instances as soon as they are available.</p></li>
265 /// <li>
266 /// <p>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. OpsWorks Stacks installs that version on the stack's instances.</p></li>
267 /// </ul>
268 /// <p>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 <code>DescribeAgentVersions</code>. AgentVersion cannot be set to Chef 12.2.</p><note>
269 /// <p>You can also specify an agent version when you create or update an instance, which overrides the stack's default setting.</p>
270 /// </note>
271 pub fn agent_version(&self) -> ::std::option::Option<&str> {
272 self.agent_version.as_deref()
273 }
274}
275impl CreateStackInput {
276 /// Creates a new builder-style object to manufacture [`CreateStackInput`](crate::operation::create_stack::CreateStackInput).
277 pub fn builder() -> crate::operation::create_stack::builders::CreateStackInputBuilder {
278 crate::operation::create_stack::builders::CreateStackInputBuilder::default()
279 }
280}
281
282/// A builder for [`CreateStackInput`](crate::operation::create_stack::CreateStackInput).
283#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
284#[non_exhaustive]
285pub struct CreateStackInputBuilder {
286 pub(crate) name: ::std::option::Option<::std::string::String>,
287 pub(crate) region: ::std::option::Option<::std::string::String>,
288 pub(crate) vpc_id: ::std::option::Option<::std::string::String>,
289 pub(crate) attributes: ::std::option::Option<::std::collections::HashMap<crate::types::StackAttributesKeys, ::std::string::String>>,
290 pub(crate) service_role_arn: ::std::option::Option<::std::string::String>,
291 pub(crate) default_instance_profile_arn: ::std::option::Option<::std::string::String>,
292 pub(crate) default_os: ::std::option::Option<::std::string::String>,
293 pub(crate) hostname_theme: ::std::option::Option<::std::string::String>,
294 pub(crate) default_availability_zone: ::std::option::Option<::std::string::String>,
295 pub(crate) default_subnet_id: ::std::option::Option<::std::string::String>,
296 pub(crate) custom_json: ::std::option::Option<::std::string::String>,
297 pub(crate) configuration_manager: ::std::option::Option<crate::types::StackConfigurationManager>,
298 pub(crate) chef_configuration: ::std::option::Option<crate::types::ChefConfiguration>,
299 pub(crate) use_custom_cookbooks: ::std::option::Option<bool>,
300 pub(crate) use_opsworks_security_groups: ::std::option::Option<bool>,
301 pub(crate) custom_cookbooks_source: ::std::option::Option<crate::types::Source>,
302 pub(crate) default_ssh_key_name: ::std::option::Option<::std::string::String>,
303 pub(crate) default_root_device_type: ::std::option::Option<crate::types::RootDeviceType>,
304 pub(crate) agent_version: ::std::option::Option<::std::string::String>,
305}
306impl CreateStackInputBuilder {
307 /// <p>The stack name. Stack names can be a maximum of 64 characters.</p>
308 /// This field is required.
309 pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
310 self.name = ::std::option::Option::Some(input.into());
311 self
312 }
313 /// <p>The stack name. Stack names can be a maximum of 64 characters.</p>
314 pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
315 self.name = input;
316 self
317 }
318 /// <p>The stack name. Stack names can be a maximum of 64 characters.</p>
319 pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
320 &self.name
321 }
322 /// <p>The stack's Amazon Web Services Region, such as <code>ap-south-1</code>. For more information about Amazon Web Services Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html">Regions and Endpoints</a>.</p><note>
323 /// <p>In the CLI, this API maps to the <code>--stack-region</code> parameter. If the <code>--stack-region</code> parameter and the CLI common parameter <code>--region</code> are set to the same value, the stack uses a <i>regional</i> endpoint. If the <code>--stack-region</code> parameter is not set, but the CLI <code>--region</code> parameter is, this also results in a stack with a <i>regional</i> endpoint. However, if the <code>--region</code> parameter is set to <code>us-east-1</code>, and the <code>--stack-region</code> parameter is set to one of the following, then the stack uses a legacy or <i>classic</i> region: <code>us-west-1, us-west-2, sa-east-1, eu-central-1, eu-west-1, ap-northeast-1, ap-southeast-1, ap-southeast-2</code>. In this case, the actual API endpoint of the stack is in <code>us-east-1</code>. Only the preceding regions are supported as classic regions in the <code>us-east-1</code> API endpoint. Because it is a best practice to choose the regional endpoint that is closest to where you manage Amazon Web Services, we recommend that you use regional endpoints for new stacks. The CLI common <code>--region</code> parameter always specifies a regional API endpoint; it cannot be used to specify a classic OpsWorks Stacks region.</p>
324 /// </note>
325 /// This field is required.
326 pub fn region(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
327 self.region = ::std::option::Option::Some(input.into());
328 self
329 }
330 /// <p>The stack's Amazon Web Services Region, such as <code>ap-south-1</code>. For more information about Amazon Web Services Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html">Regions and Endpoints</a>.</p><note>
331 /// <p>In the CLI, this API maps to the <code>--stack-region</code> parameter. If the <code>--stack-region</code> parameter and the CLI common parameter <code>--region</code> are set to the same value, the stack uses a <i>regional</i> endpoint. If the <code>--stack-region</code> parameter is not set, but the CLI <code>--region</code> parameter is, this also results in a stack with a <i>regional</i> endpoint. However, if the <code>--region</code> parameter is set to <code>us-east-1</code>, and the <code>--stack-region</code> parameter is set to one of the following, then the stack uses a legacy or <i>classic</i> region: <code>us-west-1, us-west-2, sa-east-1, eu-central-1, eu-west-1, ap-northeast-1, ap-southeast-1, ap-southeast-2</code>. In this case, the actual API endpoint of the stack is in <code>us-east-1</code>. Only the preceding regions are supported as classic regions in the <code>us-east-1</code> API endpoint. Because it is a best practice to choose the regional endpoint that is closest to where you manage Amazon Web Services, we recommend that you use regional endpoints for new stacks. The CLI common <code>--region</code> parameter always specifies a regional API endpoint; it cannot be used to specify a classic OpsWorks Stacks region.</p>
332 /// </note>
333 pub fn set_region(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
334 self.region = input;
335 self
336 }
337 /// <p>The stack's Amazon Web Services Region, such as <code>ap-south-1</code>. For more information about Amazon Web Services Regions, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html">Regions and Endpoints</a>.</p><note>
338 /// <p>In the CLI, this API maps to the <code>--stack-region</code> parameter. If the <code>--stack-region</code> parameter and the CLI common parameter <code>--region</code> are set to the same value, the stack uses a <i>regional</i> endpoint. If the <code>--stack-region</code> parameter is not set, but the CLI <code>--region</code> parameter is, this also results in a stack with a <i>regional</i> endpoint. However, if the <code>--region</code> parameter is set to <code>us-east-1</code>, and the <code>--stack-region</code> parameter is set to one of the following, then the stack uses a legacy or <i>classic</i> region: <code>us-west-1, us-west-2, sa-east-1, eu-central-1, eu-west-1, ap-northeast-1, ap-southeast-1, ap-southeast-2</code>. In this case, the actual API endpoint of the stack is in <code>us-east-1</code>. Only the preceding regions are supported as classic regions in the <code>us-east-1</code> API endpoint. Because it is a best practice to choose the regional endpoint that is closest to where you manage Amazon Web Services, we recommend that you use regional endpoints for new stacks. The CLI common <code>--region</code> parameter always specifies a regional API endpoint; it cannot be used to specify a classic OpsWorks Stacks region.</p>
339 /// </note>
340 pub fn get_region(&self) -> &::std::option::Option<::std::string::String> {
341 &self.region
342 }
343 /// <p>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.</p>
344 /// <ul>
345 /// <li>
346 /// <p>If your account supports EC2-Classic, the default value is <code>no VPC</code>.</p></li>
347 /// <li>
348 /// <p>If your account does not support EC2-Classic, the default value is the default VPC for the specified region.</p></li>
349 /// </ul>
350 /// <p>If the VPC ID corresponds to a default VPC and you have specified either the <code>DefaultAvailabilityZone</code> or the <code>DefaultSubnetId</code> parameter only, OpsWorks Stacks infers the value of the other parameter. If you specify neither parameter, OpsWorks Stacks sets these parameters to the first valid Availability Zone for the specified region and the corresponding default VPC subnet ID, respectively.</p>
351 /// <p>If you specify a nondefault VPC ID, note the following:</p>
352 /// <ul>
353 /// <li>
354 /// <p>It must belong to a VPC in your account that is in the specified region.</p></li>
355 /// <li>
356 /// <p>You must specify a value for <code>DefaultSubnetId</code>.</p></li>
357 /// </ul>
358 /// <p>For more information about how to use OpsWorks Stacks with a VPC, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-vpc.html">Running a Stack in a VPC</a>. For more information about default VPC and EC2-Classic, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported Platforms</a>.</p>
359 pub fn vpc_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
360 self.vpc_id = ::std::option::Option::Some(input.into());
361 self
362 }
363 /// <p>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.</p>
364 /// <ul>
365 /// <li>
366 /// <p>If your account supports EC2-Classic, the default value is <code>no VPC</code>.</p></li>
367 /// <li>
368 /// <p>If your account does not support EC2-Classic, the default value is the default VPC for the specified region.</p></li>
369 /// </ul>
370 /// <p>If the VPC ID corresponds to a default VPC and you have specified either the <code>DefaultAvailabilityZone</code> or the <code>DefaultSubnetId</code> parameter only, OpsWorks Stacks infers the value of the other parameter. If you specify neither parameter, OpsWorks Stacks sets these parameters to the first valid Availability Zone for the specified region and the corresponding default VPC subnet ID, respectively.</p>
371 /// <p>If you specify a nondefault VPC ID, note the following:</p>
372 /// <ul>
373 /// <li>
374 /// <p>It must belong to a VPC in your account that is in the specified region.</p></li>
375 /// <li>
376 /// <p>You must specify a value for <code>DefaultSubnetId</code>.</p></li>
377 /// </ul>
378 /// <p>For more information about how to use OpsWorks Stacks with a VPC, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-vpc.html">Running a Stack in a VPC</a>. For more information about default VPC and EC2-Classic, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported Platforms</a>.</p>
379 pub fn set_vpc_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
380 self.vpc_id = input;
381 self
382 }
383 /// <p>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.</p>
384 /// <ul>
385 /// <li>
386 /// <p>If your account supports EC2-Classic, the default value is <code>no VPC</code>.</p></li>
387 /// <li>
388 /// <p>If your account does not support EC2-Classic, the default value is the default VPC for the specified region.</p></li>
389 /// </ul>
390 /// <p>If the VPC ID corresponds to a default VPC and you have specified either the <code>DefaultAvailabilityZone</code> or the <code>DefaultSubnetId</code> parameter only, OpsWorks Stacks infers the value of the other parameter. If you specify neither parameter, OpsWorks Stacks sets these parameters to the first valid Availability Zone for the specified region and the corresponding default VPC subnet ID, respectively.</p>
391 /// <p>If you specify a nondefault VPC ID, note the following:</p>
392 /// <ul>
393 /// <li>
394 /// <p>It must belong to a VPC in your account that is in the specified region.</p></li>
395 /// <li>
396 /// <p>You must specify a value for <code>DefaultSubnetId</code>.</p></li>
397 /// </ul>
398 /// <p>For more information about how to use OpsWorks Stacks with a VPC, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-vpc.html">Running a Stack in a VPC</a>. For more information about default VPC and EC2-Classic, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html">Supported Platforms</a>.</p>
399 pub fn get_vpc_id(&self) -> &::std::option::Option<::std::string::String> {
400 &self.vpc_id
401 }
402 /// Adds a key-value pair to `attributes`.
403 ///
404 /// To override the contents of this collection use [`set_attributes`](Self::set_attributes).
405 ///
406 /// <p>One or more user-defined key-value pairs to be added to the stack attributes.</p>
407 pub fn attributes(mut self, k: crate::types::StackAttributesKeys, v: impl ::std::convert::Into<::std::string::String>) -> Self {
408 let mut hash_map = self.attributes.unwrap_or_default();
409 hash_map.insert(k, v.into());
410 self.attributes = ::std::option::Option::Some(hash_map);
411 self
412 }
413 /// <p>One or more user-defined key-value pairs to be added to the stack attributes.</p>
414 pub fn set_attributes(
415 mut self,
416 input: ::std::option::Option<::std::collections::HashMap<crate::types::StackAttributesKeys, ::std::string::String>>,
417 ) -> Self {
418 self.attributes = input;
419 self
420 }
421 /// <p>One or more user-defined key-value pairs to be added to the stack attributes.</p>
422 pub fn get_attributes(&self) -> &::std::option::Option<::std::collections::HashMap<crate::types::StackAttributesKeys, ::std::string::String>> {
423 &self.attributes
424 }
425 /// <p>The stack's IAM role, which allows OpsWorks Stacks to work with Amazon Web Services 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 <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>.</p>
426 /// This field is required.
427 pub fn service_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
428 self.service_role_arn = ::std::option::Option::Some(input.into());
429 self
430 }
431 /// <p>The stack's IAM role, which allows OpsWorks Stacks to work with Amazon Web Services 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 <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>.</p>
432 pub fn set_service_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
433 self.service_role_arn = input;
434 self
435 }
436 /// <p>The stack's IAM role, which allows OpsWorks Stacks to work with Amazon Web Services 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 <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>.</p>
437 pub fn get_service_role_arn(&self) -> &::std::option::Option<::std::string::String> {
438 &self.service_role_arn
439 }
440 /// <p>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 <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>.</p>
441 /// This field is required.
442 pub fn default_instance_profile_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
443 self.default_instance_profile_arn = ::std::option::Option::Some(input.into());
444 self
445 }
446 /// <p>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 <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>.</p>
447 pub fn set_default_instance_profile_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
448 self.default_instance_profile_arn = input;
449 self
450 }
451 /// <p>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 <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>.</p>
452 pub fn get_default_instance_profile_arn(&self) -> &::std::option::Option<::std::string::String> {
453 &self.default_instance_profile_arn
454 }
455 /// <p>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.</p>
456 /// <ul>
457 /// <li>
458 /// <p>A supported Linux operating system: An Amazon Linux version, such as <code>Amazon Linux 2</code>, <code>Amazon Linux 2018.03</code>, <code>Amazon Linux 2017.09</code>, <code>Amazon Linux 2017.03</code>, <code>Amazon Linux 2016.09</code>, <code>Amazon Linux 2016.03</code>, <code>Amazon Linux 2015.09</code>, or <code>Amazon Linux 2015.03</code>.</p></li>
459 /// <li>
460 /// <p>A supported Ubuntu operating system, such as <code>Ubuntu 18.04 LTS</code>, <code>Ubuntu 16.04 LTS</code>, <code>Ubuntu 14.04 LTS</code>, or <code>Ubuntu 12.04 LTS</code>.</p></li>
461 /// <li>
462 /// <p><code>CentOS Linux 7</code></p></li>
463 /// <li>
464 /// <p><code>Red Hat Enterprise Linux 7</code></p></li>
465 /// <li>
466 /// <p>A supported Windows operating system, such as <code>Microsoft Windows Server 2012 R2 Base</code>, <code>Microsoft Windows Server 2012 R2 with SQL Server Express</code>, <code>Microsoft Windows Server 2012 R2 with SQL Server Standard</code>, or <code>Microsoft Windows Server 2012 R2 with SQL Server Web</code>.</p></li>
467 /// <li>
468 /// <p>A custom AMI: <code>Custom</code>. You specify the custom AMI you want to use when you create instances. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html"> Using Custom AMIs</a>.</p></li>
469 /// </ul>
470 /// <p>The default option is the current Amazon Linux version. Not all operating systems are supported with all versions of Chef. For more information about supported operating systems, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html">OpsWorks Stacks Operating Systems</a>.</p>
471 pub fn default_os(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
472 self.default_os = ::std::option::Option::Some(input.into());
473 self
474 }
475 /// <p>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.</p>
476 /// <ul>
477 /// <li>
478 /// <p>A supported Linux operating system: An Amazon Linux version, such as <code>Amazon Linux 2</code>, <code>Amazon Linux 2018.03</code>, <code>Amazon Linux 2017.09</code>, <code>Amazon Linux 2017.03</code>, <code>Amazon Linux 2016.09</code>, <code>Amazon Linux 2016.03</code>, <code>Amazon Linux 2015.09</code>, or <code>Amazon Linux 2015.03</code>.</p></li>
479 /// <li>
480 /// <p>A supported Ubuntu operating system, such as <code>Ubuntu 18.04 LTS</code>, <code>Ubuntu 16.04 LTS</code>, <code>Ubuntu 14.04 LTS</code>, or <code>Ubuntu 12.04 LTS</code>.</p></li>
481 /// <li>
482 /// <p><code>CentOS Linux 7</code></p></li>
483 /// <li>
484 /// <p><code>Red Hat Enterprise Linux 7</code></p></li>
485 /// <li>
486 /// <p>A supported Windows operating system, such as <code>Microsoft Windows Server 2012 R2 Base</code>, <code>Microsoft Windows Server 2012 R2 with SQL Server Express</code>, <code>Microsoft Windows Server 2012 R2 with SQL Server Standard</code>, or <code>Microsoft Windows Server 2012 R2 with SQL Server Web</code>.</p></li>
487 /// <li>
488 /// <p>A custom AMI: <code>Custom</code>. You specify the custom AMI you want to use when you create instances. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html"> Using Custom AMIs</a>.</p></li>
489 /// </ul>
490 /// <p>The default option is the current Amazon Linux version. Not all operating systems are supported with all versions of Chef. For more information about supported operating systems, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html">OpsWorks Stacks Operating Systems</a>.</p>
491 pub fn set_default_os(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
492 self.default_os = input;
493 self
494 }
495 /// <p>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.</p>
496 /// <ul>
497 /// <li>
498 /// <p>A supported Linux operating system: An Amazon Linux version, such as <code>Amazon Linux 2</code>, <code>Amazon Linux 2018.03</code>, <code>Amazon Linux 2017.09</code>, <code>Amazon Linux 2017.03</code>, <code>Amazon Linux 2016.09</code>, <code>Amazon Linux 2016.03</code>, <code>Amazon Linux 2015.09</code>, or <code>Amazon Linux 2015.03</code>.</p></li>
499 /// <li>
500 /// <p>A supported Ubuntu operating system, such as <code>Ubuntu 18.04 LTS</code>, <code>Ubuntu 16.04 LTS</code>, <code>Ubuntu 14.04 LTS</code>, or <code>Ubuntu 12.04 LTS</code>.</p></li>
501 /// <li>
502 /// <p><code>CentOS Linux 7</code></p></li>
503 /// <li>
504 /// <p><code>Red Hat Enterprise Linux 7</code></p></li>
505 /// <li>
506 /// <p>A supported Windows operating system, such as <code>Microsoft Windows Server 2012 R2 Base</code>, <code>Microsoft Windows Server 2012 R2 with SQL Server Express</code>, <code>Microsoft Windows Server 2012 R2 with SQL Server Standard</code>, or <code>Microsoft Windows Server 2012 R2 with SQL Server Web</code>.</p></li>
507 /// <li>
508 /// <p>A custom AMI: <code>Custom</code>. You specify the custom AMI you want to use when you create instances. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html"> Using Custom AMIs</a>.</p></li>
509 /// </ul>
510 /// <p>The default option is the current Amazon Linux version. Not all operating systems are supported with all versions of Chef. For more information about supported operating systems, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-os.html">OpsWorks Stacks Operating Systems</a>.</p>
511 pub fn get_default_os(&self) -> &::std::option::Option<::std::string::String> {
512 &self.default_os
513 }
514 /// <p>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, <code>HostnameTheme</code> is set to <code>Layer_Dependent</code>, which creates host names by appending integers to the layer's short name. The other themes are:</p>
515 /// <ul>
516 /// <li>
517 /// <p><code>Baked_Goods</code></p></li>
518 /// <li>
519 /// <p><code>Clouds</code></p></li>
520 /// <li>
521 /// <p><code>Europe_Cities</code></p></li>
522 /// <li>
523 /// <p><code>Fruits</code></p></li>
524 /// <li>
525 /// <p><code>Greek_Deities_and_Titans</code></p></li>
526 /// <li>
527 /// <p><code>Legendary_creatures_from_Japan</code></p></li>
528 /// <li>
529 /// <p><code>Planets_and_Moons</code></p></li>
530 /// <li>
531 /// <p><code>Roman_Deities</code></p></li>
532 /// <li>
533 /// <p><code>Scottish_Islands</code></p></li>
534 /// <li>
535 /// <p><code>US_Cities</code></p></li>
536 /// <li>
537 /// <p><code>Wild_Cats</code></p></li>
538 /// </ul>
539 /// <p>To obtain a generated host name, call <code>GetHostNameSuggestion</code>, which returns a host name based on the current theme.</p>
540 pub fn hostname_theme(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
541 self.hostname_theme = ::std::option::Option::Some(input.into());
542 self
543 }
544 /// <p>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, <code>HostnameTheme</code> is set to <code>Layer_Dependent</code>, which creates host names by appending integers to the layer's short name. The other themes are:</p>
545 /// <ul>
546 /// <li>
547 /// <p><code>Baked_Goods</code></p></li>
548 /// <li>
549 /// <p><code>Clouds</code></p></li>
550 /// <li>
551 /// <p><code>Europe_Cities</code></p></li>
552 /// <li>
553 /// <p><code>Fruits</code></p></li>
554 /// <li>
555 /// <p><code>Greek_Deities_and_Titans</code></p></li>
556 /// <li>
557 /// <p><code>Legendary_creatures_from_Japan</code></p></li>
558 /// <li>
559 /// <p><code>Planets_and_Moons</code></p></li>
560 /// <li>
561 /// <p><code>Roman_Deities</code></p></li>
562 /// <li>
563 /// <p><code>Scottish_Islands</code></p></li>
564 /// <li>
565 /// <p><code>US_Cities</code></p></li>
566 /// <li>
567 /// <p><code>Wild_Cats</code></p></li>
568 /// </ul>
569 /// <p>To obtain a generated host name, call <code>GetHostNameSuggestion</code>, which returns a host name based on the current theme.</p>
570 pub fn set_hostname_theme(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
571 self.hostname_theme = input;
572 self
573 }
574 /// <p>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, <code>HostnameTheme</code> is set to <code>Layer_Dependent</code>, which creates host names by appending integers to the layer's short name. The other themes are:</p>
575 /// <ul>
576 /// <li>
577 /// <p><code>Baked_Goods</code></p></li>
578 /// <li>
579 /// <p><code>Clouds</code></p></li>
580 /// <li>
581 /// <p><code>Europe_Cities</code></p></li>
582 /// <li>
583 /// <p><code>Fruits</code></p></li>
584 /// <li>
585 /// <p><code>Greek_Deities_and_Titans</code></p></li>
586 /// <li>
587 /// <p><code>Legendary_creatures_from_Japan</code></p></li>
588 /// <li>
589 /// <p><code>Planets_and_Moons</code></p></li>
590 /// <li>
591 /// <p><code>Roman_Deities</code></p></li>
592 /// <li>
593 /// <p><code>Scottish_Islands</code></p></li>
594 /// <li>
595 /// <p><code>US_Cities</code></p></li>
596 /// <li>
597 /// <p><code>Wild_Cats</code></p></li>
598 /// </ul>
599 /// <p>To obtain a generated host name, call <code>GetHostNameSuggestion</code>, which returns a host name based on the current theme.</p>
600 pub fn get_hostname_theme(&self) -> &::std::option::Option<::std::string::String> {
601 &self.hostname_theme
602 }
603 /// <p>The stack's default Availability Zone, which must be in the specified region. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html">Regions and Endpoints</a>. If you also specify a value for <code>DefaultSubnetId</code>, the subnet must be in the same zone. For more information, see the <code>VpcId</code> parameter description.</p>
604 pub fn default_availability_zone(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
605 self.default_availability_zone = ::std::option::Option::Some(input.into());
606 self
607 }
608 /// <p>The stack's default Availability Zone, which must be in the specified region. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html">Regions and Endpoints</a>. If you also specify a value for <code>DefaultSubnetId</code>, the subnet must be in the same zone. For more information, see the <code>VpcId</code> parameter description.</p>
609 pub fn set_default_availability_zone(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
610 self.default_availability_zone = input;
611 self
612 }
613 /// <p>The stack's default Availability Zone, which must be in the specified region. For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/rande.html">Regions and Endpoints</a>. If you also specify a value for <code>DefaultSubnetId</code>, the subnet must be in the same zone. For more information, see the <code>VpcId</code> parameter description.</p>
614 pub fn get_default_availability_zone(&self) -> &::std::option::Option<::std::string::String> {
615 &self.default_availability_zone
616 }
617 /// <p>The stack's default VPC subnet ID. This parameter is required if you specify a value for the <code>VpcId</code> parameter. All instances are launched into this subnet unless you specify otherwise when you create the instance. If you also specify a value for <code>DefaultAvailabilityZone</code>, the subnet must be in that zone. For information on default values and when this parameter is required, see the <code>VpcId</code> parameter description.</p>
618 pub fn default_subnet_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
619 self.default_subnet_id = ::std::option::Option::Some(input.into());
620 self
621 }
622 /// <p>The stack's default VPC subnet ID. This parameter is required if you specify a value for the <code>VpcId</code> parameter. All instances are launched into this subnet unless you specify otherwise when you create the instance. If you also specify a value for <code>DefaultAvailabilityZone</code>, the subnet must be in that zone. For information on default values and when this parameter is required, see the <code>VpcId</code> parameter description.</p>
623 pub fn set_default_subnet_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
624 self.default_subnet_id = input;
625 self
626 }
627 /// <p>The stack's default VPC subnet ID. This parameter is required if you specify a value for the <code>VpcId</code> parameter. All instances are launched into this subnet unless you specify otherwise when you create the instance. If you also specify a value for <code>DefaultAvailabilityZone</code>, the subnet must be in that zone. For information on default values and when this parameter is required, see the <code>VpcId</code> parameter description.</p>
628 pub fn get_default_subnet_id(&self) -> &::std::option::Option<::std::string::String> {
629 &self.default_subnet_id
630 }
631 /// <p>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:</p>
632 /// <p><code>"{\"key1\": \"value1\", \"key2\": \"value2\",...}"</code></p>
633 /// <p>For more information about custom JSON, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html">Use Custom JSON to Modify the Stack Configuration Attributes</a>.</p>
634 pub fn custom_json(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
635 self.custom_json = ::std::option::Option::Some(input.into());
636 self
637 }
638 /// <p>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:</p>
639 /// <p><code>"{\"key1\": \"value1\", \"key2\": \"value2\",...}"</code></p>
640 /// <p>For more information about custom JSON, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html">Use Custom JSON to Modify the Stack Configuration Attributes</a>.</p>
641 pub fn set_custom_json(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
642 self.custom_json = input;
643 self
644 }
645 /// <p>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:</p>
646 /// <p><code>"{\"key1\": \"value1\", \"key2\": \"value2\",...}"</code></p>
647 /// <p>For more information about custom JSON, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-json.html">Use Custom JSON to Modify the Stack Configuration Attributes</a>.</p>
648 pub fn get_custom_json(&self) -> &::std::option::Option<::std::string::String> {
649 &self.custom_json
650 }
651 /// <p>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.</p>
652 pub fn configuration_manager(mut self, input: crate::types::StackConfigurationManager) -> Self {
653 self.configuration_manager = ::std::option::Option::Some(input);
654 self
655 }
656 /// <p>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.</p>
657 pub fn set_configuration_manager(mut self, input: ::std::option::Option<crate::types::StackConfigurationManager>) -> Self {
658 self.configuration_manager = input;
659 self
660 }
661 /// <p>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.</p>
662 pub fn get_configuration_manager(&self) -> &::std::option::Option<crate::types::StackConfigurationManager> {
663 &self.configuration_manager
664 }
665 /// <p>A <code>ChefConfiguration</code> object that specifies whether to enable Berkshelf and the Berkshelf version on Chef 11.10 stacks. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.</p>
666 pub fn chef_configuration(mut self, input: crate::types::ChefConfiguration) -> Self {
667 self.chef_configuration = ::std::option::Option::Some(input);
668 self
669 }
670 /// <p>A <code>ChefConfiguration</code> object that specifies whether to enable Berkshelf and the Berkshelf version on Chef 11.10 stacks. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.</p>
671 pub fn set_chef_configuration(mut self, input: ::std::option::Option<crate::types::ChefConfiguration>) -> Self {
672 self.chef_configuration = input;
673 self
674 }
675 /// <p>A <code>ChefConfiguration</code> object that specifies whether to enable Berkshelf and the Berkshelf version on Chef 11.10 stacks. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.</p>
676 pub fn get_chef_configuration(&self) -> &::std::option::Option<crate::types::ChefConfiguration> {
677 &self.chef_configuration
678 }
679 /// <p>Whether the stack uses custom cookbooks.</p>
680 pub fn use_custom_cookbooks(mut self, input: bool) -> Self {
681 self.use_custom_cookbooks = ::std::option::Option::Some(input);
682 self
683 }
684 /// <p>Whether the stack uses custom cookbooks.</p>
685 pub fn set_use_custom_cookbooks(mut self, input: ::std::option::Option<bool>) -> Self {
686 self.use_custom_cookbooks = input;
687 self
688 }
689 /// <p>Whether the stack uses custom cookbooks.</p>
690 pub fn get_use_custom_cookbooks(&self) -> &::std::option::Option<bool> {
691 &self.use_custom_cookbooks
692 }
693 /// <p>Whether to associate the OpsWorks Stacks built-in security groups with the stack's layers.</p>
694 /// <p>OpsWorks Stacks provides a standard set of built-in security groups, one for each layer, which are associated with layers by default. With <code>UseOpsworksSecurityGroups</code> you can instead provide your own custom security groups. <code>UseOpsworksSecurityGroups</code> has the following settings:</p>
695 /// <ul>
696 /// <li>
697 /// <p>True - 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.</p></li>
698 /// <li>
699 /// <p>False - 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.</p></li>
700 /// </ul>
701 /// <p>For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.</p>
702 pub fn use_opsworks_security_groups(mut self, input: bool) -> Self {
703 self.use_opsworks_security_groups = ::std::option::Option::Some(input);
704 self
705 }
706 /// <p>Whether to associate the OpsWorks Stacks built-in security groups with the stack's layers.</p>
707 /// <p>OpsWorks Stacks provides a standard set of built-in security groups, one for each layer, which are associated with layers by default. With <code>UseOpsworksSecurityGroups</code> you can instead provide your own custom security groups. <code>UseOpsworksSecurityGroups</code> has the following settings:</p>
708 /// <ul>
709 /// <li>
710 /// <p>True - 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.</p></li>
711 /// <li>
712 /// <p>False - 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.</p></li>
713 /// </ul>
714 /// <p>For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.</p>
715 pub fn set_use_opsworks_security_groups(mut self, input: ::std::option::Option<bool>) -> Self {
716 self.use_opsworks_security_groups = input;
717 self
718 }
719 /// <p>Whether to associate the OpsWorks Stacks built-in security groups with the stack's layers.</p>
720 /// <p>OpsWorks Stacks provides a standard set of built-in security groups, one for each layer, which are associated with layers by default. With <code>UseOpsworksSecurityGroups</code> you can instead provide your own custom security groups. <code>UseOpsworksSecurityGroups</code> has the following settings:</p>
721 /// <ul>
722 /// <li>
723 /// <p>True - 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.</p></li>
724 /// <li>
725 /// <p>False - 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.</p></li>
726 /// </ul>
727 /// <p>For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.</p>
728 pub fn get_use_opsworks_security_groups(&self) -> &::std::option::Option<bool> {
729 &self.use_opsworks_security_groups
730 }
731 /// <p>Contains the information required to retrieve an app or cookbook from a repository. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html">Adding Apps</a> or <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook.html">Cookbooks and Recipes</a>.</p>
732 pub fn custom_cookbooks_source(mut self, input: crate::types::Source) -> Self {
733 self.custom_cookbooks_source = ::std::option::Option::Some(input);
734 self
735 }
736 /// <p>Contains the information required to retrieve an app or cookbook from a repository. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html">Adding Apps</a> or <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook.html">Cookbooks and Recipes</a>.</p>
737 pub fn set_custom_cookbooks_source(mut self, input: ::std::option::Option<crate::types::Source>) -> Self {
738 self.custom_cookbooks_source = input;
739 self
740 }
741 /// <p>Contains the information required to retrieve an app or cookbook from a repository. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html">Adding Apps</a> or <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook.html">Cookbooks and Recipes</a>.</p>
742 pub fn get_custom_cookbooks_source(&self) -> &::std::option::Option<crate::types::Source> {
743 &self.custom_cookbooks_source
744 }
745 /// <p>A default Amazon EC2 key pair name. The default value is none. If you specify a key pair name, 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 <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-ssh.html"> Using SSH to Communicate with an Instance</a> and <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/security-ssh-access.html"> Managing SSH Access</a>. You can override this setting by specifying a different key pair, or no key pair, when you <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-add.html"> create an instance</a>.</p>
746 pub fn default_ssh_key_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
747 self.default_ssh_key_name = ::std::option::Option::Some(input.into());
748 self
749 }
750 /// <p>A default Amazon EC2 key pair name. The default value is none. If you specify a key pair name, 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 <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-ssh.html"> Using SSH to Communicate with an Instance</a> and <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/security-ssh-access.html"> Managing SSH Access</a>. You can override this setting by specifying a different key pair, or no key pair, when you <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-add.html"> create an instance</a>.</p>
751 pub fn set_default_ssh_key_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
752 self.default_ssh_key_name = input;
753 self
754 }
755 /// <p>A default Amazon EC2 key pair name. The default value is none. If you specify a key pair name, 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 <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-ssh.html"> Using SSH to Communicate with an Instance</a> and <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/security-ssh-access.html"> Managing SSH Access</a>. You can override this setting by specifying a different key pair, or no key pair, when you <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-add.html"> create an instance</a>.</p>
756 pub fn get_default_ssh_key_name(&self) -> &::std::option::Option<::std::string::String> {
757 &self.default_ssh_key_name
758 }
759 /// <p>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 <code>instance-store</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#storage-for-the-root-device">Storage for the Root Device</a>.</p>
760 pub fn default_root_device_type(mut self, input: crate::types::RootDeviceType) -> Self {
761 self.default_root_device_type = ::std::option::Option::Some(input);
762 self
763 }
764 /// <p>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 <code>instance-store</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#storage-for-the-root-device">Storage for the Root Device</a>.</p>
765 pub fn set_default_root_device_type(mut self, input: ::std::option::Option<crate::types::RootDeviceType>) -> Self {
766 self.default_root_device_type = input;
767 self
768 }
769 /// <p>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 <code>instance-store</code>. For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ComponentsAMIs.html#storage-for-the-root-device">Storage for the Root Device</a>.</p>
770 pub fn get_default_root_device_type(&self) -> &::std::option::Option<crate::types::RootDeviceType> {
771 &self.default_root_device_type
772 }
773 /// <p>The default OpsWorks Stacks agent version. You have the following options:</p>
774 /// <ul>
775 /// <li>
776 /// <p>Auto-update - Set this parameter to <code>LATEST</code>. OpsWorks Stacks automatically installs new agent versions on the stack's instances as soon as they are available.</p></li>
777 /// <li>
778 /// <p>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. OpsWorks Stacks installs that version on the stack's instances.</p></li>
779 /// </ul>
780 /// <p>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 <code>DescribeAgentVersions</code>. AgentVersion cannot be set to Chef 12.2.</p><note>
781 /// <p>You can also specify an agent version when you create or update an instance, which overrides the stack's default setting.</p>
782 /// </note>
783 pub fn agent_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
784 self.agent_version = ::std::option::Option::Some(input.into());
785 self
786 }
787 /// <p>The default OpsWorks Stacks agent version. You have the following options:</p>
788 /// <ul>
789 /// <li>
790 /// <p>Auto-update - Set this parameter to <code>LATEST</code>. OpsWorks Stacks automatically installs new agent versions on the stack's instances as soon as they are available.</p></li>
791 /// <li>
792 /// <p>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. OpsWorks Stacks installs that version on the stack's instances.</p></li>
793 /// </ul>
794 /// <p>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 <code>DescribeAgentVersions</code>. AgentVersion cannot be set to Chef 12.2.</p><note>
795 /// <p>You can also specify an agent version when you create or update an instance, which overrides the stack's default setting.</p>
796 /// </note>
797 pub fn set_agent_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
798 self.agent_version = input;
799 self
800 }
801 /// <p>The default OpsWorks Stacks agent version. You have the following options:</p>
802 /// <ul>
803 /// <li>
804 /// <p>Auto-update - Set this parameter to <code>LATEST</code>. OpsWorks Stacks automatically installs new agent versions on the stack's instances as soon as they are available.</p></li>
805 /// <li>
806 /// <p>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. OpsWorks Stacks installs that version on the stack's instances.</p></li>
807 /// </ul>
808 /// <p>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 <code>DescribeAgentVersions</code>. AgentVersion cannot be set to Chef 12.2.</p><note>
809 /// <p>You can also specify an agent version when you create or update an instance, which overrides the stack's default setting.</p>
810 /// </note>
811 pub fn get_agent_version(&self) -> &::std::option::Option<::std::string::String> {
812 &self.agent_version
813 }
814 /// Consumes the builder and constructs a [`CreateStackInput`](crate::operation::create_stack::CreateStackInput).
815 pub fn build(self) -> ::std::result::Result<crate::operation::create_stack::CreateStackInput, ::aws_smithy_types::error::operation::BuildError> {
816 ::std::result::Result::Ok(crate::operation::create_stack::CreateStackInput {
817 name: self.name,
818 region: self.region,
819 vpc_id: self.vpc_id,
820 attributes: self.attributes,
821 service_role_arn: self.service_role_arn,
822 default_instance_profile_arn: self.default_instance_profile_arn,
823 default_os: self.default_os,
824 hostname_theme: self.hostname_theme,
825 default_availability_zone: self.default_availability_zone,
826 default_subnet_id: self.default_subnet_id,
827 custom_json: self.custom_json,
828 configuration_manager: self.configuration_manager,
829 chef_configuration: self.chef_configuration,
830 use_custom_cookbooks: self.use_custom_cookbooks,
831 use_opsworks_security_groups: self.use_opsworks_security_groups,
832 custom_cookbooks_source: self.custom_cookbooks_source,
833 default_ssh_key_name: self.default_ssh_key_name,
834 default_root_device_type: self.default_root_device_type,
835 agent_version: self.agent_version,
836 })
837 }
838}