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/wafv2/WAFV2_EXPORTS.h>
8 #include <aws/wafv2/WAFV2Request.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/wafv2/model/Scope.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace WAFV2
16 {
17 namespace Model
18 {
19 
20   /**
21    */
22   class AWS_WAFV2_API GetManagedRuleSetRequest : public WAFV2Request
23   {
24   public:
25     GetManagedRuleSetRequest();
26 
27     // Service request name is the Operation name which will send this request out,
28     // each operation should has unique request name, so that we can get operation's name from this request.
29     // Note: this is not true for response, multiple operations may have the same response name,
30     // so we can not get operation's name from response.
GetServiceRequestName()31     inline virtual const char* GetServiceRequestName() const override { return "GetManagedRuleSet"; }
32 
33     Aws::String SerializePayload() const override;
34 
35     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
36 
37 
38     /**
39      * <p>The name of the managed rule set. You use this, along with the rule set ID,
40      * to identify the rule set.</p> <p>This name is assigned to the corresponding
41      * managed rule group, which your customers can access and use. </p>
42      */
GetName()43     inline const Aws::String& GetName() const{ return m_name; }
44 
45     /**
46      * <p>The name of the managed rule set. You use this, along with the rule set ID,
47      * to identify the rule set.</p> <p>This name is assigned to the corresponding
48      * managed rule group, which your customers can access and use. </p>
49      */
NameHasBeenSet()50     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
51 
52     /**
53      * <p>The name of the managed rule set. You use this, along with the rule set ID,
54      * to identify the rule set.</p> <p>This name is assigned to the corresponding
55      * managed rule group, which your customers can access and use. </p>
56      */
SetName(const Aws::String & value)57     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
58 
59     /**
60      * <p>The name of the managed rule set. You use this, along with the rule set ID,
61      * to identify the rule set.</p> <p>This name is assigned to the corresponding
62      * managed rule group, which your customers can access and use. </p>
63      */
SetName(Aws::String && value)64     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
65 
66     /**
67      * <p>The name of the managed rule set. You use this, along with the rule set ID,
68      * to identify the rule set.</p> <p>This name is assigned to the corresponding
69      * managed rule group, which your customers can access and use. </p>
70      */
SetName(const char * value)71     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
72 
73     /**
74      * <p>The name of the managed rule set. You use this, along with the rule set ID,
75      * to identify the rule set.</p> <p>This name is assigned to the corresponding
76      * managed rule group, which your customers can access and use. </p>
77      */
WithName(const Aws::String & value)78     inline GetManagedRuleSetRequest& WithName(const Aws::String& value) { SetName(value); return *this;}
79 
80     /**
81      * <p>The name of the managed rule set. You use this, along with the rule set ID,
82      * to identify the rule set.</p> <p>This name is assigned to the corresponding
83      * managed rule group, which your customers can access and use. </p>
84      */
WithName(Aws::String && value)85     inline GetManagedRuleSetRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
86 
87     /**
88      * <p>The name of the managed rule set. You use this, along with the rule set ID,
89      * to identify the rule set.</p> <p>This name is assigned to the corresponding
90      * managed rule group, which your customers can access and use. </p>
91      */
WithName(const char * value)92     inline GetManagedRuleSetRequest& WithName(const char* value) { SetName(value); return *this;}
93 
94 
95     /**
96      * <p>Specifies whether this is for an Amazon CloudFront distribution or for a
97      * regional application. A regional application can be an Application Load Balancer
98      * (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. </p> <p>To
99      * work with CloudFront, you must also specify the Region US East (N. Virginia) as
100      * follows: </p> <ul> <li> <p>CLI - Specify the Region when you use the CloudFront
101      * scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>. </p> </li> <li>
102      * <p>API and SDKs - For all calls, use the Region endpoint us-east-1. </p> </li>
103      * </ul>
104      */
GetScope()105     inline const Scope& GetScope() const{ return m_scope; }
106 
107     /**
108      * <p>Specifies whether this is for an Amazon CloudFront distribution or for a
109      * regional application. A regional application can be an Application Load Balancer
110      * (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. </p> <p>To
111      * work with CloudFront, you must also specify the Region US East (N. Virginia) as
112      * follows: </p> <ul> <li> <p>CLI - Specify the Region when you use the CloudFront
113      * scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>. </p> </li> <li>
114      * <p>API and SDKs - For all calls, use the Region endpoint us-east-1. </p> </li>
115      * </ul>
116      */
ScopeHasBeenSet()117     inline bool ScopeHasBeenSet() const { return m_scopeHasBeenSet; }
118 
119     /**
120      * <p>Specifies whether this is for an Amazon CloudFront distribution or for a
121      * regional application. A regional application can be an Application Load Balancer
122      * (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. </p> <p>To
123      * work with CloudFront, you must also specify the Region US East (N. Virginia) as
124      * follows: </p> <ul> <li> <p>CLI - Specify the Region when you use the CloudFront
125      * scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>. </p> </li> <li>
126      * <p>API and SDKs - For all calls, use the Region endpoint us-east-1. </p> </li>
127      * </ul>
128      */
SetScope(const Scope & value)129     inline void SetScope(const Scope& value) { m_scopeHasBeenSet = true; m_scope = value; }
130 
131     /**
132      * <p>Specifies whether this is for an Amazon CloudFront distribution or for a
133      * regional application. A regional application can be an Application Load Balancer
134      * (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. </p> <p>To
135      * work with CloudFront, you must also specify the Region US East (N. Virginia) as
136      * follows: </p> <ul> <li> <p>CLI - Specify the Region when you use the CloudFront
137      * scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>. </p> </li> <li>
138      * <p>API and SDKs - For all calls, use the Region endpoint us-east-1. </p> </li>
139      * </ul>
140      */
SetScope(Scope && value)141     inline void SetScope(Scope&& value) { m_scopeHasBeenSet = true; m_scope = std::move(value); }
142 
143     /**
144      * <p>Specifies whether this is for an Amazon CloudFront distribution or for a
145      * regional application. A regional application can be an Application Load Balancer
146      * (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. </p> <p>To
147      * work with CloudFront, you must also specify the Region US East (N. Virginia) as
148      * follows: </p> <ul> <li> <p>CLI - Specify the Region when you use the CloudFront
149      * scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>. </p> </li> <li>
150      * <p>API and SDKs - For all calls, use the Region endpoint us-east-1. </p> </li>
151      * </ul>
152      */
WithScope(const Scope & value)153     inline GetManagedRuleSetRequest& WithScope(const Scope& value) { SetScope(value); return *this;}
154 
155     /**
156      * <p>Specifies whether this is for an Amazon CloudFront distribution or for a
157      * regional application. A regional application can be an Application Load Balancer
158      * (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. </p> <p>To
159      * work with CloudFront, you must also specify the Region US East (N. Virginia) as
160      * follows: </p> <ul> <li> <p>CLI - Specify the Region when you use the CloudFront
161      * scope: <code>--scope=CLOUDFRONT --region=us-east-1</code>. </p> </li> <li>
162      * <p>API and SDKs - For all calls, use the Region endpoint us-east-1. </p> </li>
163      * </ul>
164      */
WithScope(Scope && value)165     inline GetManagedRuleSetRequest& WithScope(Scope&& value) { SetScope(std::move(value)); return *this;}
166 
167 
168     /**
169      * <p>A unique identifier for the managed rule set. The ID is returned in the
170      * responses to commands like <code>list</code>. You provide it to operations like
171      * <code>get</code> and <code>update</code>.</p>
172      */
GetId()173     inline const Aws::String& GetId() const{ return m_id; }
174 
175     /**
176      * <p>A unique identifier for the managed rule set. The ID is returned in the
177      * responses to commands like <code>list</code>. You provide it to operations like
178      * <code>get</code> and <code>update</code>.</p>
179      */
IdHasBeenSet()180     inline bool IdHasBeenSet() const { return m_idHasBeenSet; }
181 
182     /**
183      * <p>A unique identifier for the managed rule set. The ID is returned in the
184      * responses to commands like <code>list</code>. You provide it to operations like
185      * <code>get</code> and <code>update</code>.</p>
186      */
SetId(const Aws::String & value)187     inline void SetId(const Aws::String& value) { m_idHasBeenSet = true; m_id = value; }
188 
189     /**
190      * <p>A unique identifier for the managed rule set. The ID is returned in the
191      * responses to commands like <code>list</code>. You provide it to operations like
192      * <code>get</code> and <code>update</code>.</p>
193      */
SetId(Aws::String && value)194     inline void SetId(Aws::String&& value) { m_idHasBeenSet = true; m_id = std::move(value); }
195 
196     /**
197      * <p>A unique identifier for the managed rule set. The ID is returned in the
198      * responses to commands like <code>list</code>. You provide it to operations like
199      * <code>get</code> and <code>update</code>.</p>
200      */
SetId(const char * value)201     inline void SetId(const char* value) { m_idHasBeenSet = true; m_id.assign(value); }
202 
203     /**
204      * <p>A unique identifier for the managed rule set. The ID is returned in the
205      * responses to commands like <code>list</code>. You provide it to operations like
206      * <code>get</code> and <code>update</code>.</p>
207      */
WithId(const Aws::String & value)208     inline GetManagedRuleSetRequest& WithId(const Aws::String& value) { SetId(value); return *this;}
209 
210     /**
211      * <p>A unique identifier for the managed rule set. The ID is returned in the
212      * responses to commands like <code>list</code>. You provide it to operations like
213      * <code>get</code> and <code>update</code>.</p>
214      */
WithId(Aws::String && value)215     inline GetManagedRuleSetRequest& WithId(Aws::String&& value) { SetId(std::move(value)); return *this;}
216 
217     /**
218      * <p>A unique identifier for the managed rule set. The ID is returned in the
219      * responses to commands like <code>list</code>. You provide it to operations like
220      * <code>get</code> and <code>update</code>.</p>
221      */
WithId(const char * value)222     inline GetManagedRuleSetRequest& WithId(const char* value) { SetId(value); return *this;}
223 
224   private:
225 
226     Aws::String m_name;
227     bool m_nameHasBeenSet;
228 
229     Scope m_scope;
230     bool m_scopeHasBeenSet;
231 
232     Aws::String m_id;
233     bool m_idHasBeenSet;
234   };
235 
236 } // namespace Model
237 } // namespace WAFV2
238 } // namespace Aws
239