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/ecs/ECS_EXPORTS.h>
8 #include <aws/ecs/ECSRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/ecs/model/LaunchType.h>
11 #include <aws/ecs/model/SchedulingStrategy.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace ECS
17 {
18 namespace Model
19 {
20 
21   /**
22    */
23   class AWS_ECS_API ListServicesRequest : public ECSRequest
24   {
25   public:
26     ListServicesRequest();
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 "ListServices"; }
33 
34     Aws::String SerializePayload() const override;
35 
36     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
37 
38 
39     /**
40      * <p>The short name or full Amazon Resource Name (ARN) of the cluster to use when
41      * filtering the <code>ListServices</code> results. If you do not specify a
42      * cluster, the default cluster is assumed.</p>
43      */
GetCluster()44     inline const Aws::String& GetCluster() const{ return m_cluster; }
45 
46     /**
47      * <p>The short name or full Amazon Resource Name (ARN) of the cluster to use when
48      * filtering the <code>ListServices</code> results. If you do not specify a
49      * cluster, the default cluster is assumed.</p>
50      */
ClusterHasBeenSet()51     inline bool ClusterHasBeenSet() const { return m_clusterHasBeenSet; }
52 
53     /**
54      * <p>The short name or full Amazon Resource Name (ARN) of the cluster to use when
55      * filtering the <code>ListServices</code> results. If you do not specify a
56      * cluster, the default cluster is assumed.</p>
57      */
SetCluster(const Aws::String & value)58     inline void SetCluster(const Aws::String& value) { m_clusterHasBeenSet = true; m_cluster = value; }
59 
60     /**
61      * <p>The short name or full Amazon Resource Name (ARN) of the cluster to use when
62      * filtering the <code>ListServices</code> results. If you do not specify a
63      * cluster, the default cluster is assumed.</p>
64      */
SetCluster(Aws::String && value)65     inline void SetCluster(Aws::String&& value) { m_clusterHasBeenSet = true; m_cluster = std::move(value); }
66 
67     /**
68      * <p>The short name or full Amazon Resource Name (ARN) of the cluster to use when
69      * filtering the <code>ListServices</code> results. If you do not specify a
70      * cluster, the default cluster is assumed.</p>
71      */
SetCluster(const char * value)72     inline void SetCluster(const char* value) { m_clusterHasBeenSet = true; m_cluster.assign(value); }
73 
74     /**
75      * <p>The short name or full Amazon Resource Name (ARN) of the cluster to use when
76      * filtering the <code>ListServices</code> results. If you do not specify a
77      * cluster, the default cluster is assumed.</p>
78      */
WithCluster(const Aws::String & value)79     inline ListServicesRequest& WithCluster(const Aws::String& value) { SetCluster(value); return *this;}
80 
81     /**
82      * <p>The short name or full Amazon Resource Name (ARN) of the cluster to use when
83      * filtering the <code>ListServices</code> results. If you do not specify a
84      * cluster, the default cluster is assumed.</p>
85      */
WithCluster(Aws::String && value)86     inline ListServicesRequest& WithCluster(Aws::String&& value) { SetCluster(std::move(value)); return *this;}
87 
88     /**
89      * <p>The short name or full Amazon Resource Name (ARN) of the cluster to use when
90      * filtering the <code>ListServices</code> results. If you do not specify a
91      * cluster, the default cluster is assumed.</p>
92      */
WithCluster(const char * value)93     inline ListServicesRequest& WithCluster(const char* value) { SetCluster(value); return *this;}
94 
95 
96     /**
97      * <p>The <code>nextToken</code> value returned from a <code>ListServices</code>
98      * request indicating that more results are available to fulfill the request and
99      * further calls will be needed. If <code>maxResults</code> was provided, it is
100      * possible the number of results to be fewer than <code>maxResults</code>.</p>
101      *  <p>This token should be treated as an opaque identifier that is only used
102      * to retrieve the next items in a list and not for other programmatic
103      * purposes.</p>
104      */
GetNextToken()105     inline const Aws::String& GetNextToken() const{ return m_nextToken; }
106 
107     /**
108      * <p>The <code>nextToken</code> value returned from a <code>ListServices</code>
109      * request indicating that more results are available to fulfill the request and
110      * further calls will be needed. If <code>maxResults</code> was provided, it is
111      * possible the number of results to be fewer than <code>maxResults</code>.</p>
112      *  <p>This token should be treated as an opaque identifier that is only used
113      * to retrieve the next items in a list and not for other programmatic
114      * purposes.</p>
115      */
NextTokenHasBeenSet()116     inline bool NextTokenHasBeenSet() const { return m_nextTokenHasBeenSet; }
117 
118     /**
119      * <p>The <code>nextToken</code> value returned from a <code>ListServices</code>
120      * request indicating that more results are available to fulfill the request and
121      * further calls will be needed. If <code>maxResults</code> was provided, it is
122      * possible the number of results to be fewer than <code>maxResults</code>.</p>
123      *  <p>This token should be treated as an opaque identifier that is only used
124      * to retrieve the next items in a list and not for other programmatic
125      * purposes.</p>
126      */
SetNextToken(const Aws::String & value)127     inline void SetNextToken(const Aws::String& value) { m_nextTokenHasBeenSet = true; m_nextToken = value; }
128 
129     /**
130      * <p>The <code>nextToken</code> value returned from a <code>ListServices</code>
131      * request indicating that more results are available to fulfill the request and
132      * further calls will be needed. If <code>maxResults</code> was provided, it is
133      * possible the number of results to be fewer than <code>maxResults</code>.</p>
134      *  <p>This token should be treated as an opaque identifier that is only used
135      * to retrieve the next items in a list and not for other programmatic
136      * purposes.</p>
137      */
SetNextToken(Aws::String && value)138     inline void SetNextToken(Aws::String&& value) { m_nextTokenHasBeenSet = true; m_nextToken = std::move(value); }
139 
140     /**
141      * <p>The <code>nextToken</code> value returned from a <code>ListServices</code>
142      * request indicating that more results are available to fulfill the request and
143      * further calls will be needed. If <code>maxResults</code> was provided, it is
144      * possible the number of results to be fewer than <code>maxResults</code>.</p>
145      *  <p>This token should be treated as an opaque identifier that is only used
146      * to retrieve the next items in a list and not for other programmatic
147      * purposes.</p>
148      */
SetNextToken(const char * value)149     inline void SetNextToken(const char* value) { m_nextTokenHasBeenSet = true; m_nextToken.assign(value); }
150 
151     /**
152      * <p>The <code>nextToken</code> value returned from a <code>ListServices</code>
153      * request indicating that more results are available to fulfill the request and
154      * further calls will be needed. If <code>maxResults</code> was provided, it is
155      * possible the number of results to be fewer than <code>maxResults</code>.</p>
156      *  <p>This token should be treated as an opaque identifier that is only used
157      * to retrieve the next items in a list and not for other programmatic
158      * purposes.</p>
159      */
WithNextToken(const Aws::String & value)160     inline ListServicesRequest& WithNextToken(const Aws::String& value) { SetNextToken(value); return *this;}
161 
162     /**
163      * <p>The <code>nextToken</code> value returned from a <code>ListServices</code>
164      * request indicating that more results are available to fulfill the request and
165      * further calls will be needed. If <code>maxResults</code> was provided, it is
166      * possible the number of results to be fewer than <code>maxResults</code>.</p>
167      *  <p>This token should be treated as an opaque identifier that is only used
168      * to retrieve the next items in a list and not for other programmatic
169      * purposes.</p>
170      */
WithNextToken(Aws::String && value)171     inline ListServicesRequest& WithNextToken(Aws::String&& value) { SetNextToken(std::move(value)); return *this;}
172 
173     /**
174      * <p>The <code>nextToken</code> value returned from a <code>ListServices</code>
175      * request indicating that more results are available to fulfill the request and
176      * further calls will be needed. If <code>maxResults</code> was provided, it is
177      * possible the number of results to be fewer than <code>maxResults</code>.</p>
178      *  <p>This token should be treated as an opaque identifier that is only used
179      * to retrieve the next items in a list and not for other programmatic
180      * purposes.</p>
181      */
WithNextToken(const char * value)182     inline ListServicesRequest& WithNextToken(const char* value) { SetNextToken(value); return *this;}
183 
184 
185     /**
186      * <p>The maximum number of service results returned by <code>ListServices</code>
187      * in paginated output. When this parameter is used, <code>ListServices</code> only
188      * returns <code>maxResults</code> results in a single page along with a
189      * <code>nextToken</code> response element. The remaining results of the initial
190      * request can be seen by sending another <code>ListServices</code> request with
191      * the returned <code>nextToken</code> value. This value can be between 1 and 100.
192      * If this parameter is not used, then <code>ListServices</code> returns up to 10
193      * results and a <code>nextToken</code> value if applicable.</p>
194      */
GetMaxResults()195     inline int GetMaxResults() const{ return m_maxResults; }
196 
197     /**
198      * <p>The maximum number of service results returned by <code>ListServices</code>
199      * in paginated output. When this parameter is used, <code>ListServices</code> only
200      * returns <code>maxResults</code> results in a single page along with a
201      * <code>nextToken</code> response element. The remaining results of the initial
202      * request can be seen by sending another <code>ListServices</code> request with
203      * the returned <code>nextToken</code> value. This value can be between 1 and 100.
204      * If this parameter is not used, then <code>ListServices</code> returns up to 10
205      * results and a <code>nextToken</code> value if applicable.</p>
206      */
MaxResultsHasBeenSet()207     inline bool MaxResultsHasBeenSet() const { return m_maxResultsHasBeenSet; }
208 
209     /**
210      * <p>The maximum number of service results returned by <code>ListServices</code>
211      * in paginated output. When this parameter is used, <code>ListServices</code> only
212      * returns <code>maxResults</code> results in a single page along with a
213      * <code>nextToken</code> response element. The remaining results of the initial
214      * request can be seen by sending another <code>ListServices</code> request with
215      * the returned <code>nextToken</code> value. This value can be between 1 and 100.
216      * If this parameter is not used, then <code>ListServices</code> returns up to 10
217      * results and a <code>nextToken</code> value if applicable.</p>
218      */
SetMaxResults(int value)219     inline void SetMaxResults(int value) { m_maxResultsHasBeenSet = true; m_maxResults = value; }
220 
221     /**
222      * <p>The maximum number of service results returned by <code>ListServices</code>
223      * in paginated output. When this parameter is used, <code>ListServices</code> only
224      * returns <code>maxResults</code> results in a single page along with a
225      * <code>nextToken</code> response element. The remaining results of the initial
226      * request can be seen by sending another <code>ListServices</code> request with
227      * the returned <code>nextToken</code> value. This value can be between 1 and 100.
228      * If this parameter is not used, then <code>ListServices</code> returns up to 10
229      * results and a <code>nextToken</code> value if applicable.</p>
230      */
WithMaxResults(int value)231     inline ListServicesRequest& WithMaxResults(int value) { SetMaxResults(value); return *this;}
232 
233 
234     /**
235      * <p>The launch type to use when filtering the <code>ListServices</code>
236      * results.</p>
237      */
GetLaunchType()238     inline const LaunchType& GetLaunchType() const{ return m_launchType; }
239 
240     /**
241      * <p>The launch type to use when filtering the <code>ListServices</code>
242      * results.</p>
243      */
LaunchTypeHasBeenSet()244     inline bool LaunchTypeHasBeenSet() const { return m_launchTypeHasBeenSet; }
245 
246     /**
247      * <p>The launch type to use when filtering the <code>ListServices</code>
248      * results.</p>
249      */
SetLaunchType(const LaunchType & value)250     inline void SetLaunchType(const LaunchType& value) { m_launchTypeHasBeenSet = true; m_launchType = value; }
251 
252     /**
253      * <p>The launch type to use when filtering the <code>ListServices</code>
254      * results.</p>
255      */
SetLaunchType(LaunchType && value)256     inline void SetLaunchType(LaunchType&& value) { m_launchTypeHasBeenSet = true; m_launchType = std::move(value); }
257 
258     /**
259      * <p>The launch type to use when filtering the <code>ListServices</code>
260      * results.</p>
261      */
WithLaunchType(const LaunchType & value)262     inline ListServicesRequest& WithLaunchType(const LaunchType& value) { SetLaunchType(value); return *this;}
263 
264     /**
265      * <p>The launch type to use when filtering the <code>ListServices</code>
266      * results.</p>
267      */
WithLaunchType(LaunchType && value)268     inline ListServicesRequest& WithLaunchType(LaunchType&& value) { SetLaunchType(std::move(value)); return *this;}
269 
270 
271     /**
272      * <p>The scheduling strategy to use when filtering the <code>ListServices</code>
273      * results.</p>
274      */
GetSchedulingStrategy()275     inline const SchedulingStrategy& GetSchedulingStrategy() const{ return m_schedulingStrategy; }
276 
277     /**
278      * <p>The scheduling strategy to use when filtering the <code>ListServices</code>
279      * results.</p>
280      */
SchedulingStrategyHasBeenSet()281     inline bool SchedulingStrategyHasBeenSet() const { return m_schedulingStrategyHasBeenSet; }
282 
283     /**
284      * <p>The scheduling strategy to use when filtering the <code>ListServices</code>
285      * results.</p>
286      */
SetSchedulingStrategy(const SchedulingStrategy & value)287     inline void SetSchedulingStrategy(const SchedulingStrategy& value) { m_schedulingStrategyHasBeenSet = true; m_schedulingStrategy = value; }
288 
289     /**
290      * <p>The scheduling strategy to use when filtering the <code>ListServices</code>
291      * results.</p>
292      */
SetSchedulingStrategy(SchedulingStrategy && value)293     inline void SetSchedulingStrategy(SchedulingStrategy&& value) { m_schedulingStrategyHasBeenSet = true; m_schedulingStrategy = std::move(value); }
294 
295     /**
296      * <p>The scheduling strategy to use when filtering the <code>ListServices</code>
297      * results.</p>
298      */
WithSchedulingStrategy(const SchedulingStrategy & value)299     inline ListServicesRequest& WithSchedulingStrategy(const SchedulingStrategy& value) { SetSchedulingStrategy(value); return *this;}
300 
301     /**
302      * <p>The scheduling strategy to use when filtering the <code>ListServices</code>
303      * results.</p>
304      */
WithSchedulingStrategy(SchedulingStrategy && value)305     inline ListServicesRequest& WithSchedulingStrategy(SchedulingStrategy&& value) { SetSchedulingStrategy(std::move(value)); return *this;}
306 
307   private:
308 
309     Aws::String m_cluster;
310     bool m_clusterHasBeenSet;
311 
312     Aws::String m_nextToken;
313     bool m_nextTokenHasBeenSet;
314 
315     int m_maxResults;
316     bool m_maxResultsHasBeenSet;
317 
318     LaunchType m_launchType;
319     bool m_launchTypeHasBeenSet;
320 
321     SchedulingStrategy m_schedulingStrategy;
322     bool m_schedulingStrategyHasBeenSet;
323   };
324 
325 } // namespace Model
326 } // namespace ECS
327 } // namespace Aws
328