aws_sdk_appstream/operation/update_fleet/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::update_fleet::_update_fleet_output::UpdateFleetOutputBuilder;
3
4pub use crate::operation::update_fleet::_update_fleet_input::UpdateFleetInputBuilder;
5
6impl crate::operation::update_fleet::builders::UpdateFleetInputBuilder {
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::update_fleet::UpdateFleetOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::update_fleet::UpdateFleetError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.update_fleet();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `UpdateFleet`.
24///
25/// <p>Updates the specified fleet.</p>
26/// <p>If the fleet is in the <code>STOPPED</code> state, you can update any attribute except the fleet name.</p>
27/// <p>If the fleet is in the <code>RUNNING</code> state, you can update the following based on the fleet type:</p>
28/// <ul>
29/// <li>
30/// <p>Always-On and On-Demand fleet types</p>
31/// <p>You can update the <code>DisplayName</code>, <code>ComputeCapacity</code>, <code>ImageARN</code>, <code>ImageName</code>, <code>IdleDisconnectTimeoutInSeconds</code>, and <code>DisconnectTimeoutInSeconds</code> attributes.</p></li>
32/// <li>
33/// <p>Elastic fleet type</p>
34/// <p>You can update the <code>DisplayName</code>, <code>IdleDisconnectTimeoutInSeconds</code>, <code>DisconnectTimeoutInSeconds</code>, <code>MaxConcurrentSessions</code>, <code>SessionScriptS3Location</code> and <code>UsbDeviceFilterStrings</code> attributes.</p></li>
35/// </ul>
36/// <p>If the fleet is in the <code>STARTING</code> or <code>STOPPED</code> state, you can't update it.</p>
37#[derive(::std::clone::Clone, ::std::fmt::Debug)]
38pub struct UpdateFleetFluentBuilder {
39 handle: ::std::sync::Arc<crate::client::Handle>,
40 inner: crate::operation::update_fleet::builders::UpdateFleetInputBuilder,
41 config_override: ::std::option::Option<crate::config::Builder>,
42}
43impl
44 crate::client::customize::internal::CustomizableSend<
45 crate::operation::update_fleet::UpdateFleetOutput,
46 crate::operation::update_fleet::UpdateFleetError,
47 > for UpdateFleetFluentBuilder
48{
49 fn send(
50 self,
51 config_override: crate::config::Builder,
52 ) -> crate::client::customize::internal::BoxFuture<
53 crate::client::customize::internal::SendResult<
54 crate::operation::update_fleet::UpdateFleetOutput,
55 crate::operation::update_fleet::UpdateFleetError,
56 >,
57 > {
58 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
59 }
60}
61impl UpdateFleetFluentBuilder {
62 /// Creates a new `UpdateFleetFluentBuilder`.
63 pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
64 Self {
65 handle,
66 inner: ::std::default::Default::default(),
67 config_override: ::std::option::Option::None,
68 }
69 }
70 /// Access the UpdateFleet as a reference.
71 pub fn as_input(&self) -> &crate::operation::update_fleet::builders::UpdateFleetInputBuilder {
72 &self.inner
73 }
74 /// Sends the request and returns the response.
75 ///
76 /// If an error occurs, an `SdkError` will be returned with additional details that
77 /// can be matched against.
78 ///
79 /// By default, any retryable failures will be retried twice. Retry behavior
80 /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
81 /// set when configuring the client.
82 pub async fn send(
83 self,
84 ) -> ::std::result::Result<
85 crate::operation::update_fleet::UpdateFleetOutput,
86 ::aws_smithy_runtime_api::client::result::SdkError<
87 crate::operation::update_fleet::UpdateFleetError,
88 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
89 >,
90 > {
91 let input = self
92 .inner
93 .build()
94 .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
95 let runtime_plugins = crate::operation::update_fleet::UpdateFleet::operation_runtime_plugins(
96 self.handle.runtime_plugins.clone(),
97 &self.handle.conf,
98 self.config_override,
99 );
100 crate::operation::update_fleet::UpdateFleet::orchestrate(&runtime_plugins, input).await
101 }
102
103 /// Consumes this builder, creating a customizable operation that can be modified before being sent.
104 pub fn customize(
105 self,
106 ) -> crate::client::customize::CustomizableOperation<
107 crate::operation::update_fleet::UpdateFleetOutput,
108 crate::operation::update_fleet::UpdateFleetError,
109 Self,
110 > {
111 crate::client::customize::CustomizableOperation::new(self)
112 }
113 pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
114 self.set_config_override(::std::option::Option::Some(config_override.into()));
115 self
116 }
117
118 pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
119 self.config_override = config_override;
120 self
121 }
122 /// <p>The name of the image used to create the fleet.</p>
123 pub fn image_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
124 self.inner = self.inner.image_name(input.into());
125 self
126 }
127 /// <p>The name of the image used to create the fleet.</p>
128 pub fn set_image_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
129 self.inner = self.inner.set_image_name(input);
130 self
131 }
132 /// <p>The name of the image used to create the fleet.</p>
133 pub fn get_image_name(&self) -> &::std::option::Option<::std::string::String> {
134 self.inner.get_image_name()
135 }
136 /// <p>The ARN of the public, private, or shared image to use.</p>
137 pub fn image_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
138 self.inner = self.inner.image_arn(input.into());
139 self
140 }
141 /// <p>The ARN of the public, private, or shared image to use.</p>
142 pub fn set_image_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
143 self.inner = self.inner.set_image_arn(input);
144 self
145 }
146 /// <p>The ARN of the public, private, or shared image to use.</p>
147 pub fn get_image_arn(&self) -> &::std::option::Option<::std::string::String> {
148 self.inner.get_image_arn()
149 }
150 /// <p>A unique name for the fleet.</p>
151 pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
152 self.inner = self.inner.name(input.into());
153 self
154 }
155 /// <p>A unique name for the fleet.</p>
156 pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
157 self.inner = self.inner.set_name(input);
158 self
159 }
160 /// <p>A unique name for the fleet.</p>
161 pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
162 self.inner.get_name()
163 }
164 /// <p>The instance type to use when launching fleet instances. The following instance types are available:</p>
165 /// <ul>
166 /// <li>
167 /// <p>stream.standard.small</p></li>
168 /// <li>
169 /// <p>stream.standard.medium</p></li>
170 /// <li>
171 /// <p>stream.standard.large</p></li>
172 /// <li>
173 /// <p>stream.standard.xlarge</p></li>
174 /// <li>
175 /// <p>stream.standard.2xlarge</p></li>
176 /// <li>
177 /// <p>stream.compute.large</p></li>
178 /// <li>
179 /// <p>stream.compute.xlarge</p></li>
180 /// <li>
181 /// <p>stream.compute.2xlarge</p></li>
182 /// <li>
183 /// <p>stream.compute.4xlarge</p></li>
184 /// <li>
185 /// <p>stream.compute.8xlarge</p></li>
186 /// <li>
187 /// <p>stream.memory.large</p></li>
188 /// <li>
189 /// <p>stream.memory.xlarge</p></li>
190 /// <li>
191 /// <p>stream.memory.2xlarge</p></li>
192 /// <li>
193 /// <p>stream.memory.4xlarge</p></li>
194 /// <li>
195 /// <p>stream.memory.8xlarge</p></li>
196 /// <li>
197 /// <p>stream.memory.z1d.large</p></li>
198 /// <li>
199 /// <p>stream.memory.z1d.xlarge</p></li>
200 /// <li>
201 /// <p>stream.memory.z1d.2xlarge</p></li>
202 /// <li>
203 /// <p>stream.memory.z1d.3xlarge</p></li>
204 /// <li>
205 /// <p>stream.memory.z1d.6xlarge</p></li>
206 /// <li>
207 /// <p>stream.memory.z1d.12xlarge</p></li>
208 /// <li>
209 /// <p>stream.graphics-design.large</p></li>
210 /// <li>
211 /// <p>stream.graphics-design.xlarge</p></li>
212 /// <li>
213 /// <p>stream.graphics-design.2xlarge</p></li>
214 /// <li>
215 /// <p>stream.graphics-design.4xlarge</p></li>
216 /// <li>
217 /// <p>stream.graphics.g4dn.xlarge</p></li>
218 /// <li>
219 /// <p>stream.graphics.g4dn.2xlarge</p></li>
220 /// <li>
221 /// <p>stream.graphics.g4dn.4xlarge</p></li>
222 /// <li>
223 /// <p>stream.graphics.g4dn.8xlarge</p></li>
224 /// <li>
225 /// <p>stream.graphics.g4dn.12xlarge</p></li>
226 /// <li>
227 /// <p>stream.graphics.g4dn.16xlarge</p></li>
228 /// <li>
229 /// <p>stream.graphics.g5.xlarge</p></li>
230 /// <li>
231 /// <p>stream.graphics.g5.2xlarge</p></li>
232 /// <li>
233 /// <p>stream.graphics.g5.4xlarge</p></li>
234 /// <li>
235 /// <p>stream.graphics.g5.8xlarge</p></li>
236 /// <li>
237 /// <p>stream.graphics.g5.16xlarge</p></li>
238 /// <li>
239 /// <p>stream.graphics.g5.12xlarge</p></li>
240 /// <li>
241 /// <p>stream.graphics.g5.24xlarge</p></li>
242 /// <li>
243 /// <p>stream.graphics.g6.xlarge</p></li>
244 /// <li>
245 /// <p>stream.graphics.g6.2xlarge</p></li>
246 /// <li>
247 /// <p>stream.graphics.g6.4xlarge</p></li>
248 /// <li>
249 /// <p>stream.graphics.g6.8xlarge</p></li>
250 /// <li>
251 /// <p>stream.graphics.g6.16xlarge</p></li>
252 /// <li>
253 /// <p>stream.graphics.g6.12xlarge</p></li>
254 /// <li>
255 /// <p>stream.graphics.g6.24xlarge</p></li>
256 /// <li>
257 /// <p>stream.graphics.gr6.4xlarge</p></li>
258 /// <li>
259 /// <p>stream.graphics.gr6.8xlarge</p></li>
260 /// <li>
261 /// <p>stream.graphics.g6f.large</p></li>
262 /// <li>
263 /// <p>stream.graphics.g6f.xlarge</p></li>
264 /// <li>
265 /// <p>stream.graphics.g6f.2xlarge</p></li>
266 /// <li>
267 /// <p>stream.graphics.g6f.4xlarge</p></li>
268 /// <li>
269 /// <p>stream.graphics.gr6f.4xlarge</p></li>
270 /// </ul>
271 /// <p>The following instance types are available for Elastic fleets:</p>
272 /// <ul>
273 /// <li>
274 /// <p>stream.standard.small</p></li>
275 /// <li>
276 /// <p>stream.standard.medium</p></li>
277 /// <li>
278 /// <p>stream.standard.large</p></li>
279 /// <li>
280 /// <p>stream.standard.xlarge</p></li>
281 /// <li>
282 /// <p>stream.standard.2xlarge</p></li>
283 /// </ul>
284 pub fn instance_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
285 self.inner = self.inner.instance_type(input.into());
286 self
287 }
288 /// <p>The instance type to use when launching fleet instances. The following instance types are available:</p>
289 /// <ul>
290 /// <li>
291 /// <p>stream.standard.small</p></li>
292 /// <li>
293 /// <p>stream.standard.medium</p></li>
294 /// <li>
295 /// <p>stream.standard.large</p></li>
296 /// <li>
297 /// <p>stream.standard.xlarge</p></li>
298 /// <li>
299 /// <p>stream.standard.2xlarge</p></li>
300 /// <li>
301 /// <p>stream.compute.large</p></li>
302 /// <li>
303 /// <p>stream.compute.xlarge</p></li>
304 /// <li>
305 /// <p>stream.compute.2xlarge</p></li>
306 /// <li>
307 /// <p>stream.compute.4xlarge</p></li>
308 /// <li>
309 /// <p>stream.compute.8xlarge</p></li>
310 /// <li>
311 /// <p>stream.memory.large</p></li>
312 /// <li>
313 /// <p>stream.memory.xlarge</p></li>
314 /// <li>
315 /// <p>stream.memory.2xlarge</p></li>
316 /// <li>
317 /// <p>stream.memory.4xlarge</p></li>
318 /// <li>
319 /// <p>stream.memory.8xlarge</p></li>
320 /// <li>
321 /// <p>stream.memory.z1d.large</p></li>
322 /// <li>
323 /// <p>stream.memory.z1d.xlarge</p></li>
324 /// <li>
325 /// <p>stream.memory.z1d.2xlarge</p></li>
326 /// <li>
327 /// <p>stream.memory.z1d.3xlarge</p></li>
328 /// <li>
329 /// <p>stream.memory.z1d.6xlarge</p></li>
330 /// <li>
331 /// <p>stream.memory.z1d.12xlarge</p></li>
332 /// <li>
333 /// <p>stream.graphics-design.large</p></li>
334 /// <li>
335 /// <p>stream.graphics-design.xlarge</p></li>
336 /// <li>
337 /// <p>stream.graphics-design.2xlarge</p></li>
338 /// <li>
339 /// <p>stream.graphics-design.4xlarge</p></li>
340 /// <li>
341 /// <p>stream.graphics.g4dn.xlarge</p></li>
342 /// <li>
343 /// <p>stream.graphics.g4dn.2xlarge</p></li>
344 /// <li>
345 /// <p>stream.graphics.g4dn.4xlarge</p></li>
346 /// <li>
347 /// <p>stream.graphics.g4dn.8xlarge</p></li>
348 /// <li>
349 /// <p>stream.graphics.g4dn.12xlarge</p></li>
350 /// <li>
351 /// <p>stream.graphics.g4dn.16xlarge</p></li>
352 /// <li>
353 /// <p>stream.graphics.g5.xlarge</p></li>
354 /// <li>
355 /// <p>stream.graphics.g5.2xlarge</p></li>
356 /// <li>
357 /// <p>stream.graphics.g5.4xlarge</p></li>
358 /// <li>
359 /// <p>stream.graphics.g5.8xlarge</p></li>
360 /// <li>
361 /// <p>stream.graphics.g5.16xlarge</p></li>
362 /// <li>
363 /// <p>stream.graphics.g5.12xlarge</p></li>
364 /// <li>
365 /// <p>stream.graphics.g5.24xlarge</p></li>
366 /// <li>
367 /// <p>stream.graphics.g6.xlarge</p></li>
368 /// <li>
369 /// <p>stream.graphics.g6.2xlarge</p></li>
370 /// <li>
371 /// <p>stream.graphics.g6.4xlarge</p></li>
372 /// <li>
373 /// <p>stream.graphics.g6.8xlarge</p></li>
374 /// <li>
375 /// <p>stream.graphics.g6.16xlarge</p></li>
376 /// <li>
377 /// <p>stream.graphics.g6.12xlarge</p></li>
378 /// <li>
379 /// <p>stream.graphics.g6.24xlarge</p></li>
380 /// <li>
381 /// <p>stream.graphics.gr6.4xlarge</p></li>
382 /// <li>
383 /// <p>stream.graphics.gr6.8xlarge</p></li>
384 /// <li>
385 /// <p>stream.graphics.g6f.large</p></li>
386 /// <li>
387 /// <p>stream.graphics.g6f.xlarge</p></li>
388 /// <li>
389 /// <p>stream.graphics.g6f.2xlarge</p></li>
390 /// <li>
391 /// <p>stream.graphics.g6f.4xlarge</p></li>
392 /// <li>
393 /// <p>stream.graphics.gr6f.4xlarge</p></li>
394 /// </ul>
395 /// <p>The following instance types are available for Elastic fleets:</p>
396 /// <ul>
397 /// <li>
398 /// <p>stream.standard.small</p></li>
399 /// <li>
400 /// <p>stream.standard.medium</p></li>
401 /// <li>
402 /// <p>stream.standard.large</p></li>
403 /// <li>
404 /// <p>stream.standard.xlarge</p></li>
405 /// <li>
406 /// <p>stream.standard.2xlarge</p></li>
407 /// </ul>
408 pub fn set_instance_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
409 self.inner = self.inner.set_instance_type(input);
410 self
411 }
412 /// <p>The instance type to use when launching fleet instances. The following instance types are available:</p>
413 /// <ul>
414 /// <li>
415 /// <p>stream.standard.small</p></li>
416 /// <li>
417 /// <p>stream.standard.medium</p></li>
418 /// <li>
419 /// <p>stream.standard.large</p></li>
420 /// <li>
421 /// <p>stream.standard.xlarge</p></li>
422 /// <li>
423 /// <p>stream.standard.2xlarge</p></li>
424 /// <li>
425 /// <p>stream.compute.large</p></li>
426 /// <li>
427 /// <p>stream.compute.xlarge</p></li>
428 /// <li>
429 /// <p>stream.compute.2xlarge</p></li>
430 /// <li>
431 /// <p>stream.compute.4xlarge</p></li>
432 /// <li>
433 /// <p>stream.compute.8xlarge</p></li>
434 /// <li>
435 /// <p>stream.memory.large</p></li>
436 /// <li>
437 /// <p>stream.memory.xlarge</p></li>
438 /// <li>
439 /// <p>stream.memory.2xlarge</p></li>
440 /// <li>
441 /// <p>stream.memory.4xlarge</p></li>
442 /// <li>
443 /// <p>stream.memory.8xlarge</p></li>
444 /// <li>
445 /// <p>stream.memory.z1d.large</p></li>
446 /// <li>
447 /// <p>stream.memory.z1d.xlarge</p></li>
448 /// <li>
449 /// <p>stream.memory.z1d.2xlarge</p></li>
450 /// <li>
451 /// <p>stream.memory.z1d.3xlarge</p></li>
452 /// <li>
453 /// <p>stream.memory.z1d.6xlarge</p></li>
454 /// <li>
455 /// <p>stream.memory.z1d.12xlarge</p></li>
456 /// <li>
457 /// <p>stream.graphics-design.large</p></li>
458 /// <li>
459 /// <p>stream.graphics-design.xlarge</p></li>
460 /// <li>
461 /// <p>stream.graphics-design.2xlarge</p></li>
462 /// <li>
463 /// <p>stream.graphics-design.4xlarge</p></li>
464 /// <li>
465 /// <p>stream.graphics.g4dn.xlarge</p></li>
466 /// <li>
467 /// <p>stream.graphics.g4dn.2xlarge</p></li>
468 /// <li>
469 /// <p>stream.graphics.g4dn.4xlarge</p></li>
470 /// <li>
471 /// <p>stream.graphics.g4dn.8xlarge</p></li>
472 /// <li>
473 /// <p>stream.graphics.g4dn.12xlarge</p></li>
474 /// <li>
475 /// <p>stream.graphics.g4dn.16xlarge</p></li>
476 /// <li>
477 /// <p>stream.graphics.g5.xlarge</p></li>
478 /// <li>
479 /// <p>stream.graphics.g5.2xlarge</p></li>
480 /// <li>
481 /// <p>stream.graphics.g5.4xlarge</p></li>
482 /// <li>
483 /// <p>stream.graphics.g5.8xlarge</p></li>
484 /// <li>
485 /// <p>stream.graphics.g5.16xlarge</p></li>
486 /// <li>
487 /// <p>stream.graphics.g5.12xlarge</p></li>
488 /// <li>
489 /// <p>stream.graphics.g5.24xlarge</p></li>
490 /// <li>
491 /// <p>stream.graphics.g6.xlarge</p></li>
492 /// <li>
493 /// <p>stream.graphics.g6.2xlarge</p></li>
494 /// <li>
495 /// <p>stream.graphics.g6.4xlarge</p></li>
496 /// <li>
497 /// <p>stream.graphics.g6.8xlarge</p></li>
498 /// <li>
499 /// <p>stream.graphics.g6.16xlarge</p></li>
500 /// <li>
501 /// <p>stream.graphics.g6.12xlarge</p></li>
502 /// <li>
503 /// <p>stream.graphics.g6.24xlarge</p></li>
504 /// <li>
505 /// <p>stream.graphics.gr6.4xlarge</p></li>
506 /// <li>
507 /// <p>stream.graphics.gr6.8xlarge</p></li>
508 /// <li>
509 /// <p>stream.graphics.g6f.large</p></li>
510 /// <li>
511 /// <p>stream.graphics.g6f.xlarge</p></li>
512 /// <li>
513 /// <p>stream.graphics.g6f.2xlarge</p></li>
514 /// <li>
515 /// <p>stream.graphics.g6f.4xlarge</p></li>
516 /// <li>
517 /// <p>stream.graphics.gr6f.4xlarge</p></li>
518 /// </ul>
519 /// <p>The following instance types are available for Elastic fleets:</p>
520 /// <ul>
521 /// <li>
522 /// <p>stream.standard.small</p></li>
523 /// <li>
524 /// <p>stream.standard.medium</p></li>
525 /// <li>
526 /// <p>stream.standard.large</p></li>
527 /// <li>
528 /// <p>stream.standard.xlarge</p></li>
529 /// <li>
530 /// <p>stream.standard.2xlarge</p></li>
531 /// </ul>
532 pub fn get_instance_type(&self) -> &::std::option::Option<::std::string::String> {
533 self.inner.get_instance_type()
534 }
535 /// <p>The desired capacity for the fleet. This is not allowed for Elastic fleets.</p>
536 pub fn compute_capacity(mut self, input: crate::types::ComputeCapacity) -> Self {
537 self.inner = self.inner.compute_capacity(input);
538 self
539 }
540 /// <p>The desired capacity for the fleet. This is not allowed for Elastic fleets.</p>
541 pub fn set_compute_capacity(mut self, input: ::std::option::Option<crate::types::ComputeCapacity>) -> Self {
542 self.inner = self.inner.set_compute_capacity(input);
543 self
544 }
545 /// <p>The desired capacity for the fleet. This is not allowed for Elastic fleets.</p>
546 pub fn get_compute_capacity(&self) -> &::std::option::Option<crate::types::ComputeCapacity> {
547 self.inner.get_compute_capacity()
548 }
549 /// <p>The VPC configuration for the fleet. This is required for Elastic fleets, but not required for other fleet types. Elastic fleets require that you specify at least two subnets in different availability zones.</p>
550 pub fn vpc_config(mut self, input: crate::types::VpcConfig) -> Self {
551 self.inner = self.inner.vpc_config(input);
552 self
553 }
554 /// <p>The VPC configuration for the fleet. This is required for Elastic fleets, but not required for other fleet types. Elastic fleets require that you specify at least two subnets in different availability zones.</p>
555 pub fn set_vpc_config(mut self, input: ::std::option::Option<crate::types::VpcConfig>) -> Self {
556 self.inner = self.inner.set_vpc_config(input);
557 self
558 }
559 /// <p>The VPC configuration for the fleet. This is required for Elastic fleets, but not required for other fleet types. Elastic fleets require that you specify at least two subnets in different availability zones.</p>
560 pub fn get_vpc_config(&self) -> &::std::option::Option<crate::types::VpcConfig> {
561 self.inner.get_vpc_config()
562 }
563 /// <p>The maximum amount of time that a streaming session can remain active, in seconds. If users are still connected to a streaming instance five minutes before this limit is reached, they are prompted to save any open documents before being disconnected. After this time elapses, the instance is terminated and replaced by a new instance.</p>
564 /// <p>Specify a value between 600 and 432000.</p>
565 pub fn max_user_duration_in_seconds(mut self, input: i32) -> Self {
566 self.inner = self.inner.max_user_duration_in_seconds(input);
567 self
568 }
569 /// <p>The maximum amount of time that a streaming session can remain active, in seconds. If users are still connected to a streaming instance five minutes before this limit is reached, they are prompted to save any open documents before being disconnected. After this time elapses, the instance is terminated and replaced by a new instance.</p>
570 /// <p>Specify a value between 600 and 432000.</p>
571 pub fn set_max_user_duration_in_seconds(mut self, input: ::std::option::Option<i32>) -> Self {
572 self.inner = self.inner.set_max_user_duration_in_seconds(input);
573 self
574 }
575 /// <p>The maximum amount of time that a streaming session can remain active, in seconds. If users are still connected to a streaming instance five minutes before this limit is reached, they are prompted to save any open documents before being disconnected. After this time elapses, the instance is terminated and replaced by a new instance.</p>
576 /// <p>Specify a value between 600 and 432000.</p>
577 pub fn get_max_user_duration_in_seconds(&self) -> &::std::option::Option<i32> {
578 self.inner.get_max_user_duration_in_seconds()
579 }
580 /// <p>The amount of time that a streaming session remains active after users disconnect. If users try to reconnect to the streaming session after a disconnection or network interruption within this time interval, they are connected to their previous session. Otherwise, they are connected to a new session with a new streaming instance.</p>
581 /// <p>Specify a value between 60 and 36000.</p>
582 pub fn disconnect_timeout_in_seconds(mut self, input: i32) -> Self {
583 self.inner = self.inner.disconnect_timeout_in_seconds(input);
584 self
585 }
586 /// <p>The amount of time that a streaming session remains active after users disconnect. If users try to reconnect to the streaming session after a disconnection or network interruption within this time interval, they are connected to their previous session. Otherwise, they are connected to a new session with a new streaming instance.</p>
587 /// <p>Specify a value between 60 and 36000.</p>
588 pub fn set_disconnect_timeout_in_seconds(mut self, input: ::std::option::Option<i32>) -> Self {
589 self.inner = self.inner.set_disconnect_timeout_in_seconds(input);
590 self
591 }
592 /// <p>The amount of time that a streaming session remains active after users disconnect. If users try to reconnect to the streaming session after a disconnection or network interruption within this time interval, they are connected to their previous session. Otherwise, they are connected to a new session with a new streaming instance.</p>
593 /// <p>Specify a value between 60 and 36000.</p>
594 pub fn get_disconnect_timeout_in_seconds(&self) -> &::std::option::Option<i32> {
595 self.inner.get_disconnect_timeout_in_seconds()
596 }
597 /// <p>Deletes the VPC association for the specified fleet.</p>
598 #[deprecated]
599 pub fn delete_vpc_config(mut self, input: bool) -> Self {
600 self.inner = self.inner.delete_vpc_config(input);
601 self
602 }
603 /// <p>Deletes the VPC association for the specified fleet.</p>
604 #[deprecated]
605 pub fn set_delete_vpc_config(mut self, input: ::std::option::Option<bool>) -> Self {
606 self.inner = self.inner.set_delete_vpc_config(input);
607 self
608 }
609 /// <p>Deletes the VPC association for the specified fleet.</p>
610 #[deprecated]
611 pub fn get_delete_vpc_config(&self) -> &::std::option::Option<bool> {
612 self.inner.get_delete_vpc_config()
613 }
614 /// <p>The description to display.</p>
615 pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
616 self.inner = self.inner.description(input.into());
617 self
618 }
619 /// <p>The description to display.</p>
620 pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
621 self.inner = self.inner.set_description(input);
622 self
623 }
624 /// <p>The description to display.</p>
625 pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
626 self.inner.get_description()
627 }
628 /// <p>The fleet name to display.</p>
629 pub fn display_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
630 self.inner = self.inner.display_name(input.into());
631 self
632 }
633 /// <p>The fleet name to display.</p>
634 pub fn set_display_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
635 self.inner = self.inner.set_display_name(input);
636 self
637 }
638 /// <p>The fleet name to display.</p>
639 pub fn get_display_name(&self) -> &::std::option::Option<::std::string::String> {
640 self.inner.get_display_name()
641 }
642 /// <p>Enables or disables default internet access for the fleet.</p>
643 pub fn enable_default_internet_access(mut self, input: bool) -> Self {
644 self.inner = self.inner.enable_default_internet_access(input);
645 self
646 }
647 /// <p>Enables or disables default internet access for the fleet.</p>
648 pub fn set_enable_default_internet_access(mut self, input: ::std::option::Option<bool>) -> Self {
649 self.inner = self.inner.set_enable_default_internet_access(input);
650 self
651 }
652 /// <p>Enables or disables default internet access for the fleet.</p>
653 pub fn get_enable_default_internet_access(&self) -> &::std::option::Option<bool> {
654 self.inner.get_enable_default_internet_access()
655 }
656 /// <p>The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory domain.</p>
657 pub fn domain_join_info(mut self, input: crate::types::DomainJoinInfo) -> Self {
658 self.inner = self.inner.domain_join_info(input);
659 self
660 }
661 /// <p>The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory domain.</p>
662 pub fn set_domain_join_info(mut self, input: ::std::option::Option<crate::types::DomainJoinInfo>) -> Self {
663 self.inner = self.inner.set_domain_join_info(input);
664 self
665 }
666 /// <p>The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory domain.</p>
667 pub fn get_domain_join_info(&self) -> &::std::option::Option<crate::types::DomainJoinInfo> {
668 self.inner.get_domain_join_info()
669 }
670 /// <p>The amount of time that users can be idle (inactive) before they are disconnected from their streaming session and the <code>DisconnectTimeoutInSeconds</code> time interval begins. Users are notified before they are disconnected due to inactivity. If users try to reconnect to the streaming session before the time interval specified in <code>DisconnectTimeoutInSeconds</code> elapses, they are connected to their previous session. Users are considered idle when they stop providing keyboard or mouse input during their streaming session. File uploads and downloads, audio in, audio out, and pixels changing do not qualify as user activity. If users continue to be idle after the time interval in <code>IdleDisconnectTimeoutInSeconds</code> elapses, they are disconnected.</p>
671 /// <p>To prevent users from being disconnected due to inactivity, specify a value of 0. Otherwise, specify a value between 60 and 36000. The default value is 0.</p><note>
672 /// <p>If you enable this feature, we recommend that you specify a value that corresponds exactly to a whole number of minutes (for example, 60, 120, and 180). If you don't do this, the value is rounded to the nearest minute. For example, if you specify a value of 70, users are disconnected after 1 minute of inactivity. If you specify a value that is at the midpoint between two different minutes, the value is rounded up. For example, if you specify a value of 90, users are disconnected after 2 minutes of inactivity.</p>
673 /// </note>
674 pub fn idle_disconnect_timeout_in_seconds(mut self, input: i32) -> Self {
675 self.inner = self.inner.idle_disconnect_timeout_in_seconds(input);
676 self
677 }
678 /// <p>The amount of time that users can be idle (inactive) before they are disconnected from their streaming session and the <code>DisconnectTimeoutInSeconds</code> time interval begins. Users are notified before they are disconnected due to inactivity. If users try to reconnect to the streaming session before the time interval specified in <code>DisconnectTimeoutInSeconds</code> elapses, they are connected to their previous session. Users are considered idle when they stop providing keyboard or mouse input during their streaming session. File uploads and downloads, audio in, audio out, and pixels changing do not qualify as user activity. If users continue to be idle after the time interval in <code>IdleDisconnectTimeoutInSeconds</code> elapses, they are disconnected.</p>
679 /// <p>To prevent users from being disconnected due to inactivity, specify a value of 0. Otherwise, specify a value between 60 and 36000. The default value is 0.</p><note>
680 /// <p>If you enable this feature, we recommend that you specify a value that corresponds exactly to a whole number of minutes (for example, 60, 120, and 180). If you don't do this, the value is rounded to the nearest minute. For example, if you specify a value of 70, users are disconnected after 1 minute of inactivity. If you specify a value that is at the midpoint between two different minutes, the value is rounded up. For example, if you specify a value of 90, users are disconnected after 2 minutes of inactivity.</p>
681 /// </note>
682 pub fn set_idle_disconnect_timeout_in_seconds(mut self, input: ::std::option::Option<i32>) -> Self {
683 self.inner = self.inner.set_idle_disconnect_timeout_in_seconds(input);
684 self
685 }
686 /// <p>The amount of time that users can be idle (inactive) before they are disconnected from their streaming session and the <code>DisconnectTimeoutInSeconds</code> time interval begins. Users are notified before they are disconnected due to inactivity. If users try to reconnect to the streaming session before the time interval specified in <code>DisconnectTimeoutInSeconds</code> elapses, they are connected to their previous session. Users are considered idle when they stop providing keyboard or mouse input during their streaming session. File uploads and downloads, audio in, audio out, and pixels changing do not qualify as user activity. If users continue to be idle after the time interval in <code>IdleDisconnectTimeoutInSeconds</code> elapses, they are disconnected.</p>
687 /// <p>To prevent users from being disconnected due to inactivity, specify a value of 0. Otherwise, specify a value between 60 and 36000. The default value is 0.</p><note>
688 /// <p>If you enable this feature, we recommend that you specify a value that corresponds exactly to a whole number of minutes (for example, 60, 120, and 180). If you don't do this, the value is rounded to the nearest minute. For example, if you specify a value of 70, users are disconnected after 1 minute of inactivity. If you specify a value that is at the midpoint between two different minutes, the value is rounded up. For example, if you specify a value of 90, users are disconnected after 2 minutes of inactivity.</p>
689 /// </note>
690 pub fn get_idle_disconnect_timeout_in_seconds(&self) -> &::std::option::Option<i32> {
691 self.inner.get_idle_disconnect_timeout_in_seconds()
692 }
693 ///
694 /// Appends an item to `AttributesToDelete`.
695 ///
696 /// To override the contents of this collection use [`set_attributes_to_delete`](Self::set_attributes_to_delete).
697 ///
698 /// <p>The fleet attributes to delete.</p>
699 pub fn attributes_to_delete(mut self, input: crate::types::FleetAttribute) -> Self {
700 self.inner = self.inner.attributes_to_delete(input);
701 self
702 }
703 /// <p>The fleet attributes to delete.</p>
704 pub fn set_attributes_to_delete(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::FleetAttribute>>) -> Self {
705 self.inner = self.inner.set_attributes_to_delete(input);
706 self
707 }
708 /// <p>The fleet attributes to delete.</p>
709 pub fn get_attributes_to_delete(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::FleetAttribute>> {
710 self.inner.get_attributes_to_delete()
711 }
712 /// <p>The Amazon Resource Name (ARN) of the IAM role to apply to the fleet. To assume a role, a fleet instance calls the AWS Security Token Service (STS) <code>AssumeRole</code> API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. WorkSpaces Applications retrieves the temporary credentials and creates the <b>appstream_machine_role</b> credential profile on the instance.</p>
713 /// <p>For more information, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html">Using an IAM Role to Grant Permissions to Applications and Scripts Running on WorkSpaces Applications Streaming Instances</a> in the <i>Amazon WorkSpaces Applications Administration Guide</i>.</p>
714 pub fn iam_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
715 self.inner = self.inner.iam_role_arn(input.into());
716 self
717 }
718 /// <p>The Amazon Resource Name (ARN) of the IAM role to apply to the fleet. To assume a role, a fleet instance calls the AWS Security Token Service (STS) <code>AssumeRole</code> API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. WorkSpaces Applications retrieves the temporary credentials and creates the <b>appstream_machine_role</b> credential profile on the instance.</p>
719 /// <p>For more information, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html">Using an IAM Role to Grant Permissions to Applications and Scripts Running on WorkSpaces Applications Streaming Instances</a> in the <i>Amazon WorkSpaces Applications Administration Guide</i>.</p>
720 pub fn set_iam_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
721 self.inner = self.inner.set_iam_role_arn(input);
722 self
723 }
724 /// <p>The Amazon Resource Name (ARN) of the IAM role to apply to the fleet. To assume a role, a fleet instance calls the AWS Security Token Service (STS) <code>AssumeRole</code> API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. WorkSpaces Applications retrieves the temporary credentials and creates the <b>appstream_machine_role</b> credential profile on the instance.</p>
725 /// <p>For more information, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html">Using an IAM Role to Grant Permissions to Applications and Scripts Running on WorkSpaces Applications Streaming Instances</a> in the <i>Amazon WorkSpaces Applications Administration Guide</i>.</p>
726 pub fn get_iam_role_arn(&self) -> &::std::option::Option<::std::string::String> {
727 self.inner.get_iam_role_arn()
728 }
729 /// <p>The WorkSpaces Applications view that is displayed to your users when they stream from the fleet. When <code>APP</code> is specified, only the windows of applications opened by users display. When <code>DESKTOP</code> is specified, the standard desktop that is provided by the operating system displays.</p>
730 /// <p>The default value is <code>APP</code>.</p>
731 pub fn stream_view(mut self, input: crate::types::StreamView) -> Self {
732 self.inner = self.inner.stream_view(input);
733 self
734 }
735 /// <p>The WorkSpaces Applications view that is displayed to your users when they stream from the fleet. When <code>APP</code> is specified, only the windows of applications opened by users display. When <code>DESKTOP</code> is specified, the standard desktop that is provided by the operating system displays.</p>
736 /// <p>The default value is <code>APP</code>.</p>
737 pub fn set_stream_view(mut self, input: ::std::option::Option<crate::types::StreamView>) -> Self {
738 self.inner = self.inner.set_stream_view(input);
739 self
740 }
741 /// <p>The WorkSpaces Applications view that is displayed to your users when they stream from the fleet. When <code>APP</code> is specified, only the windows of applications opened by users display. When <code>DESKTOP</code> is specified, the standard desktop that is provided by the operating system displays.</p>
742 /// <p>The default value is <code>APP</code>.</p>
743 pub fn get_stream_view(&self) -> &::std::option::Option<crate::types::StreamView> {
744 self.inner.get_stream_view()
745 }
746 /// <p>The platform of the fleet. WINDOWS_SERVER_2019 and AMAZON_LINUX2 are supported for Elastic fleets.</p>
747 pub fn platform(mut self, input: crate::types::PlatformType) -> Self {
748 self.inner = self.inner.platform(input);
749 self
750 }
751 /// <p>The platform of the fleet. WINDOWS_SERVER_2019 and AMAZON_LINUX2 are supported for Elastic fleets.</p>
752 pub fn set_platform(mut self, input: ::std::option::Option<crate::types::PlatformType>) -> Self {
753 self.inner = self.inner.set_platform(input);
754 self
755 }
756 /// <p>The platform of the fleet. WINDOWS_SERVER_2019 and AMAZON_LINUX2 are supported for Elastic fleets.</p>
757 pub fn get_platform(&self) -> &::std::option::Option<crate::types::PlatformType> {
758 self.inner.get_platform()
759 }
760 /// <p>The maximum number of concurrent sessions for a fleet.</p>
761 pub fn max_concurrent_sessions(mut self, input: i32) -> Self {
762 self.inner = self.inner.max_concurrent_sessions(input);
763 self
764 }
765 /// <p>The maximum number of concurrent sessions for a fleet.</p>
766 pub fn set_max_concurrent_sessions(mut self, input: ::std::option::Option<i32>) -> Self {
767 self.inner = self.inner.set_max_concurrent_sessions(input);
768 self
769 }
770 /// <p>The maximum number of concurrent sessions for a fleet.</p>
771 pub fn get_max_concurrent_sessions(&self) -> &::std::option::Option<i32> {
772 self.inner.get_max_concurrent_sessions()
773 }
774 ///
775 /// Appends an item to `UsbDeviceFilterStrings`.
776 ///
777 /// To override the contents of this collection use [`set_usb_device_filter_strings`](Self::set_usb_device_filter_strings).
778 ///
779 /// <p>The USB device filter strings that specify which USB devices a user can redirect to the fleet streaming session, when using the Windows native client. This is allowed but not required for Elastic fleets.</p>
780 pub fn usb_device_filter_strings(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
781 self.inner = self.inner.usb_device_filter_strings(input.into());
782 self
783 }
784 /// <p>The USB device filter strings that specify which USB devices a user can redirect to the fleet streaming session, when using the Windows native client. This is allowed but not required for Elastic fleets.</p>
785 pub fn set_usb_device_filter_strings(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
786 self.inner = self.inner.set_usb_device_filter_strings(input);
787 self
788 }
789 /// <p>The USB device filter strings that specify which USB devices a user can redirect to the fleet streaming session, when using the Windows native client. This is allowed but not required for Elastic fleets.</p>
790 pub fn get_usb_device_filter_strings(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
791 self.inner.get_usb_device_filter_strings()
792 }
793 /// <p>The S3 location of the session scripts configuration zip file. This only applies to Elastic fleets.</p>
794 pub fn session_script_s3_location(mut self, input: crate::types::S3Location) -> Self {
795 self.inner = self.inner.session_script_s3_location(input);
796 self
797 }
798 /// <p>The S3 location of the session scripts configuration zip file. This only applies to Elastic fleets.</p>
799 pub fn set_session_script_s3_location(mut self, input: ::std::option::Option<crate::types::S3Location>) -> Self {
800 self.inner = self.inner.set_session_script_s3_location(input);
801 self
802 }
803 /// <p>The S3 location of the session scripts configuration zip file. This only applies to Elastic fleets.</p>
804 pub fn get_session_script_s3_location(&self) -> &::std::option::Option<crate::types::S3Location> {
805 self.inner.get_session_script_s3_location()
806 }
807 /// <p>The maximum number of user sessions on an instance. This only applies to multi-session fleets.</p>
808 pub fn max_sessions_per_instance(mut self, input: i32) -> Self {
809 self.inner = self.inner.max_sessions_per_instance(input);
810 self
811 }
812 /// <p>The maximum number of user sessions on an instance. This only applies to multi-session fleets.</p>
813 pub fn set_max_sessions_per_instance(mut self, input: ::std::option::Option<i32>) -> Self {
814 self.inner = self.inner.set_max_sessions_per_instance(input);
815 self
816 }
817 /// <p>The maximum number of user sessions on an instance. This only applies to multi-session fleets.</p>
818 pub fn get_max_sessions_per_instance(&self) -> &::std::option::Option<i32> {
819 self.inner.get_max_sessions_per_instance()
820 }
821 /// <p>The updated configuration for the root volume of fleet instances. Note that volume size cannot be decreased below the image volume size.</p>
822 pub fn root_volume_config(mut self, input: crate::types::VolumeConfig) -> Self {
823 self.inner = self.inner.root_volume_config(input);
824 self
825 }
826 /// <p>The updated configuration for the root volume of fleet instances. Note that volume size cannot be decreased below the image volume size.</p>
827 pub fn set_root_volume_config(mut self, input: ::std::option::Option<crate::types::VolumeConfig>) -> Self {
828 self.inner = self.inner.set_root_volume_config(input);
829 self
830 }
831 /// <p>The updated configuration for the root volume of fleet instances. Note that volume size cannot be decreased below the image volume size.</p>
832 pub fn get_root_volume_config(&self) -> &::std::option::Option<crate::types::VolumeConfig> {
833 self.inner.get_root_volume_config()
834 }
835}