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/codeguruprofiler/CodeGuruProfiler_EXPORTS.h>
8 #include <aws/codeguruprofiler/CodeGuruProfilerRequest.h>
9 #include <aws/core/utils/DateTime.h>
10 #include <aws/core/utils/memory/stl/AWSString.h>
11 #include <aws/codeguruprofiler/model/OrderBy.h>
12 #include <aws/codeguruprofiler/model/AggregationPeriod.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace Http
18 {
19     class URI;
20 } //namespace Http
21 namespace CodeGuruProfiler
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>The structure representing the listProfileTimesRequest.</p><p><h3>See
28    * Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/codeguruprofiler-2019-07-18/ListProfileTimesRequest">AWS
30    * API Reference</a></p>
31    */
32   class AWS_CODEGURUPROFILER_API ListProfileTimesRequest : public CodeGuruProfilerRequest
33   {
34   public:
35     ListProfileTimesRequest();
36 
37     // Service request name is the Operation name which will send this request out,
38     // each operation should has unique request name, so that we can get operation's name from this request.
39     // Note: this is not true for response, multiple operations may have the same response name,
40     // so we can not get operation's name from response.
GetServiceRequestName()41     inline virtual const char* GetServiceRequestName() const override { return "ListProfileTimes"; }
42 
43     Aws::String SerializePayload() const override;
44 
45     void AddQueryStringParameters(Aws::Http::URI& uri) const override;
46 
47 
48     /**
49      * <p>The end time of the time range from which to list the profiles.</p>
50      */
GetEndTime()51     inline const Aws::Utils::DateTime& GetEndTime() const{ return m_endTime; }
52 
53     /**
54      * <p>The end time of the time range from which to list the profiles.</p>
55      */
EndTimeHasBeenSet()56     inline bool EndTimeHasBeenSet() const { return m_endTimeHasBeenSet; }
57 
58     /**
59      * <p>The end time of the time range from which to list the profiles.</p>
60      */
SetEndTime(const Aws::Utils::DateTime & value)61     inline void SetEndTime(const Aws::Utils::DateTime& value) { m_endTimeHasBeenSet = true; m_endTime = value; }
62 
63     /**
64      * <p>The end time of the time range from which to list the profiles.</p>
65      */
SetEndTime(Aws::Utils::DateTime && value)66     inline void SetEndTime(Aws::Utils::DateTime&& value) { m_endTimeHasBeenSet = true; m_endTime = std::move(value); }
67 
68     /**
69      * <p>The end time of the time range from which to list the profiles.</p>
70      */
WithEndTime(const Aws::Utils::DateTime & value)71     inline ListProfileTimesRequest& WithEndTime(const Aws::Utils::DateTime& value) { SetEndTime(value); return *this;}
72 
73     /**
74      * <p>The end time of the time range from which to list the profiles.</p>
75      */
WithEndTime(Aws::Utils::DateTime && value)76     inline ListProfileTimesRequest& WithEndTime(Aws::Utils::DateTime&& value) { SetEndTime(std::move(value)); return *this;}
77 
78 
79     /**
80      * <p>The maximum number of profile time results returned by
81      * <code>ListProfileTimes</code> in paginated output. When this parameter is used,
82      * <code>ListProfileTimes</code> only returns <code>maxResults</code> results in a
83      * single page with a <code>nextToken</code> response element. The remaining
84      * results of the initial request can be seen by sending another
85      * <code>ListProfileTimes</code> request with the returned <code>nextToken</code>
86      * value. </p>
87      */
GetMaxResults()88     inline int GetMaxResults() const{ return m_maxResults; }
89 
90     /**
91      * <p>The maximum number of profile time results returned by
92      * <code>ListProfileTimes</code> in paginated output. When this parameter is used,
93      * <code>ListProfileTimes</code> only returns <code>maxResults</code> results in a
94      * single page with a <code>nextToken</code> response element. The remaining
95      * results of the initial request can be seen by sending another
96      * <code>ListProfileTimes</code> request with the returned <code>nextToken</code>
97      * value. </p>
98      */
MaxResultsHasBeenSet()99     inline bool MaxResultsHasBeenSet() const { return m_maxResultsHasBeenSet; }
100 
101     /**
102      * <p>The maximum number of profile time results returned by
103      * <code>ListProfileTimes</code> in paginated output. When this parameter is used,
104      * <code>ListProfileTimes</code> only returns <code>maxResults</code> results in a
105      * single page with a <code>nextToken</code> response element. The remaining
106      * results of the initial request can be seen by sending another
107      * <code>ListProfileTimes</code> request with the returned <code>nextToken</code>
108      * value. </p>
109      */
SetMaxResults(int value)110     inline void SetMaxResults(int value) { m_maxResultsHasBeenSet = true; m_maxResults = value; }
111 
112     /**
113      * <p>The maximum number of profile time results returned by
114      * <code>ListProfileTimes</code> in paginated output. When this parameter is used,
115      * <code>ListProfileTimes</code> only returns <code>maxResults</code> results in a
116      * single page with a <code>nextToken</code> response element. The remaining
117      * results of the initial request can be seen by sending another
118      * <code>ListProfileTimes</code> request with the returned <code>nextToken</code>
119      * value. </p>
120      */
WithMaxResults(int value)121     inline ListProfileTimesRequest& WithMaxResults(int value) { SetMaxResults(value); return *this;}
122 
123 
124     /**
125      * <p>The <code>nextToken</code> value returned from a previous paginated
126      * <code>ListProfileTimes</code> request where <code>maxResults</code> was used and
127      * the results exceeded the value of that parameter. Pagination continues from the
128      * end of the previous results that returned the <code>nextToken</code> value. </p>
129      *  <p>This token should be treated as an opaque identifier that is only used
130      * to retrieve the next items in a list and not for other programmatic
131      * purposes.</p>
132      */
GetNextToken()133     inline const Aws::String& GetNextToken() const{ return m_nextToken; }
134 
135     /**
136      * <p>The <code>nextToken</code> value returned from a previous paginated
137      * <code>ListProfileTimes</code> request where <code>maxResults</code> was used and
138      * the results exceeded the value of that parameter. Pagination continues from the
139      * end of the previous results that returned the <code>nextToken</code> value. </p>
140      *  <p>This token should be treated as an opaque identifier that is only used
141      * to retrieve the next items in a list and not for other programmatic
142      * purposes.</p>
143      */
NextTokenHasBeenSet()144     inline bool NextTokenHasBeenSet() const { return m_nextTokenHasBeenSet; }
145 
146     /**
147      * <p>The <code>nextToken</code> value returned from a previous paginated
148      * <code>ListProfileTimes</code> request where <code>maxResults</code> was used and
149      * the results exceeded the value of that parameter. Pagination continues from the
150      * end of the previous results that returned the <code>nextToken</code> value. </p>
151      *  <p>This token should be treated as an opaque identifier that is only used
152      * to retrieve the next items in a list and not for other programmatic
153      * purposes.</p>
154      */
SetNextToken(const Aws::String & value)155     inline void SetNextToken(const Aws::String& value) { m_nextTokenHasBeenSet = true; m_nextToken = value; }
156 
157     /**
158      * <p>The <code>nextToken</code> value returned from a previous paginated
159      * <code>ListProfileTimes</code> request where <code>maxResults</code> was used and
160      * the results exceeded the value of that parameter. Pagination continues from the
161      * end of the previous results that returned the <code>nextToken</code> value. </p>
162      *  <p>This token should be treated as an opaque identifier that is only used
163      * to retrieve the next items in a list and not for other programmatic
164      * purposes.</p>
165      */
SetNextToken(Aws::String && value)166     inline void SetNextToken(Aws::String&& value) { m_nextTokenHasBeenSet = true; m_nextToken = std::move(value); }
167 
168     /**
169      * <p>The <code>nextToken</code> value returned from a previous paginated
170      * <code>ListProfileTimes</code> request where <code>maxResults</code> was used and
171      * the results exceeded the value of that parameter. Pagination continues from the
172      * end of the previous results that returned the <code>nextToken</code> value. </p>
173      *  <p>This token should be treated as an opaque identifier that is only used
174      * to retrieve the next items in a list and not for other programmatic
175      * purposes.</p>
176      */
SetNextToken(const char * value)177     inline void SetNextToken(const char* value) { m_nextTokenHasBeenSet = true; m_nextToken.assign(value); }
178 
179     /**
180      * <p>The <code>nextToken</code> value returned from a previous paginated
181      * <code>ListProfileTimes</code> request where <code>maxResults</code> was used and
182      * the results exceeded the value of that parameter. Pagination continues from the
183      * end of the previous results that returned the <code>nextToken</code> value. </p>
184      *  <p>This token should be treated as an opaque identifier that is only used
185      * to retrieve the next items in a list and not for other programmatic
186      * purposes.</p>
187      */
WithNextToken(const Aws::String & value)188     inline ListProfileTimesRequest& WithNextToken(const Aws::String& value) { SetNextToken(value); return *this;}
189 
190     /**
191      * <p>The <code>nextToken</code> value returned from a previous paginated
192      * <code>ListProfileTimes</code> request where <code>maxResults</code> was used and
193      * the results exceeded the value of that parameter. Pagination continues from the
194      * end of the previous results that returned the <code>nextToken</code> value. </p>
195      *  <p>This token should be treated as an opaque identifier that is only used
196      * to retrieve the next items in a list and not for other programmatic
197      * purposes.</p>
198      */
WithNextToken(Aws::String && value)199     inline ListProfileTimesRequest& WithNextToken(Aws::String&& value) { SetNextToken(std::move(value)); return *this;}
200 
201     /**
202      * <p>The <code>nextToken</code> value returned from a previous paginated
203      * <code>ListProfileTimes</code> request where <code>maxResults</code> was used and
204      * the results exceeded the value of that parameter. Pagination continues from the
205      * end of the previous results that returned the <code>nextToken</code> value. </p>
206      *  <p>This token should be treated as an opaque identifier that is only used
207      * to retrieve the next items in a list and not for other programmatic
208      * purposes.</p>
209      */
WithNextToken(const char * value)210     inline ListProfileTimesRequest& WithNextToken(const char* value) { SetNextToken(value); return *this;}
211 
212 
213     /**
214      * <p>The order (ascending or descending by start time of the profile) to use when
215      * listing profiles. Defaults to <code>TIMESTAMP_DESCENDING</code>. </p>
216      */
GetOrderBy()217     inline const OrderBy& GetOrderBy() const{ return m_orderBy; }
218 
219     /**
220      * <p>The order (ascending or descending by start time of the profile) to use when
221      * listing profiles. Defaults to <code>TIMESTAMP_DESCENDING</code>. </p>
222      */
OrderByHasBeenSet()223     inline bool OrderByHasBeenSet() const { return m_orderByHasBeenSet; }
224 
225     /**
226      * <p>The order (ascending or descending by start time of the profile) to use when
227      * listing profiles. Defaults to <code>TIMESTAMP_DESCENDING</code>. </p>
228      */
SetOrderBy(const OrderBy & value)229     inline void SetOrderBy(const OrderBy& value) { m_orderByHasBeenSet = true; m_orderBy = value; }
230 
231     /**
232      * <p>The order (ascending or descending by start time of the profile) to use when
233      * listing profiles. Defaults to <code>TIMESTAMP_DESCENDING</code>. </p>
234      */
SetOrderBy(OrderBy && value)235     inline void SetOrderBy(OrderBy&& value) { m_orderByHasBeenSet = true; m_orderBy = std::move(value); }
236 
237     /**
238      * <p>The order (ascending or descending by start time of the profile) to use when
239      * listing profiles. Defaults to <code>TIMESTAMP_DESCENDING</code>. </p>
240      */
WithOrderBy(const OrderBy & value)241     inline ListProfileTimesRequest& WithOrderBy(const OrderBy& value) { SetOrderBy(value); return *this;}
242 
243     /**
244      * <p>The order (ascending or descending by start time of the profile) to use when
245      * listing profiles. Defaults to <code>TIMESTAMP_DESCENDING</code>. </p>
246      */
WithOrderBy(OrderBy && value)247     inline ListProfileTimesRequest& WithOrderBy(OrderBy&& value) { SetOrderBy(std::move(value)); return *this;}
248 
249 
250     /**
251      * <p> The aggregation period. This specifies the period during which an
252      * aggregation profile collects posted agent profiles for a profiling group. There
253      * are 3 valid values. </p> <ul> <li> <p> <code>P1D</code> — 1 day </p> </li> <li>
254      * <p> <code>PT1H</code> — 1 hour </p> </li> <li> <p> <code>PT5M</code> — 5 minutes
255      * </p> </li> </ul>
256      */
GetPeriod()257     inline const AggregationPeriod& GetPeriod() const{ return m_period; }
258 
259     /**
260      * <p> The aggregation period. This specifies the period during which an
261      * aggregation profile collects posted agent profiles for a profiling group. There
262      * are 3 valid values. </p> <ul> <li> <p> <code>P1D</code> — 1 day </p> </li> <li>
263      * <p> <code>PT1H</code> — 1 hour </p> </li> <li> <p> <code>PT5M</code> — 5 minutes
264      * </p> </li> </ul>
265      */
PeriodHasBeenSet()266     inline bool PeriodHasBeenSet() const { return m_periodHasBeenSet; }
267 
268     /**
269      * <p> The aggregation period. This specifies the period during which an
270      * aggregation profile collects posted agent profiles for a profiling group. There
271      * are 3 valid values. </p> <ul> <li> <p> <code>P1D</code> — 1 day </p> </li> <li>
272      * <p> <code>PT1H</code> — 1 hour </p> </li> <li> <p> <code>PT5M</code> — 5 minutes
273      * </p> </li> </ul>
274      */
SetPeriod(const AggregationPeriod & value)275     inline void SetPeriod(const AggregationPeriod& value) { m_periodHasBeenSet = true; m_period = value; }
276 
277     /**
278      * <p> The aggregation period. This specifies the period during which an
279      * aggregation profile collects posted agent profiles for a profiling group. There
280      * are 3 valid values. </p> <ul> <li> <p> <code>P1D</code> — 1 day </p> </li> <li>
281      * <p> <code>PT1H</code> — 1 hour </p> </li> <li> <p> <code>PT5M</code> — 5 minutes
282      * </p> </li> </ul>
283      */
SetPeriod(AggregationPeriod && value)284     inline void SetPeriod(AggregationPeriod&& value) { m_periodHasBeenSet = true; m_period = std::move(value); }
285 
286     /**
287      * <p> The aggregation period. This specifies the period during which an
288      * aggregation profile collects posted agent profiles for a profiling group. There
289      * are 3 valid values. </p> <ul> <li> <p> <code>P1D</code> — 1 day </p> </li> <li>
290      * <p> <code>PT1H</code> — 1 hour </p> </li> <li> <p> <code>PT5M</code> — 5 minutes
291      * </p> </li> </ul>
292      */
WithPeriod(const AggregationPeriod & value)293     inline ListProfileTimesRequest& WithPeriod(const AggregationPeriod& value) { SetPeriod(value); return *this;}
294 
295     /**
296      * <p> The aggregation period. This specifies the period during which an
297      * aggregation profile collects posted agent profiles for a profiling group. There
298      * are 3 valid values. </p> <ul> <li> <p> <code>P1D</code> — 1 day </p> </li> <li>
299      * <p> <code>PT1H</code> — 1 hour </p> </li> <li> <p> <code>PT5M</code> — 5 minutes
300      * </p> </li> </ul>
301      */
WithPeriod(AggregationPeriod && value)302     inline ListProfileTimesRequest& WithPeriod(AggregationPeriod&& value) { SetPeriod(std::move(value)); return *this;}
303 
304 
305     /**
306      * <p>The name of the profiling group.</p>
307      */
GetProfilingGroupName()308     inline const Aws::String& GetProfilingGroupName() const{ return m_profilingGroupName; }
309 
310     /**
311      * <p>The name of the profiling group.</p>
312      */
ProfilingGroupNameHasBeenSet()313     inline bool ProfilingGroupNameHasBeenSet() const { return m_profilingGroupNameHasBeenSet; }
314 
315     /**
316      * <p>The name of the profiling group.</p>
317      */
SetProfilingGroupName(const Aws::String & value)318     inline void SetProfilingGroupName(const Aws::String& value) { m_profilingGroupNameHasBeenSet = true; m_profilingGroupName = value; }
319 
320     /**
321      * <p>The name of the profiling group.</p>
322      */
SetProfilingGroupName(Aws::String && value)323     inline void SetProfilingGroupName(Aws::String&& value) { m_profilingGroupNameHasBeenSet = true; m_profilingGroupName = std::move(value); }
324 
325     /**
326      * <p>The name of the profiling group.</p>
327      */
SetProfilingGroupName(const char * value)328     inline void SetProfilingGroupName(const char* value) { m_profilingGroupNameHasBeenSet = true; m_profilingGroupName.assign(value); }
329 
330     /**
331      * <p>The name of the profiling group.</p>
332      */
WithProfilingGroupName(const Aws::String & value)333     inline ListProfileTimesRequest& WithProfilingGroupName(const Aws::String& value) { SetProfilingGroupName(value); return *this;}
334 
335     /**
336      * <p>The name of the profiling group.</p>
337      */
WithProfilingGroupName(Aws::String && value)338     inline ListProfileTimesRequest& WithProfilingGroupName(Aws::String&& value) { SetProfilingGroupName(std::move(value)); return *this;}
339 
340     /**
341      * <p>The name of the profiling group.</p>
342      */
WithProfilingGroupName(const char * value)343     inline ListProfileTimesRequest& WithProfilingGroupName(const char* value) { SetProfilingGroupName(value); return *this;}
344 
345 
346     /**
347      * <p>The start time of the time range from which to list the profiles.</p>
348      */
GetStartTime()349     inline const Aws::Utils::DateTime& GetStartTime() const{ return m_startTime; }
350 
351     /**
352      * <p>The start time of the time range from which to list the profiles.</p>
353      */
StartTimeHasBeenSet()354     inline bool StartTimeHasBeenSet() const { return m_startTimeHasBeenSet; }
355 
356     /**
357      * <p>The start time of the time range from which to list the profiles.</p>
358      */
SetStartTime(const Aws::Utils::DateTime & value)359     inline void SetStartTime(const Aws::Utils::DateTime& value) { m_startTimeHasBeenSet = true; m_startTime = value; }
360 
361     /**
362      * <p>The start time of the time range from which to list the profiles.</p>
363      */
SetStartTime(Aws::Utils::DateTime && value)364     inline void SetStartTime(Aws::Utils::DateTime&& value) { m_startTimeHasBeenSet = true; m_startTime = std::move(value); }
365 
366     /**
367      * <p>The start time of the time range from which to list the profiles.</p>
368      */
WithStartTime(const Aws::Utils::DateTime & value)369     inline ListProfileTimesRequest& WithStartTime(const Aws::Utils::DateTime& value) { SetStartTime(value); return *this;}
370 
371     /**
372      * <p>The start time of the time range from which to list the profiles.</p>
373      */
WithStartTime(Aws::Utils::DateTime && value)374     inline ListProfileTimesRequest& WithStartTime(Aws::Utils::DateTime&& value) { SetStartTime(std::move(value)); return *this;}
375 
376   private:
377 
378     Aws::Utils::DateTime m_endTime;
379     bool m_endTimeHasBeenSet;
380 
381     int m_maxResults;
382     bool m_maxResultsHasBeenSet;
383 
384     Aws::String m_nextToken;
385     bool m_nextTokenHasBeenSet;
386 
387     OrderBy m_orderBy;
388     bool m_orderByHasBeenSet;
389 
390     AggregationPeriod m_period;
391     bool m_periodHasBeenSet;
392 
393     Aws::String m_profilingGroupName;
394     bool m_profilingGroupNameHasBeenSet;
395 
396     Aws::Utils::DateTime m_startTime;
397     bool m_startTimeHasBeenSet;
398   };
399 
400 } // namespace Model
401 } // namespace CodeGuruProfiler
402 } // namespace Aws
403