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/greengrassv2/GreengrassV2_EXPORTS.h>
8 #include <aws/greengrassv2/GreengrassV2Request.h>
9 #include <aws/greengrassv2/model/ComponentVisibilityScope.h>
10 #include <aws/core/utils/memory/stl/AWSString.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Http
16 {
17     class URI;
18 } //namespace Http
19 namespace GreengrassV2
20 {
21 namespace Model
22 {
23 
24   /**
25    */
26   class AWS_GREENGRASSV2_API ListComponentsRequest : public GreengrassV2Request
27   {
28   public:
29     ListComponentsRequest();
30 
31     // Service request name is the Operation name which will send this request out,
32     // each operation should has unique request name, so that we can get operation's name from this request.
33     // Note: this is not true for response, multiple operations may have the same response name,
34     // so we can not get operation's name from response.
GetServiceRequestName()35     inline virtual const char* GetServiceRequestName() const override { return "ListComponents"; }
36 
37     Aws::String SerializePayload() const override;
38 
39     void AddQueryStringParameters(Aws::Http::URI& uri) const override;
40 
41 
42     /**
43      * <p>The scope of the components to list.</p> <p>Default: <code>PRIVATE</code>
44      * </p>
45      */
GetScope()46     inline const ComponentVisibilityScope& GetScope() const{ return m_scope; }
47 
48     /**
49      * <p>The scope of the components to list.</p> <p>Default: <code>PRIVATE</code>
50      * </p>
51      */
ScopeHasBeenSet()52     inline bool ScopeHasBeenSet() const { return m_scopeHasBeenSet; }
53 
54     /**
55      * <p>The scope of the components to list.</p> <p>Default: <code>PRIVATE</code>
56      * </p>
57      */
SetScope(const ComponentVisibilityScope & value)58     inline void SetScope(const ComponentVisibilityScope& value) { m_scopeHasBeenSet = true; m_scope = value; }
59 
60     /**
61      * <p>The scope of the components to list.</p> <p>Default: <code>PRIVATE</code>
62      * </p>
63      */
SetScope(ComponentVisibilityScope && value)64     inline void SetScope(ComponentVisibilityScope&& value) { m_scopeHasBeenSet = true; m_scope = std::move(value); }
65 
66     /**
67      * <p>The scope of the components to list.</p> <p>Default: <code>PRIVATE</code>
68      * </p>
69      */
WithScope(const ComponentVisibilityScope & value)70     inline ListComponentsRequest& WithScope(const ComponentVisibilityScope& value) { SetScope(value); return *this;}
71 
72     /**
73      * <p>The scope of the components to list.</p> <p>Default: <code>PRIVATE</code>
74      * </p>
75      */
WithScope(ComponentVisibilityScope && value)76     inline ListComponentsRequest& WithScope(ComponentVisibilityScope&& value) { SetScope(std::move(value)); return *this;}
77 
78 
79     /**
80      * <p>The maximum number of results to be returned per paginated request.</p>
81      */
GetMaxResults()82     inline int GetMaxResults() const{ return m_maxResults; }
83 
84     /**
85      * <p>The maximum number of results to be returned per paginated request.</p>
86      */
MaxResultsHasBeenSet()87     inline bool MaxResultsHasBeenSet() const { return m_maxResultsHasBeenSet; }
88 
89     /**
90      * <p>The maximum number of results to be returned per paginated request.</p>
91      */
SetMaxResults(int value)92     inline void SetMaxResults(int value) { m_maxResultsHasBeenSet = true; m_maxResults = value; }
93 
94     /**
95      * <p>The maximum number of results to be returned per paginated request.</p>
96      */
WithMaxResults(int value)97     inline ListComponentsRequest& WithMaxResults(int value) { SetMaxResults(value); return *this;}
98 
99 
100     /**
101      * <p>The token to be used for the next set of paginated results.</p>
102      */
GetNextToken()103     inline const Aws::String& GetNextToken() const{ return m_nextToken; }
104 
105     /**
106      * <p>The token to be used for the next set of paginated results.</p>
107      */
NextTokenHasBeenSet()108     inline bool NextTokenHasBeenSet() const { return m_nextTokenHasBeenSet; }
109 
110     /**
111      * <p>The token to be used for the next set of paginated results.</p>
112      */
SetNextToken(const Aws::String & value)113     inline void SetNextToken(const Aws::String& value) { m_nextTokenHasBeenSet = true; m_nextToken = value; }
114 
115     /**
116      * <p>The token to be used for the next set of paginated results.</p>
117      */
SetNextToken(Aws::String && value)118     inline void SetNextToken(Aws::String&& value) { m_nextTokenHasBeenSet = true; m_nextToken = std::move(value); }
119 
120     /**
121      * <p>The token to be used for the next set of paginated results.</p>
122      */
SetNextToken(const char * value)123     inline void SetNextToken(const char* value) { m_nextTokenHasBeenSet = true; m_nextToken.assign(value); }
124 
125     /**
126      * <p>The token to be used for the next set of paginated results.</p>
127      */
WithNextToken(const Aws::String & value)128     inline ListComponentsRequest& WithNextToken(const Aws::String& value) { SetNextToken(value); return *this;}
129 
130     /**
131      * <p>The token to be used for the next set of paginated results.</p>
132      */
WithNextToken(Aws::String && value)133     inline ListComponentsRequest& WithNextToken(Aws::String&& value) { SetNextToken(std::move(value)); return *this;}
134 
135     /**
136      * <p>The token to be used for the next set of paginated results.</p>
137      */
WithNextToken(const char * value)138     inline ListComponentsRequest& WithNextToken(const char* value) { SetNextToken(value); return *this;}
139 
140   private:
141 
142     ComponentVisibilityScope m_scope;
143     bool m_scopeHasBeenSet;
144 
145     int m_maxResults;
146     bool m_maxResultsHasBeenSet;
147 
148     Aws::String m_nextToken;
149     bool m_nextTokenHasBeenSet;
150   };
151 
152 } // namespace Model
153 } // namespace GreengrassV2
154 } // namespace Aws
155