aws_sdk_appstream/operation/create_fleet/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_fleet::_create_fleet_output::CreateFleetOutputBuilder;
3
4pub use crate::operation::create_fleet::_create_fleet_input::CreateFleetInputBuilder;
5
6impl crate::operation::create_fleet::builders::CreateFleetInputBuilder {
7 /// Sends a request with this input using the given client.
8 pub async fn send_with(
9 self,
10 client: &crate::Client,
11 ) -> ::std::result::Result<
12 crate::operation::create_fleet::CreateFleetOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::create_fleet::CreateFleetError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.create_fleet();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `CreateFleet`.
24///
25/// <p>Creates a fleet. A fleet consists of streaming instances that your users access for their applications and desktops.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct CreateFleetFluentBuilder {
28 handle: ::std::sync::Arc<crate::client::Handle>,
29 inner: crate::operation::create_fleet::builders::CreateFleetInputBuilder,
30 config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33 crate::client::customize::internal::CustomizableSend<
34 crate::operation::create_fleet::CreateFleetOutput,
35 crate::operation::create_fleet::CreateFleetError,
36 > for CreateFleetFluentBuilder
37{
38 fn send(
39 self,
40 config_override: crate::config::Builder,
41 ) -> crate::client::customize::internal::BoxFuture<
42 crate::client::customize::internal::SendResult<
43 crate::operation::create_fleet::CreateFleetOutput,
44 crate::operation::create_fleet::CreateFleetError,
45 >,
46 > {
47 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48 }
49}
50impl CreateFleetFluentBuilder {
51 /// Creates a new `CreateFleetFluentBuilder`.
52 pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
53 Self {
54 handle,
55 inner: ::std::default::Default::default(),
56 config_override: ::std::option::Option::None,
57 }
58 }
59 /// Access the CreateFleet as a reference.
60 pub fn as_input(&self) -> &crate::operation::create_fleet::builders::CreateFleetInputBuilder {
61 &self.inner
62 }
63 /// Sends the request and returns the response.
64 ///
65 /// If an error occurs, an `SdkError` will be returned with additional details that
66 /// can be matched against.
67 ///
68 /// By default, any retryable failures will be retried twice. Retry behavior
69 /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
70 /// set when configuring the client.
71 pub async fn send(
72 self,
73 ) -> ::std::result::Result<
74 crate::operation::create_fleet::CreateFleetOutput,
75 ::aws_smithy_runtime_api::client::result::SdkError<
76 crate::operation::create_fleet::CreateFleetError,
77 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
78 >,
79 > {
80 let input = self
81 .inner
82 .build()
83 .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
84 let runtime_plugins = crate::operation::create_fleet::CreateFleet::operation_runtime_plugins(
85 self.handle.runtime_plugins.clone(),
86 &self.handle.conf,
87 self.config_override,
88 );
89 crate::operation::create_fleet::CreateFleet::orchestrate(&runtime_plugins, input).await
90 }
91
92 /// Consumes this builder, creating a customizable operation that can be modified before being sent.
93 pub fn customize(
94 self,
95 ) -> crate::client::customize::CustomizableOperation<
96 crate::operation::create_fleet::CreateFleetOutput,
97 crate::operation::create_fleet::CreateFleetError,
98 Self,
99 > {
100 crate::client::customize::CustomizableOperation::new(self)
101 }
102 pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
103 self.set_config_override(::std::option::Option::Some(config_override.into()));
104 self
105 }
106
107 pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
108 self.config_override = config_override;
109 self
110 }
111 /// <p>A unique name for the fleet.</p>
112 pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
113 self.inner = self.inner.name(input.into());
114 self
115 }
116 /// <p>A unique name for the fleet.</p>
117 pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
118 self.inner = self.inner.set_name(input);
119 self
120 }
121 /// <p>A unique name for the fleet.</p>
122 pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
123 self.inner.get_name()
124 }
125 /// <p>The name of the image used to create the fleet.</p>
126 pub fn image_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
127 self.inner = self.inner.image_name(input.into());
128 self
129 }
130 /// <p>The name of the image used to create the fleet.</p>
131 pub fn set_image_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
132 self.inner = self.inner.set_image_name(input);
133 self
134 }
135 /// <p>The name of the image used to create the fleet.</p>
136 pub fn get_image_name(&self) -> &::std::option::Option<::std::string::String> {
137 self.inner.get_image_name()
138 }
139 /// <p>The ARN of the public, private, or shared image to use.</p>
140 pub fn image_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
141 self.inner = self.inner.image_arn(input.into());
142 self
143 }
144 /// <p>The ARN of the public, private, or shared image to use.</p>
145 pub fn set_image_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
146 self.inner = self.inner.set_image_arn(input);
147 self
148 }
149 /// <p>The ARN of the public, private, or shared image to use.</p>
150 pub fn get_image_arn(&self) -> &::std::option::Option<::std::string::String> {
151 self.inner.get_image_arn()
152 }
153 /// <p>The instance type to use when launching fleet instances. The following instance types are available:</p>
154 /// <ul>
155 /// <li>
156 /// <p>stream.standard.small</p></li>
157 /// <li>
158 /// <p>stream.standard.medium</p></li>
159 /// <li>
160 /// <p>stream.standard.large</p></li>
161 /// <li>
162 /// <p>stream.standard.xlarge</p></li>
163 /// <li>
164 /// <p>stream.standard.2xlarge</p></li>
165 /// <li>
166 /// <p>stream.compute.large</p></li>
167 /// <li>
168 /// <p>stream.compute.xlarge</p></li>
169 /// <li>
170 /// <p>stream.compute.2xlarge</p></li>
171 /// <li>
172 /// <p>stream.compute.4xlarge</p></li>
173 /// <li>
174 /// <p>stream.compute.8xlarge</p></li>
175 /// <li>
176 /// <p>stream.memory.large</p></li>
177 /// <li>
178 /// <p>stream.memory.xlarge</p></li>
179 /// <li>
180 /// <p>stream.memory.2xlarge</p></li>
181 /// <li>
182 /// <p>stream.memory.4xlarge</p></li>
183 /// <li>
184 /// <p>stream.memory.8xlarge</p></li>
185 /// <li>
186 /// <p>stream.memory.z1d.large</p></li>
187 /// <li>
188 /// <p>stream.memory.z1d.xlarge</p></li>
189 /// <li>
190 /// <p>stream.memory.z1d.2xlarge</p></li>
191 /// <li>
192 /// <p>stream.memory.z1d.3xlarge</p></li>
193 /// <li>
194 /// <p>stream.memory.z1d.6xlarge</p></li>
195 /// <li>
196 /// <p>stream.memory.z1d.12xlarge</p></li>
197 /// <li>
198 /// <p>stream.graphics-design.large</p></li>
199 /// <li>
200 /// <p>stream.graphics-design.xlarge</p></li>
201 /// <li>
202 /// <p>stream.graphics-design.2xlarge</p></li>
203 /// <li>
204 /// <p>stream.graphics-design.4xlarge</p></li>
205 /// <li>
206 /// <p>stream.graphics-desktop.2xlarge</p></li>
207 /// <li>
208 /// <p>stream.graphics.g4dn.xlarge</p></li>
209 /// <li>
210 /// <p>stream.graphics.g4dn.2xlarge</p></li>
211 /// <li>
212 /// <p>stream.graphics.g4dn.4xlarge</p></li>
213 /// <li>
214 /// <p>stream.graphics.g4dn.8xlarge</p></li>
215 /// <li>
216 /// <p>stream.graphics.g4dn.12xlarge</p></li>
217 /// <li>
218 /// <p>stream.graphics.g4dn.16xlarge</p></li>
219 /// <li>
220 /// <p>stream.graphics.g5.xlarge</p></li>
221 /// <li>
222 /// <p>stream.graphics.g5.2xlarge</p></li>
223 /// <li>
224 /// <p>stream.graphics.g5.4xlarge</p></li>
225 /// <li>
226 /// <p>stream.graphics.g5.8xlarge</p></li>
227 /// <li>
228 /// <p>stream.graphics.g5.12xlarge</p></li>
229 /// <li>
230 /// <p>stream.graphics.g5.16xlarge</p></li>
231 /// <li>
232 /// <p>stream.graphics.g5.24xlarge</p></li>
233 /// <li>
234 /// <p>stream.graphics-pro.4xlarge</p></li>
235 /// <li>
236 /// <p>stream.graphics-pro.8xlarge</p></li>
237 /// <li>
238 /// <p>stream.graphics-pro.16xlarge</p></li>
239 /// <li>
240 /// <p>stream.graphics.g6.xlarge</p></li>
241 /// <li>
242 /// <p>stream.graphics.g6.2xlarge</p></li>
243 /// <li>
244 /// <p>stream.graphics.g6.4xlarge</p></li>
245 /// <li>
246 /// <p>stream.graphics.g6.8xlarge</p></li>
247 /// <li>
248 /// <p>stream.graphics.g6.16xlarge</p></li>
249 /// <li>
250 /// <p>stream.graphics.g6.12xlarge</p></li>
251 /// <li>
252 /// <p>stream.graphics.g6.24xlarge</p></li>
253 /// <li>
254 /// <p>stream.graphics.gr6.4xlarge</p></li>
255 /// <li>
256 /// <p>stream.graphics.gr6.8xlarge</p></li>
257 /// <li>
258 /// <p>stream.graphics.g6f.large</p></li>
259 /// <li>
260 /// <p>stream.graphics.g6f.xlarge</p></li>
261 /// <li>
262 /// <p>stream.graphics.g6f.2xlarge</p></li>
263 /// <li>
264 /// <p>stream.graphics.g6f.4xlarge</p></li>
265 /// <li>
266 /// <p>stream.graphics.gr6f.4xlarge</p></li>
267 /// </ul>
268 /// <p>The following instance types are available for Elastic fleets:</p>
269 /// <ul>
270 /// <li>
271 /// <p>stream.standard.small</p></li>
272 /// <li>
273 /// <p>stream.standard.medium</p></li>
274 /// <li>
275 /// <p>stream.standard.large</p></li>
276 /// <li>
277 /// <p>stream.standard.xlarge</p></li>
278 /// <li>
279 /// <p>stream.standard.2xlarge</p></li>
280 /// </ul>
281 pub fn instance_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
282 self.inner = self.inner.instance_type(input.into());
283 self
284 }
285 /// <p>The instance type to use when launching fleet instances. The following instance types are available:</p>
286 /// <ul>
287 /// <li>
288 /// <p>stream.standard.small</p></li>
289 /// <li>
290 /// <p>stream.standard.medium</p></li>
291 /// <li>
292 /// <p>stream.standard.large</p></li>
293 /// <li>
294 /// <p>stream.standard.xlarge</p></li>
295 /// <li>
296 /// <p>stream.standard.2xlarge</p></li>
297 /// <li>
298 /// <p>stream.compute.large</p></li>
299 /// <li>
300 /// <p>stream.compute.xlarge</p></li>
301 /// <li>
302 /// <p>stream.compute.2xlarge</p></li>
303 /// <li>
304 /// <p>stream.compute.4xlarge</p></li>
305 /// <li>
306 /// <p>stream.compute.8xlarge</p></li>
307 /// <li>
308 /// <p>stream.memory.large</p></li>
309 /// <li>
310 /// <p>stream.memory.xlarge</p></li>
311 /// <li>
312 /// <p>stream.memory.2xlarge</p></li>
313 /// <li>
314 /// <p>stream.memory.4xlarge</p></li>
315 /// <li>
316 /// <p>stream.memory.8xlarge</p></li>
317 /// <li>
318 /// <p>stream.memory.z1d.large</p></li>
319 /// <li>
320 /// <p>stream.memory.z1d.xlarge</p></li>
321 /// <li>
322 /// <p>stream.memory.z1d.2xlarge</p></li>
323 /// <li>
324 /// <p>stream.memory.z1d.3xlarge</p></li>
325 /// <li>
326 /// <p>stream.memory.z1d.6xlarge</p></li>
327 /// <li>
328 /// <p>stream.memory.z1d.12xlarge</p></li>
329 /// <li>
330 /// <p>stream.graphics-design.large</p></li>
331 /// <li>
332 /// <p>stream.graphics-design.xlarge</p></li>
333 /// <li>
334 /// <p>stream.graphics-design.2xlarge</p></li>
335 /// <li>
336 /// <p>stream.graphics-design.4xlarge</p></li>
337 /// <li>
338 /// <p>stream.graphics-desktop.2xlarge</p></li>
339 /// <li>
340 /// <p>stream.graphics.g4dn.xlarge</p></li>
341 /// <li>
342 /// <p>stream.graphics.g4dn.2xlarge</p></li>
343 /// <li>
344 /// <p>stream.graphics.g4dn.4xlarge</p></li>
345 /// <li>
346 /// <p>stream.graphics.g4dn.8xlarge</p></li>
347 /// <li>
348 /// <p>stream.graphics.g4dn.12xlarge</p></li>
349 /// <li>
350 /// <p>stream.graphics.g4dn.16xlarge</p></li>
351 /// <li>
352 /// <p>stream.graphics.g5.xlarge</p></li>
353 /// <li>
354 /// <p>stream.graphics.g5.2xlarge</p></li>
355 /// <li>
356 /// <p>stream.graphics.g5.4xlarge</p></li>
357 /// <li>
358 /// <p>stream.graphics.g5.8xlarge</p></li>
359 /// <li>
360 /// <p>stream.graphics.g5.12xlarge</p></li>
361 /// <li>
362 /// <p>stream.graphics.g5.16xlarge</p></li>
363 /// <li>
364 /// <p>stream.graphics.g5.24xlarge</p></li>
365 /// <li>
366 /// <p>stream.graphics-pro.4xlarge</p></li>
367 /// <li>
368 /// <p>stream.graphics-pro.8xlarge</p></li>
369 /// <li>
370 /// <p>stream.graphics-pro.16xlarge</p></li>
371 /// <li>
372 /// <p>stream.graphics.g6.xlarge</p></li>
373 /// <li>
374 /// <p>stream.graphics.g6.2xlarge</p></li>
375 /// <li>
376 /// <p>stream.graphics.g6.4xlarge</p></li>
377 /// <li>
378 /// <p>stream.graphics.g6.8xlarge</p></li>
379 /// <li>
380 /// <p>stream.graphics.g6.16xlarge</p></li>
381 /// <li>
382 /// <p>stream.graphics.g6.12xlarge</p></li>
383 /// <li>
384 /// <p>stream.graphics.g6.24xlarge</p></li>
385 /// <li>
386 /// <p>stream.graphics.gr6.4xlarge</p></li>
387 /// <li>
388 /// <p>stream.graphics.gr6.8xlarge</p></li>
389 /// <li>
390 /// <p>stream.graphics.g6f.large</p></li>
391 /// <li>
392 /// <p>stream.graphics.g6f.xlarge</p></li>
393 /// <li>
394 /// <p>stream.graphics.g6f.2xlarge</p></li>
395 /// <li>
396 /// <p>stream.graphics.g6f.4xlarge</p></li>
397 /// <li>
398 /// <p>stream.graphics.gr6f.4xlarge</p></li>
399 /// </ul>
400 /// <p>The following instance types are available for Elastic fleets:</p>
401 /// <ul>
402 /// <li>
403 /// <p>stream.standard.small</p></li>
404 /// <li>
405 /// <p>stream.standard.medium</p></li>
406 /// <li>
407 /// <p>stream.standard.large</p></li>
408 /// <li>
409 /// <p>stream.standard.xlarge</p></li>
410 /// <li>
411 /// <p>stream.standard.2xlarge</p></li>
412 /// </ul>
413 pub fn set_instance_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
414 self.inner = self.inner.set_instance_type(input);
415 self
416 }
417 /// <p>The instance type to use when launching fleet instances. The following instance types are available:</p>
418 /// <ul>
419 /// <li>
420 /// <p>stream.standard.small</p></li>
421 /// <li>
422 /// <p>stream.standard.medium</p></li>
423 /// <li>
424 /// <p>stream.standard.large</p></li>
425 /// <li>
426 /// <p>stream.standard.xlarge</p></li>
427 /// <li>
428 /// <p>stream.standard.2xlarge</p></li>
429 /// <li>
430 /// <p>stream.compute.large</p></li>
431 /// <li>
432 /// <p>stream.compute.xlarge</p></li>
433 /// <li>
434 /// <p>stream.compute.2xlarge</p></li>
435 /// <li>
436 /// <p>stream.compute.4xlarge</p></li>
437 /// <li>
438 /// <p>stream.compute.8xlarge</p></li>
439 /// <li>
440 /// <p>stream.memory.large</p></li>
441 /// <li>
442 /// <p>stream.memory.xlarge</p></li>
443 /// <li>
444 /// <p>stream.memory.2xlarge</p></li>
445 /// <li>
446 /// <p>stream.memory.4xlarge</p></li>
447 /// <li>
448 /// <p>stream.memory.8xlarge</p></li>
449 /// <li>
450 /// <p>stream.memory.z1d.large</p></li>
451 /// <li>
452 /// <p>stream.memory.z1d.xlarge</p></li>
453 /// <li>
454 /// <p>stream.memory.z1d.2xlarge</p></li>
455 /// <li>
456 /// <p>stream.memory.z1d.3xlarge</p></li>
457 /// <li>
458 /// <p>stream.memory.z1d.6xlarge</p></li>
459 /// <li>
460 /// <p>stream.memory.z1d.12xlarge</p></li>
461 /// <li>
462 /// <p>stream.graphics-design.large</p></li>
463 /// <li>
464 /// <p>stream.graphics-design.xlarge</p></li>
465 /// <li>
466 /// <p>stream.graphics-design.2xlarge</p></li>
467 /// <li>
468 /// <p>stream.graphics-design.4xlarge</p></li>
469 /// <li>
470 /// <p>stream.graphics-desktop.2xlarge</p></li>
471 /// <li>
472 /// <p>stream.graphics.g4dn.xlarge</p></li>
473 /// <li>
474 /// <p>stream.graphics.g4dn.2xlarge</p></li>
475 /// <li>
476 /// <p>stream.graphics.g4dn.4xlarge</p></li>
477 /// <li>
478 /// <p>stream.graphics.g4dn.8xlarge</p></li>
479 /// <li>
480 /// <p>stream.graphics.g4dn.12xlarge</p></li>
481 /// <li>
482 /// <p>stream.graphics.g4dn.16xlarge</p></li>
483 /// <li>
484 /// <p>stream.graphics.g5.xlarge</p></li>
485 /// <li>
486 /// <p>stream.graphics.g5.2xlarge</p></li>
487 /// <li>
488 /// <p>stream.graphics.g5.4xlarge</p></li>
489 /// <li>
490 /// <p>stream.graphics.g5.8xlarge</p></li>
491 /// <li>
492 /// <p>stream.graphics.g5.12xlarge</p></li>
493 /// <li>
494 /// <p>stream.graphics.g5.16xlarge</p></li>
495 /// <li>
496 /// <p>stream.graphics.g5.24xlarge</p></li>
497 /// <li>
498 /// <p>stream.graphics-pro.4xlarge</p></li>
499 /// <li>
500 /// <p>stream.graphics-pro.8xlarge</p></li>
501 /// <li>
502 /// <p>stream.graphics-pro.16xlarge</p></li>
503 /// <li>
504 /// <p>stream.graphics.g6.xlarge</p></li>
505 /// <li>
506 /// <p>stream.graphics.g6.2xlarge</p></li>
507 /// <li>
508 /// <p>stream.graphics.g6.4xlarge</p></li>
509 /// <li>
510 /// <p>stream.graphics.g6.8xlarge</p></li>
511 /// <li>
512 /// <p>stream.graphics.g6.16xlarge</p></li>
513 /// <li>
514 /// <p>stream.graphics.g6.12xlarge</p></li>
515 /// <li>
516 /// <p>stream.graphics.g6.24xlarge</p></li>
517 /// <li>
518 /// <p>stream.graphics.gr6.4xlarge</p></li>
519 /// <li>
520 /// <p>stream.graphics.gr6.8xlarge</p></li>
521 /// <li>
522 /// <p>stream.graphics.g6f.large</p></li>
523 /// <li>
524 /// <p>stream.graphics.g6f.xlarge</p></li>
525 /// <li>
526 /// <p>stream.graphics.g6f.2xlarge</p></li>
527 /// <li>
528 /// <p>stream.graphics.g6f.4xlarge</p></li>
529 /// <li>
530 /// <p>stream.graphics.gr6f.4xlarge</p></li>
531 /// </ul>
532 /// <p>The following instance types are available for Elastic fleets:</p>
533 /// <ul>
534 /// <li>
535 /// <p>stream.standard.small</p></li>
536 /// <li>
537 /// <p>stream.standard.medium</p></li>
538 /// <li>
539 /// <p>stream.standard.large</p></li>
540 /// <li>
541 /// <p>stream.standard.xlarge</p></li>
542 /// <li>
543 /// <p>stream.standard.2xlarge</p></li>
544 /// </ul>
545 pub fn get_instance_type(&self) -> &::std::option::Option<::std::string::String> {
546 self.inner.get_instance_type()
547 }
548 /// <p>The fleet type.</p>
549 /// <dl>
550 /// <dt>
551 /// ALWAYS_ON
552 /// </dt>
553 /// <dd>
554 /// <p>Provides users with instant-on access to their apps. You are charged for all running instances in your fleet, even if no users are streaming apps.</p>
555 /// </dd>
556 /// <dt>
557 /// ON_DEMAND
558 /// </dt>
559 /// <dd>
560 /// <p>Provide users with access to applications after they connect, which takes one to two minutes. You are charged for instance streaming when users are connected and a small hourly fee for instances that are not streaming apps.</p>
561 /// </dd>
562 /// </dl>
563 pub fn fleet_type(mut self, input: crate::types::FleetType) -> Self {
564 self.inner = self.inner.fleet_type(input);
565 self
566 }
567 /// <p>The fleet type.</p>
568 /// <dl>
569 /// <dt>
570 /// ALWAYS_ON
571 /// </dt>
572 /// <dd>
573 /// <p>Provides users with instant-on access to their apps. You are charged for all running instances in your fleet, even if no users are streaming apps.</p>
574 /// </dd>
575 /// <dt>
576 /// ON_DEMAND
577 /// </dt>
578 /// <dd>
579 /// <p>Provide users with access to applications after they connect, which takes one to two minutes. You are charged for instance streaming when users are connected and a small hourly fee for instances that are not streaming apps.</p>
580 /// </dd>
581 /// </dl>
582 pub fn set_fleet_type(mut self, input: ::std::option::Option<crate::types::FleetType>) -> Self {
583 self.inner = self.inner.set_fleet_type(input);
584 self
585 }
586 /// <p>The fleet type.</p>
587 /// <dl>
588 /// <dt>
589 /// ALWAYS_ON
590 /// </dt>
591 /// <dd>
592 /// <p>Provides users with instant-on access to their apps. You are charged for all running instances in your fleet, even if no users are streaming apps.</p>
593 /// </dd>
594 /// <dt>
595 /// ON_DEMAND
596 /// </dt>
597 /// <dd>
598 /// <p>Provide users with access to applications after they connect, which takes one to two minutes. You are charged for instance streaming when users are connected and a small hourly fee for instances that are not streaming apps.</p>
599 /// </dd>
600 /// </dl>
601 pub fn get_fleet_type(&self) -> &::std::option::Option<crate::types::FleetType> {
602 self.inner.get_fleet_type()
603 }
604 /// <p>The desired capacity for the fleet. This is not allowed for Elastic fleets. For Elastic fleets, specify MaxConcurrentSessions instead.</p>
605 pub fn compute_capacity(mut self, input: crate::types::ComputeCapacity) -> Self {
606 self.inner = self.inner.compute_capacity(input);
607 self
608 }
609 /// <p>The desired capacity for the fleet. This is not allowed for Elastic fleets. For Elastic fleets, specify MaxConcurrentSessions instead.</p>
610 pub fn set_compute_capacity(mut self, input: ::std::option::Option<crate::types::ComputeCapacity>) -> Self {
611 self.inner = self.inner.set_compute_capacity(input);
612 self
613 }
614 /// <p>The desired capacity for the fleet. This is not allowed for Elastic fleets. For Elastic fleets, specify MaxConcurrentSessions instead.</p>
615 pub fn get_compute_capacity(&self) -> &::std::option::Option<crate::types::ComputeCapacity> {
616 self.inner.get_compute_capacity()
617 }
618 /// <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>
619 pub fn vpc_config(mut self, input: crate::types::VpcConfig) -> Self {
620 self.inner = self.inner.vpc_config(input);
621 self
622 }
623 /// <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>
624 pub fn set_vpc_config(mut self, input: ::std::option::Option<crate::types::VpcConfig>) -> Self {
625 self.inner = self.inner.set_vpc_config(input);
626 self
627 }
628 /// <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>
629 pub fn get_vpc_config(&self) -> &::std::option::Option<crate::types::VpcConfig> {
630 self.inner.get_vpc_config()
631 }
632 /// <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>
633 /// <p>Specify a value between 600 and 432000.</p>
634 pub fn max_user_duration_in_seconds(mut self, input: i32) -> Self {
635 self.inner = self.inner.max_user_duration_in_seconds(input);
636 self
637 }
638 /// <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>
639 /// <p>Specify a value between 600 and 432000.</p>
640 pub fn set_max_user_duration_in_seconds(mut self, input: ::std::option::Option<i32>) -> Self {
641 self.inner = self.inner.set_max_user_duration_in_seconds(input);
642 self
643 }
644 /// <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>
645 /// <p>Specify a value between 600 and 432000.</p>
646 pub fn get_max_user_duration_in_seconds(&self) -> &::std::option::Option<i32> {
647 self.inner.get_max_user_duration_in_seconds()
648 }
649 /// <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>
650 /// <p>Specify a value between 60 and 36000.</p>
651 pub fn disconnect_timeout_in_seconds(mut self, input: i32) -> Self {
652 self.inner = self.inner.disconnect_timeout_in_seconds(input);
653 self
654 }
655 /// <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>
656 /// <p>Specify a value between 60 and 36000.</p>
657 pub fn set_disconnect_timeout_in_seconds(mut self, input: ::std::option::Option<i32>) -> Self {
658 self.inner = self.inner.set_disconnect_timeout_in_seconds(input);
659 self
660 }
661 /// <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>
662 /// <p>Specify a value between 60 and 36000.</p>
663 pub fn get_disconnect_timeout_in_seconds(&self) -> &::std::option::Option<i32> {
664 self.inner.get_disconnect_timeout_in_seconds()
665 }
666 /// <p>The description to display.</p>
667 pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
668 self.inner = self.inner.description(input.into());
669 self
670 }
671 /// <p>The description to display.</p>
672 pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
673 self.inner = self.inner.set_description(input);
674 self
675 }
676 /// <p>The description to display.</p>
677 pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
678 self.inner.get_description()
679 }
680 /// <p>The fleet name to display.</p>
681 pub fn display_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
682 self.inner = self.inner.display_name(input.into());
683 self
684 }
685 /// <p>The fleet name to display.</p>
686 pub fn set_display_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
687 self.inner = self.inner.set_display_name(input);
688 self
689 }
690 /// <p>The fleet name to display.</p>
691 pub fn get_display_name(&self) -> &::std::option::Option<::std::string::String> {
692 self.inner.get_display_name()
693 }
694 /// <p>Enables or disables default internet access for the fleet.</p>
695 pub fn enable_default_internet_access(mut self, input: bool) -> Self {
696 self.inner = self.inner.enable_default_internet_access(input);
697 self
698 }
699 /// <p>Enables or disables default internet access for the fleet.</p>
700 pub fn set_enable_default_internet_access(mut self, input: ::std::option::Option<bool>) -> Self {
701 self.inner = self.inner.set_enable_default_internet_access(input);
702 self
703 }
704 /// <p>Enables or disables default internet access for the fleet.</p>
705 pub fn get_enable_default_internet_access(&self) -> &::std::option::Option<bool> {
706 self.inner.get_enable_default_internet_access()
707 }
708 /// <p>The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory domain. This is not allowed for Elastic fleets.</p>
709 pub fn domain_join_info(mut self, input: crate::types::DomainJoinInfo) -> Self {
710 self.inner = self.inner.domain_join_info(input);
711 self
712 }
713 /// <p>The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory domain. This is not allowed for Elastic fleets.</p>
714 pub fn set_domain_join_info(mut self, input: ::std::option::Option<crate::types::DomainJoinInfo>) -> Self {
715 self.inner = self.inner.set_domain_join_info(input);
716 self
717 }
718 /// <p>The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory domain. This is not allowed for Elastic fleets.</p>
719 pub fn get_domain_join_info(&self) -> &::std::option::Option<crate::types::DomainJoinInfo> {
720 self.inner.get_domain_join_info()
721 }
722 ///
723 /// Adds a key-value pair to `Tags`.
724 ///
725 /// To override the contents of this collection use [`set_tags`](Self::set_tags).
726 ///
727 /// <p>The tags to associate with the fleet. A tag is a key-value pair, and the value is optional. For example, Environment=Test. If you do not specify a value, Environment=.</p>
728 /// <p>If you do not specify a value, the value is set to an empty string.</p>
729 /// <p>Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following special characters:</p>
730 /// <p>_ . : / = + \ - @</p>
731 /// <p>For more information, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html">Tagging Your Resources</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.</p>
732 pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
733 self.inner = self.inner.tags(k.into(), v.into());
734 self
735 }
736 /// <p>The tags to associate with the fleet. A tag is a key-value pair, and the value is optional. For example, Environment=Test. If you do not specify a value, Environment=.</p>
737 /// <p>If you do not specify a value, the value is set to an empty string.</p>
738 /// <p>Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following special characters:</p>
739 /// <p>_ . : / = + \ - @</p>
740 /// <p>For more information, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html">Tagging Your Resources</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.</p>
741 pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
742 self.inner = self.inner.set_tags(input);
743 self
744 }
745 /// <p>The tags to associate with the fleet. A tag is a key-value pair, and the value is optional. For example, Environment=Test. If you do not specify a value, Environment=.</p>
746 /// <p>If you do not specify a value, the value is set to an empty string.</p>
747 /// <p>Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following special characters:</p>
748 /// <p>_ . : / = + \ - @</p>
749 /// <p>For more information, see <a href="https://docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html">Tagging Your Resources</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.</p>
750 pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
751 self.inner.get_tags()
752 }
753 /// <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 they 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>
754 /// <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>
755 /// <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>
756 /// </note>
757 pub fn idle_disconnect_timeout_in_seconds(mut self, input: i32) -> Self {
758 self.inner = self.inner.idle_disconnect_timeout_in_seconds(input);
759 self
760 }
761 /// <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 they 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>
762 /// <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>
763 /// <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>
764 /// </note>
765 pub fn set_idle_disconnect_timeout_in_seconds(mut self, input: ::std::option::Option<i32>) -> Self {
766 self.inner = self.inner.set_idle_disconnect_timeout_in_seconds(input);
767 self
768 }
769 /// <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 they 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>
770 /// <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>
771 /// <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>
772 /// </note>
773 pub fn get_idle_disconnect_timeout_in_seconds(&self) -> &::std::option::Option<i32> {
774 self.inner.get_idle_disconnect_timeout_in_seconds()
775 }
776 /// <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. AppStream 2.0 retrieves the temporary credentials and creates the <b>appstream_machine_role</b> credential profile on the instance.</p>
777 /// <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 AppStream 2.0 Streaming Instances</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.</p>
778 pub fn iam_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
779 self.inner = self.inner.iam_role_arn(input.into());
780 self
781 }
782 /// <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. AppStream 2.0 retrieves the temporary credentials and creates the <b>appstream_machine_role</b> credential profile on the instance.</p>
783 /// <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 AppStream 2.0 Streaming Instances</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.</p>
784 pub fn set_iam_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
785 self.inner = self.inner.set_iam_role_arn(input);
786 self
787 }
788 /// <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. AppStream 2.0 retrieves the temporary credentials and creates the <b>appstream_machine_role</b> credential profile on the instance.</p>
789 /// <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 AppStream 2.0 Streaming Instances</a> in the <i>Amazon AppStream 2.0 Administration Guide</i>.</p>
790 pub fn get_iam_role_arn(&self) -> &::std::option::Option<::std::string::String> {
791 self.inner.get_iam_role_arn()
792 }
793 /// <p>The AppStream 2.0 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>
794 /// <p>The default value is <code>APP</code>.</p>
795 pub fn stream_view(mut self, input: crate::types::StreamView) -> Self {
796 self.inner = self.inner.stream_view(input);
797 self
798 }
799 /// <p>The AppStream 2.0 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>
800 /// <p>The default value is <code>APP</code>.</p>
801 pub fn set_stream_view(mut self, input: ::std::option::Option<crate::types::StreamView>) -> Self {
802 self.inner = self.inner.set_stream_view(input);
803 self
804 }
805 /// <p>The AppStream 2.0 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>
806 /// <p>The default value is <code>APP</code>.</p>
807 pub fn get_stream_view(&self) -> &::std::option::Option<crate::types::StreamView> {
808 self.inner.get_stream_view()
809 }
810 /// <p>The fleet platform. WINDOWS_SERVER_2019 and AMAZON_LINUX2 are supported for Elastic fleets.</p>
811 pub fn platform(mut self, input: crate::types::PlatformType) -> Self {
812 self.inner = self.inner.platform(input);
813 self
814 }
815 /// <p>The fleet platform. WINDOWS_SERVER_2019 and AMAZON_LINUX2 are supported for Elastic fleets.</p>
816 pub fn set_platform(mut self, input: ::std::option::Option<crate::types::PlatformType>) -> Self {
817 self.inner = self.inner.set_platform(input);
818 self
819 }
820 /// <p>The fleet platform. WINDOWS_SERVER_2019 and AMAZON_LINUX2 are supported for Elastic fleets.</p>
821 pub fn get_platform(&self) -> &::std::option::Option<crate::types::PlatformType> {
822 self.inner.get_platform()
823 }
824 /// <p>The maximum concurrent sessions of the Elastic fleet. This is required for Elastic fleets, and not allowed for other fleet types.</p>
825 pub fn max_concurrent_sessions(mut self, input: i32) -> Self {
826 self.inner = self.inner.max_concurrent_sessions(input);
827 self
828 }
829 /// <p>The maximum concurrent sessions of the Elastic fleet. This is required for Elastic fleets, and not allowed for other fleet types.</p>
830 pub fn set_max_concurrent_sessions(mut self, input: ::std::option::Option<i32>) -> Self {
831 self.inner = self.inner.set_max_concurrent_sessions(input);
832 self
833 }
834 /// <p>The maximum concurrent sessions of the Elastic fleet. This is required for Elastic fleets, and not allowed for other fleet types.</p>
835 pub fn get_max_concurrent_sessions(&self) -> &::std::option::Option<i32> {
836 self.inner.get_max_concurrent_sessions()
837 }
838 ///
839 /// Appends an item to `UsbDeviceFilterStrings`.
840 ///
841 /// To override the contents of this collection use [`set_usb_device_filter_strings`](Self::set_usb_device_filter_strings).
842 ///
843 /// <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>
844 pub fn usb_device_filter_strings(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
845 self.inner = self.inner.usb_device_filter_strings(input.into());
846 self
847 }
848 /// <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>
849 pub fn set_usb_device_filter_strings(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
850 self.inner = self.inner.set_usb_device_filter_strings(input);
851 self
852 }
853 /// <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>
854 pub fn get_usb_device_filter_strings(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
855 self.inner.get_usb_device_filter_strings()
856 }
857 /// <p>The S3 location of the session scripts configuration zip file. This only applies to Elastic fleets.</p>
858 pub fn session_script_s3_location(mut self, input: crate::types::S3Location) -> Self {
859 self.inner = self.inner.session_script_s3_location(input);
860 self
861 }
862 /// <p>The S3 location of the session scripts configuration zip file. This only applies to Elastic fleets.</p>
863 pub fn set_session_script_s3_location(mut self, input: ::std::option::Option<crate::types::S3Location>) -> Self {
864 self.inner = self.inner.set_session_script_s3_location(input);
865 self
866 }
867 /// <p>The S3 location of the session scripts configuration zip file. This only applies to Elastic fleets.</p>
868 pub fn get_session_script_s3_location(&self) -> &::std::option::Option<crate::types::S3Location> {
869 self.inner.get_session_script_s3_location()
870 }
871 /// <p>The maximum number of user sessions on an instance. This only applies to multi-session fleets.</p>
872 pub fn max_sessions_per_instance(mut self, input: i32) -> Self {
873 self.inner = self.inner.max_sessions_per_instance(input);
874 self
875 }
876 /// <p>The maximum number of user sessions on an instance. This only applies to multi-session fleets.</p>
877 pub fn set_max_sessions_per_instance(mut self, input: ::std::option::Option<i32>) -> Self {
878 self.inner = self.inner.set_max_sessions_per_instance(input);
879 self
880 }
881 /// <p>The maximum number of user sessions on an instance. This only applies to multi-session fleets.</p>
882 pub fn get_max_sessions_per_instance(&self) -> &::std::option::Option<i32> {
883 self.inner.get_max_sessions_per_instance()
884 }
885}