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/nimble/NimbleStudio_EXPORTS.h>
8 #include <aws/nimble/NimbleStudioRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/nimble/model/StreamConfigurationCreate.h>
12 #include <utility>
13 #include <aws/core/utils/UUID.h>
14 
15 namespace Aws
16 {
17 namespace NimbleStudio
18 {
19 namespace Model
20 {
21 
22   /**
23    * <p>The launch profile ID.</p><p><h3>See Also:</h3>   <a
24    * href="http://docs.aws.amazon.com/goto/WebAPI/nimble-2020-08-01/UpdateLaunchProfileRequest">AWS
25    * API Reference</a></p>
26    */
27   class AWS_NIMBLESTUDIO_API UpdateLaunchProfileRequest : public NimbleStudioRequest
28   {
29   public:
30     UpdateLaunchProfileRequest();
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 "UpdateLaunchProfile"; }
37 
38     Aws::String SerializePayload() const override;
39 
40     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
41 
42 
43     /**
44      * <p>To make an idempotent API request using one of these actions, specify a
45      * client token in the request. You should not reuse the same client token for
46      * other API requests. If you retry a request that completed successfully using the
47      * same client token and the same parameters, the retry succeeds without performing
48      * any further actions. If you retry a successful request using the same client
49      * token, but one or more of the parameters are different, the retry fails with a
50      * ValidationException error.</p>
51      */
GetClientToken()52     inline const Aws::String& GetClientToken() const{ return m_clientToken; }
53 
54     /**
55      * <p>To make an idempotent API request using one of these actions, specify a
56      * client token in the request. You should not reuse the same client token for
57      * other API requests. If you retry a request that completed successfully using the
58      * same client token and the same parameters, the retry succeeds without performing
59      * any further actions. If you retry a successful request using the same client
60      * token, but one or more of the parameters are different, the retry fails with a
61      * ValidationException error.</p>
62      */
ClientTokenHasBeenSet()63     inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; }
64 
65     /**
66      * <p>To make an idempotent API request using one of these actions, specify a
67      * client token in the request. You should not reuse the same client token for
68      * other API requests. If you retry a request that completed successfully using the
69      * same client token and the same parameters, the retry succeeds without performing
70      * any further actions. If you retry a successful request using the same client
71      * token, but one or more of the parameters are different, the retry fails with a
72      * ValidationException error.</p>
73      */
SetClientToken(const Aws::String & value)74     inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; }
75 
76     /**
77      * <p>To make an idempotent API request using one of these actions, specify a
78      * client token in the request. You should not reuse the same client token for
79      * other API requests. If you retry a request that completed successfully using the
80      * same client token and the same parameters, the retry succeeds without performing
81      * any further actions. If you retry a successful request using the same client
82      * token, but one or more of the parameters are different, the retry fails with a
83      * ValidationException error.</p>
84      */
SetClientToken(Aws::String && value)85     inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); }
86 
87     /**
88      * <p>To make an idempotent API request using one of these actions, specify a
89      * client token in the request. You should not reuse the same client token for
90      * other API requests. If you retry a request that completed successfully using the
91      * same client token and the same parameters, the retry succeeds without performing
92      * any further actions. If you retry a successful request using the same client
93      * token, but one or more of the parameters are different, the retry fails with a
94      * ValidationException error.</p>
95      */
SetClientToken(const char * value)96     inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); }
97 
98     /**
99      * <p>To make an idempotent API request using one of these actions, specify a
100      * client token in the request. You should not reuse the same client token for
101      * other API requests. If you retry a request that completed successfully using the
102      * same client token and the same parameters, the retry succeeds without performing
103      * any further actions. If you retry a successful request using the same client
104      * token, but one or more of the parameters are different, the retry fails with a
105      * ValidationException error.</p>
106      */
WithClientToken(const Aws::String & value)107     inline UpdateLaunchProfileRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;}
108 
109     /**
110      * <p>To make an idempotent API request using one of these actions, specify a
111      * client token in the request. You should not reuse the same client token for
112      * other API requests. If you retry a request that completed successfully using the
113      * same client token and the same parameters, the retry succeeds without performing
114      * any further actions. If you retry a successful request using the same client
115      * token, but one or more of the parameters are different, the retry fails with a
116      * ValidationException error.</p>
117      */
WithClientToken(Aws::String && value)118     inline UpdateLaunchProfileRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;}
119 
120     /**
121      * <p>To make an idempotent API request using one of these actions, specify a
122      * client token in the request. You should not reuse the same client token for
123      * other API requests. If you retry a request that completed successfully using the
124      * same client token and the same parameters, the retry succeeds without performing
125      * any further actions. If you retry a successful request using the same client
126      * token, but one or more of the parameters are different, the retry fails with a
127      * ValidationException error.</p>
128      */
WithClientToken(const char * value)129     inline UpdateLaunchProfileRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;}
130 
131 
132     /**
133      * <p>The description.</p>
134      */
GetDescription()135     inline const Aws::String& GetDescription() const{ return m_description; }
136 
137     /**
138      * <p>The description.</p>
139      */
DescriptionHasBeenSet()140     inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
141 
142     /**
143      * <p>The description.</p>
144      */
SetDescription(const Aws::String & value)145     inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; }
146 
147     /**
148      * <p>The description.</p>
149      */
SetDescription(Aws::String && value)150     inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); }
151 
152     /**
153      * <p>The description.</p>
154      */
SetDescription(const char * value)155     inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); }
156 
157     /**
158      * <p>The description.</p>
159      */
WithDescription(const Aws::String & value)160     inline UpdateLaunchProfileRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;}
161 
162     /**
163      * <p>The description.</p>
164      */
WithDescription(Aws::String && value)165     inline UpdateLaunchProfileRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;}
166 
167     /**
168      * <p>The description.</p>
169      */
WithDescription(const char * value)170     inline UpdateLaunchProfileRequest& WithDescription(const char* value) { SetDescription(value); return *this;}
171 
172 
173     /**
174      * <p>The launch profile ID.</p>
175      */
GetLaunchProfileId()176     inline const Aws::String& GetLaunchProfileId() const{ return m_launchProfileId; }
177 
178     /**
179      * <p>The launch profile ID.</p>
180      */
LaunchProfileIdHasBeenSet()181     inline bool LaunchProfileIdHasBeenSet() const { return m_launchProfileIdHasBeenSet; }
182 
183     /**
184      * <p>The launch profile ID.</p>
185      */
SetLaunchProfileId(const Aws::String & value)186     inline void SetLaunchProfileId(const Aws::String& value) { m_launchProfileIdHasBeenSet = true; m_launchProfileId = value; }
187 
188     /**
189      * <p>The launch profile ID.</p>
190      */
SetLaunchProfileId(Aws::String && value)191     inline void SetLaunchProfileId(Aws::String&& value) { m_launchProfileIdHasBeenSet = true; m_launchProfileId = std::move(value); }
192 
193     /**
194      * <p>The launch profile ID.</p>
195      */
SetLaunchProfileId(const char * value)196     inline void SetLaunchProfileId(const char* value) { m_launchProfileIdHasBeenSet = true; m_launchProfileId.assign(value); }
197 
198     /**
199      * <p>The launch profile ID.</p>
200      */
WithLaunchProfileId(const Aws::String & value)201     inline UpdateLaunchProfileRequest& WithLaunchProfileId(const Aws::String& value) { SetLaunchProfileId(value); return *this;}
202 
203     /**
204      * <p>The launch profile ID.</p>
205      */
WithLaunchProfileId(Aws::String && value)206     inline UpdateLaunchProfileRequest& WithLaunchProfileId(Aws::String&& value) { SetLaunchProfileId(std::move(value)); return *this;}
207 
208     /**
209      * <p>The launch profile ID.</p>
210      */
WithLaunchProfileId(const char * value)211     inline UpdateLaunchProfileRequest& WithLaunchProfileId(const char* value) { SetLaunchProfileId(value); return *this;}
212 
213 
214     /**
215      * <p>The version number of the protocol that is used by the launch profile. The
216      * only valid version is "2021-03-31".</p>
217      */
GetLaunchProfileProtocolVersions()218     inline const Aws::Vector<Aws::String>& GetLaunchProfileProtocolVersions() const{ return m_launchProfileProtocolVersions; }
219 
220     /**
221      * <p>The version number of the protocol that is used by the launch profile. The
222      * only valid version is "2021-03-31".</p>
223      */
LaunchProfileProtocolVersionsHasBeenSet()224     inline bool LaunchProfileProtocolVersionsHasBeenSet() const { return m_launchProfileProtocolVersionsHasBeenSet; }
225 
226     /**
227      * <p>The version number of the protocol that is used by the launch profile. The
228      * only valid version is "2021-03-31".</p>
229      */
SetLaunchProfileProtocolVersions(const Aws::Vector<Aws::String> & value)230     inline void SetLaunchProfileProtocolVersions(const Aws::Vector<Aws::String>& value) { m_launchProfileProtocolVersionsHasBeenSet = true; m_launchProfileProtocolVersions = value; }
231 
232     /**
233      * <p>The version number of the protocol that is used by the launch profile. The
234      * only valid version is "2021-03-31".</p>
235      */
SetLaunchProfileProtocolVersions(Aws::Vector<Aws::String> && value)236     inline void SetLaunchProfileProtocolVersions(Aws::Vector<Aws::String>&& value) { m_launchProfileProtocolVersionsHasBeenSet = true; m_launchProfileProtocolVersions = std::move(value); }
237 
238     /**
239      * <p>The version number of the protocol that is used by the launch profile. The
240      * only valid version is "2021-03-31".</p>
241      */
WithLaunchProfileProtocolVersions(const Aws::Vector<Aws::String> & value)242     inline UpdateLaunchProfileRequest& WithLaunchProfileProtocolVersions(const Aws::Vector<Aws::String>& value) { SetLaunchProfileProtocolVersions(value); return *this;}
243 
244     /**
245      * <p>The version number of the protocol that is used by the launch profile. The
246      * only valid version is "2021-03-31".</p>
247      */
WithLaunchProfileProtocolVersions(Aws::Vector<Aws::String> && value)248     inline UpdateLaunchProfileRequest& WithLaunchProfileProtocolVersions(Aws::Vector<Aws::String>&& value) { SetLaunchProfileProtocolVersions(std::move(value)); return *this;}
249 
250     /**
251      * <p>The version number of the protocol that is used by the launch profile. The
252      * only valid version is "2021-03-31".</p>
253      */
AddLaunchProfileProtocolVersions(const Aws::String & value)254     inline UpdateLaunchProfileRequest& AddLaunchProfileProtocolVersions(const Aws::String& value) { m_launchProfileProtocolVersionsHasBeenSet = true; m_launchProfileProtocolVersions.push_back(value); return *this; }
255 
256     /**
257      * <p>The version number of the protocol that is used by the launch profile. The
258      * only valid version is "2021-03-31".</p>
259      */
AddLaunchProfileProtocolVersions(Aws::String && value)260     inline UpdateLaunchProfileRequest& AddLaunchProfileProtocolVersions(Aws::String&& value) { m_launchProfileProtocolVersionsHasBeenSet = true; m_launchProfileProtocolVersions.push_back(std::move(value)); return *this; }
261 
262     /**
263      * <p>The version number of the protocol that is used by the launch profile. The
264      * only valid version is "2021-03-31".</p>
265      */
AddLaunchProfileProtocolVersions(const char * value)266     inline UpdateLaunchProfileRequest& AddLaunchProfileProtocolVersions(const char* value) { m_launchProfileProtocolVersionsHasBeenSet = true; m_launchProfileProtocolVersions.push_back(value); return *this; }
267 
268 
269     /**
270      * <p>The name for the launch profile.</p>
271      */
GetName()272     inline const Aws::String& GetName() const{ return m_name; }
273 
274     /**
275      * <p>The name for the launch profile.</p>
276      */
NameHasBeenSet()277     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
278 
279     /**
280      * <p>The name for the launch profile.</p>
281      */
SetName(const Aws::String & value)282     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
283 
284     /**
285      * <p>The name for the launch profile.</p>
286      */
SetName(Aws::String && value)287     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
288 
289     /**
290      * <p>The name for the launch profile.</p>
291      */
SetName(const char * value)292     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
293 
294     /**
295      * <p>The name for the launch profile.</p>
296      */
WithName(const Aws::String & value)297     inline UpdateLaunchProfileRequest& WithName(const Aws::String& value) { SetName(value); return *this;}
298 
299     /**
300      * <p>The name for the launch profile.</p>
301      */
WithName(Aws::String && value)302     inline UpdateLaunchProfileRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
303 
304     /**
305      * <p>The name for the launch profile.</p>
306      */
WithName(const char * value)307     inline UpdateLaunchProfileRequest& WithName(const char* value) { SetName(value); return *this;}
308 
309 
310     /**
311      * <p>A configuration for a streaming session.</p>
312      */
GetStreamConfiguration()313     inline const StreamConfigurationCreate& GetStreamConfiguration() const{ return m_streamConfiguration; }
314 
315     /**
316      * <p>A configuration for a streaming session.</p>
317      */
StreamConfigurationHasBeenSet()318     inline bool StreamConfigurationHasBeenSet() const { return m_streamConfigurationHasBeenSet; }
319 
320     /**
321      * <p>A configuration for a streaming session.</p>
322      */
SetStreamConfiguration(const StreamConfigurationCreate & value)323     inline void SetStreamConfiguration(const StreamConfigurationCreate& value) { m_streamConfigurationHasBeenSet = true; m_streamConfiguration = value; }
324 
325     /**
326      * <p>A configuration for a streaming session.</p>
327      */
SetStreamConfiguration(StreamConfigurationCreate && value)328     inline void SetStreamConfiguration(StreamConfigurationCreate&& value) { m_streamConfigurationHasBeenSet = true; m_streamConfiguration = std::move(value); }
329 
330     /**
331      * <p>A configuration for a streaming session.</p>
332      */
WithStreamConfiguration(const StreamConfigurationCreate & value)333     inline UpdateLaunchProfileRequest& WithStreamConfiguration(const StreamConfigurationCreate& value) { SetStreamConfiguration(value); return *this;}
334 
335     /**
336      * <p>A configuration for a streaming session.</p>
337      */
WithStreamConfiguration(StreamConfigurationCreate && value)338     inline UpdateLaunchProfileRequest& WithStreamConfiguration(StreamConfigurationCreate&& value) { SetStreamConfiguration(std::move(value)); return *this;}
339 
340 
341     /**
342      * <p>Unique identifiers for a collection of studio components that can be used
343      * with this launch profile.</p>
344      */
GetStudioComponentIds()345     inline const Aws::Vector<Aws::String>& GetStudioComponentIds() const{ return m_studioComponentIds; }
346 
347     /**
348      * <p>Unique identifiers for a collection of studio components that can be used
349      * with this launch profile.</p>
350      */
StudioComponentIdsHasBeenSet()351     inline bool StudioComponentIdsHasBeenSet() const { return m_studioComponentIdsHasBeenSet; }
352 
353     /**
354      * <p>Unique identifiers for a collection of studio components that can be used
355      * with this launch profile.</p>
356      */
SetStudioComponentIds(const Aws::Vector<Aws::String> & value)357     inline void SetStudioComponentIds(const Aws::Vector<Aws::String>& value) { m_studioComponentIdsHasBeenSet = true; m_studioComponentIds = value; }
358 
359     /**
360      * <p>Unique identifiers for a collection of studio components that can be used
361      * with this launch profile.</p>
362      */
SetStudioComponentIds(Aws::Vector<Aws::String> && value)363     inline void SetStudioComponentIds(Aws::Vector<Aws::String>&& value) { m_studioComponentIdsHasBeenSet = true; m_studioComponentIds = std::move(value); }
364 
365     /**
366      * <p>Unique identifiers for a collection of studio components that can be used
367      * with this launch profile.</p>
368      */
WithStudioComponentIds(const Aws::Vector<Aws::String> & value)369     inline UpdateLaunchProfileRequest& WithStudioComponentIds(const Aws::Vector<Aws::String>& value) { SetStudioComponentIds(value); return *this;}
370 
371     /**
372      * <p>Unique identifiers for a collection of studio components that can be used
373      * with this launch profile.</p>
374      */
WithStudioComponentIds(Aws::Vector<Aws::String> && value)375     inline UpdateLaunchProfileRequest& WithStudioComponentIds(Aws::Vector<Aws::String>&& value) { SetStudioComponentIds(std::move(value)); return *this;}
376 
377     /**
378      * <p>Unique identifiers for a collection of studio components that can be used
379      * with this launch profile.</p>
380      */
AddStudioComponentIds(const Aws::String & value)381     inline UpdateLaunchProfileRequest& AddStudioComponentIds(const Aws::String& value) { m_studioComponentIdsHasBeenSet = true; m_studioComponentIds.push_back(value); return *this; }
382 
383     /**
384      * <p>Unique identifiers for a collection of studio components that can be used
385      * with this launch profile.</p>
386      */
AddStudioComponentIds(Aws::String && value)387     inline UpdateLaunchProfileRequest& AddStudioComponentIds(Aws::String&& value) { m_studioComponentIdsHasBeenSet = true; m_studioComponentIds.push_back(std::move(value)); return *this; }
388 
389     /**
390      * <p>Unique identifiers for a collection of studio components that can be used
391      * with this launch profile.</p>
392      */
AddStudioComponentIds(const char * value)393     inline UpdateLaunchProfileRequest& AddStudioComponentIds(const char* value) { m_studioComponentIdsHasBeenSet = true; m_studioComponentIds.push_back(value); return *this; }
394 
395 
396     /**
397      * <p>The studio ID.</p>
398      */
GetStudioId()399     inline const Aws::String& GetStudioId() const{ return m_studioId; }
400 
401     /**
402      * <p>The studio ID.</p>
403      */
StudioIdHasBeenSet()404     inline bool StudioIdHasBeenSet() const { return m_studioIdHasBeenSet; }
405 
406     /**
407      * <p>The studio ID.</p>
408      */
SetStudioId(const Aws::String & value)409     inline void SetStudioId(const Aws::String& value) { m_studioIdHasBeenSet = true; m_studioId = value; }
410 
411     /**
412      * <p>The studio ID.</p>
413      */
SetStudioId(Aws::String && value)414     inline void SetStudioId(Aws::String&& value) { m_studioIdHasBeenSet = true; m_studioId = std::move(value); }
415 
416     /**
417      * <p>The studio ID.</p>
418      */
SetStudioId(const char * value)419     inline void SetStudioId(const char* value) { m_studioIdHasBeenSet = true; m_studioId.assign(value); }
420 
421     /**
422      * <p>The studio ID.</p>
423      */
WithStudioId(const Aws::String & value)424     inline UpdateLaunchProfileRequest& WithStudioId(const Aws::String& value) { SetStudioId(value); return *this;}
425 
426     /**
427      * <p>The studio ID.</p>
428      */
WithStudioId(Aws::String && value)429     inline UpdateLaunchProfileRequest& WithStudioId(Aws::String&& value) { SetStudioId(std::move(value)); return *this;}
430 
431     /**
432      * <p>The studio ID.</p>
433      */
WithStudioId(const char * value)434     inline UpdateLaunchProfileRequest& WithStudioId(const char* value) { SetStudioId(value); return *this;}
435 
436   private:
437 
438     Aws::String m_clientToken;
439     bool m_clientTokenHasBeenSet;
440 
441     Aws::String m_description;
442     bool m_descriptionHasBeenSet;
443 
444     Aws::String m_launchProfileId;
445     bool m_launchProfileIdHasBeenSet;
446 
447     Aws::Vector<Aws::String> m_launchProfileProtocolVersions;
448     bool m_launchProfileProtocolVersionsHasBeenSet;
449 
450     Aws::String m_name;
451     bool m_nameHasBeenSet;
452 
453     StreamConfigurationCreate m_streamConfiguration;
454     bool m_streamConfigurationHasBeenSet;
455 
456     Aws::Vector<Aws::String> m_studioComponentIds;
457     bool m_studioComponentIdsHasBeenSet;
458 
459     Aws::String m_studioId;
460     bool m_studioIdHasBeenSet;
461   };
462 
463 } // namespace Model
464 } // namespace NimbleStudio
465 } // namespace Aws
466