aws_sdk_appstream/operation/update_fleet/_update_fleet_input.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
5pub struct UpdateFleetInput {
6 /// <p>The name of the image used to create the fleet.</p>
7 pub image_name: ::std::option::Option<::std::string::String>,
8 /// <p>The ARN of the public, private, or shared image to use.</p>
9 pub image_arn: ::std::option::Option<::std::string::String>,
10 /// <p>A unique name for the fleet.</p>
11 pub name: ::std::option::Option<::std::string::String>,
12 /// <p>The instance type to use when launching fleet instances. The following instance types are available:</p>
13 /// <ul>
14 /// <li>
15 /// <p>stream.standard.small</p></li>
16 /// <li>
17 /// <p>stream.standard.medium</p></li>
18 /// <li>
19 /// <p>stream.standard.large</p></li>
20 /// <li>
21 /// <p>stream.standard.xlarge</p></li>
22 /// <li>
23 /// <p>stream.standard.2xlarge</p></li>
24 /// <li>
25 /// <p>stream.compute.large</p></li>
26 /// <li>
27 /// <p>stream.compute.xlarge</p></li>
28 /// <li>
29 /// <p>stream.compute.2xlarge</p></li>
30 /// <li>
31 /// <p>stream.compute.4xlarge</p></li>
32 /// <li>
33 /// <p>stream.compute.8xlarge</p></li>
34 /// <li>
35 /// <p>stream.memory.large</p></li>
36 /// <li>
37 /// <p>stream.memory.xlarge</p></li>
38 /// <li>
39 /// <p>stream.memory.2xlarge</p></li>
40 /// <li>
41 /// <p>stream.memory.4xlarge</p></li>
42 /// <li>
43 /// <p>stream.memory.8xlarge</p></li>
44 /// <li>
45 /// <p>stream.memory.z1d.large</p></li>
46 /// <li>
47 /// <p>stream.memory.z1d.xlarge</p></li>
48 /// <li>
49 /// <p>stream.memory.z1d.2xlarge</p></li>
50 /// <li>
51 /// <p>stream.memory.z1d.3xlarge</p></li>
52 /// <li>
53 /// <p>stream.memory.z1d.6xlarge</p></li>
54 /// <li>
55 /// <p>stream.memory.z1d.12xlarge</p></li>
56 /// <li>
57 /// <p>stream.graphics-design.large</p></li>
58 /// <li>
59 /// <p>stream.graphics-design.xlarge</p></li>
60 /// <li>
61 /// <p>stream.graphics-design.2xlarge</p></li>
62 /// <li>
63 /// <p>stream.graphics-design.4xlarge</p></li>
64 /// <li>
65 /// <p>stream.graphics.g4dn.xlarge</p></li>
66 /// <li>
67 /// <p>stream.graphics.g4dn.2xlarge</p></li>
68 /// <li>
69 /// <p>stream.graphics.g4dn.4xlarge</p></li>
70 /// <li>
71 /// <p>stream.graphics.g4dn.8xlarge</p></li>
72 /// <li>
73 /// <p>stream.graphics.g4dn.12xlarge</p></li>
74 /// <li>
75 /// <p>stream.graphics.g4dn.16xlarge</p></li>
76 /// <li>
77 /// <p>stream.graphics.g5.xlarge</p></li>
78 /// <li>
79 /// <p>stream.graphics.g5.2xlarge</p></li>
80 /// <li>
81 /// <p>stream.graphics.g5.4xlarge</p></li>
82 /// <li>
83 /// <p>stream.graphics.g5.8xlarge</p></li>
84 /// <li>
85 /// <p>stream.graphics.g5.16xlarge</p></li>
86 /// <li>
87 /// <p>stream.graphics.g5.12xlarge</p></li>
88 /// <li>
89 /// <p>stream.graphics.g5.24xlarge</p></li>
90 /// <li>
91 /// <p>stream.graphics.g6.xlarge</p></li>
92 /// <li>
93 /// <p>stream.graphics.g6.2xlarge</p></li>
94 /// <li>
95 /// <p>stream.graphics.g6.4xlarge</p></li>
96 /// <li>
97 /// <p>stream.graphics.g6.8xlarge</p></li>
98 /// <li>
99 /// <p>stream.graphics.g6.16xlarge</p></li>
100 /// <li>
101 /// <p>stream.graphics.g6.12xlarge</p></li>
102 /// <li>
103 /// <p>stream.graphics.g6.24xlarge</p></li>
104 /// <li>
105 /// <p>stream.graphics.gr6.4xlarge</p></li>
106 /// <li>
107 /// <p>stream.graphics.gr6.8xlarge</p></li>
108 /// <li>
109 /// <p>stream.graphics.g6f.large</p></li>
110 /// <li>
111 /// <p>stream.graphics.g6f.xlarge</p></li>
112 /// <li>
113 /// <p>stream.graphics.g6f.2xlarge</p></li>
114 /// <li>
115 /// <p>stream.graphics.g6f.4xlarge</p></li>
116 /// <li>
117 /// <p>stream.graphics.gr6f.4xlarge</p></li>
118 /// </ul>
119 /// <p>The following instance types are available for Elastic fleets:</p>
120 /// <ul>
121 /// <li>
122 /// <p>stream.standard.small</p></li>
123 /// <li>
124 /// <p>stream.standard.medium</p></li>
125 /// <li>
126 /// <p>stream.standard.large</p></li>
127 /// <li>
128 /// <p>stream.standard.xlarge</p></li>
129 /// <li>
130 /// <p>stream.standard.2xlarge</p></li>
131 /// </ul>
132 pub instance_type: ::std::option::Option<::std::string::String>,
133 /// <p>The desired capacity for the fleet. This is not allowed for Elastic fleets.</p>
134 pub compute_capacity: ::std::option::Option<crate::types::ComputeCapacity>,
135 /// <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>
136 pub vpc_config: ::std::option::Option<crate::types::VpcConfig>,
137 /// <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>
138 /// <p>Specify a value between 600 and 432000.</p>
139 pub max_user_duration_in_seconds: ::std::option::Option<i32>,
140 /// <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>
141 /// <p>Specify a value between 60 and 36000.</p>
142 pub disconnect_timeout_in_seconds: ::std::option::Option<i32>,
143 /// <p>Deletes the VPC association for the specified fleet.</p>
144 #[deprecated]
145 pub delete_vpc_config: ::std::option::Option<bool>,
146 /// <p>The description to display.</p>
147 pub description: ::std::option::Option<::std::string::String>,
148 /// <p>The fleet name to display.</p>
149 pub display_name: ::std::option::Option<::std::string::String>,
150 /// <p>Enables or disables default internet access for the fleet.</p>
151 pub enable_default_internet_access: ::std::option::Option<bool>,
152 /// <p>The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory domain.</p>
153 pub domain_join_info: ::std::option::Option<crate::types::DomainJoinInfo>,
154 /// <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>
155 /// <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>
156 /// <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>
157 /// </note>
158 pub idle_disconnect_timeout_in_seconds: ::std::option::Option<i32>,
159 /// <p>The fleet attributes to delete.</p>
160 pub attributes_to_delete: ::std::option::Option<::std::vec::Vec<crate::types::FleetAttribute>>,
161 /// <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>
162 /// <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>
163 pub iam_role_arn: ::std::option::Option<::std::string::String>,
164 /// <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>
165 /// <p>The default value is <code>APP</code>.</p>
166 pub stream_view: ::std::option::Option<crate::types::StreamView>,
167 /// <p>The platform of the fleet. WINDOWS_SERVER_2019 and AMAZON_LINUX2 are supported for Elastic fleets.</p>
168 pub platform: ::std::option::Option<crate::types::PlatformType>,
169 /// <p>The maximum number of concurrent sessions for a fleet.</p>
170 pub max_concurrent_sessions: ::std::option::Option<i32>,
171 /// <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>
172 pub usb_device_filter_strings: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
173 /// <p>The S3 location of the session scripts configuration zip file. This only applies to Elastic fleets.</p>
174 pub session_script_s3_location: ::std::option::Option<crate::types::S3Location>,
175 /// <p>The maximum number of user sessions on an instance. This only applies to multi-session fleets.</p>
176 pub max_sessions_per_instance: ::std::option::Option<i32>,
177 /// <p>The updated configuration for the root volume of fleet instances. Note that volume size cannot be decreased below the image volume size.</p>
178 pub root_volume_config: ::std::option::Option<crate::types::VolumeConfig>,
179}
180impl UpdateFleetInput {
181 /// <p>The name of the image used to create the fleet.</p>
182 pub fn image_name(&self) -> ::std::option::Option<&str> {
183 self.image_name.as_deref()
184 }
185 /// <p>The ARN of the public, private, or shared image to use.</p>
186 pub fn image_arn(&self) -> ::std::option::Option<&str> {
187 self.image_arn.as_deref()
188 }
189 /// <p>A unique name for the fleet.</p>
190 pub fn name(&self) -> ::std::option::Option<&str> {
191 self.name.as_deref()
192 }
193 /// <p>The instance type to use when launching fleet instances. The following instance types are available:</p>
194 /// <ul>
195 /// <li>
196 /// <p>stream.standard.small</p></li>
197 /// <li>
198 /// <p>stream.standard.medium</p></li>
199 /// <li>
200 /// <p>stream.standard.large</p></li>
201 /// <li>
202 /// <p>stream.standard.xlarge</p></li>
203 /// <li>
204 /// <p>stream.standard.2xlarge</p></li>
205 /// <li>
206 /// <p>stream.compute.large</p></li>
207 /// <li>
208 /// <p>stream.compute.xlarge</p></li>
209 /// <li>
210 /// <p>stream.compute.2xlarge</p></li>
211 /// <li>
212 /// <p>stream.compute.4xlarge</p></li>
213 /// <li>
214 /// <p>stream.compute.8xlarge</p></li>
215 /// <li>
216 /// <p>stream.memory.large</p></li>
217 /// <li>
218 /// <p>stream.memory.xlarge</p></li>
219 /// <li>
220 /// <p>stream.memory.2xlarge</p></li>
221 /// <li>
222 /// <p>stream.memory.4xlarge</p></li>
223 /// <li>
224 /// <p>stream.memory.8xlarge</p></li>
225 /// <li>
226 /// <p>stream.memory.z1d.large</p></li>
227 /// <li>
228 /// <p>stream.memory.z1d.xlarge</p></li>
229 /// <li>
230 /// <p>stream.memory.z1d.2xlarge</p></li>
231 /// <li>
232 /// <p>stream.memory.z1d.3xlarge</p></li>
233 /// <li>
234 /// <p>stream.memory.z1d.6xlarge</p></li>
235 /// <li>
236 /// <p>stream.memory.z1d.12xlarge</p></li>
237 /// <li>
238 /// <p>stream.graphics-design.large</p></li>
239 /// <li>
240 /// <p>stream.graphics-design.xlarge</p></li>
241 /// <li>
242 /// <p>stream.graphics-design.2xlarge</p></li>
243 /// <li>
244 /// <p>stream.graphics-design.4xlarge</p></li>
245 /// <li>
246 /// <p>stream.graphics.g4dn.xlarge</p></li>
247 /// <li>
248 /// <p>stream.graphics.g4dn.2xlarge</p></li>
249 /// <li>
250 /// <p>stream.graphics.g4dn.4xlarge</p></li>
251 /// <li>
252 /// <p>stream.graphics.g4dn.8xlarge</p></li>
253 /// <li>
254 /// <p>stream.graphics.g4dn.12xlarge</p></li>
255 /// <li>
256 /// <p>stream.graphics.g4dn.16xlarge</p></li>
257 /// <li>
258 /// <p>stream.graphics.g5.xlarge</p></li>
259 /// <li>
260 /// <p>stream.graphics.g5.2xlarge</p></li>
261 /// <li>
262 /// <p>stream.graphics.g5.4xlarge</p></li>
263 /// <li>
264 /// <p>stream.graphics.g5.8xlarge</p></li>
265 /// <li>
266 /// <p>stream.graphics.g5.16xlarge</p></li>
267 /// <li>
268 /// <p>stream.graphics.g5.12xlarge</p></li>
269 /// <li>
270 /// <p>stream.graphics.g5.24xlarge</p></li>
271 /// <li>
272 /// <p>stream.graphics.g6.xlarge</p></li>
273 /// <li>
274 /// <p>stream.graphics.g6.2xlarge</p></li>
275 /// <li>
276 /// <p>stream.graphics.g6.4xlarge</p></li>
277 /// <li>
278 /// <p>stream.graphics.g6.8xlarge</p></li>
279 /// <li>
280 /// <p>stream.graphics.g6.16xlarge</p></li>
281 /// <li>
282 /// <p>stream.graphics.g6.12xlarge</p></li>
283 /// <li>
284 /// <p>stream.graphics.g6.24xlarge</p></li>
285 /// <li>
286 /// <p>stream.graphics.gr6.4xlarge</p></li>
287 /// <li>
288 /// <p>stream.graphics.gr6.8xlarge</p></li>
289 /// <li>
290 /// <p>stream.graphics.g6f.large</p></li>
291 /// <li>
292 /// <p>stream.graphics.g6f.xlarge</p></li>
293 /// <li>
294 /// <p>stream.graphics.g6f.2xlarge</p></li>
295 /// <li>
296 /// <p>stream.graphics.g6f.4xlarge</p></li>
297 /// <li>
298 /// <p>stream.graphics.gr6f.4xlarge</p></li>
299 /// </ul>
300 /// <p>The following instance types are available for Elastic fleets:</p>
301 /// <ul>
302 /// <li>
303 /// <p>stream.standard.small</p></li>
304 /// <li>
305 /// <p>stream.standard.medium</p></li>
306 /// <li>
307 /// <p>stream.standard.large</p></li>
308 /// <li>
309 /// <p>stream.standard.xlarge</p></li>
310 /// <li>
311 /// <p>stream.standard.2xlarge</p></li>
312 /// </ul>
313 pub fn instance_type(&self) -> ::std::option::Option<&str> {
314 self.instance_type.as_deref()
315 }
316 /// <p>The desired capacity for the fleet. This is not allowed for Elastic fleets.</p>
317 pub fn compute_capacity(&self) -> ::std::option::Option<&crate::types::ComputeCapacity> {
318 self.compute_capacity.as_ref()
319 }
320 /// <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>
321 pub fn vpc_config(&self) -> ::std::option::Option<&crate::types::VpcConfig> {
322 self.vpc_config.as_ref()
323 }
324 /// <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>
325 /// <p>Specify a value between 600 and 432000.</p>
326 pub fn max_user_duration_in_seconds(&self) -> ::std::option::Option<i32> {
327 self.max_user_duration_in_seconds
328 }
329 /// <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>
330 /// <p>Specify a value between 60 and 36000.</p>
331 pub fn disconnect_timeout_in_seconds(&self) -> ::std::option::Option<i32> {
332 self.disconnect_timeout_in_seconds
333 }
334 /// <p>Deletes the VPC association for the specified fleet.</p>
335 #[deprecated]
336 pub fn delete_vpc_config(&self) -> ::std::option::Option<bool> {
337 self.delete_vpc_config
338 }
339 /// <p>The description to display.</p>
340 pub fn description(&self) -> ::std::option::Option<&str> {
341 self.description.as_deref()
342 }
343 /// <p>The fleet name to display.</p>
344 pub fn display_name(&self) -> ::std::option::Option<&str> {
345 self.display_name.as_deref()
346 }
347 /// <p>Enables or disables default internet access for the fleet.</p>
348 pub fn enable_default_internet_access(&self) -> ::std::option::Option<bool> {
349 self.enable_default_internet_access
350 }
351 /// <p>The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory domain.</p>
352 pub fn domain_join_info(&self) -> ::std::option::Option<&crate::types::DomainJoinInfo> {
353 self.domain_join_info.as_ref()
354 }
355 /// <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>
356 /// <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>
357 /// <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>
358 /// </note>
359 pub fn idle_disconnect_timeout_in_seconds(&self) -> ::std::option::Option<i32> {
360 self.idle_disconnect_timeout_in_seconds
361 }
362 /// <p>The fleet attributes to delete.</p>
363 ///
364 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.attributes_to_delete.is_none()`.
365 pub fn attributes_to_delete(&self) -> &[crate::types::FleetAttribute] {
366 self.attributes_to_delete.as_deref().unwrap_or_default()
367 }
368 /// <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>
369 /// <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>
370 pub fn iam_role_arn(&self) -> ::std::option::Option<&str> {
371 self.iam_role_arn.as_deref()
372 }
373 /// <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>
374 /// <p>The default value is <code>APP</code>.</p>
375 pub fn stream_view(&self) -> ::std::option::Option<&crate::types::StreamView> {
376 self.stream_view.as_ref()
377 }
378 /// <p>The platform of the fleet. WINDOWS_SERVER_2019 and AMAZON_LINUX2 are supported for Elastic fleets.</p>
379 pub fn platform(&self) -> ::std::option::Option<&crate::types::PlatformType> {
380 self.platform.as_ref()
381 }
382 /// <p>The maximum number of concurrent sessions for a fleet.</p>
383 pub fn max_concurrent_sessions(&self) -> ::std::option::Option<i32> {
384 self.max_concurrent_sessions
385 }
386 /// <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>
387 ///
388 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.usb_device_filter_strings.is_none()`.
389 pub fn usb_device_filter_strings(&self) -> &[::std::string::String] {
390 self.usb_device_filter_strings.as_deref().unwrap_or_default()
391 }
392 /// <p>The S3 location of the session scripts configuration zip file. This only applies to Elastic fleets.</p>
393 pub fn session_script_s3_location(&self) -> ::std::option::Option<&crate::types::S3Location> {
394 self.session_script_s3_location.as_ref()
395 }
396 /// <p>The maximum number of user sessions on an instance. This only applies to multi-session fleets.</p>
397 pub fn max_sessions_per_instance(&self) -> ::std::option::Option<i32> {
398 self.max_sessions_per_instance
399 }
400 /// <p>The updated configuration for the root volume of fleet instances. Note that volume size cannot be decreased below the image volume size.</p>
401 pub fn root_volume_config(&self) -> ::std::option::Option<&crate::types::VolumeConfig> {
402 self.root_volume_config.as_ref()
403 }
404}
405impl UpdateFleetInput {
406 /// Creates a new builder-style object to manufacture [`UpdateFleetInput`](crate::operation::update_fleet::UpdateFleetInput).
407 pub fn builder() -> crate::operation::update_fleet::builders::UpdateFleetInputBuilder {
408 crate::operation::update_fleet::builders::UpdateFleetInputBuilder::default()
409 }
410}
411
412/// A builder for [`UpdateFleetInput`](crate::operation::update_fleet::UpdateFleetInput).
413#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
414#[non_exhaustive]
415pub struct UpdateFleetInputBuilder {
416 pub(crate) image_name: ::std::option::Option<::std::string::String>,
417 pub(crate) image_arn: ::std::option::Option<::std::string::String>,
418 pub(crate) name: ::std::option::Option<::std::string::String>,
419 pub(crate) instance_type: ::std::option::Option<::std::string::String>,
420 pub(crate) compute_capacity: ::std::option::Option<crate::types::ComputeCapacity>,
421 pub(crate) vpc_config: ::std::option::Option<crate::types::VpcConfig>,
422 pub(crate) max_user_duration_in_seconds: ::std::option::Option<i32>,
423 pub(crate) disconnect_timeout_in_seconds: ::std::option::Option<i32>,
424 pub(crate) delete_vpc_config: ::std::option::Option<bool>,
425 pub(crate) description: ::std::option::Option<::std::string::String>,
426 pub(crate) display_name: ::std::option::Option<::std::string::String>,
427 pub(crate) enable_default_internet_access: ::std::option::Option<bool>,
428 pub(crate) domain_join_info: ::std::option::Option<crate::types::DomainJoinInfo>,
429 pub(crate) idle_disconnect_timeout_in_seconds: ::std::option::Option<i32>,
430 pub(crate) attributes_to_delete: ::std::option::Option<::std::vec::Vec<crate::types::FleetAttribute>>,
431 pub(crate) iam_role_arn: ::std::option::Option<::std::string::String>,
432 pub(crate) stream_view: ::std::option::Option<crate::types::StreamView>,
433 pub(crate) platform: ::std::option::Option<crate::types::PlatformType>,
434 pub(crate) max_concurrent_sessions: ::std::option::Option<i32>,
435 pub(crate) usb_device_filter_strings: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
436 pub(crate) session_script_s3_location: ::std::option::Option<crate::types::S3Location>,
437 pub(crate) max_sessions_per_instance: ::std::option::Option<i32>,
438 pub(crate) root_volume_config: ::std::option::Option<crate::types::VolumeConfig>,
439}
440impl UpdateFleetInputBuilder {
441 /// <p>The name of the image used to create the fleet.</p>
442 pub fn image_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
443 self.image_name = ::std::option::Option::Some(input.into());
444 self
445 }
446 /// <p>The name of the image used to create the fleet.</p>
447 pub fn set_image_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
448 self.image_name = input;
449 self
450 }
451 /// <p>The name of the image used to create the fleet.</p>
452 pub fn get_image_name(&self) -> &::std::option::Option<::std::string::String> {
453 &self.image_name
454 }
455 /// <p>The ARN of the public, private, or shared image to use.</p>
456 pub fn image_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
457 self.image_arn = ::std::option::Option::Some(input.into());
458 self
459 }
460 /// <p>The ARN of the public, private, or shared image to use.</p>
461 pub fn set_image_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
462 self.image_arn = input;
463 self
464 }
465 /// <p>The ARN of the public, private, or shared image to use.</p>
466 pub fn get_image_arn(&self) -> &::std::option::Option<::std::string::String> {
467 &self.image_arn
468 }
469 /// <p>A unique name for the fleet.</p>
470 pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
471 self.name = ::std::option::Option::Some(input.into());
472 self
473 }
474 /// <p>A unique name for the fleet.</p>
475 pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
476 self.name = input;
477 self
478 }
479 /// <p>A unique name for the fleet.</p>
480 pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
481 &self.name
482 }
483 /// <p>The instance type to use when launching fleet instances. The following instance types are available:</p>
484 /// <ul>
485 /// <li>
486 /// <p>stream.standard.small</p></li>
487 /// <li>
488 /// <p>stream.standard.medium</p></li>
489 /// <li>
490 /// <p>stream.standard.large</p></li>
491 /// <li>
492 /// <p>stream.standard.xlarge</p></li>
493 /// <li>
494 /// <p>stream.standard.2xlarge</p></li>
495 /// <li>
496 /// <p>stream.compute.large</p></li>
497 /// <li>
498 /// <p>stream.compute.xlarge</p></li>
499 /// <li>
500 /// <p>stream.compute.2xlarge</p></li>
501 /// <li>
502 /// <p>stream.compute.4xlarge</p></li>
503 /// <li>
504 /// <p>stream.compute.8xlarge</p></li>
505 /// <li>
506 /// <p>stream.memory.large</p></li>
507 /// <li>
508 /// <p>stream.memory.xlarge</p></li>
509 /// <li>
510 /// <p>stream.memory.2xlarge</p></li>
511 /// <li>
512 /// <p>stream.memory.4xlarge</p></li>
513 /// <li>
514 /// <p>stream.memory.8xlarge</p></li>
515 /// <li>
516 /// <p>stream.memory.z1d.large</p></li>
517 /// <li>
518 /// <p>stream.memory.z1d.xlarge</p></li>
519 /// <li>
520 /// <p>stream.memory.z1d.2xlarge</p></li>
521 /// <li>
522 /// <p>stream.memory.z1d.3xlarge</p></li>
523 /// <li>
524 /// <p>stream.memory.z1d.6xlarge</p></li>
525 /// <li>
526 /// <p>stream.memory.z1d.12xlarge</p></li>
527 /// <li>
528 /// <p>stream.graphics-design.large</p></li>
529 /// <li>
530 /// <p>stream.graphics-design.xlarge</p></li>
531 /// <li>
532 /// <p>stream.graphics-design.2xlarge</p></li>
533 /// <li>
534 /// <p>stream.graphics-design.4xlarge</p></li>
535 /// <li>
536 /// <p>stream.graphics.g4dn.xlarge</p></li>
537 /// <li>
538 /// <p>stream.graphics.g4dn.2xlarge</p></li>
539 /// <li>
540 /// <p>stream.graphics.g4dn.4xlarge</p></li>
541 /// <li>
542 /// <p>stream.graphics.g4dn.8xlarge</p></li>
543 /// <li>
544 /// <p>stream.graphics.g4dn.12xlarge</p></li>
545 /// <li>
546 /// <p>stream.graphics.g4dn.16xlarge</p></li>
547 /// <li>
548 /// <p>stream.graphics.g5.xlarge</p></li>
549 /// <li>
550 /// <p>stream.graphics.g5.2xlarge</p></li>
551 /// <li>
552 /// <p>stream.graphics.g5.4xlarge</p></li>
553 /// <li>
554 /// <p>stream.graphics.g5.8xlarge</p></li>
555 /// <li>
556 /// <p>stream.graphics.g5.16xlarge</p></li>
557 /// <li>
558 /// <p>stream.graphics.g5.12xlarge</p></li>
559 /// <li>
560 /// <p>stream.graphics.g5.24xlarge</p></li>
561 /// <li>
562 /// <p>stream.graphics.g6.xlarge</p></li>
563 /// <li>
564 /// <p>stream.graphics.g6.2xlarge</p></li>
565 /// <li>
566 /// <p>stream.graphics.g6.4xlarge</p></li>
567 /// <li>
568 /// <p>stream.graphics.g6.8xlarge</p></li>
569 /// <li>
570 /// <p>stream.graphics.g6.16xlarge</p></li>
571 /// <li>
572 /// <p>stream.graphics.g6.12xlarge</p></li>
573 /// <li>
574 /// <p>stream.graphics.g6.24xlarge</p></li>
575 /// <li>
576 /// <p>stream.graphics.gr6.4xlarge</p></li>
577 /// <li>
578 /// <p>stream.graphics.gr6.8xlarge</p></li>
579 /// <li>
580 /// <p>stream.graphics.g6f.large</p></li>
581 /// <li>
582 /// <p>stream.graphics.g6f.xlarge</p></li>
583 /// <li>
584 /// <p>stream.graphics.g6f.2xlarge</p></li>
585 /// <li>
586 /// <p>stream.graphics.g6f.4xlarge</p></li>
587 /// <li>
588 /// <p>stream.graphics.gr6f.4xlarge</p></li>
589 /// </ul>
590 /// <p>The following instance types are available for Elastic fleets:</p>
591 /// <ul>
592 /// <li>
593 /// <p>stream.standard.small</p></li>
594 /// <li>
595 /// <p>stream.standard.medium</p></li>
596 /// <li>
597 /// <p>stream.standard.large</p></li>
598 /// <li>
599 /// <p>stream.standard.xlarge</p></li>
600 /// <li>
601 /// <p>stream.standard.2xlarge</p></li>
602 /// </ul>
603 pub fn instance_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
604 self.instance_type = ::std::option::Option::Some(input.into());
605 self
606 }
607 /// <p>The instance type to use when launching fleet instances. The following instance types are available:</p>
608 /// <ul>
609 /// <li>
610 /// <p>stream.standard.small</p></li>
611 /// <li>
612 /// <p>stream.standard.medium</p></li>
613 /// <li>
614 /// <p>stream.standard.large</p></li>
615 /// <li>
616 /// <p>stream.standard.xlarge</p></li>
617 /// <li>
618 /// <p>stream.standard.2xlarge</p></li>
619 /// <li>
620 /// <p>stream.compute.large</p></li>
621 /// <li>
622 /// <p>stream.compute.xlarge</p></li>
623 /// <li>
624 /// <p>stream.compute.2xlarge</p></li>
625 /// <li>
626 /// <p>stream.compute.4xlarge</p></li>
627 /// <li>
628 /// <p>stream.compute.8xlarge</p></li>
629 /// <li>
630 /// <p>stream.memory.large</p></li>
631 /// <li>
632 /// <p>stream.memory.xlarge</p></li>
633 /// <li>
634 /// <p>stream.memory.2xlarge</p></li>
635 /// <li>
636 /// <p>stream.memory.4xlarge</p></li>
637 /// <li>
638 /// <p>stream.memory.8xlarge</p></li>
639 /// <li>
640 /// <p>stream.memory.z1d.large</p></li>
641 /// <li>
642 /// <p>stream.memory.z1d.xlarge</p></li>
643 /// <li>
644 /// <p>stream.memory.z1d.2xlarge</p></li>
645 /// <li>
646 /// <p>stream.memory.z1d.3xlarge</p></li>
647 /// <li>
648 /// <p>stream.memory.z1d.6xlarge</p></li>
649 /// <li>
650 /// <p>stream.memory.z1d.12xlarge</p></li>
651 /// <li>
652 /// <p>stream.graphics-design.large</p></li>
653 /// <li>
654 /// <p>stream.graphics-design.xlarge</p></li>
655 /// <li>
656 /// <p>stream.graphics-design.2xlarge</p></li>
657 /// <li>
658 /// <p>stream.graphics-design.4xlarge</p></li>
659 /// <li>
660 /// <p>stream.graphics.g4dn.xlarge</p></li>
661 /// <li>
662 /// <p>stream.graphics.g4dn.2xlarge</p></li>
663 /// <li>
664 /// <p>stream.graphics.g4dn.4xlarge</p></li>
665 /// <li>
666 /// <p>stream.graphics.g4dn.8xlarge</p></li>
667 /// <li>
668 /// <p>stream.graphics.g4dn.12xlarge</p></li>
669 /// <li>
670 /// <p>stream.graphics.g4dn.16xlarge</p></li>
671 /// <li>
672 /// <p>stream.graphics.g5.xlarge</p></li>
673 /// <li>
674 /// <p>stream.graphics.g5.2xlarge</p></li>
675 /// <li>
676 /// <p>stream.graphics.g5.4xlarge</p></li>
677 /// <li>
678 /// <p>stream.graphics.g5.8xlarge</p></li>
679 /// <li>
680 /// <p>stream.graphics.g5.16xlarge</p></li>
681 /// <li>
682 /// <p>stream.graphics.g5.12xlarge</p></li>
683 /// <li>
684 /// <p>stream.graphics.g5.24xlarge</p></li>
685 /// <li>
686 /// <p>stream.graphics.g6.xlarge</p></li>
687 /// <li>
688 /// <p>stream.graphics.g6.2xlarge</p></li>
689 /// <li>
690 /// <p>stream.graphics.g6.4xlarge</p></li>
691 /// <li>
692 /// <p>stream.graphics.g6.8xlarge</p></li>
693 /// <li>
694 /// <p>stream.graphics.g6.16xlarge</p></li>
695 /// <li>
696 /// <p>stream.graphics.g6.12xlarge</p></li>
697 /// <li>
698 /// <p>stream.graphics.g6.24xlarge</p></li>
699 /// <li>
700 /// <p>stream.graphics.gr6.4xlarge</p></li>
701 /// <li>
702 /// <p>stream.graphics.gr6.8xlarge</p></li>
703 /// <li>
704 /// <p>stream.graphics.g6f.large</p></li>
705 /// <li>
706 /// <p>stream.graphics.g6f.xlarge</p></li>
707 /// <li>
708 /// <p>stream.graphics.g6f.2xlarge</p></li>
709 /// <li>
710 /// <p>stream.graphics.g6f.4xlarge</p></li>
711 /// <li>
712 /// <p>stream.graphics.gr6f.4xlarge</p></li>
713 /// </ul>
714 /// <p>The following instance types are available for Elastic fleets:</p>
715 /// <ul>
716 /// <li>
717 /// <p>stream.standard.small</p></li>
718 /// <li>
719 /// <p>stream.standard.medium</p></li>
720 /// <li>
721 /// <p>stream.standard.large</p></li>
722 /// <li>
723 /// <p>stream.standard.xlarge</p></li>
724 /// <li>
725 /// <p>stream.standard.2xlarge</p></li>
726 /// </ul>
727 pub fn set_instance_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
728 self.instance_type = input;
729 self
730 }
731 /// <p>The instance type to use when launching fleet instances. The following instance types are available:</p>
732 /// <ul>
733 /// <li>
734 /// <p>stream.standard.small</p></li>
735 /// <li>
736 /// <p>stream.standard.medium</p></li>
737 /// <li>
738 /// <p>stream.standard.large</p></li>
739 /// <li>
740 /// <p>stream.standard.xlarge</p></li>
741 /// <li>
742 /// <p>stream.standard.2xlarge</p></li>
743 /// <li>
744 /// <p>stream.compute.large</p></li>
745 /// <li>
746 /// <p>stream.compute.xlarge</p></li>
747 /// <li>
748 /// <p>stream.compute.2xlarge</p></li>
749 /// <li>
750 /// <p>stream.compute.4xlarge</p></li>
751 /// <li>
752 /// <p>stream.compute.8xlarge</p></li>
753 /// <li>
754 /// <p>stream.memory.large</p></li>
755 /// <li>
756 /// <p>stream.memory.xlarge</p></li>
757 /// <li>
758 /// <p>stream.memory.2xlarge</p></li>
759 /// <li>
760 /// <p>stream.memory.4xlarge</p></li>
761 /// <li>
762 /// <p>stream.memory.8xlarge</p></li>
763 /// <li>
764 /// <p>stream.memory.z1d.large</p></li>
765 /// <li>
766 /// <p>stream.memory.z1d.xlarge</p></li>
767 /// <li>
768 /// <p>stream.memory.z1d.2xlarge</p></li>
769 /// <li>
770 /// <p>stream.memory.z1d.3xlarge</p></li>
771 /// <li>
772 /// <p>stream.memory.z1d.6xlarge</p></li>
773 /// <li>
774 /// <p>stream.memory.z1d.12xlarge</p></li>
775 /// <li>
776 /// <p>stream.graphics-design.large</p></li>
777 /// <li>
778 /// <p>stream.graphics-design.xlarge</p></li>
779 /// <li>
780 /// <p>stream.graphics-design.2xlarge</p></li>
781 /// <li>
782 /// <p>stream.graphics-design.4xlarge</p></li>
783 /// <li>
784 /// <p>stream.graphics.g4dn.xlarge</p></li>
785 /// <li>
786 /// <p>stream.graphics.g4dn.2xlarge</p></li>
787 /// <li>
788 /// <p>stream.graphics.g4dn.4xlarge</p></li>
789 /// <li>
790 /// <p>stream.graphics.g4dn.8xlarge</p></li>
791 /// <li>
792 /// <p>stream.graphics.g4dn.12xlarge</p></li>
793 /// <li>
794 /// <p>stream.graphics.g4dn.16xlarge</p></li>
795 /// <li>
796 /// <p>stream.graphics.g5.xlarge</p></li>
797 /// <li>
798 /// <p>stream.graphics.g5.2xlarge</p></li>
799 /// <li>
800 /// <p>stream.graphics.g5.4xlarge</p></li>
801 /// <li>
802 /// <p>stream.graphics.g5.8xlarge</p></li>
803 /// <li>
804 /// <p>stream.graphics.g5.16xlarge</p></li>
805 /// <li>
806 /// <p>stream.graphics.g5.12xlarge</p></li>
807 /// <li>
808 /// <p>stream.graphics.g5.24xlarge</p></li>
809 /// <li>
810 /// <p>stream.graphics.g6.xlarge</p></li>
811 /// <li>
812 /// <p>stream.graphics.g6.2xlarge</p></li>
813 /// <li>
814 /// <p>stream.graphics.g6.4xlarge</p></li>
815 /// <li>
816 /// <p>stream.graphics.g6.8xlarge</p></li>
817 /// <li>
818 /// <p>stream.graphics.g6.16xlarge</p></li>
819 /// <li>
820 /// <p>stream.graphics.g6.12xlarge</p></li>
821 /// <li>
822 /// <p>stream.graphics.g6.24xlarge</p></li>
823 /// <li>
824 /// <p>stream.graphics.gr6.4xlarge</p></li>
825 /// <li>
826 /// <p>stream.graphics.gr6.8xlarge</p></li>
827 /// <li>
828 /// <p>stream.graphics.g6f.large</p></li>
829 /// <li>
830 /// <p>stream.graphics.g6f.xlarge</p></li>
831 /// <li>
832 /// <p>stream.graphics.g6f.2xlarge</p></li>
833 /// <li>
834 /// <p>stream.graphics.g6f.4xlarge</p></li>
835 /// <li>
836 /// <p>stream.graphics.gr6f.4xlarge</p></li>
837 /// </ul>
838 /// <p>The following instance types are available for Elastic fleets:</p>
839 /// <ul>
840 /// <li>
841 /// <p>stream.standard.small</p></li>
842 /// <li>
843 /// <p>stream.standard.medium</p></li>
844 /// <li>
845 /// <p>stream.standard.large</p></li>
846 /// <li>
847 /// <p>stream.standard.xlarge</p></li>
848 /// <li>
849 /// <p>stream.standard.2xlarge</p></li>
850 /// </ul>
851 pub fn get_instance_type(&self) -> &::std::option::Option<::std::string::String> {
852 &self.instance_type
853 }
854 /// <p>The desired capacity for the fleet. This is not allowed for Elastic fleets.</p>
855 pub fn compute_capacity(mut self, input: crate::types::ComputeCapacity) -> Self {
856 self.compute_capacity = ::std::option::Option::Some(input);
857 self
858 }
859 /// <p>The desired capacity for the fleet. This is not allowed for Elastic fleets.</p>
860 pub fn set_compute_capacity(mut self, input: ::std::option::Option<crate::types::ComputeCapacity>) -> Self {
861 self.compute_capacity = input;
862 self
863 }
864 /// <p>The desired capacity for the fleet. This is not allowed for Elastic fleets.</p>
865 pub fn get_compute_capacity(&self) -> &::std::option::Option<crate::types::ComputeCapacity> {
866 &self.compute_capacity
867 }
868 /// <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>
869 pub fn vpc_config(mut self, input: crate::types::VpcConfig) -> Self {
870 self.vpc_config = ::std::option::Option::Some(input);
871 self
872 }
873 /// <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>
874 pub fn set_vpc_config(mut self, input: ::std::option::Option<crate::types::VpcConfig>) -> Self {
875 self.vpc_config = input;
876 self
877 }
878 /// <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>
879 pub fn get_vpc_config(&self) -> &::std::option::Option<crate::types::VpcConfig> {
880 &self.vpc_config
881 }
882 /// <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>
883 /// <p>Specify a value between 600 and 432000.</p>
884 pub fn max_user_duration_in_seconds(mut self, input: i32) -> Self {
885 self.max_user_duration_in_seconds = ::std::option::Option::Some(input);
886 self
887 }
888 /// <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>
889 /// <p>Specify a value between 600 and 432000.</p>
890 pub fn set_max_user_duration_in_seconds(mut self, input: ::std::option::Option<i32>) -> Self {
891 self.max_user_duration_in_seconds = input;
892 self
893 }
894 /// <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>
895 /// <p>Specify a value between 600 and 432000.</p>
896 pub fn get_max_user_duration_in_seconds(&self) -> &::std::option::Option<i32> {
897 &self.max_user_duration_in_seconds
898 }
899 /// <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>
900 /// <p>Specify a value between 60 and 36000.</p>
901 pub fn disconnect_timeout_in_seconds(mut self, input: i32) -> Self {
902 self.disconnect_timeout_in_seconds = ::std::option::Option::Some(input);
903 self
904 }
905 /// <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>
906 /// <p>Specify a value between 60 and 36000.</p>
907 pub fn set_disconnect_timeout_in_seconds(mut self, input: ::std::option::Option<i32>) -> Self {
908 self.disconnect_timeout_in_seconds = input;
909 self
910 }
911 /// <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>
912 /// <p>Specify a value between 60 and 36000.</p>
913 pub fn get_disconnect_timeout_in_seconds(&self) -> &::std::option::Option<i32> {
914 &self.disconnect_timeout_in_seconds
915 }
916 /// <p>Deletes the VPC association for the specified fleet.</p>
917 #[deprecated]
918 pub fn delete_vpc_config(mut self, input: bool) -> Self {
919 self.delete_vpc_config = ::std::option::Option::Some(input);
920 self
921 }
922 /// <p>Deletes the VPC association for the specified fleet.</p>
923 #[deprecated]
924 pub fn set_delete_vpc_config(mut self, input: ::std::option::Option<bool>) -> Self {
925 self.delete_vpc_config = input;
926 self
927 }
928 /// <p>Deletes the VPC association for the specified fleet.</p>
929 #[deprecated]
930 pub fn get_delete_vpc_config(&self) -> &::std::option::Option<bool> {
931 &self.delete_vpc_config
932 }
933 /// <p>The description to display.</p>
934 pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
935 self.description = ::std::option::Option::Some(input.into());
936 self
937 }
938 /// <p>The description to display.</p>
939 pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
940 self.description = input;
941 self
942 }
943 /// <p>The description to display.</p>
944 pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
945 &self.description
946 }
947 /// <p>The fleet name to display.</p>
948 pub fn display_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
949 self.display_name = ::std::option::Option::Some(input.into());
950 self
951 }
952 /// <p>The fleet name to display.</p>
953 pub fn set_display_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
954 self.display_name = input;
955 self
956 }
957 /// <p>The fleet name to display.</p>
958 pub fn get_display_name(&self) -> &::std::option::Option<::std::string::String> {
959 &self.display_name
960 }
961 /// <p>Enables or disables default internet access for the fleet.</p>
962 pub fn enable_default_internet_access(mut self, input: bool) -> Self {
963 self.enable_default_internet_access = ::std::option::Option::Some(input);
964 self
965 }
966 /// <p>Enables or disables default internet access for the fleet.</p>
967 pub fn set_enable_default_internet_access(mut self, input: ::std::option::Option<bool>) -> Self {
968 self.enable_default_internet_access = input;
969 self
970 }
971 /// <p>Enables or disables default internet access for the fleet.</p>
972 pub fn get_enable_default_internet_access(&self) -> &::std::option::Option<bool> {
973 &self.enable_default_internet_access
974 }
975 /// <p>The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory domain.</p>
976 pub fn domain_join_info(mut self, input: crate::types::DomainJoinInfo) -> Self {
977 self.domain_join_info = ::std::option::Option::Some(input);
978 self
979 }
980 /// <p>The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory domain.</p>
981 pub fn set_domain_join_info(mut self, input: ::std::option::Option<crate::types::DomainJoinInfo>) -> Self {
982 self.domain_join_info = input;
983 self
984 }
985 /// <p>The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory domain.</p>
986 pub fn get_domain_join_info(&self) -> &::std::option::Option<crate::types::DomainJoinInfo> {
987 &self.domain_join_info
988 }
989 /// <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>
990 /// <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>
991 /// <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>
992 /// </note>
993 pub fn idle_disconnect_timeout_in_seconds(mut self, input: i32) -> Self {
994 self.idle_disconnect_timeout_in_seconds = ::std::option::Option::Some(input);
995 self
996 }
997 /// <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>
998 /// <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>
999 /// <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>
1000 /// </note>
1001 pub fn set_idle_disconnect_timeout_in_seconds(mut self, input: ::std::option::Option<i32>) -> Self {
1002 self.idle_disconnect_timeout_in_seconds = input;
1003 self
1004 }
1005 /// <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>
1006 /// <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>
1007 /// <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>
1008 /// </note>
1009 pub fn get_idle_disconnect_timeout_in_seconds(&self) -> &::std::option::Option<i32> {
1010 &self.idle_disconnect_timeout_in_seconds
1011 }
1012 /// Appends an item to `attributes_to_delete`.
1013 ///
1014 /// To override the contents of this collection use [`set_attributes_to_delete`](Self::set_attributes_to_delete).
1015 ///
1016 /// <p>The fleet attributes to delete.</p>
1017 pub fn attributes_to_delete(mut self, input: crate::types::FleetAttribute) -> Self {
1018 let mut v = self.attributes_to_delete.unwrap_or_default();
1019 v.push(input);
1020 self.attributes_to_delete = ::std::option::Option::Some(v);
1021 self
1022 }
1023 /// <p>The fleet attributes to delete.</p>
1024 pub fn set_attributes_to_delete(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::FleetAttribute>>) -> Self {
1025 self.attributes_to_delete = input;
1026 self
1027 }
1028 /// <p>The fleet attributes to delete.</p>
1029 pub fn get_attributes_to_delete(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::FleetAttribute>> {
1030 &self.attributes_to_delete
1031 }
1032 /// <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>
1033 /// <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>
1034 pub fn iam_role_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1035 self.iam_role_arn = ::std::option::Option::Some(input.into());
1036 self
1037 }
1038 /// <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>
1039 /// <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>
1040 pub fn set_iam_role_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
1041 self.iam_role_arn = input;
1042 self
1043 }
1044 /// <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>
1045 /// <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>
1046 pub fn get_iam_role_arn(&self) -> &::std::option::Option<::std::string::String> {
1047 &self.iam_role_arn
1048 }
1049 /// <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>
1050 /// <p>The default value is <code>APP</code>.</p>
1051 pub fn stream_view(mut self, input: crate::types::StreamView) -> Self {
1052 self.stream_view = ::std::option::Option::Some(input);
1053 self
1054 }
1055 /// <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>
1056 /// <p>The default value is <code>APP</code>.</p>
1057 pub fn set_stream_view(mut self, input: ::std::option::Option<crate::types::StreamView>) -> Self {
1058 self.stream_view = input;
1059 self
1060 }
1061 /// <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>
1062 /// <p>The default value is <code>APP</code>.</p>
1063 pub fn get_stream_view(&self) -> &::std::option::Option<crate::types::StreamView> {
1064 &self.stream_view
1065 }
1066 /// <p>The platform of the fleet. WINDOWS_SERVER_2019 and AMAZON_LINUX2 are supported for Elastic fleets.</p>
1067 pub fn platform(mut self, input: crate::types::PlatformType) -> Self {
1068 self.platform = ::std::option::Option::Some(input);
1069 self
1070 }
1071 /// <p>The platform of the fleet. WINDOWS_SERVER_2019 and AMAZON_LINUX2 are supported for Elastic fleets.</p>
1072 pub fn set_platform(mut self, input: ::std::option::Option<crate::types::PlatformType>) -> Self {
1073 self.platform = input;
1074 self
1075 }
1076 /// <p>The platform of the fleet. WINDOWS_SERVER_2019 and AMAZON_LINUX2 are supported for Elastic fleets.</p>
1077 pub fn get_platform(&self) -> &::std::option::Option<crate::types::PlatformType> {
1078 &self.platform
1079 }
1080 /// <p>The maximum number of concurrent sessions for a fleet.</p>
1081 pub fn max_concurrent_sessions(mut self, input: i32) -> Self {
1082 self.max_concurrent_sessions = ::std::option::Option::Some(input);
1083 self
1084 }
1085 /// <p>The maximum number of concurrent sessions for a fleet.</p>
1086 pub fn set_max_concurrent_sessions(mut self, input: ::std::option::Option<i32>) -> Self {
1087 self.max_concurrent_sessions = input;
1088 self
1089 }
1090 /// <p>The maximum number of concurrent sessions for a fleet.</p>
1091 pub fn get_max_concurrent_sessions(&self) -> &::std::option::Option<i32> {
1092 &self.max_concurrent_sessions
1093 }
1094 /// Appends an item to `usb_device_filter_strings`.
1095 ///
1096 /// To override the contents of this collection use [`set_usb_device_filter_strings`](Self::set_usb_device_filter_strings).
1097 ///
1098 /// <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>
1099 pub fn usb_device_filter_strings(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
1100 let mut v = self.usb_device_filter_strings.unwrap_or_default();
1101 v.push(input.into());
1102 self.usb_device_filter_strings = ::std::option::Option::Some(v);
1103 self
1104 }
1105 /// <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>
1106 pub fn set_usb_device_filter_strings(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
1107 self.usb_device_filter_strings = input;
1108 self
1109 }
1110 /// <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>
1111 pub fn get_usb_device_filter_strings(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
1112 &self.usb_device_filter_strings
1113 }
1114 /// <p>The S3 location of the session scripts configuration zip file. This only applies to Elastic fleets.</p>
1115 pub fn session_script_s3_location(mut self, input: crate::types::S3Location) -> Self {
1116 self.session_script_s3_location = ::std::option::Option::Some(input);
1117 self
1118 }
1119 /// <p>The S3 location of the session scripts configuration zip file. This only applies to Elastic fleets.</p>
1120 pub fn set_session_script_s3_location(mut self, input: ::std::option::Option<crate::types::S3Location>) -> Self {
1121 self.session_script_s3_location = input;
1122 self
1123 }
1124 /// <p>The S3 location of the session scripts configuration zip file. This only applies to Elastic fleets.</p>
1125 pub fn get_session_script_s3_location(&self) -> &::std::option::Option<crate::types::S3Location> {
1126 &self.session_script_s3_location
1127 }
1128 /// <p>The maximum number of user sessions on an instance. This only applies to multi-session fleets.</p>
1129 pub fn max_sessions_per_instance(mut self, input: i32) -> Self {
1130 self.max_sessions_per_instance = ::std::option::Option::Some(input);
1131 self
1132 }
1133 /// <p>The maximum number of user sessions on an instance. This only applies to multi-session fleets.</p>
1134 pub fn set_max_sessions_per_instance(mut self, input: ::std::option::Option<i32>) -> Self {
1135 self.max_sessions_per_instance = input;
1136 self
1137 }
1138 /// <p>The maximum number of user sessions on an instance. This only applies to multi-session fleets.</p>
1139 pub fn get_max_sessions_per_instance(&self) -> &::std::option::Option<i32> {
1140 &self.max_sessions_per_instance
1141 }
1142 /// <p>The updated configuration for the root volume of fleet instances. Note that volume size cannot be decreased below the image volume size.</p>
1143 pub fn root_volume_config(mut self, input: crate::types::VolumeConfig) -> Self {
1144 self.root_volume_config = ::std::option::Option::Some(input);
1145 self
1146 }
1147 /// <p>The updated configuration for the root volume of fleet instances. Note that volume size cannot be decreased below the image volume size.</p>
1148 pub fn set_root_volume_config(mut self, input: ::std::option::Option<crate::types::VolumeConfig>) -> Self {
1149 self.root_volume_config = input;
1150 self
1151 }
1152 /// <p>The updated configuration for the root volume of fleet instances. Note that volume size cannot be decreased below the image volume size.</p>
1153 pub fn get_root_volume_config(&self) -> &::std::option::Option<crate::types::VolumeConfig> {
1154 &self.root_volume_config
1155 }
1156 /// Consumes the builder and constructs a [`UpdateFleetInput`](crate::operation::update_fleet::UpdateFleetInput).
1157 pub fn build(self) -> ::std::result::Result<crate::operation::update_fleet::UpdateFleetInput, ::aws_smithy_types::error::operation::BuildError> {
1158 ::std::result::Result::Ok(crate::operation::update_fleet::UpdateFleetInput {
1159 image_name: self.image_name,
1160 image_arn: self.image_arn,
1161 name: self.name,
1162 instance_type: self.instance_type,
1163 compute_capacity: self.compute_capacity,
1164 vpc_config: self.vpc_config,
1165 max_user_duration_in_seconds: self.max_user_duration_in_seconds,
1166 disconnect_timeout_in_seconds: self.disconnect_timeout_in_seconds,
1167 delete_vpc_config: self.delete_vpc_config,
1168 description: self.description,
1169 display_name: self.display_name,
1170 enable_default_internet_access: self.enable_default_internet_access,
1171 domain_join_info: self.domain_join_info,
1172 idle_disconnect_timeout_in_seconds: self.idle_disconnect_timeout_in_seconds,
1173 attributes_to_delete: self.attributes_to_delete,
1174 iam_role_arn: self.iam_role_arn,
1175 stream_view: self.stream_view,
1176 platform: self.platform,
1177 max_concurrent_sessions: self.max_concurrent_sessions,
1178 usb_device_filter_strings: self.usb_device_filter_strings,
1179 session_script_s3_location: self.session_script_s3_location,
1180 max_sessions_per_instance: self.max_sessions_per_instance,
1181 root_volume_config: self.root_volume_config,
1182 })
1183 }
1184}