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/servicecatalog/ServiceCatalog_EXPORTS.h>
8 #include <aws/servicecatalog/ServiceCatalogRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/servicecatalog/model/Tag.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace ServiceCatalog
17 {
18 namespace Model
19 {
20 
21   /**
22    */
23   class AWS_SERVICECATALOG_API UpdateProductRequest : public ServiceCatalogRequest
24   {
25   public:
26     UpdateProductRequest();
27 
28     // Service request name is the Operation name which will send this request out,
29     // each operation should has unique request name, so that we can get operation's name from this request.
30     // Note: this is not true for response, multiple operations may have the same response name,
31     // so we can not get operation's name from response.
GetServiceRequestName()32     inline virtual const char* GetServiceRequestName() const override { return "UpdateProduct"; }
33 
34     Aws::String SerializePayload() const override;
35 
36     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
37 
38 
39     /**
40      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
41      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
42      * Chinese</p> </li> </ul>
43      */
GetAcceptLanguage()44     inline const Aws::String& GetAcceptLanguage() const{ return m_acceptLanguage; }
45 
46     /**
47      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
48      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
49      * Chinese</p> </li> </ul>
50      */
AcceptLanguageHasBeenSet()51     inline bool AcceptLanguageHasBeenSet() const { return m_acceptLanguageHasBeenSet; }
52 
53     /**
54      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
55      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
56      * Chinese</p> </li> </ul>
57      */
SetAcceptLanguage(const Aws::String & value)58     inline void SetAcceptLanguage(const Aws::String& value) { m_acceptLanguageHasBeenSet = true; m_acceptLanguage = value; }
59 
60     /**
61      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
62      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
63      * Chinese</p> </li> </ul>
64      */
SetAcceptLanguage(Aws::String && value)65     inline void SetAcceptLanguage(Aws::String&& value) { m_acceptLanguageHasBeenSet = true; m_acceptLanguage = std::move(value); }
66 
67     /**
68      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
69      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
70      * Chinese</p> </li> </ul>
71      */
SetAcceptLanguage(const char * value)72     inline void SetAcceptLanguage(const char* value) { m_acceptLanguageHasBeenSet = true; m_acceptLanguage.assign(value); }
73 
74     /**
75      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
76      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
77      * Chinese</p> </li> </ul>
78      */
WithAcceptLanguage(const Aws::String & value)79     inline UpdateProductRequest& WithAcceptLanguage(const Aws::String& value) { SetAcceptLanguage(value); return *this;}
80 
81     /**
82      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
83      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
84      * Chinese</p> </li> </ul>
85      */
WithAcceptLanguage(Aws::String && value)86     inline UpdateProductRequest& WithAcceptLanguage(Aws::String&& value) { SetAcceptLanguage(std::move(value)); return *this;}
87 
88     /**
89      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
90      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
91      * Chinese</p> </li> </ul>
92      */
WithAcceptLanguage(const char * value)93     inline UpdateProductRequest& WithAcceptLanguage(const char* value) { SetAcceptLanguage(value); return *this;}
94 
95 
96     /**
97      * <p>The product identifier.</p>
98      */
GetId()99     inline const Aws::String& GetId() const{ return m_id; }
100 
101     /**
102      * <p>The product identifier.</p>
103      */
IdHasBeenSet()104     inline bool IdHasBeenSet() const { return m_idHasBeenSet; }
105 
106     /**
107      * <p>The product identifier.</p>
108      */
SetId(const Aws::String & value)109     inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; }
110 
111     /**
112      * <p>The product identifier.</p>
113      */
SetId(Aws::String && value)114     inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); }
115 
116     /**
117      * <p>The product identifier.</p>
118      */
SetId(const char * value)119     inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); }
120 
121     /**
122      * <p>The product identifier.</p>
123      */
WithId(const Aws::String & value)124     inline UpdateProductRequest& WithId(const Aws::String& value) { SetId(value); return *this;}
125 
126     /**
127      * <p>The product identifier.</p>
128      */
WithId(Aws::String && value)129     inline UpdateProductRequest& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;}
130 
131     /**
132      * <p>The product identifier.</p>
133      */
WithId(const char * value)134     inline UpdateProductRequest& WithId(const char* value) { SetId(value); return *this;}
135 
136 
137     /**
138      * <p>The updated product name.</p>
139      */
GetName()140     inline const Aws::String& GetName() const{ return m_name; }
141 
142     /**
143      * <p>The updated product name.</p>
144      */
NameHasBeenSet()145     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
146 
147     /**
148      * <p>The updated product name.</p>
149      */
SetName(const Aws::String & value)150     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
151 
152     /**
153      * <p>The updated product name.</p>
154      */
SetName(Aws::String && value)155     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
156 
157     /**
158      * <p>The updated product name.</p>
159      */
SetName(const char * value)160     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
161 
162     /**
163      * <p>The updated product name.</p>
164      */
WithName(const Aws::String & value)165     inline UpdateProductRequest& WithName(const Aws::String& value) { SetName(value); return *this;}
166 
167     /**
168      * <p>The updated product name.</p>
169      */
WithName(Aws::String && value)170     inline UpdateProductRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
171 
172     /**
173      * <p>The updated product name.</p>
174      */
WithName(const char * value)175     inline UpdateProductRequest& WithName(const char* value) { SetName(value); return *this;}
176 
177 
178     /**
179      * <p>The updated owner of the product.</p>
180      */
GetOwner()181     inline const Aws::String& GetOwner() const{ return m_owner; }
182 
183     /**
184      * <p>The updated owner of the product.</p>
185      */
OwnerHasBeenSet()186     inline bool OwnerHasBeenSet() const { return m_ownerHasBeenSet; }
187 
188     /**
189      * <p>The updated owner of the product.</p>
190      */
SetOwner(const Aws::String & value)191     inline void SetOwner(const Aws::String& value) { m_ownerHasBeenSet = true; m_owner = value; }
192 
193     /**
194      * <p>The updated owner of the product.</p>
195      */
SetOwner(Aws::String && value)196     inline void SetOwner(Aws::String&& value) { m_ownerHasBeenSet = true; m_owner = std::move(value); }
197 
198     /**
199      * <p>The updated owner of the product.</p>
200      */
SetOwner(const char * value)201     inline void SetOwner(const char* value) { m_ownerHasBeenSet = true; m_owner.assign(value); }
202 
203     /**
204      * <p>The updated owner of the product.</p>
205      */
WithOwner(const Aws::String & value)206     inline UpdateProductRequest& WithOwner(const Aws::String& value) { SetOwner(value); return *this;}
207 
208     /**
209      * <p>The updated owner of the product.</p>
210      */
WithOwner(Aws::String && value)211     inline UpdateProductRequest& WithOwner(Aws::String&& value) { SetOwner(std::move(value)); return *this;}
212 
213     /**
214      * <p>The updated owner of the product.</p>
215      */
WithOwner(const char * value)216     inline UpdateProductRequest& WithOwner(const char* value) { SetOwner(value); return *this;}
217 
218 
219     /**
220      * <p>The updated description of the product.</p>
221      */
GetDescription()222     inline const Aws::String& GetDescription() const{ return m_description; }
223 
224     /**
225      * <p>The updated description of the product.</p>
226      */
DescriptionHasBeenSet()227     inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
228 
229     /**
230      * <p>The updated description of the product.</p>
231      */
SetDescription(const Aws::String & value)232     inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; }
233 
234     /**
235      * <p>The updated description of the product.</p>
236      */
SetDescription(Aws::String && value)237     inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); }
238 
239     /**
240      * <p>The updated description of the product.</p>
241      */
SetDescription(const char * value)242     inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); }
243 
244     /**
245      * <p>The updated description of the product.</p>
246      */
WithDescription(const Aws::String & value)247     inline UpdateProductRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;}
248 
249     /**
250      * <p>The updated description of the product.</p>
251      */
WithDescription(Aws::String && value)252     inline UpdateProductRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;}
253 
254     /**
255      * <p>The updated description of the product.</p>
256      */
WithDescription(const char * value)257     inline UpdateProductRequest& WithDescription(const char* value) { SetDescription(value); return *this;}
258 
259 
260     /**
261      * <p>The updated distributor of the product.</p>
262      */
GetDistributor()263     inline const Aws::String& GetDistributor() const{ return m_distributor; }
264 
265     /**
266      * <p>The updated distributor of the product.</p>
267      */
DistributorHasBeenSet()268     inline bool DistributorHasBeenSet() const { return m_distributorHasBeenSet; }
269 
270     /**
271      * <p>The updated distributor of the product.</p>
272      */
SetDistributor(const Aws::String & value)273     inline void SetDistributor(const Aws::String& value) { m_distributorHasBeenSet = true; m_distributor = value; }
274 
275     /**
276      * <p>The updated distributor of the product.</p>
277      */
SetDistributor(Aws::String && value)278     inline void SetDistributor(Aws::String&& value) { m_distributorHasBeenSet = true; m_distributor = std::move(value); }
279 
280     /**
281      * <p>The updated distributor of the product.</p>
282      */
SetDistributor(const char * value)283     inline void SetDistributor(const char* value) { m_distributorHasBeenSet = true; m_distributor.assign(value); }
284 
285     /**
286      * <p>The updated distributor of the product.</p>
287      */
WithDistributor(const Aws::String & value)288     inline UpdateProductRequest& WithDistributor(const Aws::String& value) { SetDistributor(value); return *this;}
289 
290     /**
291      * <p>The updated distributor of the product.</p>
292      */
WithDistributor(Aws::String && value)293     inline UpdateProductRequest& WithDistributor(Aws::String&& value) { SetDistributor(std::move(value)); return *this;}
294 
295     /**
296      * <p>The updated distributor of the product.</p>
297      */
WithDistributor(const char * value)298     inline UpdateProductRequest& WithDistributor(const char* value) { SetDistributor(value); return *this;}
299 
300 
301     /**
302      * <p>The updated support description for the product.</p>
303      */
GetSupportDescription()304     inline const Aws::String& GetSupportDescription() const{ return m_supportDescription; }
305 
306     /**
307      * <p>The updated support description for the product.</p>
308      */
SupportDescriptionHasBeenSet()309     inline bool SupportDescriptionHasBeenSet() const { return m_supportDescriptionHasBeenSet; }
310 
311     /**
312      * <p>The updated support description for the product.</p>
313      */
SetSupportDescription(const Aws::String & value)314     inline void SetSupportDescription(const Aws::String& value) { m_supportDescriptionHasBeenSet = true; m_supportDescription = value; }
315 
316     /**
317      * <p>The updated support description for the product.</p>
318      */
SetSupportDescription(Aws::String && value)319     inline void SetSupportDescription(Aws::String&& value) { m_supportDescriptionHasBeenSet = true; m_supportDescription = std::move(value); }
320 
321     /**
322      * <p>The updated support description for the product.</p>
323      */
SetSupportDescription(const char * value)324     inline void SetSupportDescription(const char* value) { m_supportDescriptionHasBeenSet = true; m_supportDescription.assign(value); }
325 
326     /**
327      * <p>The updated support description for the product.</p>
328      */
WithSupportDescription(const Aws::String & value)329     inline UpdateProductRequest& WithSupportDescription(const Aws::String& value) { SetSupportDescription(value); return *this;}
330 
331     /**
332      * <p>The updated support description for the product.</p>
333      */
WithSupportDescription(Aws::String && value)334     inline UpdateProductRequest& WithSupportDescription(Aws::String&& value) { SetSupportDescription(std::move(value)); return *this;}
335 
336     /**
337      * <p>The updated support description for the product.</p>
338      */
WithSupportDescription(const char * value)339     inline UpdateProductRequest& WithSupportDescription(const char* value) { SetSupportDescription(value); return *this;}
340 
341 
342     /**
343      * <p>The updated support email for the product.</p>
344      */
GetSupportEmail()345     inline const Aws::String& GetSupportEmail() const{ return m_supportEmail; }
346 
347     /**
348      * <p>The updated support email for the product.</p>
349      */
SupportEmailHasBeenSet()350     inline bool SupportEmailHasBeenSet() const { return m_supportEmailHasBeenSet; }
351 
352     /**
353      * <p>The updated support email for the product.</p>
354      */
SetSupportEmail(const Aws::String & value)355     inline void SetSupportEmail(const Aws::String& value) { m_supportEmailHasBeenSet = true; m_supportEmail = value; }
356 
357     /**
358      * <p>The updated support email for the product.</p>
359      */
SetSupportEmail(Aws::String && value)360     inline void SetSupportEmail(Aws::String&& value) { m_supportEmailHasBeenSet = true; m_supportEmail = std::move(value); }
361 
362     /**
363      * <p>The updated support email for the product.</p>
364      */
SetSupportEmail(const char * value)365     inline void SetSupportEmail(const char* value) { m_supportEmailHasBeenSet = true; m_supportEmail.assign(value); }
366 
367     /**
368      * <p>The updated support email for the product.</p>
369      */
WithSupportEmail(const Aws::String & value)370     inline UpdateProductRequest& WithSupportEmail(const Aws::String& value) { SetSupportEmail(value); return *this;}
371 
372     /**
373      * <p>The updated support email for the product.</p>
374      */
WithSupportEmail(Aws::String && value)375     inline UpdateProductRequest& WithSupportEmail(Aws::String&& value) { SetSupportEmail(std::move(value)); return *this;}
376 
377     /**
378      * <p>The updated support email for the product.</p>
379      */
WithSupportEmail(const char * value)380     inline UpdateProductRequest& WithSupportEmail(const char* value) { SetSupportEmail(value); return *this;}
381 
382 
383     /**
384      * <p>The updated support URL for the product.</p>
385      */
GetSupportUrl()386     inline const Aws::String& GetSupportUrl() const{ return m_supportUrl; }
387 
388     /**
389      * <p>The updated support URL for the product.</p>
390      */
SupportUrlHasBeenSet()391     inline bool SupportUrlHasBeenSet() const { return m_supportUrlHasBeenSet; }
392 
393     /**
394      * <p>The updated support URL for the product.</p>
395      */
SetSupportUrl(const Aws::String & value)396     inline void SetSupportUrl(const Aws::String& value) { m_supportUrlHasBeenSet = true; m_supportUrl = value; }
397 
398     /**
399      * <p>The updated support URL for the product.</p>
400      */
SetSupportUrl(Aws::String && value)401     inline void SetSupportUrl(Aws::String&& value) { m_supportUrlHasBeenSet = true; m_supportUrl = std::move(value); }
402 
403     /**
404      * <p>The updated support URL for the product.</p>
405      */
SetSupportUrl(const char * value)406     inline void SetSupportUrl(const char* value) { m_supportUrlHasBeenSet = true; m_supportUrl.assign(value); }
407 
408     /**
409      * <p>The updated support URL for the product.</p>
410      */
WithSupportUrl(const Aws::String & value)411     inline UpdateProductRequest& WithSupportUrl(const Aws::String& value) { SetSupportUrl(value); return *this;}
412 
413     /**
414      * <p>The updated support URL for the product.</p>
415      */
WithSupportUrl(Aws::String && value)416     inline UpdateProductRequest& WithSupportUrl(Aws::String&& value) { SetSupportUrl(std::move(value)); return *this;}
417 
418     /**
419      * <p>The updated support URL for the product.</p>
420      */
WithSupportUrl(const char * value)421     inline UpdateProductRequest& WithSupportUrl(const char* value) { SetSupportUrl(value); return *this;}
422 
423 
424     /**
425      * <p>The tags to add to the product.</p>
426      */
GetAddTags()427     inline const Aws::Vector<Tag>& GetAddTags() const{ return m_addTags; }
428 
429     /**
430      * <p>The tags to add to the product.</p>
431      */
AddTagsHasBeenSet()432     inline bool AddTagsHasBeenSet() const { return m_addTagsHasBeenSet; }
433 
434     /**
435      * <p>The tags to add to the product.</p>
436      */
SetAddTags(const Aws::Vector<Tag> & value)437     inline void SetAddTags(const Aws::Vector<Tag>& value) { m_addTagsHasBeenSet = true; m_addTags = value; }
438 
439     /**
440      * <p>The tags to add to the product.</p>
441      */
SetAddTags(Aws::Vector<Tag> && value)442     inline void SetAddTags(Aws::Vector<Tag>&& value) { m_addTagsHasBeenSet = true; m_addTags = std::move(value); }
443 
444     /**
445      * <p>The tags to add to the product.</p>
446      */
WithAddTags(const Aws::Vector<Tag> & value)447     inline UpdateProductRequest& WithAddTags(const Aws::Vector<Tag>& value) { SetAddTags(value); return *this;}
448 
449     /**
450      * <p>The tags to add to the product.</p>
451      */
WithAddTags(Aws::Vector<Tag> && value)452     inline UpdateProductRequest& WithAddTags(Aws::Vector<Tag>&& value) { SetAddTags(std::move(value)); return *this;}
453 
454     /**
455      * <p>The tags to add to the product.</p>
456      */
AddAddTags(const Tag & value)457     inline UpdateProductRequest& AddAddTags(const Tag& value) { m_addTagsHasBeenSet = true; m_addTags.push_back(value); return *this; }
458 
459     /**
460      * <p>The tags to add to the product.</p>
461      */
AddAddTags(Tag && value)462     inline UpdateProductRequest& AddAddTags(Tag&& value) { m_addTagsHasBeenSet = true; m_addTags.push_back(std::move(value)); return *this; }
463 
464 
465     /**
466      * <p>The tags to remove from the product.</p>
467      */
GetRemoveTags()468     inline const Aws::Vector<Aws::String>& GetRemoveTags() const{ return m_removeTags; }
469 
470     /**
471      * <p>The tags to remove from the product.</p>
472      */
RemoveTagsHasBeenSet()473     inline bool RemoveTagsHasBeenSet() const { return m_removeTagsHasBeenSet; }
474 
475     /**
476      * <p>The tags to remove from the product.</p>
477      */
SetRemoveTags(const Aws::Vector<Aws::String> & value)478     inline void SetRemoveTags(const Aws::Vector<Aws::String>& value) { m_removeTagsHasBeenSet = true; m_removeTags = value; }
479 
480     /**
481      * <p>The tags to remove from the product.</p>
482      */
SetRemoveTags(Aws::Vector<Aws::String> && value)483     inline void SetRemoveTags(Aws::Vector<Aws::String>&& value) { m_removeTagsHasBeenSet = true; m_removeTags = std::move(value); }
484 
485     /**
486      * <p>The tags to remove from the product.</p>
487      */
WithRemoveTags(const Aws::Vector<Aws::String> & value)488     inline UpdateProductRequest& WithRemoveTags(const Aws::Vector<Aws::String>& value) { SetRemoveTags(value); return *this;}
489 
490     /**
491      * <p>The tags to remove from the product.</p>
492      */
WithRemoveTags(Aws::Vector<Aws::String> && value)493     inline UpdateProductRequest& WithRemoveTags(Aws::Vector<Aws::String>&& value) { SetRemoveTags(std::move(value)); return *this;}
494 
495     /**
496      * <p>The tags to remove from the product.</p>
497      */
AddRemoveTags(const Aws::String & value)498     inline UpdateProductRequest& AddRemoveTags(const Aws::String& value) { m_removeTagsHasBeenSet = true; m_removeTags.push_back(value); return *this; }
499 
500     /**
501      * <p>The tags to remove from the product.</p>
502      */
AddRemoveTags(Aws::String && value)503     inline UpdateProductRequest& AddRemoveTags(Aws::String&& value) { m_removeTagsHasBeenSet = true; m_removeTags.push_back(std::move(value)); return *this; }
504 
505     /**
506      * <p>The tags to remove from the product.</p>
507      */
AddRemoveTags(const char * value)508     inline UpdateProductRequest& AddRemoveTags(const char* value) { m_removeTagsHasBeenSet = true; m_removeTags.push_back(value); return *this; }
509 
510   private:
511 
512     Aws::String m_acceptLanguage;
513     bool m_acceptLanguageHasBeenSet;
514 
515     Aws::String m_id;
516     bool m_idHasBeenSet;
517 
518     Aws::String m_name;
519     bool m_nameHasBeenSet;
520 
521     Aws::String m_owner;
522     bool m_ownerHasBeenSet;
523 
524     Aws::String m_description;
525     bool m_descriptionHasBeenSet;
526 
527     Aws::String m_distributor;
528     bool m_distributorHasBeenSet;
529 
530     Aws::String m_supportDescription;
531     bool m_supportDescriptionHasBeenSet;
532 
533     Aws::String m_supportEmail;
534     bool m_supportEmailHasBeenSet;
535 
536     Aws::String m_supportUrl;
537     bool m_supportUrlHasBeenSet;
538 
539     Aws::Vector<Tag> m_addTags;
540     bool m_addTagsHasBeenSet;
541 
542     Aws::Vector<Aws::String> m_removeTags;
543     bool m_removeTagsHasBeenSet;
544   };
545 
546 } // namespace Model
547 } // namespace ServiceCatalog
548 } // namespace Aws
549