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/servicecatalog/model/ProvisionedProductPlanType.h>
11 #include <aws/core/utils/memory/stl/AWSVector.h>
12 #include <aws/servicecatalog/model/UpdateProvisioningParameter.h>
13 #include <aws/servicecatalog/model/Tag.h>
14 #include <utility>
15 #include <aws/core/utils/UUID.h>
16 
17 namespace Aws
18 {
19 namespace ServiceCatalog
20 {
21 namespace Model
22 {
23 
24   /**
25    */
26   class AWS_SERVICECATALOG_API CreateProvisionedProductPlanRequest : public ServiceCatalogRequest
27   {
28   public:
29     CreateProvisionedProductPlanRequest();
30 
31     // Service request name is the Operation name which will send this request out,
32     // each operation should has unique request name, so that we can get operation's name from this request.
33     // Note: this is not true for response, multiple operations may have the same response name,
34     // so we can not get operation's name from response.
GetServiceRequestName()35     inline virtual const char* GetServiceRequestName() const override { return "CreateProvisionedProductPlan"; }
36 
37     Aws::String SerializePayload() const override;
38 
39     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
40 
41 
42     /**
43      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
44      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
45      * Chinese</p> </li> </ul>
46      */
GetAcceptLanguage()47     inline const Aws::String& GetAcceptLanguage() const{ return m_acceptLanguage; }
48 
49     /**
50      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
51      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
52      * Chinese</p> </li> </ul>
53      */
AcceptLanguageHasBeenSet()54     inline bool AcceptLanguageHasBeenSet() const { return m_acceptLanguageHasBeenSet; }
55 
56     /**
57      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
58      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
59      * Chinese</p> </li> </ul>
60      */
SetAcceptLanguage(const Aws::String & value)61     inline void SetAcceptLanguage(const Aws::String& value) { m_acceptLanguageHasBeenSet = true; m_acceptLanguage = value; }
62 
63     /**
64      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
65      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
66      * Chinese</p> </li> </ul>
67      */
SetAcceptLanguage(Aws::String && value)68     inline void SetAcceptLanguage(Aws::String&& value) { m_acceptLanguageHasBeenSet = true; m_acceptLanguage = std::move(value); }
69 
70     /**
71      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
72      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
73      * Chinese</p> </li> </ul>
74      */
SetAcceptLanguage(const char * value)75     inline void SetAcceptLanguage(const char* value) { m_acceptLanguageHasBeenSet = true; m_acceptLanguage.assign(value); }
76 
77     /**
78      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
79      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
80      * Chinese</p> </li> </ul>
81      */
WithAcceptLanguage(const Aws::String & value)82     inline CreateProvisionedProductPlanRequest& WithAcceptLanguage(const Aws::String& value) { SetAcceptLanguage(value); return *this;}
83 
84     /**
85      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
86      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
87      * Chinese</p> </li> </ul>
88      */
WithAcceptLanguage(Aws::String && value)89     inline CreateProvisionedProductPlanRequest& WithAcceptLanguage(Aws::String&& value) { SetAcceptLanguage(std::move(value)); return *this;}
90 
91     /**
92      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
93      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
94      * Chinese</p> </li> </ul>
95      */
WithAcceptLanguage(const char * value)96     inline CreateProvisionedProductPlanRequest& WithAcceptLanguage(const char* value) { SetAcceptLanguage(value); return *this;}
97 
98 
99     /**
100      * <p>The name of the plan.</p>
101      */
GetPlanName()102     inline const Aws::String& GetPlanName() const{ return m_planName; }
103 
104     /**
105      * <p>The name of the plan.</p>
106      */
PlanNameHasBeenSet()107     inline bool PlanNameHasBeenSet() const { return m_planNameHasBeenSet; }
108 
109     /**
110      * <p>The name of the plan.</p>
111      */
SetPlanName(const Aws::String & value)112     inline void SetPlanName(const Aws::String& value) { m_planNameHasBeenSet = true; m_planName = value; }
113 
114     /**
115      * <p>The name of the plan.</p>
116      */
SetPlanName(Aws::String && value)117     inline void SetPlanName(Aws::String&& value) { m_planNameHasBeenSet = true; m_planName = std::move(value); }
118 
119     /**
120      * <p>The name of the plan.</p>
121      */
SetPlanName(const char * value)122     inline void SetPlanName(const char* value) { m_planNameHasBeenSet = true; m_planName.assign(value); }
123 
124     /**
125      * <p>The name of the plan.</p>
126      */
WithPlanName(const Aws::String & value)127     inline CreateProvisionedProductPlanRequest& WithPlanName(const Aws::String& value) { SetPlanName(value); return *this;}
128 
129     /**
130      * <p>The name of the plan.</p>
131      */
WithPlanName(Aws::String && value)132     inline CreateProvisionedProductPlanRequest& WithPlanName(Aws::String&& value) { SetPlanName(std::move(value)); return *this;}
133 
134     /**
135      * <p>The name of the plan.</p>
136      */
WithPlanName(const char * value)137     inline CreateProvisionedProductPlanRequest& WithPlanName(const char* value) { SetPlanName(value); return *this;}
138 
139 
140     /**
141      * <p>The plan type.</p>
142      */
GetPlanType()143     inline const ProvisionedProductPlanType& GetPlanType() const{ return m_planType; }
144 
145     /**
146      * <p>The plan type.</p>
147      */
PlanTypeHasBeenSet()148     inline bool PlanTypeHasBeenSet() const { return m_planTypeHasBeenSet; }
149 
150     /**
151      * <p>The plan type.</p>
152      */
SetPlanType(const ProvisionedProductPlanType & value)153     inline void SetPlanType(const ProvisionedProductPlanType& value) { m_planTypeHasBeenSet = true; m_planType = value; }
154 
155     /**
156      * <p>The plan type.</p>
157      */
SetPlanType(ProvisionedProductPlanType && value)158     inline void SetPlanType(ProvisionedProductPlanType&& value) { m_planTypeHasBeenSet = true; m_planType = std::move(value); }
159 
160     /**
161      * <p>The plan type.</p>
162      */
WithPlanType(const ProvisionedProductPlanType & value)163     inline CreateProvisionedProductPlanRequest& WithPlanType(const ProvisionedProductPlanType& value) { SetPlanType(value); return *this;}
164 
165     /**
166      * <p>The plan type.</p>
167      */
WithPlanType(ProvisionedProductPlanType && value)168     inline CreateProvisionedProductPlanRequest& WithPlanType(ProvisionedProductPlanType&& value) { SetPlanType(std::move(value)); return *this;}
169 
170 
171     /**
172      * <p>Passed to CloudFormation. The SNS topic ARNs to which to publish
173      * stack-related events.</p>
174      */
GetNotificationArns()175     inline const Aws::Vector<Aws::String>& GetNotificationArns() const{ return m_notificationArns; }
176 
177     /**
178      * <p>Passed to CloudFormation. The SNS topic ARNs to which to publish
179      * stack-related events.</p>
180      */
NotificationArnsHasBeenSet()181     inline bool NotificationArnsHasBeenSet() const { return m_notificationArnsHasBeenSet; }
182 
183     /**
184      * <p>Passed to CloudFormation. The SNS topic ARNs to which to publish
185      * stack-related events.</p>
186      */
SetNotificationArns(const Aws::Vector<Aws::String> & value)187     inline void SetNotificationArns(const Aws::Vector<Aws::String>& value) { m_notificationArnsHasBeenSet = true; m_notificationArns = value; }
188 
189     /**
190      * <p>Passed to CloudFormation. The SNS topic ARNs to which to publish
191      * stack-related events.</p>
192      */
SetNotificationArns(Aws::Vector<Aws::String> && value)193     inline void SetNotificationArns(Aws::Vector<Aws::String>&& value) { m_notificationArnsHasBeenSet = true; m_notificationArns = std::move(value); }
194 
195     /**
196      * <p>Passed to CloudFormation. The SNS topic ARNs to which to publish
197      * stack-related events.</p>
198      */
WithNotificationArns(const Aws::Vector<Aws::String> & value)199     inline CreateProvisionedProductPlanRequest& WithNotificationArns(const Aws::Vector<Aws::String>& value) { SetNotificationArns(value); return *this;}
200 
201     /**
202      * <p>Passed to CloudFormation. The SNS topic ARNs to which to publish
203      * stack-related events.</p>
204      */
WithNotificationArns(Aws::Vector<Aws::String> && value)205     inline CreateProvisionedProductPlanRequest& WithNotificationArns(Aws::Vector<Aws::String>&& value) { SetNotificationArns(std::move(value)); return *this;}
206 
207     /**
208      * <p>Passed to CloudFormation. The SNS topic ARNs to which to publish
209      * stack-related events.</p>
210      */
AddNotificationArns(const Aws::String & value)211     inline CreateProvisionedProductPlanRequest& AddNotificationArns(const Aws::String& value) { m_notificationArnsHasBeenSet = true; m_notificationArns.push_back(value); return *this; }
212 
213     /**
214      * <p>Passed to CloudFormation. The SNS topic ARNs to which to publish
215      * stack-related events.</p>
216      */
AddNotificationArns(Aws::String && value)217     inline CreateProvisionedProductPlanRequest& AddNotificationArns(Aws::String&& value) { m_notificationArnsHasBeenSet = true; m_notificationArns.push_back(std::move(value)); return *this; }
218 
219     /**
220      * <p>Passed to CloudFormation. The SNS topic ARNs to which to publish
221      * stack-related events.</p>
222      */
AddNotificationArns(const char * value)223     inline CreateProvisionedProductPlanRequest& AddNotificationArns(const char* value) { m_notificationArnsHasBeenSet = true; m_notificationArns.push_back(value); return *this; }
224 
225 
226     /**
227      * <p>The path identifier of the product. This value is optional if the product has
228      * a default path, and required if the product has more than one path. To list the
229      * paths for a product, use <a>ListLaunchPaths</a>.</p>
230      */
GetPathId()231     inline const Aws::String& GetPathId() const{ return m_pathId; }
232 
233     /**
234      * <p>The path identifier of the product. This value is optional if the product has
235      * a default path, and required if the product has more than one path. To list the
236      * paths for a product, use <a>ListLaunchPaths</a>.</p>
237      */
PathIdHasBeenSet()238     inline bool PathIdHasBeenSet() const { return m_pathIdHasBeenSet; }
239 
240     /**
241      * <p>The path identifier of the product. This value is optional if the product has
242      * a default path, and required if the product has more than one path. To list the
243      * paths for a product, use <a>ListLaunchPaths</a>.</p>
244      */
SetPathId(const Aws::String & value)245     inline void SetPathId(const Aws::String& value) { m_pathIdHasBeenSet = true; m_pathId = value; }
246 
247     /**
248      * <p>The path identifier of the product. This value is optional if the product has
249      * a default path, and required if the product has more than one path. To list the
250      * paths for a product, use <a>ListLaunchPaths</a>.</p>
251      */
SetPathId(Aws::String && value)252     inline void SetPathId(Aws::String&& value) { m_pathIdHasBeenSet = true; m_pathId = std::move(value); }
253 
254     /**
255      * <p>The path identifier of the product. This value is optional if the product has
256      * a default path, and required if the product has more than one path. To list the
257      * paths for a product, use <a>ListLaunchPaths</a>.</p>
258      */
SetPathId(const char * value)259     inline void SetPathId(const char* value) { m_pathIdHasBeenSet = true; m_pathId.assign(value); }
260 
261     /**
262      * <p>The path identifier of the product. This value is optional if the product has
263      * a default path, and required if the product has more than one path. To list the
264      * paths for a product, use <a>ListLaunchPaths</a>.</p>
265      */
WithPathId(const Aws::String & value)266     inline CreateProvisionedProductPlanRequest& WithPathId(const Aws::String& value) { SetPathId(value); return *this;}
267 
268     /**
269      * <p>The path identifier of the product. This value is optional if the product has
270      * a default path, and required if the product has more than one path. To list the
271      * paths for a product, use <a>ListLaunchPaths</a>.</p>
272      */
WithPathId(Aws::String && value)273     inline CreateProvisionedProductPlanRequest& WithPathId(Aws::String&& value) { SetPathId(std::move(value)); return *this;}
274 
275     /**
276      * <p>The path identifier of the product. This value is optional if the product has
277      * a default path, and required if the product has more than one path. To list the
278      * paths for a product, use <a>ListLaunchPaths</a>.</p>
279      */
WithPathId(const char * value)280     inline CreateProvisionedProductPlanRequest& WithPathId(const char* value) { SetPathId(value); return *this;}
281 
282 
283     /**
284      * <p>The product identifier.</p>
285      */
GetProductId()286     inline const Aws::String& GetProductId() const{ return m_productId; }
287 
288     /**
289      * <p>The product identifier.</p>
290      */
ProductIdHasBeenSet()291     inline bool ProductIdHasBeenSet() const { return m_productIdHasBeenSet; }
292 
293     /**
294      * <p>The product identifier.</p>
295      */
SetProductId(const Aws::String & value)296     inline void SetProductId(const Aws::String& value) { m_productIdHasBeenSet = true; m_productId = value; }
297 
298     /**
299      * <p>The product identifier.</p>
300      */
SetProductId(Aws::String && value)301     inline void SetProductId(Aws::String&& value) { m_productIdHasBeenSet = true; m_productId = std::move(value); }
302 
303     /**
304      * <p>The product identifier.</p>
305      */
SetProductId(const char * value)306     inline void SetProductId(const char* value) { m_productIdHasBeenSet = true; m_productId.assign(value); }
307 
308     /**
309      * <p>The product identifier.</p>
310      */
WithProductId(const Aws::String & value)311     inline CreateProvisionedProductPlanRequest& WithProductId(const Aws::String& value) { SetProductId(value); return *this;}
312 
313     /**
314      * <p>The product identifier.</p>
315      */
WithProductId(Aws::String && value)316     inline CreateProvisionedProductPlanRequest& WithProductId(Aws::String&& value) { SetProductId(std::move(value)); return *this;}
317 
318     /**
319      * <p>The product identifier.</p>
320      */
WithProductId(const char * value)321     inline CreateProvisionedProductPlanRequest& WithProductId(const char* value) { SetProductId(value); return *this;}
322 
323 
324     /**
325      * <p>A user-friendly name for the provisioned product. This value must be unique
326      * for the AWS account and cannot be updated after the product is provisioned.</p>
327      */
GetProvisionedProductName()328     inline const Aws::String& GetProvisionedProductName() const{ return m_provisionedProductName; }
329 
330     /**
331      * <p>A user-friendly name for the provisioned product. This value must be unique
332      * for the AWS account and cannot be updated after the product is provisioned.</p>
333      */
ProvisionedProductNameHasBeenSet()334     inline bool ProvisionedProductNameHasBeenSet() const { return m_provisionedProductNameHasBeenSet; }
335 
336     /**
337      * <p>A user-friendly name for the provisioned product. This value must be unique
338      * for the AWS account and cannot be updated after the product is provisioned.</p>
339      */
SetProvisionedProductName(const Aws::String & value)340     inline void SetProvisionedProductName(const Aws::String& value) { m_provisionedProductNameHasBeenSet = true; m_provisionedProductName = value; }
341 
342     /**
343      * <p>A user-friendly name for the provisioned product. This value must be unique
344      * for the AWS account and cannot be updated after the product is provisioned.</p>
345      */
SetProvisionedProductName(Aws::String && value)346     inline void SetProvisionedProductName(Aws::String&& value) { m_provisionedProductNameHasBeenSet = true; m_provisionedProductName = std::move(value); }
347 
348     /**
349      * <p>A user-friendly name for the provisioned product. This value must be unique
350      * for the AWS account and cannot be updated after the product is provisioned.</p>
351      */
SetProvisionedProductName(const char * value)352     inline void SetProvisionedProductName(const char* value) { m_provisionedProductNameHasBeenSet = true; m_provisionedProductName.assign(value); }
353 
354     /**
355      * <p>A user-friendly name for the provisioned product. This value must be unique
356      * for the AWS account and cannot be updated after the product is provisioned.</p>
357      */
WithProvisionedProductName(const Aws::String & value)358     inline CreateProvisionedProductPlanRequest& WithProvisionedProductName(const Aws::String& value) { SetProvisionedProductName(value); return *this;}
359 
360     /**
361      * <p>A user-friendly name for the provisioned product. This value must be unique
362      * for the AWS account and cannot be updated after the product is provisioned.</p>
363      */
WithProvisionedProductName(Aws::String && value)364     inline CreateProvisionedProductPlanRequest& WithProvisionedProductName(Aws::String&& value) { SetProvisionedProductName(std::move(value)); return *this;}
365 
366     /**
367      * <p>A user-friendly name for the provisioned product. This value must be unique
368      * for the AWS account and cannot be updated after the product is provisioned.</p>
369      */
WithProvisionedProductName(const char * value)370     inline CreateProvisionedProductPlanRequest& WithProvisionedProductName(const char* value) { SetProvisionedProductName(value); return *this;}
371 
372 
373     /**
374      * <p>The identifier of the provisioning artifact.</p>
375      */
GetProvisioningArtifactId()376     inline const Aws::String& GetProvisioningArtifactId() const{ return m_provisioningArtifactId; }
377 
378     /**
379      * <p>The identifier of the provisioning artifact.</p>
380      */
ProvisioningArtifactIdHasBeenSet()381     inline bool ProvisioningArtifactIdHasBeenSet() const { return m_provisioningArtifactIdHasBeenSet; }
382 
383     /**
384      * <p>The identifier of the provisioning artifact.</p>
385      */
SetProvisioningArtifactId(const Aws::String & value)386     inline void SetProvisioningArtifactId(const Aws::String& value) { m_provisioningArtifactIdHasBeenSet = true; m_provisioningArtifactId = value; }
387 
388     /**
389      * <p>The identifier of the provisioning artifact.</p>
390      */
SetProvisioningArtifactId(Aws::String && value)391     inline void SetProvisioningArtifactId(Aws::String&& value) { m_provisioningArtifactIdHasBeenSet = true; m_provisioningArtifactId = std::move(value); }
392 
393     /**
394      * <p>The identifier of the provisioning artifact.</p>
395      */
SetProvisioningArtifactId(const char * value)396     inline void SetProvisioningArtifactId(const char* value) { m_provisioningArtifactIdHasBeenSet = true; m_provisioningArtifactId.assign(value); }
397 
398     /**
399      * <p>The identifier of the provisioning artifact.</p>
400      */
WithProvisioningArtifactId(const Aws::String & value)401     inline CreateProvisionedProductPlanRequest& WithProvisioningArtifactId(const Aws::String& value) { SetProvisioningArtifactId(value); return *this;}
402 
403     /**
404      * <p>The identifier of the provisioning artifact.</p>
405      */
WithProvisioningArtifactId(Aws::String && value)406     inline CreateProvisionedProductPlanRequest& WithProvisioningArtifactId(Aws::String&& value) { SetProvisioningArtifactId(std::move(value)); return *this;}
407 
408     /**
409      * <p>The identifier of the provisioning artifact.</p>
410      */
WithProvisioningArtifactId(const char * value)411     inline CreateProvisionedProductPlanRequest& WithProvisioningArtifactId(const char* value) { SetProvisioningArtifactId(value); return *this;}
412 
413 
414     /**
415      * <p>Parameters specified by the administrator that are required for provisioning
416      * the product.</p>
417      */
GetProvisioningParameters()418     inline const Aws::Vector<UpdateProvisioningParameter>& GetProvisioningParameters() const{ return m_provisioningParameters; }
419 
420     /**
421      * <p>Parameters specified by the administrator that are required for provisioning
422      * the product.</p>
423      */
ProvisioningParametersHasBeenSet()424     inline bool ProvisioningParametersHasBeenSet() const { return m_provisioningParametersHasBeenSet; }
425 
426     /**
427      * <p>Parameters specified by the administrator that are required for provisioning
428      * the product.</p>
429      */
SetProvisioningParameters(const Aws::Vector<UpdateProvisioningParameter> & value)430     inline void SetProvisioningParameters(const Aws::Vector<UpdateProvisioningParameter>& value) { m_provisioningParametersHasBeenSet = true; m_provisioningParameters = value; }
431 
432     /**
433      * <p>Parameters specified by the administrator that are required for provisioning
434      * the product.</p>
435      */
SetProvisioningParameters(Aws::Vector<UpdateProvisioningParameter> && value)436     inline void SetProvisioningParameters(Aws::Vector<UpdateProvisioningParameter>&& value) { m_provisioningParametersHasBeenSet = true; m_provisioningParameters = std::move(value); }
437 
438     /**
439      * <p>Parameters specified by the administrator that are required for provisioning
440      * the product.</p>
441      */
WithProvisioningParameters(const Aws::Vector<UpdateProvisioningParameter> & value)442     inline CreateProvisionedProductPlanRequest& WithProvisioningParameters(const Aws::Vector<UpdateProvisioningParameter>& value) { SetProvisioningParameters(value); return *this;}
443 
444     /**
445      * <p>Parameters specified by the administrator that are required for provisioning
446      * the product.</p>
447      */
WithProvisioningParameters(Aws::Vector<UpdateProvisioningParameter> && value)448     inline CreateProvisionedProductPlanRequest& WithProvisioningParameters(Aws::Vector<UpdateProvisioningParameter>&& value) { SetProvisioningParameters(std::move(value)); return *this;}
449 
450     /**
451      * <p>Parameters specified by the administrator that are required for provisioning
452      * the product.</p>
453      */
AddProvisioningParameters(const UpdateProvisioningParameter & value)454     inline CreateProvisionedProductPlanRequest& AddProvisioningParameters(const UpdateProvisioningParameter& value) { m_provisioningParametersHasBeenSet = true; m_provisioningParameters.push_back(value); return *this; }
455 
456     /**
457      * <p>Parameters specified by the administrator that are required for provisioning
458      * the product.</p>
459      */
AddProvisioningParameters(UpdateProvisioningParameter && value)460     inline CreateProvisionedProductPlanRequest& AddProvisioningParameters(UpdateProvisioningParameter&& value) { m_provisioningParametersHasBeenSet = true; m_provisioningParameters.push_back(std::move(value)); return *this; }
461 
462 
463     /**
464      * <p>A unique identifier that you provide to ensure idempotency. If multiple
465      * requests differ only by the idempotency token, the same response is returned for
466      * each repeated request.</p>
467      */
GetIdempotencyToken()468     inline const Aws::String& GetIdempotencyToken() const{ return m_idempotencyToken; }
469 
470     /**
471      * <p>A unique identifier that you provide to ensure idempotency. If multiple
472      * requests differ only by the idempotency token, the same response is returned for
473      * each repeated request.</p>
474      */
IdempotencyTokenHasBeenSet()475     inline bool IdempotencyTokenHasBeenSet() const { return m_idempotencyTokenHasBeenSet; }
476 
477     /**
478      * <p>A unique identifier that you provide to ensure idempotency. If multiple
479      * requests differ only by the idempotency token, the same response is returned for
480      * each repeated request.</p>
481      */
SetIdempotencyToken(const Aws::String & value)482     inline void SetIdempotencyToken(const Aws::String& value) { m_idempotencyTokenHasBeenSet = true; m_idempotencyToken = value; }
483 
484     /**
485      * <p>A unique identifier that you provide to ensure idempotency. If multiple
486      * requests differ only by the idempotency token, the same response is returned for
487      * each repeated request.</p>
488      */
SetIdempotencyToken(Aws::String && value)489     inline void SetIdempotencyToken(Aws::String&& value) { m_idempotencyTokenHasBeenSet = true; m_idempotencyToken = std::move(value); }
490 
491     /**
492      * <p>A unique identifier that you provide to ensure idempotency. If multiple
493      * requests differ only by the idempotency token, the same response is returned for
494      * each repeated request.</p>
495      */
SetIdempotencyToken(const char * value)496     inline void SetIdempotencyToken(const char* value) { m_idempotencyTokenHasBeenSet = true; m_idempotencyToken.assign(value); }
497 
498     /**
499      * <p>A unique identifier that you provide to ensure idempotency. If multiple
500      * requests differ only by the idempotency token, the same response is returned for
501      * each repeated request.</p>
502      */
WithIdempotencyToken(const Aws::String & value)503     inline CreateProvisionedProductPlanRequest& WithIdempotencyToken(const Aws::String& value) { SetIdempotencyToken(value); return *this;}
504 
505     /**
506      * <p>A unique identifier that you provide to ensure idempotency. If multiple
507      * requests differ only by the idempotency token, the same response is returned for
508      * each repeated request.</p>
509      */
WithIdempotencyToken(Aws::String && value)510     inline CreateProvisionedProductPlanRequest& WithIdempotencyToken(Aws::String&& value) { SetIdempotencyToken(std::move(value)); return *this;}
511 
512     /**
513      * <p>A unique identifier that you provide to ensure idempotency. If multiple
514      * requests differ only by the idempotency token, the same response is returned for
515      * each repeated request.</p>
516      */
WithIdempotencyToken(const char * value)517     inline CreateProvisionedProductPlanRequest& WithIdempotencyToken(const char* value) { SetIdempotencyToken(value); return *this;}
518 
519 
520     /**
521      * <p>One or more tags.</p> <p>If the plan is for an existing provisioned product,
522      * the product must have a <code>RESOURCE_UPDATE</code> constraint with
523      * <code>TagUpdatesOnProvisionedProduct</code> set to <code>ALLOWED</code> to allow
524      * tag updates.</p>
525      */
GetTags()526     inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; }
527 
528     /**
529      * <p>One or more tags.</p> <p>If the plan is for an existing provisioned product,
530      * the product must have a <code>RESOURCE_UPDATE</code> constraint with
531      * <code>TagUpdatesOnProvisionedProduct</code> set to <code>ALLOWED</code> to allow
532      * tag updates.</p>
533      */
TagsHasBeenSet()534     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
535 
536     /**
537      * <p>One or more tags.</p> <p>If the plan is for an existing provisioned product,
538      * the product must have a <code>RESOURCE_UPDATE</code> constraint with
539      * <code>TagUpdatesOnProvisionedProduct</code> set to <code>ALLOWED</code> to allow
540      * tag updates.</p>
541      */
SetTags(const Aws::Vector<Tag> & value)542     inline void SetTags(const Aws::Vector<Tag>& value) { m_tagsHasBeenSet = true; m_tags = value; }
543 
544     /**
545      * <p>One or more tags.</p> <p>If the plan is for an existing provisioned product,
546      * the product must have a <code>RESOURCE_UPDATE</code> constraint with
547      * <code>TagUpdatesOnProvisionedProduct</code> set to <code>ALLOWED</code> to allow
548      * tag updates.</p>
549      */
SetTags(Aws::Vector<Tag> && value)550     inline void SetTags(Aws::Vector<Tag>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
551 
552     /**
553      * <p>One or more tags.</p> <p>If the plan is for an existing provisioned product,
554      * the product must have a <code>RESOURCE_UPDATE</code> constraint with
555      * <code>TagUpdatesOnProvisionedProduct</code> set to <code>ALLOWED</code> to allow
556      * tag updates.</p>
557      */
WithTags(const Aws::Vector<Tag> & value)558     inline CreateProvisionedProductPlanRequest& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;}
559 
560     /**
561      * <p>One or more tags.</p> <p>If the plan is for an existing provisioned product,
562      * the product must have a <code>RESOURCE_UPDATE</code> constraint with
563      * <code>TagUpdatesOnProvisionedProduct</code> set to <code>ALLOWED</code> to allow
564      * tag updates.</p>
565      */
WithTags(Aws::Vector<Tag> && value)566     inline CreateProvisionedProductPlanRequest& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;}
567 
568     /**
569      * <p>One or more tags.</p> <p>If the plan is for an existing provisioned product,
570      * the product must have a <code>RESOURCE_UPDATE</code> constraint with
571      * <code>TagUpdatesOnProvisionedProduct</code> set to <code>ALLOWED</code> to allow
572      * tag updates.</p>
573      */
AddTags(const Tag & value)574     inline CreateProvisionedProductPlanRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; }
575 
576     /**
577      * <p>One or more tags.</p> <p>If the plan is for an existing provisioned product,
578      * the product must have a <code>RESOURCE_UPDATE</code> constraint with
579      * <code>TagUpdatesOnProvisionedProduct</code> set to <code>ALLOWED</code> to allow
580      * tag updates.</p>
581      */
AddTags(Tag && value)582     inline CreateProvisionedProductPlanRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; }
583 
584   private:
585 
586     Aws::String m_acceptLanguage;
587     bool m_acceptLanguageHasBeenSet;
588 
589     Aws::String m_planName;
590     bool m_planNameHasBeenSet;
591 
592     ProvisionedProductPlanType m_planType;
593     bool m_planTypeHasBeenSet;
594 
595     Aws::Vector<Aws::String> m_notificationArns;
596     bool m_notificationArnsHasBeenSet;
597 
598     Aws::String m_pathId;
599     bool m_pathIdHasBeenSet;
600 
601     Aws::String m_productId;
602     bool m_productIdHasBeenSet;
603 
604     Aws::String m_provisionedProductName;
605     bool m_provisionedProductNameHasBeenSet;
606 
607     Aws::String m_provisioningArtifactId;
608     bool m_provisioningArtifactIdHasBeenSet;
609 
610     Aws::Vector<UpdateProvisioningParameter> m_provisioningParameters;
611     bool m_provisioningParametersHasBeenSet;
612 
613     Aws::String m_idempotencyToken;
614     bool m_idempotencyTokenHasBeenSet;
615 
616     Aws::Vector<Tag> m_tags;
617     bool m_tagsHasBeenSet;
618   };
619 
620 } // namespace Model
621 } // namespace ServiceCatalog
622 } // namespace Aws
623