aws_sdk_opsworks/operation/create_stack/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_stack::_create_stack_output::CreateStackOutputBuilder;
3
4pub use crate::operation::create_stack::_create_stack_input::CreateStackInputBuilder;
5
6impl crate::operation::create_stack::builders::CreateStackInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::create_stack::CreateStackOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_stack::CreateStackError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_stack();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateStack`.
24///
25/// <p>Creates a new stack. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-edit.html">Create a New Stack</a>.</p>
26/// <p><b>Required Permissions</b>: To use this action, an IAM user must have an attached policy that explicitly grants permissions. For more information about user permissions, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/opsworks-security-users.html">Managing User Permissions</a>.</p>
27#[derive(::std::clone::Clone, ::std::fmt::Debug)]
28pub struct CreateStackFluentBuilder {
29    handle: ::std::sync::Arc<crate::client::Handle>,
30    inner: crate::operation::create_stack::builders::CreateStackInputBuilder,
31    config_override: ::std::option::Option<crate::config::Builder>,
32}
33impl
34    crate::client::customize::internal::CustomizableSend<
35        crate::operation::create_stack::CreateStackOutput,
36        crate::operation::create_stack::CreateStackError,
37    > for CreateStackFluentBuilder
38{
39    fn send(
40        self,
41        config_override: crate::config::Builder,
42    ) -> crate::client::customize::internal::BoxFuture<
43        crate::client::customize::internal::SendResult<
44            crate::operation::create_stack::CreateStackOutput,
45            crate::operation::create_stack::CreateStackError,
46        >,
47    > {
48        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
49    }
50}
51impl CreateStackFluentBuilder {
52    /// Creates a new `CreateStackFluentBuilder`.
53    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
54        Self {
55            handle,
56            inner: ::std::default::Default::default(),
57            config_override: ::std::option::Option::None,
58        }
59    }
60    /// Access the CreateStack as a reference.
61    pub fn as_input(&self) -> &crate::operation::create_stack::builders::CreateStackInputBuilder {
62        &self.inner
63    }
64    /// Sends the request and returns the response.
65    ///
66    /// If an error occurs, an `SdkError` will be returned with additional details that
67    /// can be matched against.
68    ///
69    /// By default, any retryable failures will be retried twice. Retry behavior
70    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
71    /// set when configuring the client.
72    pub async fn send(
73        self,
74    ) -> ::std::result::Result<
75        crate::operation::create_stack::CreateStackOutput,
76        ::aws_smithy_runtime_api::client::result::SdkError<
77            crate::operation::create_stack::CreateStackError,
78            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
79        >,
80    > {
81        let input = self
82            .inner
83            .build()
84            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
85        let runtime_plugins = crate::operation::create_stack::CreateStack::operation_runtime_plugins(
86            self.handle.runtime_plugins.clone(),
87            &self.handle.conf,
88            self.config_override,
89        );
90        crate::operation::create_stack::CreateStack::orchestrate(&runtime_plugins, input).await
91    }
92
93    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
94    pub fn customize(
95        self,
96    ) -> crate::client::customize::CustomizableOperation<
97        crate::operation::create_stack::CreateStackOutput,
98        crate::operation::create_stack::CreateStackError,
99        Self,
100    > {
101        crate::client::customize::CustomizableOperation::new(self)
102    }
103    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
104        self.set_config_override(::std::option::Option::Some(config_override.into()));
105        self
106    }
107
108    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
109        self.config_override = config_override;
110        self
111    }
112    /// <p>The stack name. Stack names can be a maximum of 64 characters.</p>
113    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
114        self.inner = self.inner.name(input.into());
115        self
116    }
117    /// <p>The stack name. Stack names can be a maximum of 64 characters.</p>
118    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
119        self.inner = self.inner.set_name(input);
120        self
121    }
122    /// <p>The stack name. Stack names can be a maximum of 64 characters.</p>
123    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
124        self.inner.get_name()
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(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
130        self.inner = self.inner.region(input.into());
131        self
132    }
133    /// <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>
134    /// <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>
135    /// </note>
136    pub fn set_region(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
137        self.inner = self.inner.set_region(input);
138        self
139    }
140    /// <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>
141    /// <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>
142    /// </note>
143    pub fn get_region(&self) -> &::std::option::Option<::std::string::String> {
144        self.inner.get_region()
145    }
146    /// <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>
147    /// <ul>
148    /// <li>
149    /// <p>If your account supports EC2-Classic, the default value is <code>no VPC</code>.</p></li>
150    /// <li>
151    /// <p>If your account does not support EC2-Classic, the default value is the default VPC for the specified region.</p></li>
152    /// </ul>
153    /// <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>
154    /// <p>If you specify a nondefault VPC ID, note the following:</p>
155    /// <ul>
156    /// <li>
157    /// <p>It must belong to a VPC in your account that is in the specified region.</p></li>
158    /// <li>
159    /// <p>You must specify a value for <code>DefaultSubnetId</code>.</p></li>
160    /// </ul>
161    /// <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>
162    pub fn vpc_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
163        self.inner = self.inner.vpc_id(input.into());
164        self
165    }
166    /// <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>
167    /// <ul>
168    /// <li>
169    /// <p>If your account supports EC2-Classic, the default value is <code>no VPC</code>.</p></li>
170    /// <li>
171    /// <p>If your account does not support EC2-Classic, the default value is the default VPC for the specified region.</p></li>
172    /// </ul>
173    /// <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>
174    /// <p>If you specify a nondefault VPC ID, note the following:</p>
175    /// <ul>
176    /// <li>
177    /// <p>It must belong to a VPC in your account that is in the specified region.</p></li>
178    /// <li>
179    /// <p>You must specify a value for <code>DefaultSubnetId</code>.</p></li>
180    /// </ul>
181    /// <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>
182    pub fn set_vpc_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
183        self.inner = self.inner.set_vpc_id(input);
184        self
185    }
186    /// <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>
187    /// <ul>
188    /// <li>
189    /// <p>If your account supports EC2-Classic, the default value is <code>no VPC</code>.</p></li>
190    /// <li>
191    /// <p>If your account does not support EC2-Classic, the default value is the default VPC for the specified region.</p></li>
192    /// </ul>
193    /// <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>
194    /// <p>If you specify a nondefault VPC ID, note the following:</p>
195    /// <ul>
196    /// <li>
197    /// <p>It must belong to a VPC in your account that is in the specified region.</p></li>
198    /// <li>
199    /// <p>You must specify a value for <code>DefaultSubnetId</code>.</p></li>
200    /// </ul>
201    /// <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>
202    pub fn get_vpc_id(&self) -> &::std::option::Option<::std::string::String> {
203        self.inner.get_vpc_id()
204    }
205    ///
206    /// Adds a key-value pair to `Attributes`.
207    ///
208    /// To override the contents of this collection use [`set_attributes`](Self::set_attributes).
209    ///
210    /// <p>One or more user-defined key-value pairs to be added to the stack attributes.</p>
211    pub fn attributes(mut self, k: crate::types::StackAttributesKeys, v: impl ::std::convert::Into<::std::string::String>) -> Self {
212        self.inner = self.inner.attributes(k, v.into());
213        self
214    }
215    /// <p>One or more user-defined key-value pairs to be added to the stack attributes.</p>
216    pub fn set_attributes(
217        mut self,
218        input: ::std::option::Option<::std::collections::HashMap<crate::types::StackAttributesKeys, ::std::string::String>>,
219    ) -> Self {
220        self.inner = self.inner.set_attributes(input);
221        self
222    }
223    /// <p>One or more user-defined key-value pairs to be added to the stack attributes.</p>
224    pub fn get_attributes(&self) -> &::std::option::Option<::std::collections::HashMap<crate::types::StackAttributesKeys, ::std::string::String>> {
225        self.inner.get_attributes()
226    }
227    /// <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>
228    pub fn service_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
229        self.inner = self.inner.service_role_arn(input.into());
230        self
231    }
232    /// <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>
233    pub fn set_service_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
234        self.inner = self.inner.set_service_role_arn(input);
235        self
236    }
237    /// <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>
238    pub fn get_service_role_arn(&self) -> &::std::option::Option<::std::string::String> {
239        self.inner.get_service_role_arn()
240    }
241    /// <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>
242    pub fn default_instance_profile_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
243        self.inner = self.inner.default_instance_profile_arn(input.into());
244        self
245    }
246    /// <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>
247    pub fn set_default_instance_profile_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
248        self.inner = self.inner.set_default_instance_profile_arn(input);
249        self
250    }
251    /// <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>
252    pub fn get_default_instance_profile_arn(&self) -> &::std::option::Option<::std::string::String> {
253        self.inner.get_default_instance_profile_arn()
254    }
255    /// <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>
256    /// <ul>
257    /// <li>
258    /// <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>
259    /// <li>
260    /// <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>
261    /// <li>
262    /// <p><code>CentOS Linux 7</code></p></li>
263    /// <li>
264    /// <p><code>Red Hat Enterprise Linux 7</code></p></li>
265    /// <li>
266    /// <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>
267    /// <li>
268    /// <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>
269    /// </ul>
270    /// <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>
271    pub fn default_os(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
272        self.inner = self.inner.default_os(input.into());
273        self
274    }
275    /// <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>
276    /// <ul>
277    /// <li>
278    /// <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>
279    /// <li>
280    /// <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>
281    /// <li>
282    /// <p><code>CentOS Linux 7</code></p></li>
283    /// <li>
284    /// <p><code>Red Hat Enterprise Linux 7</code></p></li>
285    /// <li>
286    /// <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>
287    /// <li>
288    /// <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>
289    /// </ul>
290    /// <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>
291    pub fn set_default_os(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
292        self.inner = self.inner.set_default_os(input);
293        self
294    }
295    /// <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>
296    /// <ul>
297    /// <li>
298    /// <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>
299    /// <li>
300    /// <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>
301    /// <li>
302    /// <p><code>CentOS Linux 7</code></p></li>
303    /// <li>
304    /// <p><code>Red Hat Enterprise Linux 7</code></p></li>
305    /// <li>
306    /// <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>
307    /// <li>
308    /// <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>
309    /// </ul>
310    /// <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>
311    pub fn get_default_os(&self) -> &::std::option::Option<::std::string::String> {
312        self.inner.get_default_os()
313    }
314    /// <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>
315    /// <ul>
316    /// <li>
317    /// <p><code>Baked_Goods</code></p></li>
318    /// <li>
319    /// <p><code>Clouds</code></p></li>
320    /// <li>
321    /// <p><code>Europe_Cities</code></p></li>
322    /// <li>
323    /// <p><code>Fruits</code></p></li>
324    /// <li>
325    /// <p><code>Greek_Deities_and_Titans</code></p></li>
326    /// <li>
327    /// <p><code>Legendary_creatures_from_Japan</code></p></li>
328    /// <li>
329    /// <p><code>Planets_and_Moons</code></p></li>
330    /// <li>
331    /// <p><code>Roman_Deities</code></p></li>
332    /// <li>
333    /// <p><code>Scottish_Islands</code></p></li>
334    /// <li>
335    /// <p><code>US_Cities</code></p></li>
336    /// <li>
337    /// <p><code>Wild_Cats</code></p></li>
338    /// </ul>
339    /// <p>To obtain a generated host name, call <code>GetHostNameSuggestion</code>, which returns a host name based on the current theme.</p>
340    pub fn hostname_theme(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
341        self.inner = self.inner.hostname_theme(input.into());
342        self
343    }
344    /// <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>
345    /// <ul>
346    /// <li>
347    /// <p><code>Baked_Goods</code></p></li>
348    /// <li>
349    /// <p><code>Clouds</code></p></li>
350    /// <li>
351    /// <p><code>Europe_Cities</code></p></li>
352    /// <li>
353    /// <p><code>Fruits</code></p></li>
354    /// <li>
355    /// <p><code>Greek_Deities_and_Titans</code></p></li>
356    /// <li>
357    /// <p><code>Legendary_creatures_from_Japan</code></p></li>
358    /// <li>
359    /// <p><code>Planets_and_Moons</code></p></li>
360    /// <li>
361    /// <p><code>Roman_Deities</code></p></li>
362    /// <li>
363    /// <p><code>Scottish_Islands</code></p></li>
364    /// <li>
365    /// <p><code>US_Cities</code></p></li>
366    /// <li>
367    /// <p><code>Wild_Cats</code></p></li>
368    /// </ul>
369    /// <p>To obtain a generated host name, call <code>GetHostNameSuggestion</code>, which returns a host name based on the current theme.</p>
370    pub fn set_hostname_theme(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
371        self.inner = self.inner.set_hostname_theme(input);
372        self
373    }
374    /// <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>
375    /// <ul>
376    /// <li>
377    /// <p><code>Baked_Goods</code></p></li>
378    /// <li>
379    /// <p><code>Clouds</code></p></li>
380    /// <li>
381    /// <p><code>Europe_Cities</code></p></li>
382    /// <li>
383    /// <p><code>Fruits</code></p></li>
384    /// <li>
385    /// <p><code>Greek_Deities_and_Titans</code></p></li>
386    /// <li>
387    /// <p><code>Legendary_creatures_from_Japan</code></p></li>
388    /// <li>
389    /// <p><code>Planets_and_Moons</code></p></li>
390    /// <li>
391    /// <p><code>Roman_Deities</code></p></li>
392    /// <li>
393    /// <p><code>Scottish_Islands</code></p></li>
394    /// <li>
395    /// <p><code>US_Cities</code></p></li>
396    /// <li>
397    /// <p><code>Wild_Cats</code></p></li>
398    /// </ul>
399    /// <p>To obtain a generated host name, call <code>GetHostNameSuggestion</code>, which returns a host name based on the current theme.</p>
400    pub fn get_hostname_theme(&self) -> &::std::option::Option<::std::string::String> {
401        self.inner.get_hostname_theme()
402    }
403    /// <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>
404    pub fn default_availability_zone(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
405        self.inner = self.inner.default_availability_zone(input.into());
406        self
407    }
408    /// <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>
409    pub fn set_default_availability_zone(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
410        self.inner = self.inner.set_default_availability_zone(input);
411        self
412    }
413    /// <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>
414    pub fn get_default_availability_zone(&self) -> &::std::option::Option<::std::string::String> {
415        self.inner.get_default_availability_zone()
416    }
417    /// <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>
418    pub fn default_subnet_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
419        self.inner = self.inner.default_subnet_id(input.into());
420        self
421    }
422    /// <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>
423    pub fn set_default_subnet_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
424        self.inner = self.inner.set_default_subnet_id(input);
425        self
426    }
427    /// <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>
428    pub fn get_default_subnet_id(&self) -> &::std::option::Option<::std::string::String> {
429        self.inner.get_default_subnet_id()
430    }
431    /// <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>
432    /// <p><code>"{\"key1\": \"value1\", \"key2\": \"value2\",...}"</code></p>
433    /// <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>
434    pub fn custom_json(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
435        self.inner = self.inner.custom_json(input.into());
436        self
437    }
438    /// <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>
439    /// <p><code>"{\"key1\": \"value1\", \"key2\": \"value2\",...}"</code></p>
440    /// <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>
441    pub fn set_custom_json(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
442        self.inner = self.inner.set_custom_json(input);
443        self
444    }
445    /// <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>
446    /// <p><code>"{\"key1\": \"value1\", \"key2\": \"value2\",...}"</code></p>
447    /// <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>
448    pub fn get_custom_json(&self) -> &::std::option::Option<::std::string::String> {
449        self.inner.get_custom_json()
450    }
451    /// <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>
452    pub fn configuration_manager(mut self, input: crate::types::StackConfigurationManager) -> Self {
453        self.inner = self.inner.configuration_manager(input);
454        self
455    }
456    /// <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>
457    pub fn set_configuration_manager(mut self, input: ::std::option::Option<crate::types::StackConfigurationManager>) -> Self {
458        self.inner = self.inner.set_configuration_manager(input);
459        self
460    }
461    /// <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>
462    pub fn get_configuration_manager(&self) -> &::std::option::Option<crate::types::StackConfigurationManager> {
463        self.inner.get_configuration_manager()
464    }
465    /// <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>
466    pub fn chef_configuration(mut self, input: crate::types::ChefConfiguration) -> Self {
467        self.inner = self.inner.chef_configuration(input);
468        self
469    }
470    /// <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>
471    pub fn set_chef_configuration(mut self, input: ::std::option::Option<crate::types::ChefConfiguration>) -> Self {
472        self.inner = self.inner.set_chef_configuration(input);
473        self
474    }
475    /// <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>
476    pub fn get_chef_configuration(&self) -> &::std::option::Option<crate::types::ChefConfiguration> {
477        self.inner.get_chef_configuration()
478    }
479    /// <p>Whether the stack uses custom cookbooks.</p>
480    pub fn use_custom_cookbooks(mut self, input: bool) -> Self {
481        self.inner = self.inner.use_custom_cookbooks(input);
482        self
483    }
484    /// <p>Whether the stack uses custom cookbooks.</p>
485    pub fn set_use_custom_cookbooks(mut self, input: ::std::option::Option<bool>) -> Self {
486        self.inner = self.inner.set_use_custom_cookbooks(input);
487        self
488    }
489    /// <p>Whether the stack uses custom cookbooks.</p>
490    pub fn get_use_custom_cookbooks(&self) -> &::std::option::Option<bool> {
491        self.inner.get_use_custom_cookbooks()
492    }
493    /// <p>Whether to associate the OpsWorks Stacks built-in security groups with the stack's layers.</p>
494    /// <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>
495    /// <ul>
496    /// <li>
497    /// <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>
498    /// <li>
499    /// <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>
500    /// </ul>
501    /// <p>For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.</p>
502    pub fn use_opsworks_security_groups(mut self, input: bool) -> Self {
503        self.inner = self.inner.use_opsworks_security_groups(input);
504        self
505    }
506    /// <p>Whether to associate the OpsWorks Stacks built-in security groups with the stack's layers.</p>
507    /// <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>
508    /// <ul>
509    /// <li>
510    /// <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>
511    /// <li>
512    /// <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>
513    /// </ul>
514    /// <p>For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.</p>
515    pub fn set_use_opsworks_security_groups(mut self, input: ::std::option::Option<bool>) -> Self {
516        self.inner = self.inner.set_use_opsworks_security_groups(input);
517        self
518    }
519    /// <p>Whether to associate the OpsWorks Stacks built-in security groups with the stack's layers.</p>
520    /// <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>
521    /// <ul>
522    /// <li>
523    /// <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>
524    /// <li>
525    /// <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>
526    /// </ul>
527    /// <p>For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.</p>
528    pub fn get_use_opsworks_security_groups(&self) -> &::std::option::Option<bool> {
529        self.inner.get_use_opsworks_security_groups()
530    }
531    /// <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>
532    pub fn custom_cookbooks_source(mut self, input: crate::types::Source) -> Self {
533        self.inner = self.inner.custom_cookbooks_source(input);
534        self
535    }
536    /// <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>
537    pub fn set_custom_cookbooks_source(mut self, input: ::std::option::Option<crate::types::Source>) -> Self {
538        self.inner = self.inner.set_custom_cookbooks_source(input);
539        self
540    }
541    /// <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>
542    pub fn get_custom_cookbooks_source(&self) -> &::std::option::Option<crate::types::Source> {
543        self.inner.get_custom_cookbooks_source()
544    }
545    /// <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>
546    pub fn default_ssh_key_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
547        self.inner = self.inner.default_ssh_key_name(input.into());
548        self
549    }
550    /// <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>
551    pub fn set_default_ssh_key_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
552        self.inner = self.inner.set_default_ssh_key_name(input);
553        self
554    }
555    /// <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>
556    pub fn get_default_ssh_key_name(&self) -> &::std::option::Option<::std::string::String> {
557        self.inner.get_default_ssh_key_name()
558    }
559    /// <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>
560    pub fn default_root_device_type(mut self, input: crate::types::RootDeviceType) -> Self {
561        self.inner = self.inner.default_root_device_type(input);
562        self
563    }
564    /// <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>
565    pub fn set_default_root_device_type(mut self, input: ::std::option::Option<crate::types::RootDeviceType>) -> Self {
566        self.inner = self.inner.set_default_root_device_type(input);
567        self
568    }
569    /// <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>
570    pub fn get_default_root_device_type(&self) -> &::std::option::Option<crate::types::RootDeviceType> {
571        self.inner.get_default_root_device_type()
572    }
573    /// <p>The default OpsWorks Stacks agent version. You have the following options:</p>
574    /// <ul>
575    /// <li>
576    /// <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>
577    /// <li>
578    /// <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>
579    /// </ul>
580    /// <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>
581    /// <p>You can also specify an agent version when you create or update an instance, which overrides the stack's default setting.</p>
582    /// </note>
583    pub fn agent_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
584        self.inner = self.inner.agent_version(input.into());
585        self
586    }
587    /// <p>The default OpsWorks Stacks agent version. You have the following options:</p>
588    /// <ul>
589    /// <li>
590    /// <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>
591    /// <li>
592    /// <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>
593    /// </ul>
594    /// <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>
595    /// <p>You can also specify an agent version when you create or update an instance, which overrides the stack's default setting.</p>
596    /// </note>
597    pub fn set_agent_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
598        self.inner = self.inner.set_agent_version(input);
599        self
600    }
601    /// <p>The default OpsWorks Stacks agent version. You have the following options:</p>
602    /// <ul>
603    /// <li>
604    /// <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>
605    /// <li>
606    /// <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>
607    /// </ul>
608    /// <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>
609    /// <p>You can also specify an agent version when you create or update an instance, which overrides the stack's default setting.</p>
610    /// </note>
611    pub fn get_agent_version(&self) -> &::std::option::Option<::std::string::String> {
612        self.inner.get_agent_version()
613    }
614}