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/workspaces/WorkSpaces_EXPORTS.h>
8 #include <aws/workspaces/WorkSpacesRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/workspaces/model/WorkspaceImageIngestionProcess.h>
11 #include <aws/core/utils/memory/stl/AWSVector.h>
12 #include <aws/workspaces/model/Tag.h>
13 #include <aws/workspaces/model/Application.h>
14 #include <utility>
15 
16 namespace Aws
17 {
18 namespace WorkSpaces
19 {
20 namespace Model
21 {
22 
23   /**
24    */
25   class AWS_WORKSPACES_API ImportWorkspaceImageRequest : public WorkSpacesRequest
26   {
27   public:
28     ImportWorkspaceImageRequest();
29 
30     // Service request name is the Operation name which will send this request out,
31     // each operation should has unique request name, so that we can get operation's name from this request.
32     // Note: this is not true for response, multiple operations may have the same response name,
33     // so we can not get operation's name from response.
GetServiceRequestName()34     inline virtual const char* GetServiceRequestName() const override { return "ImportWorkspaceImage"; }
35 
36     Aws::String SerializePayload() const override;
37 
38     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
39 
40 
41     /**
42      * <p>The identifier of the EC2 image.</p>
43      */
GetEc2ImageId()44     inline const Aws::String& GetEc2ImageId() const{ return m_ec2ImageId; }
45 
46     /**
47      * <p>The identifier of the EC2 image.</p>
48      */
Ec2ImageIdHasBeenSet()49     inline bool Ec2ImageIdHasBeenSet() const { return m_ec2ImageIdHasBeenSet; }
50 
51     /**
52      * <p>The identifier of the EC2 image.</p>
53      */
SetEc2ImageId(const Aws::String & value)54     inline void SetEc2ImageId(const Aws::String& value) { m_ec2ImageIdHasBeenSet = true; m_ec2ImageId = value; }
55 
56     /**
57      * <p>The identifier of the EC2 image.</p>
58      */
SetEc2ImageId(Aws::String && value)59     inline void SetEc2ImageId(Aws::String&& value) { m_ec2ImageIdHasBeenSet = true; m_ec2ImageId = std::move(value); }
60 
61     /**
62      * <p>The identifier of the EC2 image.</p>
63      */
SetEc2ImageId(const char * value)64     inline void SetEc2ImageId(const char* value) { m_ec2ImageIdHasBeenSet = true; m_ec2ImageId.assign(value); }
65 
66     /**
67      * <p>The identifier of the EC2 image.</p>
68      */
WithEc2ImageId(const Aws::String & value)69     inline ImportWorkspaceImageRequest& WithEc2ImageId(const Aws::String& value) { SetEc2ImageId(value); return *this;}
70 
71     /**
72      * <p>The identifier of the EC2 image.</p>
73      */
WithEc2ImageId(Aws::String && value)74     inline ImportWorkspaceImageRequest& WithEc2ImageId(Aws::String&& value) { SetEc2ImageId(std::move(value)); return *this;}
75 
76     /**
77      * <p>The identifier of the EC2 image.</p>
78      */
WithEc2ImageId(const char * value)79     inline ImportWorkspaceImageRequest& WithEc2ImageId(const char* value) { SetEc2ImageId(value); return *this;}
80 
81 
82     /**
83      * <p>The ingestion process to be used when importing the image, depending on which
84      * protocol you want to use for your BYOL Workspace image, either PCoIP or
85      * WorkSpaces Streaming Protocol (WSP). To use WSP, specify a value that ends in
86      * <code>_WSP</code>. To use PCoIP, specify a value that does not end in
87      * <code>_WSP</code>. </p> <p>For non-GPU-enabled bundles (bundles other than
88      * Graphics or GraphicsPro), specify <code>BYOL_REGULAR</code> or
89      * <code>BYOL_REGULAR_WSP</code>, depending on the protocol.</p>
90      */
GetIngestionProcess()91     inline const WorkspaceImageIngestionProcess& GetIngestionProcess() const{ return m_ingestionProcess; }
92 
93     /**
94      * <p>The ingestion process to be used when importing the image, depending on which
95      * protocol you want to use for your BYOL Workspace image, either PCoIP or
96      * WorkSpaces Streaming Protocol (WSP). To use WSP, specify a value that ends in
97      * <code>_WSP</code>. To use PCoIP, specify a value that does not end in
98      * <code>_WSP</code>. </p> <p>For non-GPU-enabled bundles (bundles other than
99      * Graphics or GraphicsPro), specify <code>BYOL_REGULAR</code> or
100      * <code>BYOL_REGULAR_WSP</code>, depending on the protocol.</p>
101      */
IngestionProcessHasBeenSet()102     inline bool IngestionProcessHasBeenSet() const { return m_ingestionProcessHasBeenSet; }
103 
104     /**
105      * <p>The ingestion process to be used when importing the image, depending on which
106      * protocol you want to use for your BYOL Workspace image, either PCoIP or
107      * WorkSpaces Streaming Protocol (WSP). To use WSP, specify a value that ends in
108      * <code>_WSP</code>. To use PCoIP, specify a value that does not end in
109      * <code>_WSP</code>. </p> <p>For non-GPU-enabled bundles (bundles other than
110      * Graphics or GraphicsPro), specify <code>BYOL_REGULAR</code> or
111      * <code>BYOL_REGULAR_WSP</code>, depending on the protocol.</p>
112      */
SetIngestionProcess(const WorkspaceImageIngestionProcess & value)113     inline void SetIngestionProcess(const WorkspaceImageIngestionProcess& value) { m_ingestionProcessHasBeenSet = true; m_ingestionProcess = value; }
114 
115     /**
116      * <p>The ingestion process to be used when importing the image, depending on which
117      * protocol you want to use for your BYOL Workspace image, either PCoIP or
118      * WorkSpaces Streaming Protocol (WSP). To use WSP, specify a value that ends in
119      * <code>_WSP</code>. To use PCoIP, specify a value that does not end in
120      * <code>_WSP</code>. </p> <p>For non-GPU-enabled bundles (bundles other than
121      * Graphics or GraphicsPro), specify <code>BYOL_REGULAR</code> or
122      * <code>BYOL_REGULAR_WSP</code>, depending on the protocol.</p>
123      */
SetIngestionProcess(WorkspaceImageIngestionProcess && value)124     inline void SetIngestionProcess(WorkspaceImageIngestionProcess&& value) { m_ingestionProcessHasBeenSet = true; m_ingestionProcess = std::move(value); }
125 
126     /**
127      * <p>The ingestion process to be used when importing the image, depending on which
128      * protocol you want to use for your BYOL Workspace image, either PCoIP or
129      * WorkSpaces Streaming Protocol (WSP). To use WSP, specify a value that ends in
130      * <code>_WSP</code>. To use PCoIP, specify a value that does not end in
131      * <code>_WSP</code>. </p> <p>For non-GPU-enabled bundles (bundles other than
132      * Graphics or GraphicsPro), specify <code>BYOL_REGULAR</code> or
133      * <code>BYOL_REGULAR_WSP</code>, depending on the protocol.</p>
134      */
WithIngestionProcess(const WorkspaceImageIngestionProcess & value)135     inline ImportWorkspaceImageRequest& WithIngestionProcess(const WorkspaceImageIngestionProcess& value) { SetIngestionProcess(value); return *this;}
136 
137     /**
138      * <p>The ingestion process to be used when importing the image, depending on which
139      * protocol you want to use for your BYOL Workspace image, either PCoIP or
140      * WorkSpaces Streaming Protocol (WSP). To use WSP, specify a value that ends in
141      * <code>_WSP</code>. To use PCoIP, specify a value that does not end in
142      * <code>_WSP</code>. </p> <p>For non-GPU-enabled bundles (bundles other than
143      * Graphics or GraphicsPro), specify <code>BYOL_REGULAR</code> or
144      * <code>BYOL_REGULAR_WSP</code>, depending on the protocol.</p>
145      */
WithIngestionProcess(WorkspaceImageIngestionProcess && value)146     inline ImportWorkspaceImageRequest& WithIngestionProcess(WorkspaceImageIngestionProcess&& value) { SetIngestionProcess(std::move(value)); return *this;}
147 
148 
149     /**
150      * <p>The name of the WorkSpace image.</p>
151      */
GetImageName()152     inline const Aws::String& GetImageName() const{ return m_imageName; }
153 
154     /**
155      * <p>The name of the WorkSpace image.</p>
156      */
ImageNameHasBeenSet()157     inline bool ImageNameHasBeenSet() const { return m_imageNameHasBeenSet; }
158 
159     /**
160      * <p>The name of the WorkSpace image.</p>
161      */
SetImageName(const Aws::String & value)162     inline void SetImageName(const Aws::String& value) { m_imageNameHasBeenSet = true; m_imageName = value; }
163 
164     /**
165      * <p>The name of the WorkSpace image.</p>
166      */
SetImageName(Aws::String && value)167     inline void SetImageName(Aws::String&& value) { m_imageNameHasBeenSet = true; m_imageName = std::move(value); }
168 
169     /**
170      * <p>The name of the WorkSpace image.</p>
171      */
SetImageName(const char * value)172     inline void SetImageName(const char* value) { m_imageNameHasBeenSet = true; m_imageName.assign(value); }
173 
174     /**
175      * <p>The name of the WorkSpace image.</p>
176      */
WithImageName(const Aws::String & value)177     inline ImportWorkspaceImageRequest& WithImageName(const Aws::String& value) { SetImageName(value); return *this;}
178 
179     /**
180      * <p>The name of the WorkSpace image.</p>
181      */
WithImageName(Aws::String && value)182     inline ImportWorkspaceImageRequest& WithImageName(Aws::String&& value) { SetImageName(std::move(value)); return *this;}
183 
184     /**
185      * <p>The name of the WorkSpace image.</p>
186      */
WithImageName(const char * value)187     inline ImportWorkspaceImageRequest& WithImageName(const char* value) { SetImageName(value); return *this;}
188 
189 
190     /**
191      * <p>The description of the WorkSpace image.</p>
192      */
GetImageDescription()193     inline const Aws::String& GetImageDescription() const{ return m_imageDescription; }
194 
195     /**
196      * <p>The description of the WorkSpace image.</p>
197      */
ImageDescriptionHasBeenSet()198     inline bool ImageDescriptionHasBeenSet() const { return m_imageDescriptionHasBeenSet; }
199 
200     /**
201      * <p>The description of the WorkSpace image.</p>
202      */
SetImageDescription(const Aws::String & value)203     inline void SetImageDescription(const Aws::String& value) { m_imageDescriptionHasBeenSet = true; m_imageDescription = value; }
204 
205     /**
206      * <p>The description of the WorkSpace image.</p>
207      */
SetImageDescription(Aws::String && value)208     inline void SetImageDescription(Aws::String&& value) { m_imageDescriptionHasBeenSet = true; m_imageDescription = std::move(value); }
209 
210     /**
211      * <p>The description of the WorkSpace image.</p>
212      */
SetImageDescription(const char * value)213     inline void SetImageDescription(const char* value) { m_imageDescriptionHasBeenSet = true; m_imageDescription.assign(value); }
214 
215     /**
216      * <p>The description of the WorkSpace image.</p>
217      */
WithImageDescription(const Aws::String & value)218     inline ImportWorkspaceImageRequest& WithImageDescription(const Aws::String& value) { SetImageDescription(value); return *this;}
219 
220     /**
221      * <p>The description of the WorkSpace image.</p>
222      */
WithImageDescription(Aws::String && value)223     inline ImportWorkspaceImageRequest& WithImageDescription(Aws::String&& value) { SetImageDescription(std::move(value)); return *this;}
224 
225     /**
226      * <p>The description of the WorkSpace image.</p>
227      */
WithImageDescription(const char * value)228     inline ImportWorkspaceImageRequest& WithImageDescription(const char* value) { SetImageDescription(value); return *this;}
229 
230 
231     /**
232      * <p>The tags. Each WorkSpaces resource can have a maximum of 50 tags.</p>
233      */
GetTags()234     inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; }
235 
236     /**
237      * <p>The tags. Each WorkSpaces resource can have a maximum of 50 tags.</p>
238      */
TagsHasBeenSet()239     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
240 
241     /**
242      * <p>The tags. Each WorkSpaces resource can have a maximum of 50 tags.</p>
243      */
SetTags(const Aws::Vector<Tag> & value)244     inline void SetTags(const Aws::Vector<Tag>& value) { m_tagsHasBeenSet = true; m_tags = value; }
245 
246     /**
247      * <p>The tags. Each WorkSpaces resource can have a maximum of 50 tags.</p>
248      */
SetTags(Aws::Vector<Tag> && value)249     inline void SetTags(Aws::Vector<Tag>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
250 
251     /**
252      * <p>The tags. Each WorkSpaces resource can have a maximum of 50 tags.</p>
253      */
WithTags(const Aws::Vector<Tag> & value)254     inline ImportWorkspaceImageRequest& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;}
255 
256     /**
257      * <p>The tags. Each WorkSpaces resource can have a maximum of 50 tags.</p>
258      */
WithTags(Aws::Vector<Tag> && value)259     inline ImportWorkspaceImageRequest& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;}
260 
261     /**
262      * <p>The tags. Each WorkSpaces resource can have a maximum of 50 tags.</p>
263      */
AddTags(const Tag & value)264     inline ImportWorkspaceImageRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; }
265 
266     /**
267      * <p>The tags. Each WorkSpaces resource can have a maximum of 50 tags.</p>
268      */
AddTags(Tag && value)269     inline ImportWorkspaceImageRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; }
270 
271 
272     /**
273      * <p>If specified, the version of Microsoft Office to subscribe to. Valid only for
274      * Windows 10 BYOL images. For more information about subscribing to Office for
275      * BYOL images, see <a
276      * href="https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html">
277      * Bring Your Own Windows Desktop Licenses</a>.</p>  <p>Although this
278      * parameter is an array, only one item is allowed at this time.</p>
279      */
GetApplications()280     inline const Aws::Vector<Application>& GetApplications() const{ return m_applications; }
281 
282     /**
283      * <p>If specified, the version of Microsoft Office to subscribe to. Valid only for
284      * Windows 10 BYOL images. For more information about subscribing to Office for
285      * BYOL images, see <a
286      * href="https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html">
287      * Bring Your Own Windows Desktop Licenses</a>.</p>  <p>Although this
288      * parameter is an array, only one item is allowed at this time.</p>
289      */
ApplicationsHasBeenSet()290     inline bool ApplicationsHasBeenSet() const { return m_applicationsHasBeenSet; }
291 
292     /**
293      * <p>If specified, the version of Microsoft Office to subscribe to. Valid only for
294      * Windows 10 BYOL images. For more information about subscribing to Office for
295      * BYOL images, see <a
296      * href="https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html">
297      * Bring Your Own Windows Desktop Licenses</a>.</p>  <p>Although this
298      * parameter is an array, only one item is allowed at this time.</p>
299      */
SetApplications(const Aws::Vector<Application> & value)300     inline void SetApplications(const Aws::Vector<Application>& value) { m_applicationsHasBeenSet = true; m_applications = value; }
301 
302     /**
303      * <p>If specified, the version of Microsoft Office to subscribe to. Valid only for
304      * Windows 10 BYOL images. For more information about subscribing to Office for
305      * BYOL images, see <a
306      * href="https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html">
307      * Bring Your Own Windows Desktop Licenses</a>.</p>  <p>Although this
308      * parameter is an array, only one item is allowed at this time.</p>
309      */
SetApplications(Aws::Vector<Application> && value)310     inline void SetApplications(Aws::Vector<Application>&& value) { m_applicationsHasBeenSet = true; m_applications = std::move(value); }
311 
312     /**
313      * <p>If specified, the version of Microsoft Office to subscribe to. Valid only for
314      * Windows 10 BYOL images. For more information about subscribing to Office for
315      * BYOL images, see <a
316      * href="https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html">
317      * Bring Your Own Windows Desktop Licenses</a>.</p>  <p>Although this
318      * parameter is an array, only one item is allowed at this time.</p>
319      */
WithApplications(const Aws::Vector<Application> & value)320     inline ImportWorkspaceImageRequest& WithApplications(const Aws::Vector<Application>& value) { SetApplications(value); return *this;}
321 
322     /**
323      * <p>If specified, the version of Microsoft Office to subscribe to. Valid only for
324      * Windows 10 BYOL images. For more information about subscribing to Office for
325      * BYOL images, see <a
326      * href="https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html">
327      * Bring Your Own Windows Desktop Licenses</a>.</p>  <p>Although this
328      * parameter is an array, only one item is allowed at this time.</p>
329      */
WithApplications(Aws::Vector<Application> && value)330     inline ImportWorkspaceImageRequest& WithApplications(Aws::Vector<Application>&& value) { SetApplications(std::move(value)); return *this;}
331 
332     /**
333      * <p>If specified, the version of Microsoft Office to subscribe to. Valid only for
334      * Windows 10 BYOL images. For more information about subscribing to Office for
335      * BYOL images, see <a
336      * href="https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html">
337      * Bring Your Own Windows Desktop Licenses</a>.</p>  <p>Although this
338      * parameter is an array, only one item is allowed at this time.</p>
339      */
AddApplications(const Application & value)340     inline ImportWorkspaceImageRequest& AddApplications(const Application& value) { m_applicationsHasBeenSet = true; m_applications.push_back(value); return *this; }
341 
342     /**
343      * <p>If specified, the version of Microsoft Office to subscribe to. Valid only for
344      * Windows 10 BYOL images. For more information about subscribing to Office for
345      * BYOL images, see <a
346      * href="https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html">
347      * Bring Your Own Windows Desktop Licenses</a>.</p>  <p>Although this
348      * parameter is an array, only one item is allowed at this time.</p>
349      */
AddApplications(Application && value)350     inline ImportWorkspaceImageRequest& AddApplications(Application&& value) { m_applicationsHasBeenSet = true; m_applications.push_back(std::move(value)); return *this; }
351 
352   private:
353 
354     Aws::String m_ec2ImageId;
355     bool m_ec2ImageIdHasBeenSet;
356 
357     WorkspaceImageIngestionProcess m_ingestionProcess;
358     bool m_ingestionProcessHasBeenSet;
359 
360     Aws::String m_imageName;
361     bool m_imageNameHasBeenSet;
362 
363     Aws::String m_imageDescription;
364     bool m_imageDescriptionHasBeenSet;
365 
366     Aws::Vector<Tag> m_tags;
367     bool m_tagsHasBeenSet;
368 
369     Aws::Vector<Application> m_applications;
370     bool m_applicationsHasBeenSet;
371   };
372 
373 } // namespace Model
374 } // namespace WorkSpaces
375 } // namespace Aws
376