aws_sdk_opsworks/operation/clone_stack/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::clone_stack::_clone_stack_output::CloneStackOutputBuilder;
3
4pub use crate::operation::clone_stack::_clone_stack_input::CloneStackInputBuilder;
5
6impl crate::operation::clone_stack::builders::CloneStackInputBuilder {
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::clone_stack::CloneStackOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::clone_stack::CloneStackError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.clone_stack();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CloneStack`.
24///
25/// <p>Creates a clone of a specified stack. For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-cloning.html">Clone a Stack</a>. By default, all parameters are set to the values used by the parent stack.</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 CloneStackFluentBuilder {
29    handle: ::std::sync::Arc<crate::client::Handle>,
30    inner: crate::operation::clone_stack::builders::CloneStackInputBuilder,
31    config_override: ::std::option::Option<crate::config::Builder>,
32}
33impl
34    crate::client::customize::internal::CustomizableSend<
35        crate::operation::clone_stack::CloneStackOutput,
36        crate::operation::clone_stack::CloneStackError,
37    > for CloneStackFluentBuilder
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::clone_stack::CloneStackOutput,
45            crate::operation::clone_stack::CloneStackError,
46        >,
47    > {
48        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
49    }
50}
51impl CloneStackFluentBuilder {
52    /// Creates a new `CloneStackFluentBuilder`.
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 CloneStack as a reference.
61    pub fn as_input(&self) -> &crate::operation::clone_stack::builders::CloneStackInputBuilder {
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::clone_stack::CloneStackOutput,
76        ::aws_smithy_runtime_api::client::result::SdkError<
77            crate::operation::clone_stack::CloneStackError,
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::clone_stack::CloneStack::operation_runtime_plugins(
86            self.handle.runtime_plugins.clone(),
87            &self.handle.conf,
88            self.config_override,
89        );
90        crate::operation::clone_stack::CloneStack::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::clone_stack::CloneStackOutput,
98        crate::operation::clone_stack::CloneStackError,
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 source stack ID.</p>
113    pub fn source_stack_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
114        self.inner = self.inner.source_stack_id(input.into());
115        self
116    }
117    /// <p>The source stack ID.</p>
118    pub fn set_source_stack_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
119        self.inner = self.inner.set_source_stack_id(input);
120        self
121    }
122    /// <p>The source stack ID.</p>
123    pub fn get_source_stack_id(&self) -> &::std::option::Option<::std::string::String> {
124        self.inner.get_source_stack_id()
125    }
126    /// <p>The cloned stack name. Stack names can be a maximum of 64 characters.</p>
127    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
128        self.inner = self.inner.name(input.into());
129        self
130    }
131    /// <p>The cloned stack name. Stack names can be a maximum of 64 characters.</p>
132    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
133        self.inner = self.inner.set_name(input);
134        self
135    }
136    /// <p>The cloned stack name. Stack names can be a maximum of 64 characters.</p>
137    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
138        self.inner.get_name()
139    }
140    /// <p>The cloned stack Amazon Web Services Region, such as <code>ap-northeast-2</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>
141    pub fn region(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
142        self.inner = self.inner.region(input.into());
143        self
144    }
145    /// <p>The cloned stack Amazon Web Services Region, such as <code>ap-northeast-2</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>
146    pub fn set_region(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
147        self.inner = self.inner.set_region(input);
148        self
149    }
150    /// <p>The cloned stack Amazon Web Services Region, such as <code>ap-northeast-2</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>
151    pub fn get_region(&self) -> &::std::option::Option<::std::string::String> {
152        self.inner.get_region()
153    }
154    /// <p>The ID of the VPC that the cloned stack is to be launched into. It must be in the specified region. All instances are launched into this VPC, and you cannot change the ID later.</p>
155    /// <ul>
156    /// <li>
157    /// <p>If your account supports EC2 Classic, the default value is no VPC.</p></li>
158    /// <li>
159    /// <p>If your account does not support EC2 Classic, the default value is the default VPC for the specified region.</p></li>
160    /// </ul>
161    /// <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>
162    /// <p>If you specify a nondefault VPC ID, note the following:</p>
163    /// <ul>
164    /// <li>
165    /// <p>It must belong to a VPC in your account that is in the specified region.</p></li>
166    /// <li>
167    /// <p>You must specify a value for <code>DefaultSubnetId</code>.</p></li>
168    /// </ul>
169    /// <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>
170    pub fn vpc_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
171        self.inner = self.inner.vpc_id(input.into());
172        self
173    }
174    /// <p>The ID of the VPC that the cloned stack is to be launched into. It must be in the specified region. All instances are launched into this VPC, and you cannot change the ID later.</p>
175    /// <ul>
176    /// <li>
177    /// <p>If your account supports EC2 Classic, the default value is no VPC.</p></li>
178    /// <li>
179    /// <p>If your account does not support EC2 Classic, the default value is the default VPC for the specified region.</p></li>
180    /// </ul>
181    /// <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>
182    /// <p>If you specify a nondefault VPC ID, note the following:</p>
183    /// <ul>
184    /// <li>
185    /// <p>It must belong to a VPC in your account that is in the specified region.</p></li>
186    /// <li>
187    /// <p>You must specify a value for <code>DefaultSubnetId</code>.</p></li>
188    /// </ul>
189    /// <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>
190    pub fn set_vpc_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
191        self.inner = self.inner.set_vpc_id(input);
192        self
193    }
194    /// <p>The ID of the VPC that the cloned stack is to be launched into. It must be in the specified region. All instances are launched into this VPC, and you cannot change the ID later.</p>
195    /// <ul>
196    /// <li>
197    /// <p>If your account supports EC2 Classic, the default value is no VPC.</p></li>
198    /// <li>
199    /// <p>If your account does not support EC2 Classic, the default value is the default VPC for the specified region.</p></li>
200    /// </ul>
201    /// <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>
202    /// <p>If you specify a nondefault VPC ID, note the following:</p>
203    /// <ul>
204    /// <li>
205    /// <p>It must belong to a VPC in your account that is in the specified region.</p></li>
206    /// <li>
207    /// <p>You must specify a value for <code>DefaultSubnetId</code>.</p></li>
208    /// </ul>
209    /// <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>
210    pub fn get_vpc_id(&self) -> &::std::option::Option<::std::string::String> {
211        self.inner.get_vpc_id()
212    }
213    ///
214    /// Adds a key-value pair to `Attributes`.
215    ///
216    /// To override the contents of this collection use [`set_attributes`](Self::set_attributes).
217    ///
218    /// <p>A list of stack attributes and values as key/value pairs to be added to the cloned stack.</p>
219    pub fn attributes(mut self, k: crate::types::StackAttributesKeys, v: impl ::std::convert::Into<::std::string::String>) -> Self {
220        self.inner = self.inner.attributes(k, v.into());
221        self
222    }
223    /// <p>A list of stack attributes and values as key/value pairs to be added to the cloned stack.</p>
224    pub fn set_attributes(
225        mut self,
226        input: ::std::option::Option<::std::collections::HashMap<crate::types::StackAttributesKeys, ::std::string::String>>,
227    ) -> Self {
228        self.inner = self.inner.set_attributes(input);
229        self
230    }
231    /// <p>A list of stack attributes and values as key/value pairs to be added to the cloned stack.</p>
232    pub fn get_attributes(&self) -> &::std::option::Option<::std::collections::HashMap<crate::types::StackAttributesKeys, ::std::string::String>> {
233        self.inner.get_attributes()
234    }
235    /// <p>The stack Identity and Access Management (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. If you create a stack by using the OpsWorkss Stacks console, it creates the role for you. You can obtain an existing stack's IAM ARN programmatically by calling <code>DescribePermissions</code>. For more information about IAM ARNs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>.</p><note>
236    /// <p>You must set this parameter to a valid service role ARN or the action will fail; there is no default value. You can specify the source stack's service role ARN, if you prefer, but you must do so explicitly.</p>
237    /// </note>
238    pub fn service_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
239        self.inner = self.inner.service_role_arn(input.into());
240        self
241    }
242    /// <p>The stack Identity and Access Management (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. If you create a stack by using the OpsWorkss Stacks console, it creates the role for you. You can obtain an existing stack's IAM ARN programmatically by calling <code>DescribePermissions</code>. For more information about IAM ARNs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>.</p><note>
243    /// <p>You must set this parameter to a valid service role ARN or the action will fail; there is no default value. You can specify the source stack's service role ARN, if you prefer, but you must do so explicitly.</p>
244    /// </note>
245    pub fn set_service_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
246        self.inner = self.inner.set_service_role_arn(input);
247        self
248    }
249    /// <p>The stack Identity and Access Management (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. If you create a stack by using the OpsWorkss Stacks console, it creates the role for you. You can obtain an existing stack's IAM ARN programmatically by calling <code>DescribePermissions</code>. For more information about IAM ARNs, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html">Using Identifiers</a>.</p><note>
250    /// <p>You must set this parameter to a valid service role ARN or the action will fail; there is no default value. You can specify the source stack's service role ARN, if you prefer, but you must do so explicitly.</p>
251    /// </note>
252    pub fn get_service_role_arn(&self) -> &::std::option::Option<::std::string::String> {
253        self.inner.get_service_role_arn()
254    }
255    /// <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>
256    pub fn default_instance_profile_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
257        self.inner = self.inner.default_instance_profile_arn(input.into());
258        self
259    }
260    /// <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>
261    pub fn set_default_instance_profile_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
262        self.inner = self.inner.set_default_instance_profile_arn(input);
263        self
264    }
265    /// <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>
266    pub fn get_default_instance_profile_arn(&self) -> &::std::option::Option<::std::string::String> {
267        self.inner.get_default_instance_profile_arn()
268    }
269    /// <p>The stack's operating system, which must be set to one of the following.</p>
270    /// <ul>
271    /// <li>
272    /// <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>
273    /// <li>
274    /// <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>
275    /// <li>
276    /// <p><code>CentOS Linux 7</code></p></li>
277    /// <li>
278    /// <p><code>Red Hat Enterprise Linux 7</code></p></li>
279    /// <li>
280    /// <p><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>
281    /// <li>
282    /// <p>A custom AMI: <code>Custom</code>. You specify the custom AMI you want to use when you create instances. For more information about how to use custom AMIs with OpsWorks, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html">Using Custom AMIs</a>.</p></li>
283    /// </ul>
284    /// <p>The default option is the parent stack's operating system. 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><note>
285    /// <p>You can specify a different Linux operating system for the cloned stack, but you cannot change from Linux to Windows or Windows to Linux.</p>
286    /// </note>
287    pub fn default_os(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
288        self.inner = self.inner.default_os(input.into());
289        self
290    }
291    /// <p>The stack's operating system, which must be set to one of the following.</p>
292    /// <ul>
293    /// <li>
294    /// <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>
295    /// <li>
296    /// <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>
297    /// <li>
298    /// <p><code>CentOS Linux 7</code></p></li>
299    /// <li>
300    /// <p><code>Red Hat Enterprise Linux 7</code></p></li>
301    /// <li>
302    /// <p><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>
303    /// <li>
304    /// <p>A custom AMI: <code>Custom</code>. You specify the custom AMI you want to use when you create instances. For more information about how to use custom AMIs with OpsWorks, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html">Using Custom AMIs</a>.</p></li>
305    /// </ul>
306    /// <p>The default option is the parent stack's operating system. 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><note>
307    /// <p>You can specify a different Linux operating system for the cloned stack, but you cannot change from Linux to Windows or Windows to Linux.</p>
308    /// </note>
309    pub fn set_default_os(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
310        self.inner = self.inner.set_default_os(input);
311        self
312    }
313    /// <p>The stack's operating system, which must be set to one of the following.</p>
314    /// <ul>
315    /// <li>
316    /// <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>
317    /// <li>
318    /// <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>
319    /// <li>
320    /// <p><code>CentOS Linux 7</code></p></li>
321    /// <li>
322    /// <p><code>Red Hat Enterprise Linux 7</code></p></li>
323    /// <li>
324    /// <p><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>
325    /// <li>
326    /// <p>A custom AMI: <code>Custom</code>. You specify the custom AMI you want to use when you create instances. For more information about how to use custom AMIs with OpsWorks, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workinginstances-custom-ami.html">Using Custom AMIs</a>.</p></li>
327    /// </ul>
328    /// <p>The default option is the parent stack's operating system. 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><note>
329    /// <p>You can specify a different Linux operating system for the cloned stack, but you cannot change from Linux to Windows or Windows to Linux.</p>
330    /// </note>
331    pub fn get_default_os(&self) -> &::std::option::Option<::std::string::String> {
332        self.inner.get_default_os()
333    }
334    /// <p>The stack's host name theme, with spaces are 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>
335    /// <ul>
336    /// <li>
337    /// <p><code>Baked_Goods</code></p></li>
338    /// <li>
339    /// <p><code>Clouds</code></p></li>
340    /// <li>
341    /// <p><code>Europe_Cities</code></p></li>
342    /// <li>
343    /// <p><code>Fruits</code></p></li>
344    /// <li>
345    /// <p><code>Greek_Deities_and_Titans</code></p></li>
346    /// <li>
347    /// <p><code>Legendary_creatures_from_Japan</code></p></li>
348    /// <li>
349    /// <p><code>Planets_and_Moons</code></p></li>
350    /// <li>
351    /// <p><code>Roman_Deities</code></p></li>
352    /// <li>
353    /// <p><code>Scottish_Islands</code></p></li>
354    /// <li>
355    /// <p><code>US_Cities</code></p></li>
356    /// <li>
357    /// <p><code>Wild_Cats</code></p></li>
358    /// </ul>
359    /// <p>To obtain a generated host name, call <code>GetHostNameSuggestion</code>, which returns a host name based on the current theme.</p>
360    pub fn hostname_theme(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
361        self.inner = self.inner.hostname_theme(input.into());
362        self
363    }
364    /// <p>The stack's host name theme, with spaces are 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>
365    /// <ul>
366    /// <li>
367    /// <p><code>Baked_Goods</code></p></li>
368    /// <li>
369    /// <p><code>Clouds</code></p></li>
370    /// <li>
371    /// <p><code>Europe_Cities</code></p></li>
372    /// <li>
373    /// <p><code>Fruits</code></p></li>
374    /// <li>
375    /// <p><code>Greek_Deities_and_Titans</code></p></li>
376    /// <li>
377    /// <p><code>Legendary_creatures_from_Japan</code></p></li>
378    /// <li>
379    /// <p><code>Planets_and_Moons</code></p></li>
380    /// <li>
381    /// <p><code>Roman_Deities</code></p></li>
382    /// <li>
383    /// <p><code>Scottish_Islands</code></p></li>
384    /// <li>
385    /// <p><code>US_Cities</code></p></li>
386    /// <li>
387    /// <p><code>Wild_Cats</code></p></li>
388    /// </ul>
389    /// <p>To obtain a generated host name, call <code>GetHostNameSuggestion</code>, which returns a host name based on the current theme.</p>
390    pub fn set_hostname_theme(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
391        self.inner = self.inner.set_hostname_theme(input);
392        self
393    }
394    /// <p>The stack's host name theme, with spaces are 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>
395    /// <ul>
396    /// <li>
397    /// <p><code>Baked_Goods</code></p></li>
398    /// <li>
399    /// <p><code>Clouds</code></p></li>
400    /// <li>
401    /// <p><code>Europe_Cities</code></p></li>
402    /// <li>
403    /// <p><code>Fruits</code></p></li>
404    /// <li>
405    /// <p><code>Greek_Deities_and_Titans</code></p></li>
406    /// <li>
407    /// <p><code>Legendary_creatures_from_Japan</code></p></li>
408    /// <li>
409    /// <p><code>Planets_and_Moons</code></p></li>
410    /// <li>
411    /// <p><code>Roman_Deities</code></p></li>
412    /// <li>
413    /// <p><code>Scottish_Islands</code></p></li>
414    /// <li>
415    /// <p><code>US_Cities</code></p></li>
416    /// <li>
417    /// <p><code>Wild_Cats</code></p></li>
418    /// </ul>
419    /// <p>To obtain a generated host name, call <code>GetHostNameSuggestion</code>, which returns a host name based on the current theme.</p>
420    pub fn get_hostname_theme(&self) -> &::std::option::Option<::std::string::String> {
421        self.inner.get_hostname_theme()
422    }
423    /// <p>The cloned 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>
424    pub fn default_availability_zone(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
425        self.inner = self.inner.default_availability_zone(input.into());
426        self
427    }
428    /// <p>The cloned 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>
429    pub fn set_default_availability_zone(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
430        self.inner = self.inner.set_default_availability_zone(input);
431        self
432    }
433    /// <p>The cloned 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>
434    pub fn get_default_availability_zone(&self) -> &::std::option::Option<::std::string::String> {
435        self.inner.get_default_availability_zone()
436    }
437    /// <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>
438    pub fn default_subnet_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
439        self.inner = self.inner.default_subnet_id(input.into());
440        self
441    }
442    /// <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>
443    pub fn set_default_subnet_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
444        self.inner = self.inner.set_default_subnet_id(input);
445        self
446    }
447    /// <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>
448    pub fn get_default_subnet_id(&self) -> &::std::option::Option<::std::string::String> {
449        self.inner.get_default_subnet_id()
450    }
451    /// <p>A string that contains user-defined, custom JSON. It is used to override the corresponding default stack configuration JSON values. The string should be in the following format:</p>
452    /// <p><code>"{\"key1\": \"value1\", \"key2\": \"value2\",...}"</code></p>
453    /// <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>
454    pub fn custom_json(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
455        self.inner = self.inner.custom_json(input.into());
456        self
457    }
458    /// <p>A string that contains user-defined, custom JSON. It is used to override the corresponding default stack configuration JSON values. The string should be in the following format:</p>
459    /// <p><code>"{\"key1\": \"value1\", \"key2\": \"value2\",...}"</code></p>
460    /// <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>
461    pub fn set_custom_json(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
462        self.inner = self.inner.set_custom_json(input);
463        self
464    }
465    /// <p>A string that contains user-defined, custom JSON. It is used to override the corresponding default stack configuration JSON values. The string should be in the following format:</p>
466    /// <p><code>"{\"key1\": \"value1\", \"key2\": \"value2\",...}"</code></p>
467    /// <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>
468    pub fn get_custom_json(&self) -> &::std::option::Option<::std::string::String> {
469        self.inner.get_custom_json()
470    }
471    /// <p>The configuration manager. When you clone 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>
472    pub fn configuration_manager(mut self, input: crate::types::StackConfigurationManager) -> Self {
473        self.inner = self.inner.configuration_manager(input);
474        self
475    }
476    /// <p>The configuration manager. When you clone 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>
477    pub fn set_configuration_manager(mut self, input: ::std::option::Option<crate::types::StackConfigurationManager>) -> Self {
478        self.inner = self.inner.set_configuration_manager(input);
479        self
480    }
481    /// <p>The configuration manager. When you clone 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>
482    pub fn get_configuration_manager(&self) -> &::std::option::Option<crate::types::StackConfigurationManager> {
483        self.inner.get_configuration_manager()
484    }
485    /// <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>
486    pub fn chef_configuration(mut self, input: crate::types::ChefConfiguration) -> Self {
487        self.inner = self.inner.chef_configuration(input);
488        self
489    }
490    /// <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>
491    pub fn set_chef_configuration(mut self, input: ::std::option::Option<crate::types::ChefConfiguration>) -> Self {
492        self.inner = self.inner.set_chef_configuration(input);
493        self
494    }
495    /// <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>
496    pub fn get_chef_configuration(&self) -> &::std::option::Option<crate::types::ChefConfiguration> {
497        self.inner.get_chef_configuration()
498    }
499    /// <p>Whether to use custom cookbooks.</p>
500    pub fn use_custom_cookbooks(mut self, input: bool) -> Self {
501        self.inner = self.inner.use_custom_cookbooks(input);
502        self
503    }
504    /// <p>Whether to use custom cookbooks.</p>
505    pub fn set_use_custom_cookbooks(mut self, input: ::std::option::Option<bool>) -> Self {
506        self.inner = self.inner.set_use_custom_cookbooks(input);
507        self
508    }
509    /// <p>Whether to use custom cookbooks.</p>
510    pub fn get_use_custom_cookbooks(&self) -> &::std::option::Option<bool> {
511        self.inner.get_use_custom_cookbooks()
512    }
513    /// <p>Whether to associate the OpsWorks Stacks built-in security groups with the stack's layers.</p>
514    /// <p>OpsWorks Stacks provides a standard set of 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>
515    /// <ul>
516    /// <li>
517    /// <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>
518    /// <li>
519    /// <p>False - OpsWorks Stacks does not associate built-in security groups with layers. You must create appropriate Amazon 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>
520    /// </ul>
521    /// <p>For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.</p>
522    pub fn use_opsworks_security_groups(mut self, input: bool) -> Self {
523        self.inner = self.inner.use_opsworks_security_groups(input);
524        self
525    }
526    /// <p>Whether to associate the OpsWorks Stacks built-in security groups with the stack's layers.</p>
527    /// <p>OpsWorks Stacks provides a standard set of 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>
528    /// <ul>
529    /// <li>
530    /// <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>
531    /// <li>
532    /// <p>False - OpsWorks Stacks does not associate built-in security groups with layers. You must create appropriate Amazon 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>
533    /// </ul>
534    /// <p>For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.</p>
535    pub fn set_use_opsworks_security_groups(mut self, input: ::std::option::Option<bool>) -> Self {
536        self.inner = self.inner.set_use_opsworks_security_groups(input);
537        self
538    }
539    /// <p>Whether to associate the OpsWorks Stacks built-in security groups with the stack's layers.</p>
540    /// <p>OpsWorks Stacks provides a standard set of 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>
541    /// <ul>
542    /// <li>
543    /// <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>
544    /// <li>
545    /// <p>False - OpsWorks Stacks does not associate built-in security groups with layers. You must create appropriate Amazon 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>
546    /// </ul>
547    /// <p>For more information, see <a href="https://docs.aws.amazon.com/opsworks/latest/userguide/workingstacks-creating.html">Create a New Stack</a>.</p>
548    pub fn get_use_opsworks_security_groups(&self) -> &::std::option::Option<bool> {
549        self.inner.get_use_opsworks_security_groups()
550    }
551    /// <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>
552    pub fn custom_cookbooks_source(mut self, input: crate::types::Source) -> Self {
553        self.inner = self.inner.custom_cookbooks_source(input);
554        self
555    }
556    /// <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>
557    pub fn set_custom_cookbooks_source(mut self, input: ::std::option::Option<crate::types::Source>) -> Self {
558        self.inner = self.inner.set_custom_cookbooks_source(input);
559        self
560    }
561    /// <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>
562    pub fn get_custom_cookbooks_source(&self) -> &::std::option::Option<crate::types::Source> {
563        self.inner.get_custom_cookbooks_source()
564    }
565    /// <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>
566    pub fn default_ssh_key_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
567        self.inner = self.inner.default_ssh_key_name(input.into());
568        self
569    }
570    /// <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>
571    pub fn set_default_ssh_key_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
572        self.inner = self.inner.set_default_ssh_key_name(input);
573        self
574    }
575    /// <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>
576    pub fn get_default_ssh_key_name(&self) -> &::std::option::Option<::std::string::String> {
577        self.inner.get_default_ssh_key_name()
578    }
579    /// <p>Whether to clone the source stack's permissions.</p>
580    pub fn clone_permissions(mut self, input: bool) -> Self {
581        self.inner = self.inner.clone_permissions(input);
582        self
583    }
584    /// <p>Whether to clone the source stack's permissions.</p>
585    pub fn set_clone_permissions(mut self, input: ::std::option::Option<bool>) -> Self {
586        self.inner = self.inner.set_clone_permissions(input);
587        self
588    }
589    /// <p>Whether to clone the source stack's permissions.</p>
590    pub fn get_clone_permissions(&self) -> &::std::option::Option<bool> {
591        self.inner.get_clone_permissions()
592    }
593    ///
594    /// Appends an item to `CloneAppIds`.
595    ///
596    /// To override the contents of this collection use [`set_clone_app_ids`](Self::set_clone_app_ids).
597    ///
598    /// <p>A list of source stack app IDs to be included in the cloned stack.</p>
599    pub fn clone_app_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
600        self.inner = self.inner.clone_app_ids(input.into());
601        self
602    }
603    /// <p>A list of source stack app IDs to be included in the cloned stack.</p>
604    pub fn set_clone_app_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
605        self.inner = self.inner.set_clone_app_ids(input);
606        self
607    }
608    /// <p>A list of source stack app IDs to be included in the cloned stack.</p>
609    pub fn get_clone_app_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
610        self.inner.get_clone_app_ids()
611    }
612    /// <p>The default root device type. This value is used by default for all instances in the cloned stack, but you can override it when you create an instance. 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>
613    pub fn default_root_device_type(mut self, input: crate::types::RootDeviceType) -> Self {
614        self.inner = self.inner.default_root_device_type(input);
615        self
616    }
617    /// <p>The default root device type. This value is used by default for all instances in the cloned stack, but you can override it when you create an instance. 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>
618    pub fn set_default_root_device_type(mut self, input: ::std::option::Option<crate::types::RootDeviceType>) -> Self {
619        self.inner = self.inner.set_default_root_device_type(input);
620        self
621    }
622    /// <p>The default root device type. This value is used by default for all instances in the cloned stack, but you can override it when you create an instance. 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>
623    pub fn get_default_root_device_type(&self) -> &::std::option::Option<crate::types::RootDeviceType> {
624        self.inner.get_default_root_device_type()
625    }
626    /// <p>The default OpsWorks Stacks agent version. You have the following options:</p>
627    /// <ul>
628    /// <li>
629    /// <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>
630    /// <li>
631    /// <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 automatically installs that version on the stack's instances.</p></li>
632    /// </ul>
633    /// <p>The default setting is <code>LATEST</code>. 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>
634    /// <p>You can also specify an agent version when you create or update an instance, which overrides the stack's default setting.</p>
635    /// </note>
636    pub fn agent_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
637        self.inner = self.inner.agent_version(input.into());
638        self
639    }
640    /// <p>The default OpsWorks Stacks agent version. You have the following options:</p>
641    /// <ul>
642    /// <li>
643    /// <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>
644    /// <li>
645    /// <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 automatically installs that version on the stack's instances.</p></li>
646    /// </ul>
647    /// <p>The default setting is <code>LATEST</code>. 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>
648    /// <p>You can also specify an agent version when you create or update an instance, which overrides the stack's default setting.</p>
649    /// </note>
650    pub fn set_agent_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
651        self.inner = self.inner.set_agent_version(input);
652        self
653    }
654    /// <p>The default OpsWorks Stacks agent version. You have the following options:</p>
655    /// <ul>
656    /// <li>
657    /// <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>
658    /// <li>
659    /// <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 automatically installs that version on the stack's instances.</p></li>
660    /// </ul>
661    /// <p>The default setting is <code>LATEST</code>. 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>
662    /// <p>You can also specify an agent version when you create or update an instance, which overrides the stack's default setting.</p>
663    /// </note>
664    pub fn get_agent_version(&self) -> &::std::option::Option<::std::string::String> {
665        self.inner.get_agent_version()
666    }
667}