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/cloudformation/CloudFormation_EXPORTS.h>
8 #include <aws/cloudformation/CloudFormationRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/cloudformation/model/CallAs.h>
12 #include <aws/cloudformation/model/StackInstanceFilter.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace CloudFormation
18 {
19 namespace Model
20 {
21 
22   /**
23    */
24   class AWS_CLOUDFORMATION_API ListStackInstancesRequest : public CloudFormationRequest
25   {
26   public:
27     ListStackInstancesRequest();
28 
29     // Service request name is the Operation name which will send this request out,
30     // each operation should has unique request name, so that we can get operation's name from this request.
31     // Note: this is not true for response, multiple operations may have the same response name,
32     // so we can not get operation's name from response.
GetServiceRequestName()33     inline virtual const char* GetServiceRequestName() const override { return "ListStackInstances"; }
34 
35     Aws::String SerializePayload() const override;
36 
37   protected:
38     void DumpBodyToUrl(Aws::Http::URI& uri ) const override;
39 
40   public:
41 
42     /**
43      * <p>The name or unique ID of the stack set that you want to list stack instances
44      * for.</p>
45      */
GetStackSetName()46     inline const Aws::String& GetStackSetName() const{ return m_stackSetName; }
47 
48     /**
49      * <p>The name or unique ID of the stack set that you want to list stack instances
50      * for.</p>
51      */
StackSetNameHasBeenSet()52     inline bool StackSetNameHasBeenSet() const { return m_stackSetNameHasBeenSet; }
53 
54     /**
55      * <p>The name or unique ID of the stack set that you want to list stack instances
56      * for.</p>
57      */
SetStackSetName(const Aws::String & value)58     inline void SetStackSetName(const Aws::String& value) { m_stackSetNameHasBeenSet = true; m_stackSetName = value; }
59 
60     /**
61      * <p>The name or unique ID of the stack set that you want to list stack instances
62      * for.</p>
63      */
SetStackSetName(Aws::String && value)64     inline void SetStackSetName(Aws::String&& value) { m_stackSetNameHasBeenSet = true; m_stackSetName = std::move(value); }
65 
66     /**
67      * <p>The name or unique ID of the stack set that you want to list stack instances
68      * for.</p>
69      */
SetStackSetName(const char * value)70     inline void SetStackSetName(const char* value) { m_stackSetNameHasBeenSet = true; m_stackSetName.assign(value); }
71 
72     /**
73      * <p>The name or unique ID of the stack set that you want to list stack instances
74      * for.</p>
75      */
WithStackSetName(const Aws::String & value)76     inline ListStackInstancesRequest& WithStackSetName(const Aws::String& value) { SetStackSetName(value); return *this;}
77 
78     /**
79      * <p>The name or unique ID of the stack set that you want to list stack instances
80      * for.</p>
81      */
WithStackSetName(Aws::String && value)82     inline ListStackInstancesRequest& WithStackSetName(Aws::String&& value) { SetStackSetName(std::move(value)); return *this;}
83 
84     /**
85      * <p>The name or unique ID of the stack set that you want to list stack instances
86      * for.</p>
87      */
WithStackSetName(const char * value)88     inline ListStackInstancesRequest& WithStackSetName(const char* value) { SetStackSetName(value); return *this;}
89 
90 
91     /**
92      * <p>If the previous request didn't return all of the remaining results, the
93      * response's <code>NextToken</code> parameter value is set to a token. To retrieve
94      * the next set of results, call <code>ListStackInstances</code> again and assign
95      * that token to the request object's <code>NextToken</code> parameter. If there
96      * are no remaining results, the previous response object's <code>NextToken</code>
97      * parameter is set to <code>null</code>.</p>
98      */
GetNextToken()99     inline const Aws::String& GetNextToken() const{ return m_nextToken; }
100 
101     /**
102      * <p>If the previous request didn't return all of the remaining results, the
103      * response's <code>NextToken</code> parameter value is set to a token. To retrieve
104      * the next set of results, call <code>ListStackInstances</code> again and assign
105      * that token to the request object's <code>NextToken</code> parameter. If there
106      * are no remaining results, the previous response object's <code>NextToken</code>
107      * parameter is set to <code>null</code>.</p>
108      */
NextTokenHasBeenSet()109     inline bool NextTokenHasBeenSet() const { return m_nextTokenHasBeenSet; }
110 
111     /**
112      * <p>If the previous request didn't return all of the remaining results, the
113      * response's <code>NextToken</code> parameter value is set to a token. To retrieve
114      * the next set of results, call <code>ListStackInstances</code> again and assign
115      * that token to the request object's <code>NextToken</code> parameter. If there
116      * are no remaining results, the previous response object's <code>NextToken</code>
117      * parameter is set to <code>null</code>.</p>
118      */
SetNextToken(const Aws::String & value)119     inline void SetNextToken(const Aws::String& value) { m_nextTokenHasBeenSet = true; m_nextToken = value; }
120 
121     /**
122      * <p>If the previous request didn't return all of the remaining results, the
123      * response's <code>NextToken</code> parameter value is set to a token. To retrieve
124      * the next set of results, call <code>ListStackInstances</code> again and assign
125      * that token to the request object's <code>NextToken</code> parameter. If there
126      * are no remaining results, the previous response object's <code>NextToken</code>
127      * parameter is set to <code>null</code>.</p>
128      */
SetNextToken(Aws::String && value)129     inline void SetNextToken(Aws::String&& value) { m_nextTokenHasBeenSet = true; m_nextToken = std::move(value); }
130 
131     /**
132      * <p>If the previous request didn't return all of the remaining results, the
133      * response's <code>NextToken</code> parameter value is set to a token. To retrieve
134      * the next set of results, call <code>ListStackInstances</code> again and assign
135      * that token to the request object's <code>NextToken</code> parameter. If there
136      * are no remaining results, the previous response object's <code>NextToken</code>
137      * parameter is set to <code>null</code>.</p>
138      */
SetNextToken(const char * value)139     inline void SetNextToken(const char* value) { m_nextTokenHasBeenSet = true; m_nextToken.assign(value); }
140 
141     /**
142      * <p>If the previous request didn't return all of the remaining results, the
143      * response's <code>NextToken</code> parameter value is set to a token. To retrieve
144      * the next set of results, call <code>ListStackInstances</code> again and assign
145      * that token to the request object's <code>NextToken</code> parameter. If there
146      * are no remaining results, the previous response object's <code>NextToken</code>
147      * parameter is set to <code>null</code>.</p>
148      */
WithNextToken(const Aws::String & value)149     inline ListStackInstancesRequest& WithNextToken(const Aws::String& value) { SetNextToken(value); return *this;}
150 
151     /**
152      * <p>If the previous request didn't return all of the remaining results, the
153      * response's <code>NextToken</code> parameter value is set to a token. To retrieve
154      * the next set of results, call <code>ListStackInstances</code> again and assign
155      * that token to the request object's <code>NextToken</code> parameter. If there
156      * are no remaining results, the previous response object's <code>NextToken</code>
157      * parameter is set to <code>null</code>.</p>
158      */
WithNextToken(Aws::String && value)159     inline ListStackInstancesRequest& WithNextToken(Aws::String&& value) { SetNextToken(std::move(value)); return *this;}
160 
161     /**
162      * <p>If the previous request didn't return all of the remaining results, the
163      * response's <code>NextToken</code> parameter value is set to a token. To retrieve
164      * the next set of results, call <code>ListStackInstances</code> again and assign
165      * that token to the request object's <code>NextToken</code> parameter. If there
166      * are no remaining results, the previous response object's <code>NextToken</code>
167      * parameter is set to <code>null</code>.</p>
168      */
WithNextToken(const char * value)169     inline ListStackInstancesRequest& WithNextToken(const char* value) { SetNextToken(value); return *this;}
170 
171 
172     /**
173      * <p>The maximum number of results to be returned with a single call. If the
174      * number of available results exceeds this maximum, the response includes a
175      * <code>NextToken</code> value that you can assign to the <code>NextToken</code>
176      * request parameter to get the next set of results.</p>
177      */
GetMaxResults()178     inline int GetMaxResults() const{ return m_maxResults; }
179 
180     /**
181      * <p>The maximum number of results to be returned with a single call. If the
182      * number of available results exceeds this maximum, the response includes a
183      * <code>NextToken</code> value that you can assign to the <code>NextToken</code>
184      * request parameter to get the next set of results.</p>
185      */
MaxResultsHasBeenSet()186     inline bool MaxResultsHasBeenSet() const { return m_maxResultsHasBeenSet; }
187 
188     /**
189      * <p>The maximum number of results to be returned with a single call. If the
190      * number of available results exceeds this maximum, the response includes a
191      * <code>NextToken</code> value that you can assign to the <code>NextToken</code>
192      * request parameter to get the next set of results.</p>
193      */
SetMaxResults(int value)194     inline void SetMaxResults(int value) { m_maxResultsHasBeenSet = true; m_maxResults = value; }
195 
196     /**
197      * <p>The maximum number of results to be returned with a single call. If the
198      * number of available results exceeds this maximum, the response includes a
199      * <code>NextToken</code> value that you can assign to the <code>NextToken</code>
200      * request parameter to get the next set of results.</p>
201      */
WithMaxResults(int value)202     inline ListStackInstancesRequest& WithMaxResults(int value) { SetMaxResults(value); return *this;}
203 
204 
205     /**
206      * <p>The status that stack instances are filtered by.</p>
207      */
GetFilters()208     inline const Aws::Vector<StackInstanceFilter>& GetFilters() const{ return m_filters; }
209 
210     /**
211      * <p>The status that stack instances are filtered by.</p>
212      */
FiltersHasBeenSet()213     inline bool FiltersHasBeenSet() const { return m_filtersHasBeenSet; }
214 
215     /**
216      * <p>The status that stack instances are filtered by.</p>
217      */
SetFilters(const Aws::Vector<StackInstanceFilter> & value)218     inline void SetFilters(const Aws::Vector<StackInstanceFilter>& value) { m_filtersHasBeenSet = true; m_filters = value; }
219 
220     /**
221      * <p>The status that stack instances are filtered by.</p>
222      */
SetFilters(Aws::Vector<StackInstanceFilter> && value)223     inline void SetFilters(Aws::Vector<StackInstanceFilter>&& value) { m_filtersHasBeenSet = true; m_filters = std::move(value); }
224 
225     /**
226      * <p>The status that stack instances are filtered by.</p>
227      */
WithFilters(const Aws::Vector<StackInstanceFilter> & value)228     inline ListStackInstancesRequest& WithFilters(const Aws::Vector<StackInstanceFilter>& value) { SetFilters(value); return *this;}
229 
230     /**
231      * <p>The status that stack instances are filtered by.</p>
232      */
WithFilters(Aws::Vector<StackInstanceFilter> && value)233     inline ListStackInstancesRequest& WithFilters(Aws::Vector<StackInstanceFilter>&& value) { SetFilters(std::move(value)); return *this;}
234 
235     /**
236      * <p>The status that stack instances are filtered by.</p>
237      */
AddFilters(const StackInstanceFilter & value)238     inline ListStackInstancesRequest& AddFilters(const StackInstanceFilter& value) { m_filtersHasBeenSet = true; m_filters.push_back(value); return *this; }
239 
240     /**
241      * <p>The status that stack instances are filtered by.</p>
242      */
AddFilters(StackInstanceFilter && value)243     inline ListStackInstancesRequest& AddFilters(StackInstanceFilter&& value) { m_filtersHasBeenSet = true; m_filters.push_back(std::move(value)); return *this; }
244 
245 
246     /**
247      * <p>The name of the Amazon Web Services account that you want to list stack
248      * instances for.</p>
249      */
GetStackInstanceAccount()250     inline const Aws::String& GetStackInstanceAccount() const{ return m_stackInstanceAccount; }
251 
252     /**
253      * <p>The name of the Amazon Web Services account that you want to list stack
254      * instances for.</p>
255      */
StackInstanceAccountHasBeenSet()256     inline bool StackInstanceAccountHasBeenSet() const { return m_stackInstanceAccountHasBeenSet; }
257 
258     /**
259      * <p>The name of the Amazon Web Services account that you want to list stack
260      * instances for.</p>
261      */
SetStackInstanceAccount(const Aws::String & value)262     inline void SetStackInstanceAccount(const Aws::String& value) { m_stackInstanceAccountHasBeenSet = true; m_stackInstanceAccount = value; }
263 
264     /**
265      * <p>The name of the Amazon Web Services account that you want to list stack
266      * instances for.</p>
267      */
SetStackInstanceAccount(Aws::String && value)268     inline void SetStackInstanceAccount(Aws::String&& value) { m_stackInstanceAccountHasBeenSet = true; m_stackInstanceAccount = std::move(value); }
269 
270     /**
271      * <p>The name of the Amazon Web Services account that you want to list stack
272      * instances for.</p>
273      */
SetStackInstanceAccount(const char * value)274     inline void SetStackInstanceAccount(const char* value) { m_stackInstanceAccountHasBeenSet = true; m_stackInstanceAccount.assign(value); }
275 
276     /**
277      * <p>The name of the Amazon Web Services account that you want to list stack
278      * instances for.</p>
279      */
WithStackInstanceAccount(const Aws::String & value)280     inline ListStackInstancesRequest& WithStackInstanceAccount(const Aws::String& value) { SetStackInstanceAccount(value); return *this;}
281 
282     /**
283      * <p>The name of the Amazon Web Services account that you want to list stack
284      * instances for.</p>
285      */
WithStackInstanceAccount(Aws::String && value)286     inline ListStackInstancesRequest& WithStackInstanceAccount(Aws::String&& value) { SetStackInstanceAccount(std::move(value)); return *this;}
287 
288     /**
289      * <p>The name of the Amazon Web Services account that you want to list stack
290      * instances for.</p>
291      */
WithStackInstanceAccount(const char * value)292     inline ListStackInstancesRequest& WithStackInstanceAccount(const char* value) { SetStackInstanceAccount(value); return *this;}
293 
294 
295     /**
296      * <p>The name of the Region where you want to list stack instances. </p>
297      */
GetStackInstanceRegion()298     inline const Aws::String& GetStackInstanceRegion() const{ return m_stackInstanceRegion; }
299 
300     /**
301      * <p>The name of the Region where you want to list stack instances. </p>
302      */
StackInstanceRegionHasBeenSet()303     inline bool StackInstanceRegionHasBeenSet() const { return m_stackInstanceRegionHasBeenSet; }
304 
305     /**
306      * <p>The name of the Region where you want to list stack instances. </p>
307      */
SetStackInstanceRegion(const Aws::String & value)308     inline void SetStackInstanceRegion(const Aws::String& value) { m_stackInstanceRegionHasBeenSet = true; m_stackInstanceRegion = value; }
309 
310     /**
311      * <p>The name of the Region where you want to list stack instances. </p>
312      */
SetStackInstanceRegion(Aws::String && value)313     inline void SetStackInstanceRegion(Aws::String&& value) { m_stackInstanceRegionHasBeenSet = true; m_stackInstanceRegion = std::move(value); }
314 
315     /**
316      * <p>The name of the Region where you want to list stack instances. </p>
317      */
SetStackInstanceRegion(const char * value)318     inline void SetStackInstanceRegion(const char* value) { m_stackInstanceRegionHasBeenSet = true; m_stackInstanceRegion.assign(value); }
319 
320     /**
321      * <p>The name of the Region where you want to list stack instances. </p>
322      */
WithStackInstanceRegion(const Aws::String & value)323     inline ListStackInstancesRequest& WithStackInstanceRegion(const Aws::String& value) { SetStackInstanceRegion(value); return *this;}
324 
325     /**
326      * <p>The name of the Region where you want to list stack instances. </p>
327      */
WithStackInstanceRegion(Aws::String && value)328     inline ListStackInstancesRequest& WithStackInstanceRegion(Aws::String&& value) { SetStackInstanceRegion(std::move(value)); return *this;}
329 
330     /**
331      * <p>The name of the Region where you want to list stack instances. </p>
332      */
WithStackInstanceRegion(const char * value)333     inline ListStackInstancesRequest& WithStackInstanceRegion(const char* value) { SetStackInstanceRegion(value); return *this;}
334 
335 
336     /**
337      * <p>[Service-managed permissions] Specifies whether you are acting as an account
338      * administrator in the organization's management account or as a delegated
339      * administrator in a member account.</p> <p>By default, <code>SELF</code> is
340      * specified. Use <code>SELF</code> for stack sets with self-managed
341      * permissions.</p> <ul> <li> <p>If you are signed in to the management account,
342      * specify <code>SELF</code>.</p> </li> <li> <p>If you are signed in to a delegated
343      * administrator account, specify <code>DELEGATED_ADMIN</code>.</p> <p>Your Amazon
344      * Web Services account must be registered as a delegated administrator in the
345      * management account. For more information, see <a
346      * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register
347      * a delegated administrator</a> in the <i>CloudFormation User Guide</i>.</p> </li>
348      * </ul>
349      */
GetCallAs()350     inline const CallAs& GetCallAs() const{ return m_callAs; }
351 
352     /**
353      * <p>[Service-managed permissions] Specifies whether you are acting as an account
354      * administrator in the organization's management account or as a delegated
355      * administrator in a member account.</p> <p>By default, <code>SELF</code> is
356      * specified. Use <code>SELF</code> for stack sets with self-managed
357      * permissions.</p> <ul> <li> <p>If you are signed in to the management account,
358      * specify <code>SELF</code>.</p> </li> <li> <p>If you are signed in to a delegated
359      * administrator account, specify <code>DELEGATED_ADMIN</code>.</p> <p>Your Amazon
360      * Web Services account must be registered as a delegated administrator in the
361      * management account. For more information, see <a
362      * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register
363      * a delegated administrator</a> in the <i>CloudFormation User Guide</i>.</p> </li>
364      * </ul>
365      */
CallAsHasBeenSet()366     inline bool CallAsHasBeenSet() const { return m_callAsHasBeenSet; }
367 
368     /**
369      * <p>[Service-managed permissions] Specifies whether you are acting as an account
370      * administrator in the organization's management account or as a delegated
371      * administrator in a member account.</p> <p>By default, <code>SELF</code> is
372      * specified. Use <code>SELF</code> for stack sets with self-managed
373      * permissions.</p> <ul> <li> <p>If you are signed in to the management account,
374      * specify <code>SELF</code>.</p> </li> <li> <p>If you are signed in to a delegated
375      * administrator account, specify <code>DELEGATED_ADMIN</code>.</p> <p>Your Amazon
376      * Web Services account must be registered as a delegated administrator in the
377      * management account. For more information, see <a
378      * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register
379      * a delegated administrator</a> in the <i>CloudFormation User Guide</i>.</p> </li>
380      * </ul>
381      */
SetCallAs(const CallAs & value)382     inline void SetCallAs(const CallAs& value) { m_callAsHasBeenSet = true; m_callAs = value; }
383 
384     /**
385      * <p>[Service-managed permissions] Specifies whether you are acting as an account
386      * administrator in the organization's management account or as a delegated
387      * administrator in a member account.</p> <p>By default, <code>SELF</code> is
388      * specified. Use <code>SELF</code> for stack sets with self-managed
389      * permissions.</p> <ul> <li> <p>If you are signed in to the management account,
390      * specify <code>SELF</code>.</p> </li> <li> <p>If you are signed in to a delegated
391      * administrator account, specify <code>DELEGATED_ADMIN</code>.</p> <p>Your Amazon
392      * Web Services account must be registered as a delegated administrator in the
393      * management account. For more information, see <a
394      * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register
395      * a delegated administrator</a> in the <i>CloudFormation User Guide</i>.</p> </li>
396      * </ul>
397      */
SetCallAs(CallAs && value)398     inline void SetCallAs(CallAs&& value) { m_callAsHasBeenSet = true; m_callAs = std::move(value); }
399 
400     /**
401      * <p>[Service-managed permissions] Specifies whether you are acting as an account
402      * administrator in the organization's management account or as a delegated
403      * administrator in a member account.</p> <p>By default, <code>SELF</code> is
404      * specified. Use <code>SELF</code> for stack sets with self-managed
405      * permissions.</p> <ul> <li> <p>If you are signed in to the management account,
406      * specify <code>SELF</code>.</p> </li> <li> <p>If you are signed in to a delegated
407      * administrator account, specify <code>DELEGATED_ADMIN</code>.</p> <p>Your Amazon
408      * Web Services account must be registered as a delegated administrator in the
409      * management account. For more information, see <a
410      * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register
411      * a delegated administrator</a> in the <i>CloudFormation User Guide</i>.</p> </li>
412      * </ul>
413      */
WithCallAs(const CallAs & value)414     inline ListStackInstancesRequest& WithCallAs(const CallAs& value) { SetCallAs(value); return *this;}
415 
416     /**
417      * <p>[Service-managed permissions] Specifies whether you are acting as an account
418      * administrator in the organization's management account or as a delegated
419      * administrator in a member account.</p> <p>By default, <code>SELF</code> is
420      * specified. Use <code>SELF</code> for stack sets with self-managed
421      * permissions.</p> <ul> <li> <p>If you are signed in to the management account,
422      * specify <code>SELF</code>.</p> </li> <li> <p>If you are signed in to a delegated
423      * administrator account, specify <code>DELEGATED_ADMIN</code>.</p> <p>Your Amazon
424      * Web Services account must be registered as a delegated administrator in the
425      * management account. For more information, see <a
426      * href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html">Register
427      * a delegated administrator</a> in the <i>CloudFormation User Guide</i>.</p> </li>
428      * </ul>
429      */
WithCallAs(CallAs && value)430     inline ListStackInstancesRequest& WithCallAs(CallAs&& value) { SetCallAs(std::move(value)); return *this;}
431 
432   private:
433 
434     Aws::String m_stackSetName;
435     bool m_stackSetNameHasBeenSet;
436 
437     Aws::String m_nextToken;
438     bool m_nextTokenHasBeenSet;
439 
440     int m_maxResults;
441     bool m_maxResultsHasBeenSet;
442 
443     Aws::Vector<StackInstanceFilter> m_filters;
444     bool m_filtersHasBeenSet;
445 
446     Aws::String m_stackInstanceAccount;
447     bool m_stackInstanceAccountHasBeenSet;
448 
449     Aws::String m_stackInstanceRegion;
450     bool m_stackInstanceRegionHasBeenSet;
451 
452     CallAs m_callAs;
453     bool m_callAsHasBeenSet;
454   };
455 
456 } // namespace Model
457 } // namespace CloudFormation
458 } // namespace Aws
459