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/fsx/FSx_EXPORTS.h>
8 #include <aws/fsx/FSxRequest.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/core/utils/memory/stl/AWSString.h>
11 #include <aws/fsx/model/VolumeFilter.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace FSx
17 {
18 namespace Model
19 {
20 
21   /**
22    */
23   class AWS_FSX_API DescribeVolumesRequest : public FSxRequest
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     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
37 
38 
39     /**
40      * <p>IDs of the volumes whose descriptions you want to retrieve.</p>
41      */
GetVolumeIds()42     inline const Aws::Vector<Aws::String>& GetVolumeIds() const{ return m_volumeIds; }
43 
44     /**
45      * <p>IDs of the volumes whose descriptions you want to retrieve.</p>
46      */
VolumeIdsHasBeenSet()47     inline bool VolumeIdsHasBeenSet() const { return m_volumeIdsHasBeenSet; }
48 
49     /**
50      * <p>IDs of the volumes whose descriptions you want to retrieve.</p>
51      */
SetVolumeIds(const Aws::Vector<Aws::String> & value)52     inline void SetVolumeIds(const Aws::Vector<Aws::String>& value) { m_volumeIdsHasBeenSet = true; m_volumeIds = value; }
53 
54     /**
55      * <p>IDs of the volumes whose descriptions you want to retrieve.</p>
56      */
SetVolumeIds(Aws::Vector<Aws::String> && value)57     inline void SetVolumeIds(Aws::Vector<Aws::String>&& value) { m_volumeIdsHasBeenSet = true; m_volumeIds = std::move(value); }
58 
59     /**
60      * <p>IDs of the volumes whose descriptions you want to retrieve.</p>
61      */
WithVolumeIds(const Aws::Vector<Aws::String> & value)62     inline DescribeVolumesRequest& WithVolumeIds(const Aws::Vector<Aws::String>& value) { SetVolumeIds(value); return *this;}
63 
64     /**
65      * <p>IDs of the volumes whose descriptions you want to retrieve.</p>
66      */
WithVolumeIds(Aws::Vector<Aws::String> && value)67     inline DescribeVolumesRequest& WithVolumeIds(Aws::Vector<Aws::String>&& value) { SetVolumeIds(std::move(value)); return *this;}
68 
69     /**
70      * <p>IDs of the volumes whose descriptions you want to retrieve.</p>
71      */
AddVolumeIds(const Aws::String & value)72     inline DescribeVolumesRequest& AddVolumeIds(const Aws::String& value) { m_volumeIdsHasBeenSet = true; m_volumeIds.push_back(value); return *this; }
73 
74     /**
75      * <p>IDs of the volumes whose descriptions you want to retrieve.</p>
76      */
AddVolumeIds(Aws::String && value)77     inline DescribeVolumesRequest& AddVolumeIds(Aws::String&& value) { m_volumeIdsHasBeenSet = true; m_volumeIds.push_back(std::move(value)); return *this; }
78 
79     /**
80      * <p>IDs of the volumes whose descriptions you want to retrieve.</p>
81      */
AddVolumeIds(const char * value)82     inline DescribeVolumesRequest& AddVolumeIds(const char* value) { m_volumeIdsHasBeenSet = true; m_volumeIds.push_back(value); return *this; }
83 
84 
85     /**
86      * <p>Enter a filter name:value pair to view a select set of volumes.</p>
87      */
GetFilters()88     inline const Aws::Vector<VolumeFilter>& GetFilters() const{ return m_filters; }
89 
90     /**
91      * <p>Enter a filter name:value pair to view a select set of volumes.</p>
92      */
FiltersHasBeenSet()93     inline bool FiltersHasBeenSet() const { return m_filtersHasBeenSet; }
94 
95     /**
96      * <p>Enter a filter name:value pair to view a select set of volumes.</p>
97      */
SetFilters(const Aws::Vector<VolumeFilter> & value)98     inline void SetFilters(const Aws::Vector<VolumeFilter>& value) { m_filtersHasBeenSet = true; m_filters = value; }
99 
100     /**
101      * <p>Enter a filter name:value pair to view a select set of volumes.</p>
102      */
SetFilters(Aws::Vector<VolumeFilter> && value)103     inline void SetFilters(Aws::Vector<VolumeFilter>&& value) { m_filtersHasBeenSet = true; m_filters = std::move(value); }
104 
105     /**
106      * <p>Enter a filter name:value pair to view a select set of volumes.</p>
107      */
WithFilters(const Aws::Vector<VolumeFilter> & value)108     inline DescribeVolumesRequest& WithFilters(const Aws::Vector<VolumeFilter>& value) { SetFilters(value); return *this;}
109 
110     /**
111      * <p>Enter a filter name:value pair to view a select set of volumes.</p>
112      */
WithFilters(Aws::Vector<VolumeFilter> && value)113     inline DescribeVolumesRequest& WithFilters(Aws::Vector<VolumeFilter>&& value) { SetFilters(std::move(value)); return *this;}
114 
115     /**
116      * <p>Enter a filter name:value pair to view a select set of volumes.</p>
117      */
AddFilters(const VolumeFilter & value)118     inline DescribeVolumesRequest& AddFilters(const VolumeFilter& value) { m_filtersHasBeenSet = true; m_filters.push_back(value); return *this; }
119 
120     /**
121      * <p>Enter a filter name:value pair to view a select set of volumes.</p>
122      */
AddFilters(VolumeFilter && value)123     inline DescribeVolumesRequest& AddFilters(VolumeFilter&& value) { m_filtersHasBeenSet = true; m_filters.push_back(std::move(value)); return *this; }
124 
125 
126 
GetMaxResults()127     inline int GetMaxResults() const{ return m_maxResults; }
128 
129 
MaxResultsHasBeenSet()130     inline bool MaxResultsHasBeenSet() const { return m_maxResultsHasBeenSet; }
131 
132 
SetMaxResults(int value)133     inline void SetMaxResults(int value) { m_maxResultsHasBeenSet = true; m_maxResults = value; }
134 
135 
WithMaxResults(int value)136     inline DescribeVolumesRequest& WithMaxResults(int value) { SetMaxResults(value); return *this;}
137 
138 
139 
GetNextToken()140     inline const Aws::String& GetNextToken() const{ return m_nextToken; }
141 
142 
NextTokenHasBeenSet()143     inline bool NextTokenHasBeenSet() const { return m_nextTokenHasBeenSet; }
144 
145 
SetNextToken(const Aws::String & value)146     inline void SetNextToken(const Aws::String& value) { m_nextTokenHasBeenSet = true; m_nextToken = value; }
147 
148 
SetNextToken(Aws::String && value)149     inline void SetNextToken(Aws::String&& value) { m_nextTokenHasBeenSet = true; m_nextToken = std::move(value); }
150 
151 
SetNextToken(const char * value)152     inline void SetNextToken(const char* value) { m_nextTokenHasBeenSet = true; m_nextToken.assign(value); }
153 
154 
WithNextToken(const Aws::String & value)155     inline DescribeVolumesRequest& WithNextToken(const Aws::String& value) { SetNextToken(value); return *this;}
156 
157 
WithNextToken(Aws::String && value)158     inline DescribeVolumesRequest& WithNextToken(Aws::String&& value) { SetNextToken(std::move(value)); return *this;}
159 
160 
WithNextToken(const char * value)161     inline DescribeVolumesRequest& WithNextToken(const char* value) { SetNextToken(value); return *this;}
162 
163   private:
164 
165     Aws::Vector<Aws::String> m_volumeIds;
166     bool m_volumeIdsHasBeenSet;
167 
168     Aws::Vector<VolumeFilter> m_filters;
169     bool m_filtersHasBeenSet;
170 
171     int m_maxResults;
172     bool m_maxResultsHasBeenSet;
173 
174     Aws::String m_nextToken;
175     bool m_nextTokenHasBeenSet;
176   };
177 
178 } // namespace Model
179 } // namespace FSx
180 } // namespace Aws
181