aws_sdk_elasticbeanstalk/operation/create_environment/_create_environment_input.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// <p></p>
4#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct CreateEnvironmentInput {
7 /// <p>The name of the application that is associated with this environment.</p>
8 pub application_name: ::std::option::Option<::std::string::String>,
9 /// <p>A unique name for the environment.</p>
10 /// <p>Constraint: Must be from 4 to 40 characters in length. The name can contain only letters, numbers, and hyphens. It can't start or end with a hyphen. This name must be unique within a region in your account. If the specified name already exists in the region, Elastic Beanstalk returns an <code>InvalidParameterValue</code> error.</p>
11 /// <p>If you don't specify the <code>CNAMEPrefix</code> parameter, the environment name becomes part of the CNAME, and therefore part of the visible URL for your application.</p>
12 pub environment_name: ::std::option::Option<::std::string::String>,
13 /// <p>The name of the group to which the target environment belongs. Specify a group name only if the environment's name is specified in an environment manifest and not with the environment name parameter. See <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-cfg-manifest.html">Environment Manifest (env.yaml)</a> for details.</p>
14 pub group_name: ::std::option::Option<::std::string::String>,
15 /// <p>Your description for this environment.</p>
16 pub description: ::std::option::Option<::std::string::String>,
17 /// <p>If specified, the environment attempts to use this value as the prefix for the CNAME in your Elastic Beanstalk environment URL. If not specified, the CNAME is generated automatically by appending a random alphanumeric string to the environment name.</p>
18 pub cname_prefix: ::std::option::Option<::std::string::String>,
19 /// <p>Specifies the tier to use in creating this environment. The environment tier that you choose determines whether Elastic Beanstalk provisions resources to support a web application that handles HTTP(S) requests or a web application that handles background-processing tasks.</p>
20 pub tier: ::std::option::Option<crate::types::EnvironmentTier>,
21 /// <p>Specifies the tags applied to resources in the environment.</p>
22 pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
23 /// <p>The name of the application version to deploy.</p>
24 /// <p>Default: If not specified, Elastic Beanstalk attempts to deploy the sample application.</p>
25 pub version_label: ::std::option::Option<::std::string::String>,
26 /// <p>The name of the Elastic Beanstalk configuration template to use with the environment.</p><note>
27 /// <p>If you specify <code>TemplateName</code>, then don't specify <code>SolutionStackName</code>.</p>
28 /// </note>
29 pub template_name: ::std::option::Option<::std::string::String>,
30 /// <p>The name of an Elastic Beanstalk solution stack (platform version) to use with the environment. If specified, Elastic Beanstalk sets the configuration values to the default values associated with the specified solution stack. For a list of current solution stacks, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html">Elastic Beanstalk Supported Platforms</a> in the <i>AWS Elastic Beanstalk Platforms</i> guide.</p><note>
31 /// <p>If you specify <code>SolutionStackName</code>, don't specify <code>PlatformArn</code> or <code>TemplateName</code>.</p>
32 /// </note>
33 pub solution_stack_name: ::std::option::Option<::std::string::String>,
34 /// <p>The Amazon Resource Name (ARN) of the custom platform to use with the environment. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html">Custom Platforms</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.</p><note>
35 /// <p>If you specify <code>PlatformArn</code>, don't specify <code>SolutionStackName</code>.</p>
36 /// </note>
37 pub platform_arn: ::std::option::Option<::std::string::String>,
38 /// <p>If specified, AWS Elastic Beanstalk sets the specified configuration options to the requested value in the configuration set for the new environment. These override the values obtained from the solution stack or the configuration template.</p>
39 pub option_settings: ::std::option::Option<::std::vec::Vec<crate::types::ConfigurationOptionSetting>>,
40 /// <p>A list of custom user-defined configuration options to remove from the configuration set for this new environment.</p>
41 pub options_to_remove: ::std::option::Option<::std::vec::Vec<crate::types::OptionSpecification>>,
42 /// <p>The Amazon Resource Name (ARN) of an existing IAM role to be used as the environment's operations role. If specified, Elastic Beanstalk uses the operations role for permissions to downstream services during this call and during subsequent calls acting on this environment. To specify an operations role, you must have the <code>iam:PassRole</code> permission for the role. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/iam-operationsrole.html">Operations roles</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.</p>
43 pub operations_role: ::std::option::Option<::std::string::String>,
44}
45impl CreateEnvironmentInput {
46 /// <p>The name of the application that is associated with this environment.</p>
47 pub fn application_name(&self) -> ::std::option::Option<&str> {
48 self.application_name.as_deref()
49 }
50 /// <p>A unique name for the environment.</p>
51 /// <p>Constraint: Must be from 4 to 40 characters in length. The name can contain only letters, numbers, and hyphens. It can't start or end with a hyphen. This name must be unique within a region in your account. If the specified name already exists in the region, Elastic Beanstalk returns an <code>InvalidParameterValue</code> error.</p>
52 /// <p>If you don't specify the <code>CNAMEPrefix</code> parameter, the environment name becomes part of the CNAME, and therefore part of the visible URL for your application.</p>
53 pub fn environment_name(&self) -> ::std::option::Option<&str> {
54 self.environment_name.as_deref()
55 }
56 /// <p>The name of the group to which the target environment belongs. Specify a group name only if the environment's name is specified in an environment manifest and not with the environment name parameter. See <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-cfg-manifest.html">Environment Manifest (env.yaml)</a> for details.</p>
57 pub fn group_name(&self) -> ::std::option::Option<&str> {
58 self.group_name.as_deref()
59 }
60 /// <p>Your description for this environment.</p>
61 pub fn description(&self) -> ::std::option::Option<&str> {
62 self.description.as_deref()
63 }
64 /// <p>If specified, the environment attempts to use this value as the prefix for the CNAME in your Elastic Beanstalk environment URL. If not specified, the CNAME is generated automatically by appending a random alphanumeric string to the environment name.</p>
65 pub fn cname_prefix(&self) -> ::std::option::Option<&str> {
66 self.cname_prefix.as_deref()
67 }
68 /// <p>Specifies the tier to use in creating this environment. The environment tier that you choose determines whether Elastic Beanstalk provisions resources to support a web application that handles HTTP(S) requests or a web application that handles background-processing tasks.</p>
69 pub fn tier(&self) -> ::std::option::Option<&crate::types::EnvironmentTier> {
70 self.tier.as_ref()
71 }
72 /// <p>Specifies the tags applied to resources in the environment.</p>
73 ///
74 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
75 pub fn tags(&self) -> &[crate::types::Tag] {
76 self.tags.as_deref().unwrap_or_default()
77 }
78 /// <p>The name of the application version to deploy.</p>
79 /// <p>Default: If not specified, Elastic Beanstalk attempts to deploy the sample application.</p>
80 pub fn version_label(&self) -> ::std::option::Option<&str> {
81 self.version_label.as_deref()
82 }
83 /// <p>The name of the Elastic Beanstalk configuration template to use with the environment.</p><note>
84 /// <p>If you specify <code>TemplateName</code>, then don't specify <code>SolutionStackName</code>.</p>
85 /// </note>
86 pub fn template_name(&self) -> ::std::option::Option<&str> {
87 self.template_name.as_deref()
88 }
89 /// <p>The name of an Elastic Beanstalk solution stack (platform version) to use with the environment. If specified, Elastic Beanstalk sets the configuration values to the default values associated with the specified solution stack. For a list of current solution stacks, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html">Elastic Beanstalk Supported Platforms</a> in the <i>AWS Elastic Beanstalk Platforms</i> guide.</p><note>
90 /// <p>If you specify <code>SolutionStackName</code>, don't specify <code>PlatformArn</code> or <code>TemplateName</code>.</p>
91 /// </note>
92 pub fn solution_stack_name(&self) -> ::std::option::Option<&str> {
93 self.solution_stack_name.as_deref()
94 }
95 /// <p>The Amazon Resource Name (ARN) of the custom platform to use with the environment. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html">Custom Platforms</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.</p><note>
96 /// <p>If you specify <code>PlatformArn</code>, don't specify <code>SolutionStackName</code>.</p>
97 /// </note>
98 pub fn platform_arn(&self) -> ::std::option::Option<&str> {
99 self.platform_arn.as_deref()
100 }
101 /// <p>If specified, AWS Elastic Beanstalk sets the specified configuration options to the requested value in the configuration set for the new environment. These override the values obtained from the solution stack or the configuration template.</p>
102 ///
103 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.option_settings.is_none()`.
104 pub fn option_settings(&self) -> &[crate::types::ConfigurationOptionSetting] {
105 self.option_settings.as_deref().unwrap_or_default()
106 }
107 /// <p>A list of custom user-defined configuration options to remove from the configuration set for this new environment.</p>
108 ///
109 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.options_to_remove.is_none()`.
110 pub fn options_to_remove(&self) -> &[crate::types::OptionSpecification] {
111 self.options_to_remove.as_deref().unwrap_or_default()
112 }
113 /// <p>The Amazon Resource Name (ARN) of an existing IAM role to be used as the environment's operations role. If specified, Elastic Beanstalk uses the operations role for permissions to downstream services during this call and during subsequent calls acting on this environment. To specify an operations role, you must have the <code>iam:PassRole</code> permission for the role. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/iam-operationsrole.html">Operations roles</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.</p>
114 pub fn operations_role(&self) -> ::std::option::Option<&str> {
115 self.operations_role.as_deref()
116 }
117}
118impl CreateEnvironmentInput {
119 /// Creates a new builder-style object to manufacture [`CreateEnvironmentInput`](crate::operation::create_environment::CreateEnvironmentInput).
120 pub fn builder() -> crate::operation::create_environment::builders::CreateEnvironmentInputBuilder {
121 crate::operation::create_environment::builders::CreateEnvironmentInputBuilder::default()
122 }
123}
124
125/// A builder for [`CreateEnvironmentInput`](crate::operation::create_environment::CreateEnvironmentInput).
126#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
127#[non_exhaustive]
128pub struct CreateEnvironmentInputBuilder {
129 pub(crate) application_name: ::std::option::Option<::std::string::String>,
130 pub(crate) environment_name: ::std::option::Option<::std::string::String>,
131 pub(crate) group_name: ::std::option::Option<::std::string::String>,
132 pub(crate) description: ::std::option::Option<::std::string::String>,
133 pub(crate) cname_prefix: ::std::option::Option<::std::string::String>,
134 pub(crate) tier: ::std::option::Option<crate::types::EnvironmentTier>,
135 pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
136 pub(crate) version_label: ::std::option::Option<::std::string::String>,
137 pub(crate) template_name: ::std::option::Option<::std::string::String>,
138 pub(crate) solution_stack_name: ::std::option::Option<::std::string::String>,
139 pub(crate) platform_arn: ::std::option::Option<::std::string::String>,
140 pub(crate) option_settings: ::std::option::Option<::std::vec::Vec<crate::types::ConfigurationOptionSetting>>,
141 pub(crate) options_to_remove: ::std::option::Option<::std::vec::Vec<crate::types::OptionSpecification>>,
142 pub(crate) operations_role: ::std::option::Option<::std::string::String>,
143}
144impl CreateEnvironmentInputBuilder {
145 /// <p>The name of the application that is associated with this environment.</p>
146 /// This field is required.
147 pub fn application_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
148 self.application_name = ::std::option::Option::Some(input.into());
149 self
150 }
151 /// <p>The name of the application that is associated with this environment.</p>
152 pub fn set_application_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
153 self.application_name = input;
154 self
155 }
156 /// <p>The name of the application that is associated with this environment.</p>
157 pub fn get_application_name(&self) -> &::std::option::Option<::std::string::String> {
158 &self.application_name
159 }
160 /// <p>A unique name for the environment.</p>
161 /// <p>Constraint: Must be from 4 to 40 characters in length. The name can contain only letters, numbers, and hyphens. It can't start or end with a hyphen. This name must be unique within a region in your account. If the specified name already exists in the region, Elastic Beanstalk returns an <code>InvalidParameterValue</code> error.</p>
162 /// <p>If you don't specify the <code>CNAMEPrefix</code> parameter, the environment name becomes part of the CNAME, and therefore part of the visible URL for your application.</p>
163 pub fn environment_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
164 self.environment_name = ::std::option::Option::Some(input.into());
165 self
166 }
167 /// <p>A unique name for the environment.</p>
168 /// <p>Constraint: Must be from 4 to 40 characters in length. The name can contain only letters, numbers, and hyphens. It can't start or end with a hyphen. This name must be unique within a region in your account. If the specified name already exists in the region, Elastic Beanstalk returns an <code>InvalidParameterValue</code> error.</p>
169 /// <p>If you don't specify the <code>CNAMEPrefix</code> parameter, the environment name becomes part of the CNAME, and therefore part of the visible URL for your application.</p>
170 pub fn set_environment_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
171 self.environment_name = input;
172 self
173 }
174 /// <p>A unique name for the environment.</p>
175 /// <p>Constraint: Must be from 4 to 40 characters in length. The name can contain only letters, numbers, and hyphens. It can't start or end with a hyphen. This name must be unique within a region in your account. If the specified name already exists in the region, Elastic Beanstalk returns an <code>InvalidParameterValue</code> error.</p>
176 /// <p>If you don't specify the <code>CNAMEPrefix</code> parameter, the environment name becomes part of the CNAME, and therefore part of the visible URL for your application.</p>
177 pub fn get_environment_name(&self) -> &::std::option::Option<::std::string::String> {
178 &self.environment_name
179 }
180 /// <p>The name of the group to which the target environment belongs. Specify a group name only if the environment's name is specified in an environment manifest and not with the environment name parameter. See <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-cfg-manifest.html">Environment Manifest (env.yaml)</a> for details.</p>
181 pub fn group_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
182 self.group_name = ::std::option::Option::Some(input.into());
183 self
184 }
185 /// <p>The name of the group to which the target environment belongs. Specify a group name only if the environment's name is specified in an environment manifest and not with the environment name parameter. See <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-cfg-manifest.html">Environment Manifest (env.yaml)</a> for details.</p>
186 pub fn set_group_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
187 self.group_name = input;
188 self
189 }
190 /// <p>The name of the group to which the target environment belongs. Specify a group name only if the environment's name is specified in an environment manifest and not with the environment name parameter. See <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-cfg-manifest.html">Environment Manifest (env.yaml)</a> for details.</p>
191 pub fn get_group_name(&self) -> &::std::option::Option<::std::string::String> {
192 &self.group_name
193 }
194 /// <p>Your description for this environment.</p>
195 pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
196 self.description = ::std::option::Option::Some(input.into());
197 self
198 }
199 /// <p>Your description for this environment.</p>
200 pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
201 self.description = input;
202 self
203 }
204 /// <p>Your description for this environment.</p>
205 pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
206 &self.description
207 }
208 /// <p>If specified, the environment attempts to use this value as the prefix for the CNAME in your Elastic Beanstalk environment URL. If not specified, the CNAME is generated automatically by appending a random alphanumeric string to the environment name.</p>
209 pub fn cname_prefix(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
210 self.cname_prefix = ::std::option::Option::Some(input.into());
211 self
212 }
213 /// <p>If specified, the environment attempts to use this value as the prefix for the CNAME in your Elastic Beanstalk environment URL. If not specified, the CNAME is generated automatically by appending a random alphanumeric string to the environment name.</p>
214 pub fn set_cname_prefix(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
215 self.cname_prefix = input;
216 self
217 }
218 /// <p>If specified, the environment attempts to use this value as the prefix for the CNAME in your Elastic Beanstalk environment URL. If not specified, the CNAME is generated automatically by appending a random alphanumeric string to the environment name.</p>
219 pub fn get_cname_prefix(&self) -> &::std::option::Option<::std::string::String> {
220 &self.cname_prefix
221 }
222 /// <p>Specifies the tier to use in creating this environment. The environment tier that you choose determines whether Elastic Beanstalk provisions resources to support a web application that handles HTTP(S) requests or a web application that handles background-processing tasks.</p>
223 pub fn tier(mut self, input: crate::types::EnvironmentTier) -> Self {
224 self.tier = ::std::option::Option::Some(input);
225 self
226 }
227 /// <p>Specifies the tier to use in creating this environment. The environment tier that you choose determines whether Elastic Beanstalk provisions resources to support a web application that handles HTTP(S) requests or a web application that handles background-processing tasks.</p>
228 pub fn set_tier(mut self, input: ::std::option::Option<crate::types::EnvironmentTier>) -> Self {
229 self.tier = input;
230 self
231 }
232 /// <p>Specifies the tier to use in creating this environment. The environment tier that you choose determines whether Elastic Beanstalk provisions resources to support a web application that handles HTTP(S) requests or a web application that handles background-processing tasks.</p>
233 pub fn get_tier(&self) -> &::std::option::Option<crate::types::EnvironmentTier> {
234 &self.tier
235 }
236 /// Appends an item to `tags`.
237 ///
238 /// To override the contents of this collection use [`set_tags`](Self::set_tags).
239 ///
240 /// <p>Specifies the tags applied to resources in the environment.</p>
241 pub fn tags(mut self, input: crate::types::Tag) -> Self {
242 let mut v = self.tags.unwrap_or_default();
243 v.push(input);
244 self.tags = ::std::option::Option::Some(v);
245 self
246 }
247 /// <p>Specifies the tags applied to resources in the environment.</p>
248 pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
249 self.tags = input;
250 self
251 }
252 /// <p>Specifies the tags applied to resources in the environment.</p>
253 pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
254 &self.tags
255 }
256 /// <p>The name of the application version to deploy.</p>
257 /// <p>Default: If not specified, Elastic Beanstalk attempts to deploy the sample application.</p>
258 pub fn version_label(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
259 self.version_label = ::std::option::Option::Some(input.into());
260 self
261 }
262 /// <p>The name of the application version to deploy.</p>
263 /// <p>Default: If not specified, Elastic Beanstalk attempts to deploy the sample application.</p>
264 pub fn set_version_label(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
265 self.version_label = input;
266 self
267 }
268 /// <p>The name of the application version to deploy.</p>
269 /// <p>Default: If not specified, Elastic Beanstalk attempts to deploy the sample application.</p>
270 pub fn get_version_label(&self) -> &::std::option::Option<::std::string::String> {
271 &self.version_label
272 }
273 /// <p>The name of the Elastic Beanstalk configuration template to use with the environment.</p><note>
274 /// <p>If you specify <code>TemplateName</code>, then don't specify <code>SolutionStackName</code>.</p>
275 /// </note>
276 pub fn template_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
277 self.template_name = ::std::option::Option::Some(input.into());
278 self
279 }
280 /// <p>The name of the Elastic Beanstalk configuration template to use with the environment.</p><note>
281 /// <p>If you specify <code>TemplateName</code>, then don't specify <code>SolutionStackName</code>.</p>
282 /// </note>
283 pub fn set_template_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
284 self.template_name = input;
285 self
286 }
287 /// <p>The name of the Elastic Beanstalk configuration template to use with the environment.</p><note>
288 /// <p>If you specify <code>TemplateName</code>, then don't specify <code>SolutionStackName</code>.</p>
289 /// </note>
290 pub fn get_template_name(&self) -> &::std::option::Option<::std::string::String> {
291 &self.template_name
292 }
293 /// <p>The name of an Elastic Beanstalk solution stack (platform version) to use with the environment. If specified, Elastic Beanstalk sets the configuration values to the default values associated with the specified solution stack. For a list of current solution stacks, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html">Elastic Beanstalk Supported Platforms</a> in the <i>AWS Elastic Beanstalk Platforms</i> guide.</p><note>
294 /// <p>If you specify <code>SolutionStackName</code>, don't specify <code>PlatformArn</code> or <code>TemplateName</code>.</p>
295 /// </note>
296 pub fn solution_stack_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
297 self.solution_stack_name = ::std::option::Option::Some(input.into());
298 self
299 }
300 /// <p>The name of an Elastic Beanstalk solution stack (platform version) to use with the environment. If specified, Elastic Beanstalk sets the configuration values to the default values associated with the specified solution stack. For a list of current solution stacks, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html">Elastic Beanstalk Supported Platforms</a> in the <i>AWS Elastic Beanstalk Platforms</i> guide.</p><note>
301 /// <p>If you specify <code>SolutionStackName</code>, don't specify <code>PlatformArn</code> or <code>TemplateName</code>.</p>
302 /// </note>
303 pub fn set_solution_stack_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
304 self.solution_stack_name = input;
305 self
306 }
307 /// <p>The name of an Elastic Beanstalk solution stack (platform version) to use with the environment. If specified, Elastic Beanstalk sets the configuration values to the default values associated with the specified solution stack. For a list of current solution stacks, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html">Elastic Beanstalk Supported Platforms</a> in the <i>AWS Elastic Beanstalk Platforms</i> guide.</p><note>
308 /// <p>If you specify <code>SolutionStackName</code>, don't specify <code>PlatformArn</code> or <code>TemplateName</code>.</p>
309 /// </note>
310 pub fn get_solution_stack_name(&self) -> &::std::option::Option<::std::string::String> {
311 &self.solution_stack_name
312 }
313 /// <p>The Amazon Resource Name (ARN) of the custom platform to use with the environment. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html">Custom Platforms</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.</p><note>
314 /// <p>If you specify <code>PlatformArn</code>, don't specify <code>SolutionStackName</code>.</p>
315 /// </note>
316 pub fn platform_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
317 self.platform_arn = ::std::option::Option::Some(input.into());
318 self
319 }
320 /// <p>The Amazon Resource Name (ARN) of the custom platform to use with the environment. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html">Custom Platforms</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.</p><note>
321 /// <p>If you specify <code>PlatformArn</code>, don't specify <code>SolutionStackName</code>.</p>
322 /// </note>
323 pub fn set_platform_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
324 self.platform_arn = input;
325 self
326 }
327 /// <p>The Amazon Resource Name (ARN) of the custom platform to use with the environment. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html">Custom Platforms</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.</p><note>
328 /// <p>If you specify <code>PlatformArn</code>, don't specify <code>SolutionStackName</code>.</p>
329 /// </note>
330 pub fn get_platform_arn(&self) -> &::std::option::Option<::std::string::String> {
331 &self.platform_arn
332 }
333 /// Appends an item to `option_settings`.
334 ///
335 /// To override the contents of this collection use [`set_option_settings`](Self::set_option_settings).
336 ///
337 /// <p>If specified, AWS Elastic Beanstalk sets the specified configuration options to the requested value in the configuration set for the new environment. These override the values obtained from the solution stack or the configuration template.</p>
338 pub fn option_settings(mut self, input: crate::types::ConfigurationOptionSetting) -> Self {
339 let mut v = self.option_settings.unwrap_or_default();
340 v.push(input);
341 self.option_settings = ::std::option::Option::Some(v);
342 self
343 }
344 /// <p>If specified, AWS Elastic Beanstalk sets the specified configuration options to the requested value in the configuration set for the new environment. These override the values obtained from the solution stack or the configuration template.</p>
345 pub fn set_option_settings(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ConfigurationOptionSetting>>) -> Self {
346 self.option_settings = input;
347 self
348 }
349 /// <p>If specified, AWS Elastic Beanstalk sets the specified configuration options to the requested value in the configuration set for the new environment. These override the values obtained from the solution stack or the configuration template.</p>
350 pub fn get_option_settings(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ConfigurationOptionSetting>> {
351 &self.option_settings
352 }
353 /// Appends an item to `options_to_remove`.
354 ///
355 /// To override the contents of this collection use [`set_options_to_remove`](Self::set_options_to_remove).
356 ///
357 /// <p>A list of custom user-defined configuration options to remove from the configuration set for this new environment.</p>
358 pub fn options_to_remove(mut self, input: crate::types::OptionSpecification) -> Self {
359 let mut v = self.options_to_remove.unwrap_or_default();
360 v.push(input);
361 self.options_to_remove = ::std::option::Option::Some(v);
362 self
363 }
364 /// <p>A list of custom user-defined configuration options to remove from the configuration set for this new environment.</p>
365 pub fn set_options_to_remove(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::OptionSpecification>>) -> Self {
366 self.options_to_remove = input;
367 self
368 }
369 /// <p>A list of custom user-defined configuration options to remove from the configuration set for this new environment.</p>
370 pub fn get_options_to_remove(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::OptionSpecification>> {
371 &self.options_to_remove
372 }
373 /// <p>The Amazon Resource Name (ARN) of an existing IAM role to be used as the environment's operations role. If specified, Elastic Beanstalk uses the operations role for permissions to downstream services during this call and during subsequent calls acting on this environment. To specify an operations role, you must have the <code>iam:PassRole</code> permission for the role. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/iam-operationsrole.html">Operations roles</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.</p>
374 pub fn operations_role(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
375 self.operations_role = ::std::option::Option::Some(input.into());
376 self
377 }
378 /// <p>The Amazon Resource Name (ARN) of an existing IAM role to be used as the environment's operations role. If specified, Elastic Beanstalk uses the operations role for permissions to downstream services during this call and during subsequent calls acting on this environment. To specify an operations role, you must have the <code>iam:PassRole</code> permission for the role. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/iam-operationsrole.html">Operations roles</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.</p>
379 pub fn set_operations_role(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
380 self.operations_role = input;
381 self
382 }
383 /// <p>The Amazon Resource Name (ARN) of an existing IAM role to be used as the environment's operations role. If specified, Elastic Beanstalk uses the operations role for permissions to downstream services during this call and during subsequent calls acting on this environment. To specify an operations role, you must have the <code>iam:PassRole</code> permission for the role. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/iam-operationsrole.html">Operations roles</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.</p>
384 pub fn get_operations_role(&self) -> &::std::option::Option<::std::string::String> {
385 &self.operations_role
386 }
387 /// Consumes the builder and constructs a [`CreateEnvironmentInput`](crate::operation::create_environment::CreateEnvironmentInput).
388 pub fn build(
389 self,
390 ) -> ::std::result::Result<crate::operation::create_environment::CreateEnvironmentInput, ::aws_smithy_types::error::operation::BuildError> {
391 ::std::result::Result::Ok(crate::operation::create_environment::CreateEnvironmentInput {
392 application_name: self.application_name,
393 environment_name: self.environment_name,
394 group_name: self.group_name,
395 description: self.description,
396 cname_prefix: self.cname_prefix,
397 tier: self.tier,
398 tags: self.tags,
399 version_label: self.version_label,
400 template_name: self.template_name,
401 solution_stack_name: self.solution_stack_name,
402 platform_arn: self.platform_arn,
403 option_settings: self.option_settings,
404 options_to_remove: self.options_to_remove,
405 operations_role: self.operations_role,
406 })
407 }
408}