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 <utility>
11 #include <aws/core/utils/UUID.h>
12 
13 namespace Aws
14 {
15 namespace ServiceCatalog
16 {
17 namespace Model
18 {
19 
20   /**
21    */
22   class AWS_SERVICECATALOG_API TerminateProvisionedProductRequest : public ServiceCatalogRequest
23   {
24   public:
25     TerminateProvisionedProductRequest();
26 
27     // Service request name is the Operation name which will send this request out,
28     // each operation should has unique request name, so that we can get operation's name from this request.
29     // Note: this is not true for response, multiple operations may have the same response name,
30     // so we can not get operation's name from response.
GetServiceRequestName()31     inline virtual const char* GetServiceRequestName() const override { return "TerminateProvisionedProduct"; }
32 
33     Aws::String SerializePayload() const override;
34 
35     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
36 
37 
38     /**
39      * <p>The name of the provisioned product. You cannot specify both
40      * <code>ProvisionedProductName</code> and <code>ProvisionedProductId</code>.</p>
41      */
GetProvisionedProductName()42     inline const Aws::String& GetProvisionedProductName() const{ return m_provisionedProductName; }
43 
44     /**
45      * <p>The name of the provisioned product. You cannot specify both
46      * <code>ProvisionedProductName</code> and <code>ProvisionedProductId</code>.</p>
47      */
ProvisionedProductNameHasBeenSet()48     inline bool ProvisionedProductNameHasBeenSet() const { return m_provisionedProductNameHasBeenSet; }
49 
50     /**
51      * <p>The name of the provisioned product. You cannot specify both
52      * <code>ProvisionedProductName</code> and <code>ProvisionedProductId</code>.</p>
53      */
SetProvisionedProductName(const Aws::String & value)54     inline void SetProvisionedProductName(const Aws::String& value) { m_provisionedProductNameHasBeenSet = true; m_provisionedProductName = value; }
55 
56     /**
57      * <p>The name of the provisioned product. You cannot specify both
58      * <code>ProvisionedProductName</code> and <code>ProvisionedProductId</code>.</p>
59      */
SetProvisionedProductName(Aws::String && value)60     inline void SetProvisionedProductName(Aws::String&& value) { m_provisionedProductNameHasBeenSet = true; m_provisionedProductName = std::move(value); }
61 
62     /**
63      * <p>The name of the provisioned product. You cannot specify both
64      * <code>ProvisionedProductName</code> and <code>ProvisionedProductId</code>.</p>
65      */
SetProvisionedProductName(const char * value)66     inline void SetProvisionedProductName(const char* value) { m_provisionedProductNameHasBeenSet = true; m_provisionedProductName.assign(value); }
67 
68     /**
69      * <p>The name of the provisioned product. You cannot specify both
70      * <code>ProvisionedProductName</code> and <code>ProvisionedProductId</code>.</p>
71      */
WithProvisionedProductName(const Aws::String & value)72     inline TerminateProvisionedProductRequest& WithProvisionedProductName(const Aws::String& value) { SetProvisionedProductName(value); return *this;}
73 
74     /**
75      * <p>The name of the provisioned product. You cannot specify both
76      * <code>ProvisionedProductName</code> and <code>ProvisionedProductId</code>.</p>
77      */
WithProvisionedProductName(Aws::String && value)78     inline TerminateProvisionedProductRequest& WithProvisionedProductName(Aws::String&& value) { SetProvisionedProductName(std::move(value)); return *this;}
79 
80     /**
81      * <p>The name of the provisioned product. You cannot specify both
82      * <code>ProvisionedProductName</code> and <code>ProvisionedProductId</code>.</p>
83      */
WithProvisionedProductName(const char * value)84     inline TerminateProvisionedProductRequest& WithProvisionedProductName(const char* value) { SetProvisionedProductName(value); return *this;}
85 
86 
87     /**
88      * <p>The identifier of the provisioned product. You cannot specify both
89      * <code>ProvisionedProductName</code> and <code>ProvisionedProductId</code>.</p>
90      */
GetProvisionedProductId()91     inline const Aws::String& GetProvisionedProductId() const{ return m_provisionedProductId; }
92 
93     /**
94      * <p>The identifier of the provisioned product. You cannot specify both
95      * <code>ProvisionedProductName</code> and <code>ProvisionedProductId</code>.</p>
96      */
ProvisionedProductIdHasBeenSet()97     inline bool ProvisionedProductIdHasBeenSet() const { return m_provisionedProductIdHasBeenSet; }
98 
99     /**
100      * <p>The identifier of the provisioned product. You cannot specify both
101      * <code>ProvisionedProductName</code> and <code>ProvisionedProductId</code>.</p>
102      */
SetProvisionedProductId(const Aws::String & value)103     inline void SetProvisionedProductId(const Aws::String& value) { m_provisionedProductIdHasBeenSet = true; m_provisionedProductId = value; }
104 
105     /**
106      * <p>The identifier of the provisioned product. You cannot specify both
107      * <code>ProvisionedProductName</code> and <code>ProvisionedProductId</code>.</p>
108      */
SetProvisionedProductId(Aws::String && value)109     inline void SetProvisionedProductId(Aws::String&& value) { m_provisionedProductIdHasBeenSet = true; m_provisionedProductId = std::move(value); }
110 
111     /**
112      * <p>The identifier of the provisioned product. You cannot specify both
113      * <code>ProvisionedProductName</code> and <code>ProvisionedProductId</code>.</p>
114      */
SetProvisionedProductId(const char * value)115     inline void SetProvisionedProductId(const char* value) { m_provisionedProductIdHasBeenSet = true; m_provisionedProductId.assign(value); }
116 
117     /**
118      * <p>The identifier of the provisioned product. You cannot specify both
119      * <code>ProvisionedProductName</code> and <code>ProvisionedProductId</code>.</p>
120      */
WithProvisionedProductId(const Aws::String & value)121     inline TerminateProvisionedProductRequest& WithProvisionedProductId(const Aws::String& value) { SetProvisionedProductId(value); return *this;}
122 
123     /**
124      * <p>The identifier of the provisioned product. You cannot specify both
125      * <code>ProvisionedProductName</code> and <code>ProvisionedProductId</code>.</p>
126      */
WithProvisionedProductId(Aws::String && value)127     inline TerminateProvisionedProductRequest& WithProvisionedProductId(Aws::String&& value) { SetProvisionedProductId(std::move(value)); return *this;}
128 
129     /**
130      * <p>The identifier of the provisioned product. You cannot specify both
131      * <code>ProvisionedProductName</code> and <code>ProvisionedProductId</code>.</p>
132      */
WithProvisionedProductId(const char * value)133     inline TerminateProvisionedProductRequest& WithProvisionedProductId(const char* value) { SetProvisionedProductId(value); return *this;}
134 
135 
136     /**
137      * <p>An idempotency token that uniquely identifies the termination request. This
138      * token is only valid during the termination process. After the provisioned
139      * product is terminated, subsequent requests to terminate the same provisioned
140      * product always return <b>ResourceNotFound</b>.</p>
141      */
GetTerminateToken()142     inline const Aws::String& GetTerminateToken() const{ return m_terminateToken; }
143 
144     /**
145      * <p>An idempotency token that uniquely identifies the termination request. This
146      * token is only valid during the termination process. After the provisioned
147      * product is terminated, subsequent requests to terminate the same provisioned
148      * product always return <b>ResourceNotFound</b>.</p>
149      */
TerminateTokenHasBeenSet()150     inline bool TerminateTokenHasBeenSet() const { return m_terminateTokenHasBeenSet; }
151 
152     /**
153      * <p>An idempotency token that uniquely identifies the termination request. This
154      * token is only valid during the termination process. After the provisioned
155      * product is terminated, subsequent requests to terminate the same provisioned
156      * product always return <b>ResourceNotFound</b>.</p>
157      */
SetTerminateToken(const Aws::String & value)158     inline void SetTerminateToken(const Aws::String& value) { m_terminateTokenHasBeenSet = true; m_terminateToken = value; }
159 
160     /**
161      * <p>An idempotency token that uniquely identifies the termination request. This
162      * token is only valid during the termination process. After the provisioned
163      * product is terminated, subsequent requests to terminate the same provisioned
164      * product always return <b>ResourceNotFound</b>.</p>
165      */
SetTerminateToken(Aws::String && value)166     inline void SetTerminateToken(Aws::String&& value) { m_terminateTokenHasBeenSet = true; m_terminateToken = std::move(value); }
167 
168     /**
169      * <p>An idempotency token that uniquely identifies the termination request. This
170      * token is only valid during the termination process. After the provisioned
171      * product is terminated, subsequent requests to terminate the same provisioned
172      * product always return <b>ResourceNotFound</b>.</p>
173      */
SetTerminateToken(const char * value)174     inline void SetTerminateToken(const char* value) { m_terminateTokenHasBeenSet = true; m_terminateToken.assign(value); }
175 
176     /**
177      * <p>An idempotency token that uniquely identifies the termination request. This
178      * token is only valid during the termination process. After the provisioned
179      * product is terminated, subsequent requests to terminate the same provisioned
180      * product always return <b>ResourceNotFound</b>.</p>
181      */
WithTerminateToken(const Aws::String & value)182     inline TerminateProvisionedProductRequest& WithTerminateToken(const Aws::String& value) { SetTerminateToken(value); return *this;}
183 
184     /**
185      * <p>An idempotency token that uniquely identifies the termination request. This
186      * token is only valid during the termination process. After the provisioned
187      * product is terminated, subsequent requests to terminate the same provisioned
188      * product always return <b>ResourceNotFound</b>.</p>
189      */
WithTerminateToken(Aws::String && value)190     inline TerminateProvisionedProductRequest& WithTerminateToken(Aws::String&& value) { SetTerminateToken(std::move(value)); return *this;}
191 
192     /**
193      * <p>An idempotency token that uniquely identifies the termination request. This
194      * token is only valid during the termination process. After the provisioned
195      * product is terminated, subsequent requests to terminate the same provisioned
196      * product always return <b>ResourceNotFound</b>.</p>
197      */
WithTerminateToken(const char * value)198     inline TerminateProvisionedProductRequest& WithTerminateToken(const char* value) { SetTerminateToken(value); return *this;}
199 
200 
201     /**
202      * <p>If set to true, AWS Service Catalog stops managing the specified provisioned
203      * product even if it cannot delete the underlying resources.</p>
204      */
GetIgnoreErrors()205     inline bool GetIgnoreErrors() const{ return m_ignoreErrors; }
206 
207     /**
208      * <p>If set to true, AWS Service Catalog stops managing the specified provisioned
209      * product even if it cannot delete the underlying resources.</p>
210      */
IgnoreErrorsHasBeenSet()211     inline bool IgnoreErrorsHasBeenSet() const { return m_ignoreErrorsHasBeenSet; }
212 
213     /**
214      * <p>If set to true, AWS Service Catalog stops managing the specified provisioned
215      * product even if it cannot delete the underlying resources.</p>
216      */
SetIgnoreErrors(bool value)217     inline void SetIgnoreErrors(bool value) { m_ignoreErrorsHasBeenSet = true; m_ignoreErrors = value; }
218 
219     /**
220      * <p>If set to true, AWS Service Catalog stops managing the specified provisioned
221      * product even if it cannot delete the underlying resources.</p>
222      */
WithIgnoreErrors(bool value)223     inline TerminateProvisionedProductRequest& WithIgnoreErrors(bool value) { SetIgnoreErrors(value); return *this;}
224 
225 
226     /**
227      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
228      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
229      * Chinese</p> </li> </ul>
230      */
GetAcceptLanguage()231     inline const Aws::String& GetAcceptLanguage() const{ return m_acceptLanguage; }
232 
233     /**
234      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
235      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
236      * Chinese</p> </li> </ul>
237      */
AcceptLanguageHasBeenSet()238     inline bool AcceptLanguageHasBeenSet() const { return m_acceptLanguageHasBeenSet; }
239 
240     /**
241      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
242      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
243      * Chinese</p> </li> </ul>
244      */
SetAcceptLanguage(const Aws::String & value)245     inline void SetAcceptLanguage(const Aws::String& value) { m_acceptLanguageHasBeenSet = true; m_acceptLanguage = value; }
246 
247     /**
248      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
249      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
250      * Chinese</p> </li> </ul>
251      */
SetAcceptLanguage(Aws::String && value)252     inline void SetAcceptLanguage(Aws::String&& value) { m_acceptLanguageHasBeenSet = true; m_acceptLanguage = std::move(value); }
253 
254     /**
255      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
256      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
257      * Chinese</p> </li> </ul>
258      */
SetAcceptLanguage(const char * value)259     inline void SetAcceptLanguage(const char* value) { m_acceptLanguageHasBeenSet = true; m_acceptLanguage.assign(value); }
260 
261     /**
262      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
263      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
264      * Chinese</p> </li> </ul>
265      */
WithAcceptLanguage(const Aws::String & value)266     inline TerminateProvisionedProductRequest& WithAcceptLanguage(const Aws::String& value) { SetAcceptLanguage(value); return *this;}
267 
268     /**
269      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
270      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
271      * Chinese</p> </li> </ul>
272      */
WithAcceptLanguage(Aws::String && value)273     inline TerminateProvisionedProductRequest& WithAcceptLanguage(Aws::String&& value) { SetAcceptLanguage(std::move(value)); return *this;}
274 
275     /**
276      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
277      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
278      * Chinese</p> </li> </ul>
279      */
WithAcceptLanguage(const char * value)280     inline TerminateProvisionedProductRequest& WithAcceptLanguage(const char* value) { SetAcceptLanguage(value); return *this;}
281 
282 
283     /**
284      * <p>When this boolean parameter is set to true, the
285      * <code>TerminateProvisionedProduct</code> API deletes the Service Catalog
286      * provisioned product. However, it does not remove the CloudFormation stack, stack
287      * set, or the underlying resources of the deleted provisioned product. The default
288      * value is false.</p>
289      */
GetRetainPhysicalResources()290     inline bool GetRetainPhysicalResources() const{ return m_retainPhysicalResources; }
291 
292     /**
293      * <p>When this boolean parameter is set to true, the
294      * <code>TerminateProvisionedProduct</code> API deletes the Service Catalog
295      * provisioned product. However, it does not remove the CloudFormation stack, stack
296      * set, or the underlying resources of the deleted provisioned product. The default
297      * value is false.</p>
298      */
RetainPhysicalResourcesHasBeenSet()299     inline bool RetainPhysicalResourcesHasBeenSet() const { return m_retainPhysicalResourcesHasBeenSet; }
300 
301     /**
302      * <p>When this boolean parameter is set to true, the
303      * <code>TerminateProvisionedProduct</code> API deletes the Service Catalog
304      * provisioned product. However, it does not remove the CloudFormation stack, stack
305      * set, or the underlying resources of the deleted provisioned product. The default
306      * value is false.</p>
307      */
SetRetainPhysicalResources(bool value)308     inline void SetRetainPhysicalResources(bool value) { m_retainPhysicalResourcesHasBeenSet = true; m_retainPhysicalResources = value; }
309 
310     /**
311      * <p>When this boolean parameter is set to true, the
312      * <code>TerminateProvisionedProduct</code> API deletes the Service Catalog
313      * provisioned product. However, it does not remove the CloudFormation stack, stack
314      * set, or the underlying resources of the deleted provisioned product. The default
315      * value is false.</p>
316      */
WithRetainPhysicalResources(bool value)317     inline TerminateProvisionedProductRequest& WithRetainPhysicalResources(bool value) { SetRetainPhysicalResources(value); return *this;}
318 
319   private:
320 
321     Aws::String m_provisionedProductName;
322     bool m_provisionedProductNameHasBeenSet;
323 
324     Aws::String m_provisionedProductId;
325     bool m_provisionedProductIdHasBeenSet;
326 
327     Aws::String m_terminateToken;
328     bool m_terminateTokenHasBeenSet;
329 
330     bool m_ignoreErrors;
331     bool m_ignoreErrorsHasBeenSet;
332 
333     Aws::String m_acceptLanguage;
334     bool m_acceptLanguageHasBeenSet;
335 
336     bool m_retainPhysicalResources;
337     bool m_retainPhysicalResourcesHasBeenSet;
338   };
339 
340 } // namespace Model
341 } // namespace ServiceCatalog
342 } // namespace Aws
343