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/ec2/EC2_EXPORTS.h>
8 #include <aws/ec2/EC2Request.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/core/utils/memory/stl/AWSString.h>
11 #include <aws/ec2/model/Filter.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace EC2
17 {
18 namespace Model
19 {
20 
21   /**
22    */
23   class AWS_EC2_API DescribeVolumesRequest : public EC2Request
24   {
25   public:
26     DescribeVolumesRequest();
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 "DescribeVolumes"; }
33 
34     Aws::String SerializePayload() const override;
35 
36   protected:
37     void DumpBodyToUrl(Aws::Http::URI& uri ) const override;
38 
39   public:
40 
41     /**
42      * <p>The filters.</p> <ul> <li> <p> <code>attachment.attach-time</code> - The time
43      * stamp when the attachment initiated.</p> </li> <li> <p>
44      * <code>attachment.delete-on-termination</code> - Whether the volume is deleted on
45      * instance termination.</p> </li> <li> <p> <code>attachment.device</code> - The
46      * device name specified in the block device mapping (for example,
47      * <code>/dev/sda1</code>).</p> </li> <li> <p> <code>attachment.instance-id</code>
48      * - The ID of the instance the volume is attached to.</p> </li> <li> <p>
49      * <code>attachment.status</code> - The attachment state (<code>attaching</code> |
50      * <code>attached</code> | <code>detaching</code>).</p> </li> <li> <p>
51      * <code>availability-zone</code> - The Availability Zone in which the volume was
52      * created.</p> </li> <li> <p> <code>create-time</code> - The time stamp when the
53      * volume was created.</p> </li> <li> <p> <code>encrypted</code> - Indicates
54      * whether the volume is encrypted (<code>true</code> | <code>false</code>)</p>
55      * </li> <li> <p> <code>multi-attach-enabled</code> - Indicates whether the volume
56      * is enabled for Multi-Attach (<code>true</code> | <code>false</code>)</p> </li>
57      * <li> <p> <code>fast-restored</code> - Indicates whether the volume was created
58      * from a snapshot that is enabled for fast snapshot restore (<code>true</code> |
59      * <code>false</code>).</p> </li> <li> <p> <code>size</code> - The size of the
60      * volume, in GiB.</p> </li> <li> <p> <code>snapshot-id</code> - The snapshot from
61      * which the volume was created.</p> </li> <li> <p> <code>status</code> - The state
62      * of the volume (<code>creating</code> | <code>available</code> |
63      * <code>in-use</code> | <code>deleting</code> | <code>deleted</code> |
64      * <code>error</code>).</p> </li> <li> <p> <code>tag</code>:&lt;key&gt; - The
65      * key/value combination of a tag assigned to the resource. Use the tag key in the
66      * filter name and the tag value as the filter value. For example, to find all
67      * resources that have a tag with the key <code>Owner</code> and the value
68      * <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and
69      * <code>TeamA</code> for the filter value.</p> </li> <li> <p> <code>tag-key</code>
70      * - The key of a tag assigned to the resource. Use this filter to find all
71      * resources assigned a tag with a specific key, regardless of the tag value.</p>
72      * </li> <li> <p> <code>volume-id</code> - The volume ID.</p> </li> <li> <p>
73      * <code>volume-type</code> - The Amazon EBS volume type (<code>gp2</code> |
74      * <code>gp3</code> | <code>io1</code> | <code>io2</code> | <code>st1</code> |
75      * <code>sc1</code>| <code>standard</code>)</p> </li> </ul>
76      */
GetFilters()77     inline const Aws::Vector<Filter>& GetFilters() const{ return m_filters; }
78 
79     /**
80      * <p>The filters.</p> <ul> <li> <p> <code>attachment.attach-time</code> - The time
81      * stamp when the attachment initiated.</p> </li> <li> <p>
82      * <code>attachment.delete-on-termination</code> - Whether the volume is deleted on
83      * instance termination.</p> </li> <li> <p> <code>attachment.device</code> - The
84      * device name specified in the block device mapping (for example,
85      * <code>/dev/sda1</code>).</p> </li> <li> <p> <code>attachment.instance-id</code>
86      * - The ID of the instance the volume is attached to.</p> </li> <li> <p>
87      * <code>attachment.status</code> - The attachment state (<code>attaching</code> |
88      * <code>attached</code> | <code>detaching</code>).</p> </li> <li> <p>
89      * <code>availability-zone</code> - The Availability Zone in which the volume was
90      * created.</p> </li> <li> <p> <code>create-time</code> - The time stamp when the
91      * volume was created.</p> </li> <li> <p> <code>encrypted</code> - Indicates
92      * whether the volume is encrypted (<code>true</code> | <code>false</code>)</p>
93      * </li> <li> <p> <code>multi-attach-enabled</code> - Indicates whether the volume
94      * is enabled for Multi-Attach (<code>true</code> | <code>false</code>)</p> </li>
95      * <li> <p> <code>fast-restored</code> - Indicates whether the volume was created
96      * from a snapshot that is enabled for fast snapshot restore (<code>true</code> |
97      * <code>false</code>).</p> </li> <li> <p> <code>size</code> - The size of the
98      * volume, in GiB.</p> </li> <li> <p> <code>snapshot-id</code> - The snapshot from
99      * which the volume was created.</p> </li> <li> <p> <code>status</code> - The state
100      * of the volume (<code>creating</code> | <code>available</code> |
101      * <code>in-use</code> | <code>deleting</code> | <code>deleted</code> |
102      * <code>error</code>).</p> </li> <li> <p> <code>tag</code>:&lt;key&gt; - The
103      * key/value combination of a tag assigned to the resource. Use the tag key in the
104      * filter name and the tag value as the filter value. For example, to find all
105      * resources that have a tag with the key <code>Owner</code> and the value
106      * <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and
107      * <code>TeamA</code> for the filter value.</p> </li> <li> <p> <code>tag-key</code>
108      * - The key of a tag assigned to the resource. Use this filter to find all
109      * resources assigned a tag with a specific key, regardless of the tag value.</p>
110      * </li> <li> <p> <code>volume-id</code> - The volume ID.</p> </li> <li> <p>
111      * <code>volume-type</code> - The Amazon EBS volume type (<code>gp2</code> |
112      * <code>gp3</code> | <code>io1</code> | <code>io2</code> | <code>st1</code> |
113      * <code>sc1</code>| <code>standard</code>)</p> </li> </ul>
114      */
FiltersHasBeenSet()115     inline bool FiltersHasBeenSet() const { return m_filtersHasBeenSet; }
116 
117     /**
118      * <p>The filters.</p> <ul> <li> <p> <code>attachment.attach-time</code> - The time
119      * stamp when the attachment initiated.</p> </li> <li> <p>
120      * <code>attachment.delete-on-termination</code> - Whether the volume is deleted on
121      * instance termination.</p> </li> <li> <p> <code>attachment.device</code> - The
122      * device name specified in the block device mapping (for example,
123      * <code>/dev/sda1</code>).</p> </li> <li> <p> <code>attachment.instance-id</code>
124      * - The ID of the instance the volume is attached to.</p> </li> <li> <p>
125      * <code>attachment.status</code> - The attachment state (<code>attaching</code> |
126      * <code>attached</code> | <code>detaching</code>).</p> </li> <li> <p>
127      * <code>availability-zone</code> - The Availability Zone in which the volume was
128      * created.</p> </li> <li> <p> <code>create-time</code> - The time stamp when the
129      * volume was created.</p> </li> <li> <p> <code>encrypted</code> - Indicates
130      * whether the volume is encrypted (<code>true</code> | <code>false</code>)</p>
131      * </li> <li> <p> <code>multi-attach-enabled</code> - Indicates whether the volume
132      * is enabled for Multi-Attach (<code>true</code> | <code>false</code>)</p> </li>
133      * <li> <p> <code>fast-restored</code> - Indicates whether the volume was created
134      * from a snapshot that is enabled for fast snapshot restore (<code>true</code> |
135      * <code>false</code>).</p> </li> <li> <p> <code>size</code> - The size of the
136      * volume, in GiB.</p> </li> <li> <p> <code>snapshot-id</code> - The snapshot from
137      * which the volume was created.</p> </li> <li> <p> <code>status</code> - The state
138      * of the volume (<code>creating</code> | <code>available</code> |
139      * <code>in-use</code> | <code>deleting</code> | <code>deleted</code> |
140      * <code>error</code>).</p> </li> <li> <p> <code>tag</code>:&lt;key&gt; - The
141      * key/value combination of a tag assigned to the resource. Use the tag key in the
142      * filter name and the tag value as the filter value. For example, to find all
143      * resources that have a tag with the key <code>Owner</code> and the value
144      * <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and
145      * <code>TeamA</code> for the filter value.</p> </li> <li> <p> <code>tag-key</code>
146      * - The key of a tag assigned to the resource. Use this filter to find all
147      * resources assigned a tag with a specific key, regardless of the tag value.</p>
148      * </li> <li> <p> <code>volume-id</code> - The volume ID.</p> </li> <li> <p>
149      * <code>volume-type</code> - The Amazon EBS volume type (<code>gp2</code> |
150      * <code>gp3</code> | <code>io1</code> | <code>io2</code> | <code>st1</code> |
151      * <code>sc1</code>| <code>standard</code>)</p> </li> </ul>
152      */
SetFilters(const Aws::Vector<Filter> & value)153     inline void SetFilters(const Aws::Vector<Filter>& value) { m_filtersHasBeenSet = true; m_filters = value; }
154 
155     /**
156      * <p>The filters.</p> <ul> <li> <p> <code>attachment.attach-time</code> - The time
157      * stamp when the attachment initiated.</p> </li> <li> <p>
158      * <code>attachment.delete-on-termination</code> - Whether the volume is deleted on
159      * instance termination.</p> </li> <li> <p> <code>attachment.device</code> - The
160      * device name specified in the block device mapping (for example,
161      * <code>/dev/sda1</code>).</p> </li> <li> <p> <code>attachment.instance-id</code>
162      * - The ID of the instance the volume is attached to.</p> </li> <li> <p>
163      * <code>attachment.status</code> - The attachment state (<code>attaching</code> |
164      * <code>attached</code> | <code>detaching</code>).</p> </li> <li> <p>
165      * <code>availability-zone</code> - The Availability Zone in which the volume was
166      * created.</p> </li> <li> <p> <code>create-time</code> - The time stamp when the
167      * volume was created.</p> </li> <li> <p> <code>encrypted</code> - Indicates
168      * whether the volume is encrypted (<code>true</code> | <code>false</code>)</p>
169      * </li> <li> <p> <code>multi-attach-enabled</code> - Indicates whether the volume
170      * is enabled for Multi-Attach (<code>true</code> | <code>false</code>)</p> </li>
171      * <li> <p> <code>fast-restored</code> - Indicates whether the volume was created
172      * from a snapshot that is enabled for fast snapshot restore (<code>true</code> |
173      * <code>false</code>).</p> </li> <li> <p> <code>size</code> - The size of the
174      * volume, in GiB.</p> </li> <li> <p> <code>snapshot-id</code> - The snapshot from
175      * which the volume was created.</p> </li> <li> <p> <code>status</code> - The state
176      * of the volume (<code>creating</code> | <code>available</code> |
177      * <code>in-use</code> | <code>deleting</code> | <code>deleted</code> |
178      * <code>error</code>).</p> </li> <li> <p> <code>tag</code>:&lt;key&gt; - The
179      * key/value combination of a tag assigned to the resource. Use the tag key in the
180      * filter name and the tag value as the filter value. For example, to find all
181      * resources that have a tag with the key <code>Owner</code> and the value
182      * <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and
183      * <code>TeamA</code> for the filter value.</p> </li> <li> <p> <code>tag-key</code>
184      * - The key of a tag assigned to the resource. Use this filter to find all
185      * resources assigned a tag with a specific key, regardless of the tag value.</p>
186      * </li> <li> <p> <code>volume-id</code> - The volume ID.</p> </li> <li> <p>
187      * <code>volume-type</code> - The Amazon EBS volume type (<code>gp2</code> |
188      * <code>gp3</code> | <code>io1</code> | <code>io2</code> | <code>st1</code> |
189      * <code>sc1</code>| <code>standard</code>)</p> </li> </ul>
190      */
SetFilters(Aws::Vector<Filter> && value)191     inline void SetFilters(Aws::Vector<Filter>&& value) { m_filtersHasBeenSet = true; m_filters = std::move(value); }
192 
193     /**
194      * <p>The filters.</p> <ul> <li> <p> <code>attachment.attach-time</code> - The time
195      * stamp when the attachment initiated.</p> </li> <li> <p>
196      * <code>attachment.delete-on-termination</code> - Whether the volume is deleted on
197      * instance termination.</p> </li> <li> <p> <code>attachment.device</code> - The
198      * device name specified in the block device mapping (for example,
199      * <code>/dev/sda1</code>).</p> </li> <li> <p> <code>attachment.instance-id</code>
200      * - The ID of the instance the volume is attached to.</p> </li> <li> <p>
201      * <code>attachment.status</code> - The attachment state (<code>attaching</code> |
202      * <code>attached</code> | <code>detaching</code>).</p> </li> <li> <p>
203      * <code>availability-zone</code> - The Availability Zone in which the volume was
204      * created.</p> </li> <li> <p> <code>create-time</code> - The time stamp when the
205      * volume was created.</p> </li> <li> <p> <code>encrypted</code> - Indicates
206      * whether the volume is encrypted (<code>true</code> | <code>false</code>)</p>
207      * </li> <li> <p> <code>multi-attach-enabled</code> - Indicates whether the volume
208      * is enabled for Multi-Attach (<code>true</code> | <code>false</code>)</p> </li>
209      * <li> <p> <code>fast-restored</code> - Indicates whether the volume was created
210      * from a snapshot that is enabled for fast snapshot restore (<code>true</code> |
211      * <code>false</code>).</p> </li> <li> <p> <code>size</code> - The size of the
212      * volume, in GiB.</p> </li> <li> <p> <code>snapshot-id</code> - The snapshot from
213      * which the volume was created.</p> </li> <li> <p> <code>status</code> - The state
214      * of the volume (<code>creating</code> | <code>available</code> |
215      * <code>in-use</code> | <code>deleting</code> | <code>deleted</code> |
216      * <code>error</code>).</p> </li> <li> <p> <code>tag</code>:&lt;key&gt; - The
217      * key/value combination of a tag assigned to the resource. Use the tag key in the
218      * filter name and the tag value as the filter value. For example, to find all
219      * resources that have a tag with the key <code>Owner</code> and the value
220      * <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and
221      * <code>TeamA</code> for the filter value.</p> </li> <li> <p> <code>tag-key</code>
222      * - The key of a tag assigned to the resource. Use this filter to find all
223      * resources assigned a tag with a specific key, regardless of the tag value.</p>
224      * </li> <li> <p> <code>volume-id</code> - The volume ID.</p> </li> <li> <p>
225      * <code>volume-type</code> - The Amazon EBS volume type (<code>gp2</code> |
226      * <code>gp3</code> | <code>io1</code> | <code>io2</code> | <code>st1</code> |
227      * <code>sc1</code>| <code>standard</code>)</p> </li> </ul>
228      */
WithFilters(const Aws::Vector<Filter> & value)229     inline DescribeVolumesRequest& WithFilters(const Aws::Vector<Filter>& value) { SetFilters(value); return *this;}
230 
231     /**
232      * <p>The filters.</p> <ul> <li> <p> <code>attachment.attach-time</code> - The time
233      * stamp when the attachment initiated.</p> </li> <li> <p>
234      * <code>attachment.delete-on-termination</code> - Whether the volume is deleted on
235      * instance termination.</p> </li> <li> <p> <code>attachment.device</code> - The
236      * device name specified in the block device mapping (for example,
237      * <code>/dev/sda1</code>).</p> </li> <li> <p> <code>attachment.instance-id</code>
238      * - The ID of the instance the volume is attached to.</p> </li> <li> <p>
239      * <code>attachment.status</code> - The attachment state (<code>attaching</code> |
240      * <code>attached</code> | <code>detaching</code>).</p> </li> <li> <p>
241      * <code>availability-zone</code> - The Availability Zone in which the volume was
242      * created.</p> </li> <li> <p> <code>create-time</code> - The time stamp when the
243      * volume was created.</p> </li> <li> <p> <code>encrypted</code> - Indicates
244      * whether the volume is encrypted (<code>true</code> | <code>false</code>)</p>
245      * </li> <li> <p> <code>multi-attach-enabled</code> - Indicates whether the volume
246      * is enabled for Multi-Attach (<code>true</code> | <code>false</code>)</p> </li>
247      * <li> <p> <code>fast-restored</code> - Indicates whether the volume was created
248      * from a snapshot that is enabled for fast snapshot restore (<code>true</code> |
249      * <code>false</code>).</p> </li> <li> <p> <code>size</code> - The size of the
250      * volume, in GiB.</p> </li> <li> <p> <code>snapshot-id</code> - The snapshot from
251      * which the volume was created.</p> </li> <li> <p> <code>status</code> - The state
252      * of the volume (<code>creating</code> | <code>available</code> |
253      * <code>in-use</code> | <code>deleting</code> | <code>deleted</code> |
254      * <code>error</code>).</p> </li> <li> <p> <code>tag</code>:&lt;key&gt; - The
255      * key/value combination of a tag assigned to the resource. Use the tag key in the
256      * filter name and the tag value as the filter value. For example, to find all
257      * resources that have a tag with the key <code>Owner</code> and the value
258      * <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and
259      * <code>TeamA</code> for the filter value.</p> </li> <li> <p> <code>tag-key</code>
260      * - The key of a tag assigned to the resource. Use this filter to find all
261      * resources assigned a tag with a specific key, regardless of the tag value.</p>
262      * </li> <li> <p> <code>volume-id</code> - The volume ID.</p> </li> <li> <p>
263      * <code>volume-type</code> - The Amazon EBS volume type (<code>gp2</code> |
264      * <code>gp3</code> | <code>io1</code> | <code>io2</code> | <code>st1</code> |
265      * <code>sc1</code>| <code>standard</code>)</p> </li> </ul>
266      */
WithFilters(Aws::Vector<Filter> && value)267     inline DescribeVolumesRequest& WithFilters(Aws::Vector<Filter>&& value) { SetFilters(std::move(value)); return *this;}
268 
269     /**
270      * <p>The filters.</p> <ul> <li> <p> <code>attachment.attach-time</code> - The time
271      * stamp when the attachment initiated.</p> </li> <li> <p>
272      * <code>attachment.delete-on-termination</code> - Whether the volume is deleted on
273      * instance termination.</p> </li> <li> <p> <code>attachment.device</code> - The
274      * device name specified in the block device mapping (for example,
275      * <code>/dev/sda1</code>).</p> </li> <li> <p> <code>attachment.instance-id</code>
276      * - The ID of the instance the volume is attached to.</p> </li> <li> <p>
277      * <code>attachment.status</code> - The attachment state (<code>attaching</code> |
278      * <code>attached</code> | <code>detaching</code>).</p> </li> <li> <p>
279      * <code>availability-zone</code> - The Availability Zone in which the volume was
280      * created.</p> </li> <li> <p> <code>create-time</code> - The time stamp when the
281      * volume was created.</p> </li> <li> <p> <code>encrypted</code> - Indicates
282      * whether the volume is encrypted (<code>true</code> | <code>false</code>)</p>
283      * </li> <li> <p> <code>multi-attach-enabled</code> - Indicates whether the volume
284      * is enabled for Multi-Attach (<code>true</code> | <code>false</code>)</p> </li>
285      * <li> <p> <code>fast-restored</code> - Indicates whether the volume was created
286      * from a snapshot that is enabled for fast snapshot restore (<code>true</code> |
287      * <code>false</code>).</p> </li> <li> <p> <code>size</code> - The size of the
288      * volume, in GiB.</p> </li> <li> <p> <code>snapshot-id</code> - The snapshot from
289      * which the volume was created.</p> </li> <li> <p> <code>status</code> - The state
290      * of the volume (<code>creating</code> | <code>available</code> |
291      * <code>in-use</code> | <code>deleting</code> | <code>deleted</code> |
292      * <code>error</code>).</p> </li> <li> <p> <code>tag</code>:&lt;key&gt; - The
293      * key/value combination of a tag assigned to the resource. Use the tag key in the
294      * filter name and the tag value as the filter value. For example, to find all
295      * resources that have a tag with the key <code>Owner</code> and the value
296      * <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and
297      * <code>TeamA</code> for the filter value.</p> </li> <li> <p> <code>tag-key</code>
298      * - The key of a tag assigned to the resource. Use this filter to find all
299      * resources assigned a tag with a specific key, regardless of the tag value.</p>
300      * </li> <li> <p> <code>volume-id</code> - The volume ID.</p> </li> <li> <p>
301      * <code>volume-type</code> - The Amazon EBS volume type (<code>gp2</code> |
302      * <code>gp3</code> | <code>io1</code> | <code>io2</code> | <code>st1</code> |
303      * <code>sc1</code>| <code>standard</code>)</p> </li> </ul>
304      */
AddFilters(const Filter & value)305     inline DescribeVolumesRequest& AddFilters(const Filter& value) { m_filtersHasBeenSet = true; m_filters.push_back(value); return *this; }
306 
307     /**
308      * <p>The filters.</p> <ul> <li> <p> <code>attachment.attach-time</code> - The time
309      * stamp when the attachment initiated.</p> </li> <li> <p>
310      * <code>attachment.delete-on-termination</code> - Whether the volume is deleted on
311      * instance termination.</p> </li> <li> <p> <code>attachment.device</code> - The
312      * device name specified in the block device mapping (for example,
313      * <code>/dev/sda1</code>).</p> </li> <li> <p> <code>attachment.instance-id</code>
314      * - The ID of the instance the volume is attached to.</p> </li> <li> <p>
315      * <code>attachment.status</code> - The attachment state (<code>attaching</code> |
316      * <code>attached</code> | <code>detaching</code>).</p> </li> <li> <p>
317      * <code>availability-zone</code> - The Availability Zone in which the volume was
318      * created.</p> </li> <li> <p> <code>create-time</code> - The time stamp when the
319      * volume was created.</p> </li> <li> <p> <code>encrypted</code> - Indicates
320      * whether the volume is encrypted (<code>true</code> | <code>false</code>)</p>
321      * </li> <li> <p> <code>multi-attach-enabled</code> - Indicates whether the volume
322      * is enabled for Multi-Attach (<code>true</code> | <code>false</code>)</p> </li>
323      * <li> <p> <code>fast-restored</code> - Indicates whether the volume was created
324      * from a snapshot that is enabled for fast snapshot restore (<code>true</code> |
325      * <code>false</code>).</p> </li> <li> <p> <code>size</code> - The size of the
326      * volume, in GiB.</p> </li> <li> <p> <code>snapshot-id</code> - The snapshot from
327      * which the volume was created.</p> </li> <li> <p> <code>status</code> - The state
328      * of the volume (<code>creating</code> | <code>available</code> |
329      * <code>in-use</code> | <code>deleting</code> | <code>deleted</code> |
330      * <code>error</code>).</p> </li> <li> <p> <code>tag</code>:&lt;key&gt; - The
331      * key/value combination of a tag assigned to the resource. Use the tag key in the
332      * filter name and the tag value as the filter value. For example, to find all
333      * resources that have a tag with the key <code>Owner</code> and the value
334      * <code>TeamA</code>, specify <code>tag:Owner</code> for the filter name and
335      * <code>TeamA</code> for the filter value.</p> </li> <li> <p> <code>tag-key</code>
336      * - The key of a tag assigned to the resource. Use this filter to find all
337      * resources assigned a tag with a specific key, regardless of the tag value.</p>
338      * </li> <li> <p> <code>volume-id</code> - The volume ID.</p> </li> <li> <p>
339      * <code>volume-type</code> - The Amazon EBS volume type (<code>gp2</code> |
340      * <code>gp3</code> | <code>io1</code> | <code>io2</code> | <code>st1</code> |
341      * <code>sc1</code>| <code>standard</code>)</p> </li> </ul>
342      */
AddFilters(Filter && value)343     inline DescribeVolumesRequest& AddFilters(Filter&& value) { m_filtersHasBeenSet = true; m_filters.push_back(std::move(value)); return *this; }
344 
345 
346     /**
347      * <p>The volume IDs.</p>
348      */
GetVolumeIds()349     inline const Aws::Vector<Aws::String>& GetVolumeIds() const{ return m_volumeIds; }
350 
351     /**
352      * <p>The volume IDs.</p>
353      */
VolumeIdsHasBeenSet()354     inline bool VolumeIdsHasBeenSet() const { return m_volumeIdsHasBeenSet; }
355 
356     /**
357      * <p>The volume IDs.</p>
358      */
SetVolumeIds(const Aws::Vector<Aws::String> & value)359     inline void SetVolumeIds(const Aws::Vector<Aws::String>& value) { m_volumeIdsHasBeenSet = true; m_volumeIds = value; }
360 
361     /**
362      * <p>The volume IDs.</p>
363      */
SetVolumeIds(Aws::Vector<Aws::String> && value)364     inline void SetVolumeIds(Aws::Vector<Aws::String>&& value) { m_volumeIdsHasBeenSet = true; m_volumeIds = std::move(value); }
365 
366     /**
367      * <p>The volume IDs.</p>
368      */
WithVolumeIds(const Aws::Vector<Aws::String> & value)369     inline DescribeVolumesRequest& WithVolumeIds(const Aws::Vector<Aws::String>& value) { SetVolumeIds(value); return *this;}
370 
371     /**
372      * <p>The volume IDs.</p>
373      */
WithVolumeIds(Aws::Vector<Aws::String> && value)374     inline DescribeVolumesRequest& WithVolumeIds(Aws::Vector<Aws::String>&& value) { SetVolumeIds(std::move(value)); return *this;}
375 
376     /**
377      * <p>The volume IDs.</p>
378      */
AddVolumeIds(const Aws::String & value)379     inline DescribeVolumesRequest& AddVolumeIds(const Aws::String& value) { m_volumeIdsHasBeenSet = true; m_volumeIds.push_back(value); return *this; }
380 
381     /**
382      * <p>The volume IDs.</p>
383      */
AddVolumeIds(Aws::String && value)384     inline DescribeVolumesRequest& AddVolumeIds(Aws::String&& value) { m_volumeIdsHasBeenSet = true; m_volumeIds.push_back(std::move(value)); return *this; }
385 
386     /**
387      * <p>The volume IDs.</p>
388      */
AddVolumeIds(const char * value)389     inline DescribeVolumesRequest& AddVolumeIds(const char* value) { m_volumeIdsHasBeenSet = true; m_volumeIds.push_back(value); return *this; }
390 
391 
392     /**
393      * <p>Checks whether you have the required permissions for the action, without
394      * actually making the request, and provides an error response. If you have the
395      * required permissions, the error response is <code>DryRunOperation</code>.
396      * Otherwise, it is <code>UnauthorizedOperation</code>.</p>
397      */
GetDryRun()398     inline bool GetDryRun() const{ return m_dryRun; }
399 
400     /**
401      * <p>Checks whether you have the required permissions for the action, without
402      * actually making the request, and provides an error response. If you have the
403      * required permissions, the error response is <code>DryRunOperation</code>.
404      * Otherwise, it is <code>UnauthorizedOperation</code>.</p>
405      */
DryRunHasBeenSet()406     inline bool DryRunHasBeenSet() const { return m_dryRunHasBeenSet; }
407 
408     /**
409      * <p>Checks whether you have the required permissions for the action, without
410      * actually making the request, and provides an error response. If you have the
411      * required permissions, the error response is <code>DryRunOperation</code>.
412      * Otherwise, it is <code>UnauthorizedOperation</code>.</p>
413      */
SetDryRun(bool value)414     inline void SetDryRun(bool value) { m_dryRunHasBeenSet = true; m_dryRun = value; }
415 
416     /**
417      * <p>Checks whether you have the required permissions for the action, without
418      * actually making the request, and provides an error response. If you have the
419      * required permissions, the error response is <code>DryRunOperation</code>.
420      * Otherwise, it is <code>UnauthorizedOperation</code>.</p>
421      */
WithDryRun(bool value)422     inline DescribeVolumesRequest& WithDryRun(bool value) { SetDryRun(value); return *this;}
423 
424 
425     /**
426      * <p>The maximum number of volume results returned by <code>DescribeVolumes</code>
427      * in paginated output. When this parameter is used, <code>DescribeVolumes</code>
428      * only returns <code>MaxResults</code> results in a single page along with a
429      * <code>NextToken</code> response element. The remaining results of the initial
430      * request can be seen by sending another <code>DescribeVolumes</code> request with
431      * the returned <code>NextToken</code> value. This value can be between 5 and 500;
432      * if <code>MaxResults</code> is given a value larger than 500, only 500 results
433      * are returned. If this parameter is not used, then <code>DescribeVolumes</code>
434      * returns all results. You cannot specify this parameter and the volume IDs
435      * parameter in the same request.</p>
436      */
GetMaxResults()437     inline int GetMaxResults() const{ return m_maxResults; }
438 
439     /**
440      * <p>The maximum number of volume results returned by <code>DescribeVolumes</code>
441      * in paginated output. When this parameter is used, <code>DescribeVolumes</code>
442      * only returns <code>MaxResults</code> results in a single page along with a
443      * <code>NextToken</code> response element. The remaining results of the initial
444      * request can be seen by sending another <code>DescribeVolumes</code> request with
445      * the returned <code>NextToken</code> value. This value can be between 5 and 500;
446      * if <code>MaxResults</code> is given a value larger than 500, only 500 results
447      * are returned. If this parameter is not used, then <code>DescribeVolumes</code>
448      * returns all results. You cannot specify this parameter and the volume IDs
449      * parameter in the same request.</p>
450      */
MaxResultsHasBeenSet()451     inline bool MaxResultsHasBeenSet() const { return m_maxResultsHasBeenSet; }
452 
453     /**
454      * <p>The maximum number of volume results returned by <code>DescribeVolumes</code>
455      * in paginated output. When this parameter is used, <code>DescribeVolumes</code>
456      * only returns <code>MaxResults</code> results in a single page along with a
457      * <code>NextToken</code> response element. The remaining results of the initial
458      * request can be seen by sending another <code>DescribeVolumes</code> request with
459      * the returned <code>NextToken</code> value. This value can be between 5 and 500;
460      * if <code>MaxResults</code> is given a value larger than 500, only 500 results
461      * are returned. If this parameter is not used, then <code>DescribeVolumes</code>
462      * returns all results. You cannot specify this parameter and the volume IDs
463      * parameter in the same request.</p>
464      */
SetMaxResults(int value)465     inline void SetMaxResults(int value) { m_maxResultsHasBeenSet = true; m_maxResults = value; }
466 
467     /**
468      * <p>The maximum number of volume results returned by <code>DescribeVolumes</code>
469      * in paginated output. When this parameter is used, <code>DescribeVolumes</code>
470      * only returns <code>MaxResults</code> results in a single page along with a
471      * <code>NextToken</code> response element. The remaining results of the initial
472      * request can be seen by sending another <code>DescribeVolumes</code> request with
473      * the returned <code>NextToken</code> value. This value can be between 5 and 500;
474      * if <code>MaxResults</code> is given a value larger than 500, only 500 results
475      * are returned. If this parameter is not used, then <code>DescribeVolumes</code>
476      * returns all results. You cannot specify this parameter and the volume IDs
477      * parameter in the same request.</p>
478      */
WithMaxResults(int value)479     inline DescribeVolumesRequest& WithMaxResults(int value) { SetMaxResults(value); return *this;}
480 
481 
482     /**
483      * <p>The <code>NextToken</code> value returned from a previous paginated
484      * <code>DescribeVolumes</code> request where <code>MaxResults</code> was used and
485      * the results exceeded the value of that parameter. Pagination continues from the
486      * end of the previous results that returned the <code>NextToken</code> value. This
487      * value is <code>null</code> when there are no more results to return.</p>
488      */
GetNextToken()489     inline const Aws::String& GetNextToken() const{ return m_nextToken; }
490 
491     /**
492      * <p>The <code>NextToken</code> value returned from a previous paginated
493      * <code>DescribeVolumes</code> request where <code>MaxResults</code> was used and
494      * the results exceeded the value of that parameter. Pagination continues from the
495      * end of the previous results that returned the <code>NextToken</code> value. This
496      * value is <code>null</code> when there are no more results to return.</p>
497      */
NextTokenHasBeenSet()498     inline bool NextTokenHasBeenSet() const { return m_nextTokenHasBeenSet; }
499 
500     /**
501      * <p>The <code>NextToken</code> value returned from a previous paginated
502      * <code>DescribeVolumes</code> request where <code>MaxResults</code> was used and
503      * the results exceeded the value of that parameter. Pagination continues from the
504      * end of the previous results that returned the <code>NextToken</code> value. This
505      * value is <code>null</code> when there are no more results to return.</p>
506      */
SetNextToken(const Aws::String & value)507     inline void SetNextToken(const Aws::String& value) { m_nextTokenHasBeenSet = true; m_nextToken = value; }
508 
509     /**
510      * <p>The <code>NextToken</code> value returned from a previous paginated
511      * <code>DescribeVolumes</code> request where <code>MaxResults</code> was used and
512      * the results exceeded the value of that parameter. Pagination continues from the
513      * end of the previous results that returned the <code>NextToken</code> value. This
514      * value is <code>null</code> when there are no more results to return.</p>
515      */
SetNextToken(Aws::String && value)516     inline void SetNextToken(Aws::String&& value) { m_nextTokenHasBeenSet = true; m_nextToken = std::move(value); }
517 
518     /**
519      * <p>The <code>NextToken</code> value returned from a previous paginated
520      * <code>DescribeVolumes</code> request where <code>MaxResults</code> was used and
521      * the results exceeded the value of that parameter. Pagination continues from the
522      * end of the previous results that returned the <code>NextToken</code> value. This
523      * value is <code>null</code> when there are no more results to return.</p>
524      */
SetNextToken(const char * value)525     inline void SetNextToken(const char* value) { m_nextTokenHasBeenSet = true; m_nextToken.assign(value); }
526 
527     /**
528      * <p>The <code>NextToken</code> value returned from a previous paginated
529      * <code>DescribeVolumes</code> request where <code>MaxResults</code> was used and
530      * the results exceeded the value of that parameter. Pagination continues from the
531      * end of the previous results that returned the <code>NextToken</code> value. This
532      * value is <code>null</code> when there are no more results to return.</p>
533      */
WithNextToken(const Aws::String & value)534     inline DescribeVolumesRequest& WithNextToken(const Aws::String& value) { SetNextToken(value); return *this;}
535 
536     /**
537      * <p>The <code>NextToken</code> value returned from a previous paginated
538      * <code>DescribeVolumes</code> request where <code>MaxResults</code> was used and
539      * the results exceeded the value of that parameter. Pagination continues from the
540      * end of the previous results that returned the <code>NextToken</code> value. This
541      * value is <code>null</code> when there are no more results to return.</p>
542      */
WithNextToken(Aws::String && value)543     inline DescribeVolumesRequest& WithNextToken(Aws::String&& value) { SetNextToken(std::move(value)); return *this;}
544 
545     /**
546      * <p>The <code>NextToken</code> value returned from a previous paginated
547      * <code>DescribeVolumes</code> request where <code>MaxResults</code> was used and
548      * the results exceeded the value of that parameter. Pagination continues from the
549      * end of the previous results that returned the <code>NextToken</code> value. This
550      * value is <code>null</code> when there are no more results to return.</p>
551      */
WithNextToken(const char * value)552     inline DescribeVolumesRequest& WithNextToken(const char* value) { SetNextToken(value); return *this;}
553 
554   private:
555 
556     Aws::Vector<Filter> m_filters;
557     bool m_filtersHasBeenSet;
558 
559     Aws::Vector<Aws::String> m_volumeIds;
560     bool m_volumeIdsHasBeenSet;
561 
562     bool m_dryRun;
563     bool m_dryRunHasBeenSet;
564 
565     int m_maxResults;
566     bool m_maxResultsHasBeenSet;
567 
568     Aws::String m_nextToken;
569     bool m_nextTokenHasBeenSet;
570   };
571 
572 } // namespace Model
573 } // namespace EC2
574 } // namespace Aws
575