1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/appstream/AppStream_EXPORTS.h>
8 #include <aws/appstream/AppStreamRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/appstream/model/ComputeCapacity.h>
11 #include <aws/appstream/model/VpcConfig.h>
12 #include <aws/appstream/model/DomainJoinInfo.h>
13 #include <aws/core/utils/memory/stl/AWSVector.h>
14 #include <aws/appstream/model/StreamView.h>
15 #include <aws/appstream/model/FleetAttribute.h>
16 #include <utility>
17 
18 namespace Aws
19 {
20 namespace AppStream
21 {
22 namespace Model
23 {
24 
25   /**
26    */
27   class AWS_APPSTREAM_API UpdateFleetRequest : public AppStreamRequest
28   {
29   public:
30     UpdateFleetRequest();
31 
32     // Service request name is the Operation name which will send this request out,
33     // each operation should has unique request name, so that we can get operation's name from this request.
34     // Note: this is not true for response, multiple operations may have the same response name,
35     // so we can not get operation's name from response.
GetServiceRequestName()36     inline virtual const char* GetServiceRequestName() const override { return "UpdateFleet"; }
37 
38     Aws::String SerializePayload() const override;
39 
40     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
41 
42 
43     /**
44      * <p>The name of the image used to create the fleet.</p>
45      */
GetImageName()46     inline const Aws::String& GetImageName() const{ return m_imageName; }
47 
48     /**
49      * <p>The name of the image used to create the fleet.</p>
50      */
ImageNameHasBeenSet()51     inline bool ImageNameHasBeenSet() const { return m_imageNameHasBeenSet; }
52 
53     /**
54      * <p>The name of the image used to create the fleet.</p>
55      */
SetImageName(const Aws::String & value)56     inline void SetImageName(const Aws::String& value) { m_imageNameHasBeenSet = true; m_imageName = value; }
57 
58     /**
59      * <p>The name of the image used to create the fleet.</p>
60      */
SetImageName(Aws::String && value)61     inline void SetImageName(Aws::String&& value) { m_imageNameHasBeenSet = true; m_imageName = std::move(value); }
62 
63     /**
64      * <p>The name of the image used to create the fleet.</p>
65      */
SetImageName(const char * value)66     inline void SetImageName(const char* value) { m_imageNameHasBeenSet = true; m_imageName.assign(value); }
67 
68     /**
69      * <p>The name of the image used to create the fleet.</p>
70      */
WithImageName(const Aws::String & value)71     inline UpdateFleetRequest& WithImageName(const Aws::String& value) { SetImageName(value); return *this;}
72 
73     /**
74      * <p>The name of the image used to create the fleet.</p>
75      */
WithImageName(Aws::String && value)76     inline UpdateFleetRequest& WithImageName(Aws::String&& value) { SetImageName(std::move(value)); return *this;}
77 
78     /**
79      * <p>The name of the image used to create the fleet.</p>
80      */
WithImageName(const char * value)81     inline UpdateFleetRequest& WithImageName(const char* value) { SetImageName(value); return *this;}
82 
83 
84     /**
85      * <p>The ARN of the public, private, or shared image to use.</p>
86      */
GetImageArn()87     inline const Aws::String& GetImageArn() const{ return m_imageArn; }
88 
89     /**
90      * <p>The ARN of the public, private, or shared image to use.</p>
91      */
ImageArnHasBeenSet()92     inline bool ImageArnHasBeenSet() const { return m_imageArnHasBeenSet; }
93 
94     /**
95      * <p>The ARN of the public, private, or shared image to use.</p>
96      */
SetImageArn(const Aws::String & value)97     inline void SetImageArn(const Aws::String& value) { m_imageArnHasBeenSet = true; m_imageArn = value; }
98 
99     /**
100      * <p>The ARN of the public, private, or shared image to use.</p>
101      */
SetImageArn(Aws::String && value)102     inline void SetImageArn(Aws::String&& value) { m_imageArnHasBeenSet = true; m_imageArn = std::move(value); }
103 
104     /**
105      * <p>The ARN of the public, private, or shared image to use.</p>
106      */
SetImageArn(const char * value)107     inline void SetImageArn(const char* value) { m_imageArnHasBeenSet = true; m_imageArn.assign(value); }
108 
109     /**
110      * <p>The ARN of the public, private, or shared image to use.</p>
111      */
WithImageArn(const Aws::String & value)112     inline UpdateFleetRequest& WithImageArn(const Aws::String& value) { SetImageArn(value); return *this;}
113 
114     /**
115      * <p>The ARN of the public, private, or shared image to use.</p>
116      */
WithImageArn(Aws::String && value)117     inline UpdateFleetRequest& WithImageArn(Aws::String&& value) { SetImageArn(std::move(value)); return *this;}
118 
119     /**
120      * <p>The ARN of the public, private, or shared image to use.</p>
121      */
WithImageArn(const char * value)122     inline UpdateFleetRequest& WithImageArn(const char* value) { SetImageArn(value); return *this;}
123 
124 
125     /**
126      * <p>A unique name for the fleet.</p>
127      */
GetName()128     inline const Aws::String& GetName() const{ return m_name; }
129 
130     /**
131      * <p>A unique name for the fleet.</p>
132      */
NameHasBeenSet()133     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
134 
135     /**
136      * <p>A unique name for the fleet.</p>
137      */
SetName(const Aws::String & value)138     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
139 
140     /**
141      * <p>A unique name for the fleet.</p>
142      */
SetName(Aws::String && value)143     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
144 
145     /**
146      * <p>A unique name for the fleet.</p>
147      */
SetName(const char * value)148     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
149 
150     /**
151      * <p>A unique name for the fleet.</p>
152      */
WithName(const Aws::String & value)153     inline UpdateFleetRequest& WithName(const Aws::String& value) { SetName(value); return *this;}
154 
155     /**
156      * <p>A unique name for the fleet.</p>
157      */
WithName(Aws::String && value)158     inline UpdateFleetRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
159 
160     /**
161      * <p>A unique name for the fleet.</p>
162      */
WithName(const char * value)163     inline UpdateFleetRequest& WithName(const char* value) { SetName(value); return *this;}
164 
165 
166     /**
167      * <p>The instance type to use when launching fleet instances. The following
168      * instance types are available:</p> <ul> <li> <p>stream.standard.small</p> </li>
169      * <li> <p>stream.standard.medium</p> </li> <li> <p>stream.standard.large</p> </li>
170      * <li> <p>stream.compute.large</p> </li> <li> <p>stream.compute.xlarge</p> </li>
171      * <li> <p>stream.compute.2xlarge</p> </li> <li> <p>stream.compute.4xlarge</p>
172      * </li> <li> <p>stream.compute.8xlarge</p> </li> <li> <p>stream.memory.large</p>
173      * </li> <li> <p>stream.memory.xlarge</p> </li> <li> <p>stream.memory.2xlarge</p>
174      * </li> <li> <p>stream.memory.4xlarge</p> </li> <li> <p>stream.memory.8xlarge</p>
175      * </li> <li> <p>stream.memory.z1d.large</p> </li> <li>
176      * <p>stream.memory.z1d.xlarge</p> </li> <li> <p>stream.memory.z1d.2xlarge</p>
177      * </li> <li> <p>stream.memory.z1d.3xlarge</p> </li> <li>
178      * <p>stream.memory.z1d.6xlarge</p> </li> <li> <p>stream.memory.z1d.12xlarge</p>
179      * </li> <li> <p>stream.graphics-design.large</p> </li> <li>
180      * <p>stream.graphics-design.xlarge</p> </li> <li>
181      * <p>stream.graphics-design.2xlarge</p> </li> <li>
182      * <p>stream.graphics-design.4xlarge</p> </li> <li>
183      * <p>stream.graphics-desktop.2xlarge</p> </li> <li>
184      * <p>stream.graphics.g4dn.xlarge</p> </li> <li>
185      * <p>stream.graphics.g4dn.2xlarge</p> </li> <li>
186      * <p>stream.graphics.g4dn.4xlarge</p> </li> <li>
187      * <p>stream.graphics.g4dn.8xlarge</p> </li> <li>
188      * <p>stream.graphics.g4dn.12xlarge</p> </li> <li>
189      * <p>stream.graphics.g4dn.16xlarge</p> </li> <li>
190      * <p>stream.graphics-pro.4xlarge</p> </li> <li> <p>stream.graphics-pro.8xlarge</p>
191      * </li> <li> <p>stream.graphics-pro.16xlarge</p> </li> </ul>
192      */
GetInstanceType()193     inline const Aws::String& GetInstanceType() const{ return m_instanceType; }
194 
195     /**
196      * <p>The instance type to use when launching fleet instances. The following
197      * instance types are available:</p> <ul> <li> <p>stream.standard.small</p> </li>
198      * <li> <p>stream.standard.medium</p> </li> <li> <p>stream.standard.large</p> </li>
199      * <li> <p>stream.compute.large</p> </li> <li> <p>stream.compute.xlarge</p> </li>
200      * <li> <p>stream.compute.2xlarge</p> </li> <li> <p>stream.compute.4xlarge</p>
201      * </li> <li> <p>stream.compute.8xlarge</p> </li> <li> <p>stream.memory.large</p>
202      * </li> <li> <p>stream.memory.xlarge</p> </li> <li> <p>stream.memory.2xlarge</p>
203      * </li> <li> <p>stream.memory.4xlarge</p> </li> <li> <p>stream.memory.8xlarge</p>
204      * </li> <li> <p>stream.memory.z1d.large</p> </li> <li>
205      * <p>stream.memory.z1d.xlarge</p> </li> <li> <p>stream.memory.z1d.2xlarge</p>
206      * </li> <li> <p>stream.memory.z1d.3xlarge</p> </li> <li>
207      * <p>stream.memory.z1d.6xlarge</p> </li> <li> <p>stream.memory.z1d.12xlarge</p>
208      * </li> <li> <p>stream.graphics-design.large</p> </li> <li>
209      * <p>stream.graphics-design.xlarge</p> </li> <li>
210      * <p>stream.graphics-design.2xlarge</p> </li> <li>
211      * <p>stream.graphics-design.4xlarge</p> </li> <li>
212      * <p>stream.graphics-desktop.2xlarge</p> </li> <li>
213      * <p>stream.graphics.g4dn.xlarge</p> </li> <li>
214      * <p>stream.graphics.g4dn.2xlarge</p> </li> <li>
215      * <p>stream.graphics.g4dn.4xlarge</p> </li> <li>
216      * <p>stream.graphics.g4dn.8xlarge</p> </li> <li>
217      * <p>stream.graphics.g4dn.12xlarge</p> </li> <li>
218      * <p>stream.graphics.g4dn.16xlarge</p> </li> <li>
219      * <p>stream.graphics-pro.4xlarge</p> </li> <li> <p>stream.graphics-pro.8xlarge</p>
220      * </li> <li> <p>stream.graphics-pro.16xlarge</p> </li> </ul>
221      */
InstanceTypeHasBeenSet()222     inline bool InstanceTypeHasBeenSet() const { return m_instanceTypeHasBeenSet; }
223 
224     /**
225      * <p>The instance type to use when launching fleet instances. The following
226      * instance types are available:</p> <ul> <li> <p>stream.standard.small</p> </li>
227      * <li> <p>stream.standard.medium</p> </li> <li> <p>stream.standard.large</p> </li>
228      * <li> <p>stream.compute.large</p> </li> <li> <p>stream.compute.xlarge</p> </li>
229      * <li> <p>stream.compute.2xlarge</p> </li> <li> <p>stream.compute.4xlarge</p>
230      * </li> <li> <p>stream.compute.8xlarge</p> </li> <li> <p>stream.memory.large</p>
231      * </li> <li> <p>stream.memory.xlarge</p> </li> <li> <p>stream.memory.2xlarge</p>
232      * </li> <li> <p>stream.memory.4xlarge</p> </li> <li> <p>stream.memory.8xlarge</p>
233      * </li> <li> <p>stream.memory.z1d.large</p> </li> <li>
234      * <p>stream.memory.z1d.xlarge</p> </li> <li> <p>stream.memory.z1d.2xlarge</p>
235      * </li> <li> <p>stream.memory.z1d.3xlarge</p> </li> <li>
236      * <p>stream.memory.z1d.6xlarge</p> </li> <li> <p>stream.memory.z1d.12xlarge</p>
237      * </li> <li> <p>stream.graphics-design.large</p> </li> <li>
238      * <p>stream.graphics-design.xlarge</p> </li> <li>
239      * <p>stream.graphics-design.2xlarge</p> </li> <li>
240      * <p>stream.graphics-design.4xlarge</p> </li> <li>
241      * <p>stream.graphics-desktop.2xlarge</p> </li> <li>
242      * <p>stream.graphics.g4dn.xlarge</p> </li> <li>
243      * <p>stream.graphics.g4dn.2xlarge</p> </li> <li>
244      * <p>stream.graphics.g4dn.4xlarge</p> </li> <li>
245      * <p>stream.graphics.g4dn.8xlarge</p> </li> <li>
246      * <p>stream.graphics.g4dn.12xlarge</p> </li> <li>
247      * <p>stream.graphics.g4dn.16xlarge</p> </li> <li>
248      * <p>stream.graphics-pro.4xlarge</p> </li> <li> <p>stream.graphics-pro.8xlarge</p>
249      * </li> <li> <p>stream.graphics-pro.16xlarge</p> </li> </ul>
250      */
SetInstanceType(const Aws::String & value)251     inline void SetInstanceType(const Aws::String& value) { m_instanceTypeHasBeenSet = true; m_instanceType = value; }
252 
253     /**
254      * <p>The instance type to use when launching fleet instances. The following
255      * instance types are available:</p> <ul> <li> <p>stream.standard.small</p> </li>
256      * <li> <p>stream.standard.medium</p> </li> <li> <p>stream.standard.large</p> </li>
257      * <li> <p>stream.compute.large</p> </li> <li> <p>stream.compute.xlarge</p> </li>
258      * <li> <p>stream.compute.2xlarge</p> </li> <li> <p>stream.compute.4xlarge</p>
259      * </li> <li> <p>stream.compute.8xlarge</p> </li> <li> <p>stream.memory.large</p>
260      * </li> <li> <p>stream.memory.xlarge</p> </li> <li> <p>stream.memory.2xlarge</p>
261      * </li> <li> <p>stream.memory.4xlarge</p> </li> <li> <p>stream.memory.8xlarge</p>
262      * </li> <li> <p>stream.memory.z1d.large</p> </li> <li>
263      * <p>stream.memory.z1d.xlarge</p> </li> <li> <p>stream.memory.z1d.2xlarge</p>
264      * </li> <li> <p>stream.memory.z1d.3xlarge</p> </li> <li>
265      * <p>stream.memory.z1d.6xlarge</p> </li> <li> <p>stream.memory.z1d.12xlarge</p>
266      * </li> <li> <p>stream.graphics-design.large</p> </li> <li>
267      * <p>stream.graphics-design.xlarge</p> </li> <li>
268      * <p>stream.graphics-design.2xlarge</p> </li> <li>
269      * <p>stream.graphics-design.4xlarge</p> </li> <li>
270      * <p>stream.graphics-desktop.2xlarge</p> </li> <li>
271      * <p>stream.graphics.g4dn.xlarge</p> </li> <li>
272      * <p>stream.graphics.g4dn.2xlarge</p> </li> <li>
273      * <p>stream.graphics.g4dn.4xlarge</p> </li> <li>
274      * <p>stream.graphics.g4dn.8xlarge</p> </li> <li>
275      * <p>stream.graphics.g4dn.12xlarge</p> </li> <li>
276      * <p>stream.graphics.g4dn.16xlarge</p> </li> <li>
277      * <p>stream.graphics-pro.4xlarge</p> </li> <li> <p>stream.graphics-pro.8xlarge</p>
278      * </li> <li> <p>stream.graphics-pro.16xlarge</p> </li> </ul>
279      */
SetInstanceType(Aws::String && value)280     inline void SetInstanceType(Aws::String&& value) { m_instanceTypeHasBeenSet = true; m_instanceType = std::move(value); }
281 
282     /**
283      * <p>The instance type to use when launching fleet instances. The following
284      * instance types are available:</p> <ul> <li> <p>stream.standard.small</p> </li>
285      * <li> <p>stream.standard.medium</p> </li> <li> <p>stream.standard.large</p> </li>
286      * <li> <p>stream.compute.large</p> </li> <li> <p>stream.compute.xlarge</p> </li>
287      * <li> <p>stream.compute.2xlarge</p> </li> <li> <p>stream.compute.4xlarge</p>
288      * </li> <li> <p>stream.compute.8xlarge</p> </li> <li> <p>stream.memory.large</p>
289      * </li> <li> <p>stream.memory.xlarge</p> </li> <li> <p>stream.memory.2xlarge</p>
290      * </li> <li> <p>stream.memory.4xlarge</p> </li> <li> <p>stream.memory.8xlarge</p>
291      * </li> <li> <p>stream.memory.z1d.large</p> </li> <li>
292      * <p>stream.memory.z1d.xlarge</p> </li> <li> <p>stream.memory.z1d.2xlarge</p>
293      * </li> <li> <p>stream.memory.z1d.3xlarge</p> </li> <li>
294      * <p>stream.memory.z1d.6xlarge</p> </li> <li> <p>stream.memory.z1d.12xlarge</p>
295      * </li> <li> <p>stream.graphics-design.large</p> </li> <li>
296      * <p>stream.graphics-design.xlarge</p> </li> <li>
297      * <p>stream.graphics-design.2xlarge</p> </li> <li>
298      * <p>stream.graphics-design.4xlarge</p> </li> <li>
299      * <p>stream.graphics-desktop.2xlarge</p> </li> <li>
300      * <p>stream.graphics.g4dn.xlarge</p> </li> <li>
301      * <p>stream.graphics.g4dn.2xlarge</p> </li> <li>
302      * <p>stream.graphics.g4dn.4xlarge</p> </li> <li>
303      * <p>stream.graphics.g4dn.8xlarge</p> </li> <li>
304      * <p>stream.graphics.g4dn.12xlarge</p> </li> <li>
305      * <p>stream.graphics.g4dn.16xlarge</p> </li> <li>
306      * <p>stream.graphics-pro.4xlarge</p> </li> <li> <p>stream.graphics-pro.8xlarge</p>
307      * </li> <li> <p>stream.graphics-pro.16xlarge</p> </li> </ul>
308      */
SetInstanceType(const char * value)309     inline void SetInstanceType(const char* value) { m_instanceTypeHasBeenSet = true; m_instanceType.assign(value); }
310 
311     /**
312      * <p>The instance type to use when launching fleet instances. The following
313      * instance types are available:</p> <ul> <li> <p>stream.standard.small</p> </li>
314      * <li> <p>stream.standard.medium</p> </li> <li> <p>stream.standard.large</p> </li>
315      * <li> <p>stream.compute.large</p> </li> <li> <p>stream.compute.xlarge</p> </li>
316      * <li> <p>stream.compute.2xlarge</p> </li> <li> <p>stream.compute.4xlarge</p>
317      * </li> <li> <p>stream.compute.8xlarge</p> </li> <li> <p>stream.memory.large</p>
318      * </li> <li> <p>stream.memory.xlarge</p> </li> <li> <p>stream.memory.2xlarge</p>
319      * </li> <li> <p>stream.memory.4xlarge</p> </li> <li> <p>stream.memory.8xlarge</p>
320      * </li> <li> <p>stream.memory.z1d.large</p> </li> <li>
321      * <p>stream.memory.z1d.xlarge</p> </li> <li> <p>stream.memory.z1d.2xlarge</p>
322      * </li> <li> <p>stream.memory.z1d.3xlarge</p> </li> <li>
323      * <p>stream.memory.z1d.6xlarge</p> </li> <li> <p>stream.memory.z1d.12xlarge</p>
324      * </li> <li> <p>stream.graphics-design.large</p> </li> <li>
325      * <p>stream.graphics-design.xlarge</p> </li> <li>
326      * <p>stream.graphics-design.2xlarge</p> </li> <li>
327      * <p>stream.graphics-design.4xlarge</p> </li> <li>
328      * <p>stream.graphics-desktop.2xlarge</p> </li> <li>
329      * <p>stream.graphics.g4dn.xlarge</p> </li> <li>
330      * <p>stream.graphics.g4dn.2xlarge</p> </li> <li>
331      * <p>stream.graphics.g4dn.4xlarge</p> </li> <li>
332      * <p>stream.graphics.g4dn.8xlarge</p> </li> <li>
333      * <p>stream.graphics.g4dn.12xlarge</p> </li> <li>
334      * <p>stream.graphics.g4dn.16xlarge</p> </li> <li>
335      * <p>stream.graphics-pro.4xlarge</p> </li> <li> <p>stream.graphics-pro.8xlarge</p>
336      * </li> <li> <p>stream.graphics-pro.16xlarge</p> </li> </ul>
337      */
WithInstanceType(const Aws::String & value)338     inline UpdateFleetRequest& WithInstanceType(const Aws::String& value) { SetInstanceType(value); return *this;}
339 
340     /**
341      * <p>The instance type to use when launching fleet instances. The following
342      * instance types are available:</p> <ul> <li> <p>stream.standard.small</p> </li>
343      * <li> <p>stream.standard.medium</p> </li> <li> <p>stream.standard.large</p> </li>
344      * <li> <p>stream.compute.large</p> </li> <li> <p>stream.compute.xlarge</p> </li>
345      * <li> <p>stream.compute.2xlarge</p> </li> <li> <p>stream.compute.4xlarge</p>
346      * </li> <li> <p>stream.compute.8xlarge</p> </li> <li> <p>stream.memory.large</p>
347      * </li> <li> <p>stream.memory.xlarge</p> </li> <li> <p>stream.memory.2xlarge</p>
348      * </li> <li> <p>stream.memory.4xlarge</p> </li> <li> <p>stream.memory.8xlarge</p>
349      * </li> <li> <p>stream.memory.z1d.large</p> </li> <li>
350      * <p>stream.memory.z1d.xlarge</p> </li> <li> <p>stream.memory.z1d.2xlarge</p>
351      * </li> <li> <p>stream.memory.z1d.3xlarge</p> </li> <li>
352      * <p>stream.memory.z1d.6xlarge</p> </li> <li> <p>stream.memory.z1d.12xlarge</p>
353      * </li> <li> <p>stream.graphics-design.large</p> </li> <li>
354      * <p>stream.graphics-design.xlarge</p> </li> <li>
355      * <p>stream.graphics-design.2xlarge</p> </li> <li>
356      * <p>stream.graphics-design.4xlarge</p> </li> <li>
357      * <p>stream.graphics-desktop.2xlarge</p> </li> <li>
358      * <p>stream.graphics.g4dn.xlarge</p> </li> <li>
359      * <p>stream.graphics.g4dn.2xlarge</p> </li> <li>
360      * <p>stream.graphics.g4dn.4xlarge</p> </li> <li>
361      * <p>stream.graphics.g4dn.8xlarge</p> </li> <li>
362      * <p>stream.graphics.g4dn.12xlarge</p> </li> <li>
363      * <p>stream.graphics.g4dn.16xlarge</p> </li> <li>
364      * <p>stream.graphics-pro.4xlarge</p> </li> <li> <p>stream.graphics-pro.8xlarge</p>
365      * </li> <li> <p>stream.graphics-pro.16xlarge</p> </li> </ul>
366      */
WithInstanceType(Aws::String && value)367     inline UpdateFleetRequest& WithInstanceType(Aws::String&& value) { SetInstanceType(std::move(value)); return *this;}
368 
369     /**
370      * <p>The instance type to use when launching fleet instances. The following
371      * instance types are available:</p> <ul> <li> <p>stream.standard.small</p> </li>
372      * <li> <p>stream.standard.medium</p> </li> <li> <p>stream.standard.large</p> </li>
373      * <li> <p>stream.compute.large</p> </li> <li> <p>stream.compute.xlarge</p> </li>
374      * <li> <p>stream.compute.2xlarge</p> </li> <li> <p>stream.compute.4xlarge</p>
375      * </li> <li> <p>stream.compute.8xlarge</p> </li> <li> <p>stream.memory.large</p>
376      * </li> <li> <p>stream.memory.xlarge</p> </li> <li> <p>stream.memory.2xlarge</p>
377      * </li> <li> <p>stream.memory.4xlarge</p> </li> <li> <p>stream.memory.8xlarge</p>
378      * </li> <li> <p>stream.memory.z1d.large</p> </li> <li>
379      * <p>stream.memory.z1d.xlarge</p> </li> <li> <p>stream.memory.z1d.2xlarge</p>
380      * </li> <li> <p>stream.memory.z1d.3xlarge</p> </li> <li>
381      * <p>stream.memory.z1d.6xlarge</p> </li> <li> <p>stream.memory.z1d.12xlarge</p>
382      * </li> <li> <p>stream.graphics-design.large</p> </li> <li>
383      * <p>stream.graphics-design.xlarge</p> </li> <li>
384      * <p>stream.graphics-design.2xlarge</p> </li> <li>
385      * <p>stream.graphics-design.4xlarge</p> </li> <li>
386      * <p>stream.graphics-desktop.2xlarge</p> </li> <li>
387      * <p>stream.graphics.g4dn.xlarge</p> </li> <li>
388      * <p>stream.graphics.g4dn.2xlarge</p> </li> <li>
389      * <p>stream.graphics.g4dn.4xlarge</p> </li> <li>
390      * <p>stream.graphics.g4dn.8xlarge</p> </li> <li>
391      * <p>stream.graphics.g4dn.12xlarge</p> </li> <li>
392      * <p>stream.graphics.g4dn.16xlarge</p> </li> <li>
393      * <p>stream.graphics-pro.4xlarge</p> </li> <li> <p>stream.graphics-pro.8xlarge</p>
394      * </li> <li> <p>stream.graphics-pro.16xlarge</p> </li> </ul>
395      */
WithInstanceType(const char * value)396     inline UpdateFleetRequest& WithInstanceType(const char* value) { SetInstanceType(value); return *this;}
397 
398 
399     /**
400      * <p>The desired capacity for the fleet.</p>
401      */
GetComputeCapacity()402     inline const ComputeCapacity& GetComputeCapacity() const{ return m_computeCapacity; }
403 
404     /**
405      * <p>The desired capacity for the fleet.</p>
406      */
ComputeCapacityHasBeenSet()407     inline bool ComputeCapacityHasBeenSet() const { return m_computeCapacityHasBeenSet; }
408 
409     /**
410      * <p>The desired capacity for the fleet.</p>
411      */
SetComputeCapacity(const ComputeCapacity & value)412     inline void SetComputeCapacity(const ComputeCapacity& value) { m_computeCapacityHasBeenSet = true; m_computeCapacity = value; }
413 
414     /**
415      * <p>The desired capacity for the fleet.</p>
416      */
SetComputeCapacity(ComputeCapacity && value)417     inline void SetComputeCapacity(ComputeCapacity&& value) { m_computeCapacityHasBeenSet = true; m_computeCapacity = std::move(value); }
418 
419     /**
420      * <p>The desired capacity for the fleet.</p>
421      */
WithComputeCapacity(const ComputeCapacity & value)422     inline UpdateFleetRequest& WithComputeCapacity(const ComputeCapacity& value) { SetComputeCapacity(value); return *this;}
423 
424     /**
425      * <p>The desired capacity for the fleet.</p>
426      */
WithComputeCapacity(ComputeCapacity && value)427     inline UpdateFleetRequest& WithComputeCapacity(ComputeCapacity&& value) { SetComputeCapacity(std::move(value)); return *this;}
428 
429 
430     /**
431      * <p>The VPC configuration for the fleet.</p>
432      */
GetVpcConfig()433     inline const VpcConfig& GetVpcConfig() const{ return m_vpcConfig; }
434 
435     /**
436      * <p>The VPC configuration for the fleet.</p>
437      */
VpcConfigHasBeenSet()438     inline bool VpcConfigHasBeenSet() const { return m_vpcConfigHasBeenSet; }
439 
440     /**
441      * <p>The VPC configuration for the fleet.</p>
442      */
SetVpcConfig(const VpcConfig & value)443     inline void SetVpcConfig(const VpcConfig& value) { m_vpcConfigHasBeenSet = true; m_vpcConfig = value; }
444 
445     /**
446      * <p>The VPC configuration for the fleet.</p>
447      */
SetVpcConfig(VpcConfig && value)448     inline void SetVpcConfig(VpcConfig&& value) { m_vpcConfigHasBeenSet = true; m_vpcConfig = std::move(value); }
449 
450     /**
451      * <p>The VPC configuration for the fleet.</p>
452      */
WithVpcConfig(const VpcConfig & value)453     inline UpdateFleetRequest& WithVpcConfig(const VpcConfig& value) { SetVpcConfig(value); return *this;}
454 
455     /**
456      * <p>The VPC configuration for the fleet.</p>
457      */
WithVpcConfig(VpcConfig && value)458     inline UpdateFleetRequest& WithVpcConfig(VpcConfig&& value) { SetVpcConfig(std::move(value)); return *this;}
459 
460 
461     /**
462      * <p>The maximum amount of time that a streaming session can remain active, in
463      * seconds. If users are still connected to a streaming instance five minutes
464      * before this limit is reached, they are prompted to save any open documents
465      * before being disconnected. After this time elapses, the instance is terminated
466      * and replaced by a new instance.</p> <p>Specify a value between 600 and
467      * 360000.</p>
468      */
GetMaxUserDurationInSeconds()469     inline int GetMaxUserDurationInSeconds() const{ return m_maxUserDurationInSeconds; }
470 
471     /**
472      * <p>The maximum amount of time that a streaming session can remain active, in
473      * seconds. If users are still connected to a streaming instance five minutes
474      * before this limit is reached, they are prompted to save any open documents
475      * before being disconnected. After this time elapses, the instance is terminated
476      * and replaced by a new instance.</p> <p>Specify a value between 600 and
477      * 360000.</p>
478      */
MaxUserDurationInSecondsHasBeenSet()479     inline bool MaxUserDurationInSecondsHasBeenSet() const { return m_maxUserDurationInSecondsHasBeenSet; }
480 
481     /**
482      * <p>The maximum amount of time that a streaming session can remain active, in
483      * seconds. If users are still connected to a streaming instance five minutes
484      * before this limit is reached, they are prompted to save any open documents
485      * before being disconnected. After this time elapses, the instance is terminated
486      * and replaced by a new instance.</p> <p>Specify a value between 600 and
487      * 360000.</p>
488      */
SetMaxUserDurationInSeconds(int value)489     inline void SetMaxUserDurationInSeconds(int value) { m_maxUserDurationInSecondsHasBeenSet = true; m_maxUserDurationInSeconds = value; }
490 
491     /**
492      * <p>The maximum amount of time that a streaming session can remain active, in
493      * seconds. If users are still connected to a streaming instance five minutes
494      * before this limit is reached, they are prompted to save any open documents
495      * before being disconnected. After this time elapses, the instance is terminated
496      * and replaced by a new instance.</p> <p>Specify a value between 600 and
497      * 360000.</p>
498      */
WithMaxUserDurationInSeconds(int value)499     inline UpdateFleetRequest& WithMaxUserDurationInSeconds(int value) { SetMaxUserDurationInSeconds(value); return *this;}
500 
501 
502     /**
503      * <p>The amount of time that a streaming session remains active after users
504      * disconnect. If users try to reconnect to the streaming session after a
505      * disconnection or network interruption within this time interval, they are
506      * connected to their previous session. Otherwise, they are connected to a new
507      * session with a new streaming instance. </p> <p>Specify a value between 60 and
508      * 360000.</p>
509      */
GetDisconnectTimeoutInSeconds()510     inline int GetDisconnectTimeoutInSeconds() const{ return m_disconnectTimeoutInSeconds; }
511 
512     /**
513      * <p>The amount of time that a streaming session remains active after users
514      * disconnect. If users try to reconnect to the streaming session after a
515      * disconnection or network interruption within this time interval, they are
516      * connected to their previous session. Otherwise, they are connected to a new
517      * session with a new streaming instance. </p> <p>Specify a value between 60 and
518      * 360000.</p>
519      */
DisconnectTimeoutInSecondsHasBeenSet()520     inline bool DisconnectTimeoutInSecondsHasBeenSet() const { return m_disconnectTimeoutInSecondsHasBeenSet; }
521 
522     /**
523      * <p>The amount of time that a streaming session remains active after users
524      * disconnect. If users try to reconnect to the streaming session after a
525      * disconnection or network interruption within this time interval, they are
526      * connected to their previous session. Otherwise, they are connected to a new
527      * session with a new streaming instance. </p> <p>Specify a value between 60 and
528      * 360000.</p>
529      */
SetDisconnectTimeoutInSeconds(int value)530     inline void SetDisconnectTimeoutInSeconds(int value) { m_disconnectTimeoutInSecondsHasBeenSet = true; m_disconnectTimeoutInSeconds = value; }
531 
532     /**
533      * <p>The amount of time that a streaming session remains active after users
534      * disconnect. If users try to reconnect to the streaming session after a
535      * disconnection or network interruption within this time interval, they are
536      * connected to their previous session. Otherwise, they are connected to a new
537      * session with a new streaming instance. </p> <p>Specify a value between 60 and
538      * 360000.</p>
539      */
WithDisconnectTimeoutInSeconds(int value)540     inline UpdateFleetRequest& WithDisconnectTimeoutInSeconds(int value) { SetDisconnectTimeoutInSeconds(value); return *this;}
541 
542 
543     /**
544      * <p>The description to display.</p>
545      */
GetDescription()546     inline const Aws::String& GetDescription() const{ return m_description; }
547 
548     /**
549      * <p>The description to display.</p>
550      */
DescriptionHasBeenSet()551     inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
552 
553     /**
554      * <p>The description to display.</p>
555      */
SetDescription(const Aws::String & value)556     inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; }
557 
558     /**
559      * <p>The description to display.</p>
560      */
SetDescription(Aws::String && value)561     inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); }
562 
563     /**
564      * <p>The description to display.</p>
565      */
SetDescription(const char * value)566     inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); }
567 
568     /**
569      * <p>The description to display.</p>
570      */
WithDescription(const Aws::String & value)571     inline UpdateFleetRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;}
572 
573     /**
574      * <p>The description to display.</p>
575      */
WithDescription(Aws::String && value)576     inline UpdateFleetRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;}
577 
578     /**
579      * <p>The description to display.</p>
580      */
WithDescription(const char * value)581     inline UpdateFleetRequest& WithDescription(const char* value) { SetDescription(value); return *this;}
582 
583 
584     /**
585      * <p>The fleet name to display.</p>
586      */
GetDisplayName()587     inline const Aws::String& GetDisplayName() const{ return m_displayName; }
588 
589     /**
590      * <p>The fleet name to display.</p>
591      */
DisplayNameHasBeenSet()592     inline bool DisplayNameHasBeenSet() const { return m_displayNameHasBeenSet; }
593 
594     /**
595      * <p>The fleet name to display.</p>
596      */
SetDisplayName(const Aws::String & value)597     inline void SetDisplayName(const Aws::String& value) { m_displayNameHasBeenSet = true; m_displayName = value; }
598 
599     /**
600      * <p>The fleet name to display.</p>
601      */
SetDisplayName(Aws::String && value)602     inline void SetDisplayName(Aws::String&& value) { m_displayNameHasBeenSet = true; m_displayName = std::move(value); }
603 
604     /**
605      * <p>The fleet name to display.</p>
606      */
SetDisplayName(const char * value)607     inline void SetDisplayName(const char* value) { m_displayNameHasBeenSet = true; m_displayName.assign(value); }
608 
609     /**
610      * <p>The fleet name to display.</p>
611      */
WithDisplayName(const Aws::String & value)612     inline UpdateFleetRequest& WithDisplayName(const Aws::String& value) { SetDisplayName(value); return *this;}
613 
614     /**
615      * <p>The fleet name to display.</p>
616      */
WithDisplayName(Aws::String && value)617     inline UpdateFleetRequest& WithDisplayName(Aws::String&& value) { SetDisplayName(std::move(value)); return *this;}
618 
619     /**
620      * <p>The fleet name to display.</p>
621      */
WithDisplayName(const char * value)622     inline UpdateFleetRequest& WithDisplayName(const char* value) { SetDisplayName(value); return *this;}
623 
624 
625     /**
626      * <p>Enables or disables default internet access for the fleet.</p>
627      */
GetEnableDefaultInternetAccess()628     inline bool GetEnableDefaultInternetAccess() const{ return m_enableDefaultInternetAccess; }
629 
630     /**
631      * <p>Enables or disables default internet access for the fleet.</p>
632      */
EnableDefaultInternetAccessHasBeenSet()633     inline bool EnableDefaultInternetAccessHasBeenSet() const { return m_enableDefaultInternetAccessHasBeenSet; }
634 
635     /**
636      * <p>Enables or disables default internet access for the fleet.</p>
637      */
SetEnableDefaultInternetAccess(bool value)638     inline void SetEnableDefaultInternetAccess(bool value) { m_enableDefaultInternetAccessHasBeenSet = true; m_enableDefaultInternetAccess = value; }
639 
640     /**
641      * <p>Enables or disables default internet access for the fleet.</p>
642      */
WithEnableDefaultInternetAccess(bool value)643     inline UpdateFleetRequest& WithEnableDefaultInternetAccess(bool value) { SetEnableDefaultInternetAccess(value); return *this;}
644 
645 
646     /**
647      * <p>The name of the directory and organizational unit (OU) to use to join the
648      * fleet to a Microsoft Active Directory domain. </p>
649      */
GetDomainJoinInfo()650     inline const DomainJoinInfo& GetDomainJoinInfo() const{ return m_domainJoinInfo; }
651 
652     /**
653      * <p>The name of the directory and organizational unit (OU) to use to join the
654      * fleet to a Microsoft Active Directory domain. </p>
655      */
DomainJoinInfoHasBeenSet()656     inline bool DomainJoinInfoHasBeenSet() const { return m_domainJoinInfoHasBeenSet; }
657 
658     /**
659      * <p>The name of the directory and organizational unit (OU) to use to join the
660      * fleet to a Microsoft Active Directory domain. </p>
661      */
SetDomainJoinInfo(const DomainJoinInfo & value)662     inline void SetDomainJoinInfo(const DomainJoinInfo& value) { m_domainJoinInfoHasBeenSet = true; m_domainJoinInfo = value; }
663 
664     /**
665      * <p>The name of the directory and organizational unit (OU) to use to join the
666      * fleet to a Microsoft Active Directory domain. </p>
667      */
SetDomainJoinInfo(DomainJoinInfo && value)668     inline void SetDomainJoinInfo(DomainJoinInfo&& value) { m_domainJoinInfoHasBeenSet = true; m_domainJoinInfo = std::move(value); }
669 
670     /**
671      * <p>The name of the directory and organizational unit (OU) to use to join the
672      * fleet to a Microsoft Active Directory domain. </p>
673      */
WithDomainJoinInfo(const DomainJoinInfo & value)674     inline UpdateFleetRequest& WithDomainJoinInfo(const DomainJoinInfo& value) { SetDomainJoinInfo(value); return *this;}
675 
676     /**
677      * <p>The name of the directory and organizational unit (OU) to use to join the
678      * fleet to a Microsoft Active Directory domain. </p>
679      */
WithDomainJoinInfo(DomainJoinInfo && value)680     inline UpdateFleetRequest& WithDomainJoinInfo(DomainJoinInfo&& value) { SetDomainJoinInfo(std::move(value)); return *this;}
681 
682 
683     /**
684      * <p>The amount of time that users can be idle (inactive) before they are
685      * disconnected from their streaming session and the
686      * <code>DisconnectTimeoutInSeconds</code> time interval begins. Users are notified
687      * before they are disconnected due to inactivity. If users try to reconnect to the
688      * streaming session before the time interval specified in
689      * <code>DisconnectTimeoutInSeconds</code> elapses, they are connected to their
690      * previous session. Users are considered idle when they stop providing keyboard or
691      * mouse input during their streaming session. File uploads and downloads, audio
692      * in, audio out, and pixels changing do not qualify as user activity. If users
693      * continue to be idle after the time interval in
694      * <code>IdleDisconnectTimeoutInSeconds</code> elapses, they are disconnected. </p>
695      * <p>To prevent users from being disconnected due to inactivity, specify a value
696      * of 0. Otherwise, specify a value between 60 and 3600. The default value is
697      * 0.</p>  <p>If you enable this feature, we recommend that you specify a
698      * value that corresponds exactly to a whole number of minutes (for example, 60,
699      * 120, and 180). If you don't do this, the value is rounded to the nearest minute.
700      * For example, if you specify a value of 70, users are disconnected after 1 minute
701      * of inactivity. If you specify a value that is at the midpoint between two
702      * different minutes, the value is rounded up. For example, if you specify a value
703      * of 90, users are disconnected after 2 minutes of inactivity. </p>
704      */
GetIdleDisconnectTimeoutInSeconds()705     inline int GetIdleDisconnectTimeoutInSeconds() const{ return m_idleDisconnectTimeoutInSeconds; }
706 
707     /**
708      * <p>The amount of time that users can be idle (inactive) before they are
709      * disconnected from their streaming session and the
710      * <code>DisconnectTimeoutInSeconds</code> time interval begins. Users are notified
711      * before they are disconnected due to inactivity. If users try to reconnect to the
712      * streaming session before the time interval specified in
713      * <code>DisconnectTimeoutInSeconds</code> elapses, they are connected to their
714      * previous session. Users are considered idle when they stop providing keyboard or
715      * mouse input during their streaming session. File uploads and downloads, audio
716      * in, audio out, and pixels changing do not qualify as user activity. If users
717      * continue to be idle after the time interval in
718      * <code>IdleDisconnectTimeoutInSeconds</code> elapses, they are disconnected. </p>
719      * <p>To prevent users from being disconnected due to inactivity, specify a value
720      * of 0. Otherwise, specify a value between 60 and 3600. The default value is
721      * 0.</p>  <p>If you enable this feature, we recommend that you specify a
722      * value that corresponds exactly to a whole number of minutes (for example, 60,
723      * 120, and 180). If you don't do this, the value is rounded to the nearest minute.
724      * For example, if you specify a value of 70, users are disconnected after 1 minute
725      * of inactivity. If you specify a value that is at the midpoint between two
726      * different minutes, the value is rounded up. For example, if you specify a value
727      * of 90, users are disconnected after 2 minutes of inactivity. </p>
728      */
IdleDisconnectTimeoutInSecondsHasBeenSet()729     inline bool IdleDisconnectTimeoutInSecondsHasBeenSet() const { return m_idleDisconnectTimeoutInSecondsHasBeenSet; }
730 
731     /**
732      * <p>The amount of time that users can be idle (inactive) before they are
733      * disconnected from their streaming session and the
734      * <code>DisconnectTimeoutInSeconds</code> time interval begins. Users are notified
735      * before they are disconnected due to inactivity. If users try to reconnect to the
736      * streaming session before the time interval specified in
737      * <code>DisconnectTimeoutInSeconds</code> elapses, they are connected to their
738      * previous session. Users are considered idle when they stop providing keyboard or
739      * mouse input during their streaming session. File uploads and downloads, audio
740      * in, audio out, and pixels changing do not qualify as user activity. If users
741      * continue to be idle after the time interval in
742      * <code>IdleDisconnectTimeoutInSeconds</code> elapses, they are disconnected. </p>
743      * <p>To prevent users from being disconnected due to inactivity, specify a value
744      * of 0. Otherwise, specify a value between 60 and 3600. The default value is
745      * 0.</p>  <p>If you enable this feature, we recommend that you specify a
746      * value that corresponds exactly to a whole number of minutes (for example, 60,
747      * 120, and 180). If you don't do this, the value is rounded to the nearest minute.
748      * For example, if you specify a value of 70, users are disconnected after 1 minute
749      * of inactivity. If you specify a value that is at the midpoint between two
750      * different minutes, the value is rounded up. For example, if you specify a value
751      * of 90, users are disconnected after 2 minutes of inactivity. </p>
752      */
SetIdleDisconnectTimeoutInSeconds(int value)753     inline void SetIdleDisconnectTimeoutInSeconds(int value) { m_idleDisconnectTimeoutInSecondsHasBeenSet = true; m_idleDisconnectTimeoutInSeconds = value; }
754 
755     /**
756      * <p>The amount of time that users can be idle (inactive) before they are
757      * disconnected from their streaming session and the
758      * <code>DisconnectTimeoutInSeconds</code> time interval begins. Users are notified
759      * before they are disconnected due to inactivity. If users try to reconnect to the
760      * streaming session before the time interval specified in
761      * <code>DisconnectTimeoutInSeconds</code> elapses, they are connected to their
762      * previous session. Users are considered idle when they stop providing keyboard or
763      * mouse input during their streaming session. File uploads and downloads, audio
764      * in, audio out, and pixels changing do not qualify as user activity. If users
765      * continue to be idle after the time interval in
766      * <code>IdleDisconnectTimeoutInSeconds</code> elapses, they are disconnected. </p>
767      * <p>To prevent users from being disconnected due to inactivity, specify a value
768      * of 0. Otherwise, specify a value between 60 and 3600. The default value is
769      * 0.</p>  <p>If you enable this feature, we recommend that you specify a
770      * value that corresponds exactly to a whole number of minutes (for example, 60,
771      * 120, and 180). If you don't do this, the value is rounded to the nearest minute.
772      * For example, if you specify a value of 70, users are disconnected after 1 minute
773      * of inactivity. If you specify a value that is at the midpoint between two
774      * different minutes, the value is rounded up. For example, if you specify a value
775      * of 90, users are disconnected after 2 minutes of inactivity. </p>
776      */
WithIdleDisconnectTimeoutInSeconds(int value)777     inline UpdateFleetRequest& WithIdleDisconnectTimeoutInSeconds(int value) { SetIdleDisconnectTimeoutInSeconds(value); return *this;}
778 
779 
780     /**
781      * <p>The fleet attributes to delete.</p>
782      */
GetAttributesToDelete()783     inline const Aws::Vector<FleetAttribute>& GetAttributesToDelete() const{ return m_attributesToDelete; }
784 
785     /**
786      * <p>The fleet attributes to delete.</p>
787      */
AttributesToDeleteHasBeenSet()788     inline bool AttributesToDeleteHasBeenSet() const { return m_attributesToDeleteHasBeenSet; }
789 
790     /**
791      * <p>The fleet attributes to delete.</p>
792      */
SetAttributesToDelete(const Aws::Vector<FleetAttribute> & value)793     inline void SetAttributesToDelete(const Aws::Vector<FleetAttribute>& value) { m_attributesToDeleteHasBeenSet = true; m_attributesToDelete = value; }
794 
795     /**
796      * <p>The fleet attributes to delete.</p>
797      */
SetAttributesToDelete(Aws::Vector<FleetAttribute> && value)798     inline void SetAttributesToDelete(Aws::Vector<FleetAttribute>&& value) { m_attributesToDeleteHasBeenSet = true; m_attributesToDelete = std::move(value); }
799 
800     /**
801      * <p>The fleet attributes to delete.</p>
802      */
WithAttributesToDelete(const Aws::Vector<FleetAttribute> & value)803     inline UpdateFleetRequest& WithAttributesToDelete(const Aws::Vector<FleetAttribute>& value) { SetAttributesToDelete(value); return *this;}
804 
805     /**
806      * <p>The fleet attributes to delete.</p>
807      */
WithAttributesToDelete(Aws::Vector<FleetAttribute> && value)808     inline UpdateFleetRequest& WithAttributesToDelete(Aws::Vector<FleetAttribute>&& value) { SetAttributesToDelete(std::move(value)); return *this;}
809 
810     /**
811      * <p>The fleet attributes to delete.</p>
812      */
AddAttributesToDelete(const FleetAttribute & value)813     inline UpdateFleetRequest& AddAttributesToDelete(const FleetAttribute& value) { m_attributesToDeleteHasBeenSet = true; m_attributesToDelete.push_back(value); return *this; }
814 
815     /**
816      * <p>The fleet attributes to delete.</p>
817      */
AddAttributesToDelete(FleetAttribute && value)818     inline UpdateFleetRequest& AddAttributesToDelete(FleetAttribute&& value) { m_attributesToDeleteHasBeenSet = true; m_attributesToDelete.push_back(std::move(value)); return *this; }
819 
820 
821     /**
822      * <p>The Amazon Resource Name (ARN) of the IAM role to apply to the fleet. To
823      * assume a role, a fleet instance calls the AWS Security Token Service (STS)
824      * <code>AssumeRole</code> API operation and passes the ARN of the role to use. The
825      * operation creates a new session with temporary credentials. AppStream 2.0
826      * retrieves the temporary credentials and creates the
827      * <b>appstream_machine_role</b> credential profile on the instance.</p> <p>For
828      * more information, see <a
829      * href="https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html">Using
830      * an IAM Role to Grant Permissions to Applications and Scripts Running on
831      * AppStream 2.0 Streaming Instances</a> in the <i>Amazon AppStream 2.0
832      * Administration Guide</i>.</p>
833      */
GetIamRoleArn()834     inline const Aws::String& GetIamRoleArn() const{ return m_iamRoleArn; }
835 
836     /**
837      * <p>The Amazon Resource Name (ARN) of the IAM role to apply to the fleet. To
838      * assume a role, a fleet instance calls the AWS Security Token Service (STS)
839      * <code>AssumeRole</code> API operation and passes the ARN of the role to use. The
840      * operation creates a new session with temporary credentials. AppStream 2.0
841      * retrieves the temporary credentials and creates the
842      * <b>appstream_machine_role</b> credential profile on the instance.</p> <p>For
843      * more information, see <a
844      * href="https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html">Using
845      * an IAM Role to Grant Permissions to Applications and Scripts Running on
846      * AppStream 2.0 Streaming Instances</a> in the <i>Amazon AppStream 2.0
847      * Administration Guide</i>.</p>
848      */
IamRoleArnHasBeenSet()849     inline bool IamRoleArnHasBeenSet() const { return m_iamRoleArnHasBeenSet; }
850 
851     /**
852      * <p>The Amazon Resource Name (ARN) of the IAM role to apply to the fleet. To
853      * assume a role, a fleet instance calls the AWS Security Token Service (STS)
854      * <code>AssumeRole</code> API operation and passes the ARN of the role to use. The
855      * operation creates a new session with temporary credentials. AppStream 2.0
856      * retrieves the temporary credentials and creates the
857      * <b>appstream_machine_role</b> credential profile on the instance.</p> <p>For
858      * more information, see <a
859      * href="https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html">Using
860      * an IAM Role to Grant Permissions to Applications and Scripts Running on
861      * AppStream 2.0 Streaming Instances</a> in the <i>Amazon AppStream 2.0
862      * Administration Guide</i>.</p>
863      */
SetIamRoleArn(const Aws::String & value)864     inline void SetIamRoleArn(const Aws::String& value) { m_iamRoleArnHasBeenSet = true; m_iamRoleArn = value; }
865 
866     /**
867      * <p>The Amazon Resource Name (ARN) of the IAM role to apply to the fleet. To
868      * assume a role, a fleet instance calls the AWS Security Token Service (STS)
869      * <code>AssumeRole</code> API operation and passes the ARN of the role to use. The
870      * operation creates a new session with temporary credentials. AppStream 2.0
871      * retrieves the temporary credentials and creates the
872      * <b>appstream_machine_role</b> credential profile on the instance.</p> <p>For
873      * more information, see <a
874      * href="https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html">Using
875      * an IAM Role to Grant Permissions to Applications and Scripts Running on
876      * AppStream 2.0 Streaming Instances</a> in the <i>Amazon AppStream 2.0
877      * Administration Guide</i>.</p>
878      */
SetIamRoleArn(Aws::String && value)879     inline void SetIamRoleArn(Aws::String&& value) { m_iamRoleArnHasBeenSet = true; m_iamRoleArn = std::move(value); }
880 
881     /**
882      * <p>The Amazon Resource Name (ARN) of the IAM role to apply to the fleet. To
883      * assume a role, a fleet instance calls the AWS Security Token Service (STS)
884      * <code>AssumeRole</code> API operation and passes the ARN of the role to use. The
885      * operation creates a new session with temporary credentials. AppStream 2.0
886      * retrieves the temporary credentials and creates the
887      * <b>appstream_machine_role</b> credential profile on the instance.</p> <p>For
888      * more information, see <a
889      * href="https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html">Using
890      * an IAM Role to Grant Permissions to Applications and Scripts Running on
891      * AppStream 2.0 Streaming Instances</a> in the <i>Amazon AppStream 2.0
892      * Administration Guide</i>.</p>
893      */
SetIamRoleArn(const char * value)894     inline void SetIamRoleArn(const char* value) { m_iamRoleArnHasBeenSet = true; m_iamRoleArn.assign(value); }
895 
896     /**
897      * <p>The Amazon Resource Name (ARN) of the IAM role to apply to the fleet. To
898      * assume a role, a fleet instance calls the AWS Security Token Service (STS)
899      * <code>AssumeRole</code> API operation and passes the ARN of the role to use. The
900      * operation creates a new session with temporary credentials. AppStream 2.0
901      * retrieves the temporary credentials and creates the
902      * <b>appstream_machine_role</b> credential profile on the instance.</p> <p>For
903      * more information, see <a
904      * href="https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html">Using
905      * an IAM Role to Grant Permissions to Applications and Scripts Running on
906      * AppStream 2.0 Streaming Instances</a> in the <i>Amazon AppStream 2.0
907      * Administration Guide</i>.</p>
908      */
WithIamRoleArn(const Aws::String & value)909     inline UpdateFleetRequest& WithIamRoleArn(const Aws::String& value) { SetIamRoleArn(value); return *this;}
910 
911     /**
912      * <p>The Amazon Resource Name (ARN) of the IAM role to apply to the fleet. To
913      * assume a role, a fleet instance calls the AWS Security Token Service (STS)
914      * <code>AssumeRole</code> API operation and passes the ARN of the role to use. The
915      * operation creates a new session with temporary credentials. AppStream 2.0
916      * retrieves the temporary credentials and creates the
917      * <b>appstream_machine_role</b> credential profile on the instance.</p> <p>For
918      * more information, see <a
919      * href="https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html">Using
920      * an IAM Role to Grant Permissions to Applications and Scripts Running on
921      * AppStream 2.0 Streaming Instances</a> in the <i>Amazon AppStream 2.0
922      * Administration Guide</i>.</p>
923      */
WithIamRoleArn(Aws::String && value)924     inline UpdateFleetRequest& WithIamRoleArn(Aws::String&& value) { SetIamRoleArn(std::move(value)); return *this;}
925 
926     /**
927      * <p>The Amazon Resource Name (ARN) of the IAM role to apply to the fleet. To
928      * assume a role, a fleet instance calls the AWS Security Token Service (STS)
929      * <code>AssumeRole</code> API operation and passes the ARN of the role to use. The
930      * operation creates a new session with temporary credentials. AppStream 2.0
931      * retrieves the temporary credentials and creates the
932      * <b>appstream_machine_role</b> credential profile on the instance.</p> <p>For
933      * more information, see <a
934      * href="https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html">Using
935      * an IAM Role to Grant Permissions to Applications and Scripts Running on
936      * AppStream 2.0 Streaming Instances</a> in the <i>Amazon AppStream 2.0
937      * Administration Guide</i>.</p>
938      */
WithIamRoleArn(const char * value)939     inline UpdateFleetRequest& WithIamRoleArn(const char* value) { SetIamRoleArn(value); return *this;}
940 
941 
942     /**
943      * <p>The AppStream 2.0 view that is displayed to your users when they stream from
944      * the fleet. When <code>APP</code> is specified, only the windows of applications
945      * opened by users display. When <code>DESKTOP</code> is specified, the standard
946      * desktop that is provided by the operating system displays.</p> <p>The default
947      * value is <code>APP</code>.</p>
948      */
GetStreamView()949     inline const StreamView& GetStreamView() const{ return m_streamView; }
950 
951     /**
952      * <p>The AppStream 2.0 view that is displayed to your users when they stream from
953      * the fleet. When <code>APP</code> is specified, only the windows of applications
954      * opened by users display. When <code>DESKTOP</code> is specified, the standard
955      * desktop that is provided by the operating system displays.</p> <p>The default
956      * value is <code>APP</code>.</p>
957      */
StreamViewHasBeenSet()958     inline bool StreamViewHasBeenSet() const { return m_streamViewHasBeenSet; }
959 
960     /**
961      * <p>The AppStream 2.0 view that is displayed to your users when they stream from
962      * the fleet. When <code>APP</code> is specified, only the windows of applications
963      * opened by users display. When <code>DESKTOP</code> is specified, the standard
964      * desktop that is provided by the operating system displays.</p> <p>The default
965      * value is <code>APP</code>.</p>
966      */
SetStreamView(const StreamView & value)967     inline void SetStreamView(const StreamView& value) { m_streamViewHasBeenSet = true; m_streamView = value; }
968 
969     /**
970      * <p>The AppStream 2.0 view that is displayed to your users when they stream from
971      * the fleet. When <code>APP</code> is specified, only the windows of applications
972      * opened by users display. When <code>DESKTOP</code> is specified, the standard
973      * desktop that is provided by the operating system displays.</p> <p>The default
974      * value is <code>APP</code>.</p>
975      */
SetStreamView(StreamView && value)976     inline void SetStreamView(StreamView&& value) { m_streamViewHasBeenSet = true; m_streamView = std::move(value); }
977 
978     /**
979      * <p>The AppStream 2.0 view that is displayed to your users when they stream from
980      * the fleet. When <code>APP</code> is specified, only the windows of applications
981      * opened by users display. When <code>DESKTOP</code> is specified, the standard
982      * desktop that is provided by the operating system displays.</p> <p>The default
983      * value is <code>APP</code>.</p>
984      */
WithStreamView(const StreamView & value)985     inline UpdateFleetRequest& WithStreamView(const StreamView& value) { SetStreamView(value); return *this;}
986 
987     /**
988      * <p>The AppStream 2.0 view that is displayed to your users when they stream from
989      * the fleet. When <code>APP</code> is specified, only the windows of applications
990      * opened by users display. When <code>DESKTOP</code> is specified, the standard
991      * desktop that is provided by the operating system displays.</p> <p>The default
992      * value is <code>APP</code>.</p>
993      */
WithStreamView(StreamView && value)994     inline UpdateFleetRequest& WithStreamView(StreamView&& value) { SetStreamView(std::move(value)); return *this;}
995 
996   private:
997 
998     Aws::String m_imageName;
999     bool m_imageNameHasBeenSet;
1000 
1001     Aws::String m_imageArn;
1002     bool m_imageArnHasBeenSet;
1003 
1004     Aws::String m_name;
1005     bool m_nameHasBeenSet;
1006 
1007     Aws::String m_instanceType;
1008     bool m_instanceTypeHasBeenSet;
1009 
1010     ComputeCapacity m_computeCapacity;
1011     bool m_computeCapacityHasBeenSet;
1012 
1013     VpcConfig m_vpcConfig;
1014     bool m_vpcConfigHasBeenSet;
1015 
1016     int m_maxUserDurationInSeconds;
1017     bool m_maxUserDurationInSecondsHasBeenSet;
1018 
1019     int m_disconnectTimeoutInSeconds;
1020     bool m_disconnectTimeoutInSecondsHasBeenSet;
1021 
1022     Aws::String m_description;
1023     bool m_descriptionHasBeenSet;
1024 
1025     Aws::String m_displayName;
1026     bool m_displayNameHasBeenSet;
1027 
1028     bool m_enableDefaultInternetAccess;
1029     bool m_enableDefaultInternetAccessHasBeenSet;
1030 
1031     DomainJoinInfo m_domainJoinInfo;
1032     bool m_domainJoinInfoHasBeenSet;
1033 
1034     int m_idleDisconnectTimeoutInSeconds;
1035     bool m_idleDisconnectTimeoutInSecondsHasBeenSet;
1036 
1037     Aws::Vector<FleetAttribute> m_attributesToDelete;
1038     bool m_attributesToDeleteHasBeenSet;
1039 
1040     Aws::String m_iamRoleArn;
1041     bool m_iamRoleArnHasBeenSet;
1042 
1043     StreamView m_streamView;
1044     bool m_streamViewHasBeenSet;
1045   };
1046 
1047 } // namespace Model
1048 } // namespace AppStream
1049 } // namespace Aws
1050