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/servicecatalog/ServiceCatalog_EXPORTS.h>
8 #include <aws/servicecatalog/ServiceCatalogRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSMap.h>
11 #include <aws/servicecatalog/model/ProductViewSortBy.h>
12 #include <aws/servicecatalog/model/SortOrder.h>
13 #include <aws/servicecatalog/model/ProductSource.h>
14 #include <aws/servicecatalog/model/ProductViewFilterBy.h>
15 #include <aws/core/utils/memory/stl/AWSVector.h>
16 #include <utility>
17 
18 namespace Aws
19 {
20 namespace ServiceCatalog
21 {
22 namespace Model
23 {
24 
25   /**
26    */
27   class AWS_SERVICECATALOG_API SearchProductsAsAdminRequest : public ServiceCatalogRequest
28   {
29   public:
30     SearchProductsAsAdminRequest();
31 
32     // Service request name is the Operation name which will send this request out,
33     // each operation should has unique request name, so that we can get operation's name from this request.
34     // Note: this is not true for response, multiple operations may have the same response name,
35     // so we can not get operation's name from response.
GetServiceRequestName()36     inline virtual const char* GetServiceRequestName() const override { return "SearchProductsAsAdmin"; }
37 
38     Aws::String SerializePayload() const override;
39 
40     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
41 
42 
43     /**
44      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
45      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
46      * Chinese</p> </li> </ul>
47      */
GetAcceptLanguage()48     inline const Aws::String& GetAcceptLanguage() const{ return m_acceptLanguage; }
49 
50     /**
51      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
52      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
53      * Chinese</p> </li> </ul>
54      */
AcceptLanguageHasBeenSet()55     inline bool AcceptLanguageHasBeenSet() const { return m_acceptLanguageHasBeenSet; }
56 
57     /**
58      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
59      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
60      * Chinese</p> </li> </ul>
61      */
SetAcceptLanguage(const Aws::String & value)62     inline void SetAcceptLanguage(const Aws::String& value) { m_acceptLanguageHasBeenSet = true; m_acceptLanguage = value; }
63 
64     /**
65      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
66      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
67      * Chinese</p> </li> </ul>
68      */
SetAcceptLanguage(Aws::String && value)69     inline void SetAcceptLanguage(Aws::String&& value) { m_acceptLanguageHasBeenSet = true; m_acceptLanguage = std::move(value); }
70 
71     /**
72      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
73      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
74      * Chinese</p> </li> </ul>
75      */
SetAcceptLanguage(const char * value)76     inline void SetAcceptLanguage(const char* value) { m_acceptLanguageHasBeenSet = true; m_acceptLanguage.assign(value); }
77 
78     /**
79      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
80      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
81      * Chinese</p> </li> </ul>
82      */
WithAcceptLanguage(const Aws::String & value)83     inline SearchProductsAsAdminRequest& WithAcceptLanguage(const Aws::String& value) { SetAcceptLanguage(value); return *this;}
84 
85     /**
86      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
87      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
88      * Chinese</p> </li> </ul>
89      */
WithAcceptLanguage(Aws::String && value)90     inline SearchProductsAsAdminRequest& WithAcceptLanguage(Aws::String&& value) { SetAcceptLanguage(std::move(value)); return *this;}
91 
92     /**
93      * <p>The language code.</p> <ul> <li> <p> <code>en</code> - English (default)</p>
94      * </li> <li> <p> <code>jp</code> - Japanese</p> </li> <li> <p> <code>zh</code> -
95      * Chinese</p> </li> </ul>
96      */
WithAcceptLanguage(const char * value)97     inline SearchProductsAsAdminRequest& WithAcceptLanguage(const char* value) { SetAcceptLanguage(value); return *this;}
98 
99 
100     /**
101      * <p>The portfolio identifier.</p>
102      */
GetPortfolioId()103     inline const Aws::String& GetPortfolioId() const{ return m_portfolioId; }
104 
105     /**
106      * <p>The portfolio identifier.</p>
107      */
PortfolioIdHasBeenSet()108     inline bool PortfolioIdHasBeenSet() const { return m_portfolioIdHasBeenSet; }
109 
110     /**
111      * <p>The portfolio identifier.</p>
112      */
SetPortfolioId(const Aws::String & value)113     inline void SetPortfolioId(const Aws::String& value) { m_portfolioIdHasBeenSet = true; m_portfolioId = value; }
114 
115     /**
116      * <p>The portfolio identifier.</p>
117      */
SetPortfolioId(Aws::String && value)118     inline void SetPortfolioId(Aws::String&& value) { m_portfolioIdHasBeenSet = true; m_portfolioId = std::move(value); }
119 
120     /**
121      * <p>The portfolio identifier.</p>
122      */
SetPortfolioId(const char * value)123     inline void SetPortfolioId(const char* value) { m_portfolioIdHasBeenSet = true; m_portfolioId.assign(value); }
124 
125     /**
126      * <p>The portfolio identifier.</p>
127      */
WithPortfolioId(const Aws::String & value)128     inline SearchProductsAsAdminRequest& WithPortfolioId(const Aws::String& value) { SetPortfolioId(value); return *this;}
129 
130     /**
131      * <p>The portfolio identifier.</p>
132      */
WithPortfolioId(Aws::String && value)133     inline SearchProductsAsAdminRequest& WithPortfolioId(Aws::String&& value) { SetPortfolioId(std::move(value)); return *this;}
134 
135     /**
136      * <p>The portfolio identifier.</p>
137      */
WithPortfolioId(const char * value)138     inline SearchProductsAsAdminRequest& WithPortfolioId(const char* value) { SetPortfolioId(value); return *this;}
139 
140 
141     /**
142      * <p>The search filters. If no search filters are specified, the output includes
143      * all products to which the administrator has access.</p>
144      */
GetFilters()145     inline const Aws::Map<ProductViewFilterBy, Aws::Vector<Aws::String>>& GetFilters() const{ return m_filters; }
146 
147     /**
148      * <p>The search filters. If no search filters are specified, the output includes
149      * all products to which the administrator has access.</p>
150      */
FiltersHasBeenSet()151     inline bool FiltersHasBeenSet() const { return m_filtersHasBeenSet; }
152 
153     /**
154      * <p>The search filters. If no search filters are specified, the output includes
155      * all products to which the administrator has access.</p>
156      */
SetFilters(const Aws::Map<ProductViewFilterBy,Aws::Vector<Aws::String>> & value)157     inline void SetFilters(const Aws::Map<ProductViewFilterBy, Aws::Vector<Aws::String>>& value) { m_filtersHasBeenSet = true; m_filters = value; }
158 
159     /**
160      * <p>The search filters. If no search filters are specified, the output includes
161      * all products to which the administrator has access.</p>
162      */
SetFilters(Aws::Map<ProductViewFilterBy,Aws::Vector<Aws::String>> && value)163     inline void SetFilters(Aws::Map<ProductViewFilterBy, Aws::Vector<Aws::String>>&& value) { m_filtersHasBeenSet = true; m_filters = std::move(value); }
164 
165     /**
166      * <p>The search filters. If no search filters are specified, the output includes
167      * all products to which the administrator has access.</p>
168      */
WithFilters(const Aws::Map<ProductViewFilterBy,Aws::Vector<Aws::String>> & value)169     inline SearchProductsAsAdminRequest& WithFilters(const Aws::Map<ProductViewFilterBy, Aws::Vector<Aws::String>>& value) { SetFilters(value); return *this;}
170 
171     /**
172      * <p>The search filters. If no search filters are specified, the output includes
173      * all products to which the administrator has access.</p>
174      */
WithFilters(Aws::Map<ProductViewFilterBy,Aws::Vector<Aws::String>> && value)175     inline SearchProductsAsAdminRequest& WithFilters(Aws::Map<ProductViewFilterBy, Aws::Vector<Aws::String>>&& value) { SetFilters(std::move(value)); return *this;}
176 
177     /**
178      * <p>The search filters. If no search filters are specified, the output includes
179      * all products to which the administrator has access.</p>
180      */
AddFilters(const ProductViewFilterBy & key,const Aws::Vector<Aws::String> & value)181     inline SearchProductsAsAdminRequest& AddFilters(const ProductViewFilterBy& key, const Aws::Vector<Aws::String>& value) { m_filtersHasBeenSet = true; m_filters.emplace(key, value); return *this; }
182 
183     /**
184      * <p>The search filters. If no search filters are specified, the output includes
185      * all products to which the administrator has access.</p>
186      */
AddFilters(ProductViewFilterBy && key,const Aws::Vector<Aws::String> & value)187     inline SearchProductsAsAdminRequest& AddFilters(ProductViewFilterBy&& key, const Aws::Vector<Aws::String>& value) { m_filtersHasBeenSet = true; m_filters.emplace(std::move(key), value); return *this; }
188 
189     /**
190      * <p>The search filters. If no search filters are specified, the output includes
191      * all products to which the administrator has access.</p>
192      */
AddFilters(const ProductViewFilterBy & key,Aws::Vector<Aws::String> && value)193     inline SearchProductsAsAdminRequest& AddFilters(const ProductViewFilterBy& key, Aws::Vector<Aws::String>&& value) { m_filtersHasBeenSet = true; m_filters.emplace(key, std::move(value)); return *this; }
194 
195     /**
196      * <p>The search filters. If no search filters are specified, the output includes
197      * all products to which the administrator has access.</p>
198      */
AddFilters(ProductViewFilterBy && key,Aws::Vector<Aws::String> && value)199     inline SearchProductsAsAdminRequest& AddFilters(ProductViewFilterBy&& key, Aws::Vector<Aws::String>&& value) { m_filtersHasBeenSet = true; m_filters.emplace(std::move(key), std::move(value)); return *this; }
200 
201 
202     /**
203      * <p>The sort field. If no value is specified, the results are not sorted.</p>
204      */
GetSortBy()205     inline const ProductViewSortBy& GetSortBy() const{ return m_sortBy; }
206 
207     /**
208      * <p>The sort field. If no value is specified, the results are not sorted.</p>
209      */
SortByHasBeenSet()210     inline bool SortByHasBeenSet() const { return m_sortByHasBeenSet; }
211 
212     /**
213      * <p>The sort field. If no value is specified, the results are not sorted.</p>
214      */
SetSortBy(const ProductViewSortBy & value)215     inline void SetSortBy(const ProductViewSortBy& value) { m_sortByHasBeenSet = true; m_sortBy = value; }
216 
217     /**
218      * <p>The sort field. If no value is specified, the results are not sorted.</p>
219      */
SetSortBy(ProductViewSortBy && value)220     inline void SetSortBy(ProductViewSortBy&& value) { m_sortByHasBeenSet = true; m_sortBy = std::move(value); }
221 
222     /**
223      * <p>The sort field. If no value is specified, the results are not sorted.</p>
224      */
WithSortBy(const ProductViewSortBy & value)225     inline SearchProductsAsAdminRequest& WithSortBy(const ProductViewSortBy& value) { SetSortBy(value); return *this;}
226 
227     /**
228      * <p>The sort field. If no value is specified, the results are not sorted.</p>
229      */
WithSortBy(ProductViewSortBy && value)230     inline SearchProductsAsAdminRequest& WithSortBy(ProductViewSortBy&& value) { SetSortBy(std::move(value)); return *this;}
231 
232 
233     /**
234      * <p>The sort order. If no value is specified, the results are not sorted.</p>
235      */
GetSortOrder()236     inline const SortOrder& GetSortOrder() const{ return m_sortOrder; }
237 
238     /**
239      * <p>The sort order. If no value is specified, the results are not sorted.</p>
240      */
SortOrderHasBeenSet()241     inline bool SortOrderHasBeenSet() const { return m_sortOrderHasBeenSet; }
242 
243     /**
244      * <p>The sort order. If no value is specified, the results are not sorted.</p>
245      */
SetSortOrder(const SortOrder & value)246     inline void SetSortOrder(const SortOrder& value) { m_sortOrderHasBeenSet = true; m_sortOrder = value; }
247 
248     /**
249      * <p>The sort order. If no value is specified, the results are not sorted.</p>
250      */
SetSortOrder(SortOrder && value)251     inline void SetSortOrder(SortOrder&& value) { m_sortOrderHasBeenSet = true; m_sortOrder = std::move(value); }
252 
253     /**
254      * <p>The sort order. If no value is specified, the results are not sorted.</p>
255      */
WithSortOrder(const SortOrder & value)256     inline SearchProductsAsAdminRequest& WithSortOrder(const SortOrder& value) { SetSortOrder(value); return *this;}
257 
258     /**
259      * <p>The sort order. If no value is specified, the results are not sorted.</p>
260      */
WithSortOrder(SortOrder && value)261     inline SearchProductsAsAdminRequest& WithSortOrder(SortOrder&& value) { SetSortOrder(std::move(value)); return *this;}
262 
263 
264     /**
265      * <p>The page token for the next set of results. To retrieve the first set of
266      * results, use null.</p>
267      */
GetPageToken()268     inline const Aws::String& GetPageToken() const{ return m_pageToken; }
269 
270     /**
271      * <p>The page token for the next set of results. To retrieve the first set of
272      * results, use null.</p>
273      */
PageTokenHasBeenSet()274     inline bool PageTokenHasBeenSet() const { return m_pageTokenHasBeenSet; }
275 
276     /**
277      * <p>The page token for the next set of results. To retrieve the first set of
278      * results, use null.</p>
279      */
SetPageToken(const Aws::String & value)280     inline void SetPageToken(const Aws::String& value) { m_pageTokenHasBeenSet = true; m_pageToken = value; }
281 
282     /**
283      * <p>The page token for the next set of results. To retrieve the first set of
284      * results, use null.</p>
285      */
SetPageToken(Aws::String && value)286     inline void SetPageToken(Aws::String&& value) { m_pageTokenHasBeenSet = true; m_pageToken = std::move(value); }
287 
288     /**
289      * <p>The page token for the next set of results. To retrieve the first set of
290      * results, use null.</p>
291      */
SetPageToken(const char * value)292     inline void SetPageToken(const char* value) { m_pageTokenHasBeenSet = true; m_pageToken.assign(value); }
293 
294     /**
295      * <p>The page token for the next set of results. To retrieve the first set of
296      * results, use null.</p>
297      */
WithPageToken(const Aws::String & value)298     inline SearchProductsAsAdminRequest& WithPageToken(const Aws::String& value) { SetPageToken(value); return *this;}
299 
300     /**
301      * <p>The page token for the next set of results. To retrieve the first set of
302      * results, use null.</p>
303      */
WithPageToken(Aws::String && value)304     inline SearchProductsAsAdminRequest& WithPageToken(Aws::String&& value) { SetPageToken(std::move(value)); return *this;}
305 
306     /**
307      * <p>The page token for the next set of results. To retrieve the first set of
308      * results, use null.</p>
309      */
WithPageToken(const char * value)310     inline SearchProductsAsAdminRequest& WithPageToken(const char* value) { SetPageToken(value); return *this;}
311 
312 
313     /**
314      * <p>The maximum number of items to return with this call.</p>
315      */
GetPageSize()316     inline int GetPageSize() const{ return m_pageSize; }
317 
318     /**
319      * <p>The maximum number of items to return with this call.</p>
320      */
PageSizeHasBeenSet()321     inline bool PageSizeHasBeenSet() const { return m_pageSizeHasBeenSet; }
322 
323     /**
324      * <p>The maximum number of items to return with this call.</p>
325      */
SetPageSize(int value)326     inline void SetPageSize(int value) { m_pageSizeHasBeenSet = true; m_pageSize = value; }
327 
328     /**
329      * <p>The maximum number of items to return with this call.</p>
330      */
WithPageSize(int value)331     inline SearchProductsAsAdminRequest& WithPageSize(int value) { SetPageSize(value); return *this;}
332 
333 
334     /**
335      * <p>Access level of the source of the product.</p>
336      */
GetProductSource()337     inline const ProductSource& GetProductSource() const{ return m_productSource; }
338 
339     /**
340      * <p>Access level of the source of the product.</p>
341      */
ProductSourceHasBeenSet()342     inline bool ProductSourceHasBeenSet() const { return m_productSourceHasBeenSet; }
343 
344     /**
345      * <p>Access level of the source of the product.</p>
346      */
SetProductSource(const ProductSource & value)347     inline void SetProductSource(const ProductSource& value) { m_productSourceHasBeenSet = true; m_productSource = value; }
348 
349     /**
350      * <p>Access level of the source of the product.</p>
351      */
SetProductSource(ProductSource && value)352     inline void SetProductSource(ProductSource&& value) { m_productSourceHasBeenSet = true; m_productSource = std::move(value); }
353 
354     /**
355      * <p>Access level of the source of the product.</p>
356      */
WithProductSource(const ProductSource & value)357     inline SearchProductsAsAdminRequest& WithProductSource(const ProductSource& value) { SetProductSource(value); return *this;}
358 
359     /**
360      * <p>Access level of the source of the product.</p>
361      */
WithProductSource(ProductSource && value)362     inline SearchProductsAsAdminRequest& WithProductSource(ProductSource&& value) { SetProductSource(std::move(value)); return *this;}
363 
364   private:
365 
366     Aws::String m_acceptLanguage;
367     bool m_acceptLanguageHasBeenSet;
368 
369     Aws::String m_portfolioId;
370     bool m_portfolioIdHasBeenSet;
371 
372     Aws::Map<ProductViewFilterBy, Aws::Vector<Aws::String>> m_filters;
373     bool m_filtersHasBeenSet;
374 
375     ProductViewSortBy m_sortBy;
376     bool m_sortByHasBeenSet;
377 
378     SortOrder m_sortOrder;
379     bool m_sortOrderHasBeenSet;
380 
381     Aws::String m_pageToken;
382     bool m_pageTokenHasBeenSet;
383 
384     int m_pageSize;
385     bool m_pageSizeHasBeenSet;
386 
387     ProductSource m_productSource;
388     bool m_productSourceHasBeenSet;
389   };
390 
391 } // namespace Model
392 } // namespace ServiceCatalog
393 } // namespace Aws
394