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/waf-regional/WAFRegional_EXPORTS.h>
8 #include <aws/waf-regional/WAFRegionalRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/waf-regional/model/XssMatchSetUpdate.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace WAFRegional
17 {
18 namespace Model
19 {
20 
21   /**
22    * <p>A request to update an <a>XssMatchSet</a>.</p><p><h3>See Also:</h3>   <a
23    * href="http://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateXssMatchSetRequest">AWS
24    * API Reference</a></p>
25    */
26   class AWS_WAFREGIONAL_API UpdateXssMatchSetRequest : public WAFRegionalRequest
27   {
28   public:
29     UpdateXssMatchSetRequest();
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 "UpdateXssMatchSet"; }
36 
37     Aws::String SerializePayload() const override;
38 
39     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
40 
41 
42     /**
43      * <p>The <code>XssMatchSetId</code> of the <code>XssMatchSet</code> that you want
44      * to update. <code>XssMatchSetId</code> is returned by <a>CreateXssMatchSet</a>
45      * and by <a>ListXssMatchSets</a>.</p>
46      */
GetXssMatchSetId()47     inline const Aws::String& GetXssMatchSetId() const{ return m_xssMatchSetId; }
48 
49     /**
50      * <p>The <code>XssMatchSetId</code> of the <code>XssMatchSet</code> that you want
51      * to update. <code>XssMatchSetId</code> is returned by <a>CreateXssMatchSet</a>
52      * and by <a>ListXssMatchSets</a>.</p>
53      */
XssMatchSetIdHasBeenSet()54     inline bool XssMatchSetIdHasBeenSet() const { return m_xssMatchSetIdHasBeenSet; }
55 
56     /**
57      * <p>The <code>XssMatchSetId</code> of the <code>XssMatchSet</code> that you want
58      * to update. <code>XssMatchSetId</code> is returned by <a>CreateXssMatchSet</a>
59      * and by <a>ListXssMatchSets</a>.</p>
60      */
SetXssMatchSetId(const Aws::String & value)61     inline void SetXssMatchSetId(const Aws::String& value) { m_xssMatchSetIdHasBeenSet = true; m_xssMatchSetId = value; }
62 
63     /**
64      * <p>The <code>XssMatchSetId</code> of the <code>XssMatchSet</code> that you want
65      * to update. <code>XssMatchSetId</code> is returned by <a>CreateXssMatchSet</a>
66      * and by <a>ListXssMatchSets</a>.</p>
67      */
SetXssMatchSetId(Aws::String && value)68     inline void SetXssMatchSetId(Aws::String&& value) { m_xssMatchSetIdHasBeenSet = true; m_xssMatchSetId = std::move(value); }
69 
70     /**
71      * <p>The <code>XssMatchSetId</code> of the <code>XssMatchSet</code> that you want
72      * to update. <code>XssMatchSetId</code> is returned by <a>CreateXssMatchSet</a>
73      * and by <a>ListXssMatchSets</a>.</p>
74      */
SetXssMatchSetId(const char * value)75     inline void SetXssMatchSetId(const char* value) { m_xssMatchSetIdHasBeenSet = true; m_xssMatchSetId.assign(value); }
76 
77     /**
78      * <p>The <code>XssMatchSetId</code> of the <code>XssMatchSet</code> that you want
79      * to update. <code>XssMatchSetId</code> is returned by <a>CreateXssMatchSet</a>
80      * and by <a>ListXssMatchSets</a>.</p>
81      */
WithXssMatchSetId(const Aws::String & value)82     inline UpdateXssMatchSetRequest& WithXssMatchSetId(const Aws::String& value) { SetXssMatchSetId(value); return *this;}
83 
84     /**
85      * <p>The <code>XssMatchSetId</code> of the <code>XssMatchSet</code> that you want
86      * to update. <code>XssMatchSetId</code> is returned by <a>CreateXssMatchSet</a>
87      * and by <a>ListXssMatchSets</a>.</p>
88      */
WithXssMatchSetId(Aws::String && value)89     inline UpdateXssMatchSetRequest& WithXssMatchSetId(Aws::String&& value) { SetXssMatchSetId(std::move(value)); return *this;}
90 
91     /**
92      * <p>The <code>XssMatchSetId</code> of the <code>XssMatchSet</code> that you want
93      * to update. <code>XssMatchSetId</code> is returned by <a>CreateXssMatchSet</a>
94      * and by <a>ListXssMatchSets</a>.</p>
95      */
WithXssMatchSetId(const char * value)96     inline UpdateXssMatchSetRequest& WithXssMatchSetId(const char* value) { SetXssMatchSetId(value); return *this;}
97 
98 
99     /**
100      * <p>The value returned by the most recent call to <a>GetChangeToken</a>.</p>
101      */
GetChangeToken()102     inline const Aws::String& GetChangeToken() const{ return m_changeToken; }
103 
104     /**
105      * <p>The value returned by the most recent call to <a>GetChangeToken</a>.</p>
106      */
ChangeTokenHasBeenSet()107     inline bool ChangeTokenHasBeenSet() const { return m_changeTokenHasBeenSet; }
108 
109     /**
110      * <p>The value returned by the most recent call to <a>GetChangeToken</a>.</p>
111      */
SetChangeToken(const Aws::String & value)112     inline void SetChangeToken(const Aws::String& value) { m_changeTokenHasBeenSet = true; m_changeToken = value; }
113 
114     /**
115      * <p>The value returned by the most recent call to <a>GetChangeToken</a>.</p>
116      */
SetChangeToken(Aws::String && value)117     inline void SetChangeToken(Aws::String&& value) { m_changeTokenHasBeenSet = true; m_changeToken = std::move(value); }
118 
119     /**
120      * <p>The value returned by the most recent call to <a>GetChangeToken</a>.</p>
121      */
SetChangeToken(const char * value)122     inline void SetChangeToken(const char* value) { m_changeTokenHasBeenSet = true; m_changeToken.assign(value); }
123 
124     /**
125      * <p>The value returned by the most recent call to <a>GetChangeToken</a>.</p>
126      */
WithChangeToken(const Aws::String & value)127     inline UpdateXssMatchSetRequest& WithChangeToken(const Aws::String& value) { SetChangeToken(value); return *this;}
128 
129     /**
130      * <p>The value returned by the most recent call to <a>GetChangeToken</a>.</p>
131      */
WithChangeToken(Aws::String && value)132     inline UpdateXssMatchSetRequest& WithChangeToken(Aws::String&& value) { SetChangeToken(std::move(value)); return *this;}
133 
134     /**
135      * <p>The value returned by the most recent call to <a>GetChangeToken</a>.</p>
136      */
WithChangeToken(const char * value)137     inline UpdateXssMatchSetRequest& WithChangeToken(const char* value) { SetChangeToken(value); return *this;}
138 
139 
140     /**
141      * <p>An array of <code>XssMatchSetUpdate</code> objects that you want to insert
142      * into or delete from an <a>XssMatchSet</a>. For more information, see the
143      * applicable data types:</p> <ul> <li> <p> <a>XssMatchSetUpdate</a>: Contains
144      * <code>Action</code> and <code>XssMatchTuple</code> </p> </li> <li> <p>
145      * <a>XssMatchTuple</a>: Contains <code>FieldToMatch</code> and
146      * <code>TextTransformation</code> </p> </li> <li> <p> <a>FieldToMatch</a>:
147      * Contains <code>Data</code> and <code>Type</code> </p> </li> </ul>
148      */
GetUpdates()149     inline const Aws::Vector<XssMatchSetUpdate>& GetUpdates() const{ return m_updates; }
150 
151     /**
152      * <p>An array of <code>XssMatchSetUpdate</code> objects that you want to insert
153      * into or delete from an <a>XssMatchSet</a>. For more information, see the
154      * applicable data types:</p> <ul> <li> <p> <a>XssMatchSetUpdate</a>: Contains
155      * <code>Action</code> and <code>XssMatchTuple</code> </p> </li> <li> <p>
156      * <a>XssMatchTuple</a>: Contains <code>FieldToMatch</code> and
157      * <code>TextTransformation</code> </p> </li> <li> <p> <a>FieldToMatch</a>:
158      * Contains <code>Data</code> and <code>Type</code> </p> </li> </ul>
159      */
UpdatesHasBeenSet()160     inline bool UpdatesHasBeenSet() const { return m_updatesHasBeenSet; }
161 
162     /**
163      * <p>An array of <code>XssMatchSetUpdate</code> objects that you want to insert
164      * into or delete from an <a>XssMatchSet</a>. For more information, see the
165      * applicable data types:</p> <ul> <li> <p> <a>XssMatchSetUpdate</a>: Contains
166      * <code>Action</code> and <code>XssMatchTuple</code> </p> </li> <li> <p>
167      * <a>XssMatchTuple</a>: Contains <code>FieldToMatch</code> and
168      * <code>TextTransformation</code> </p> </li> <li> <p> <a>FieldToMatch</a>:
169      * Contains <code>Data</code> and <code>Type</code> </p> </li> </ul>
170      */
SetUpdates(const Aws::Vector<XssMatchSetUpdate> & value)171     inline void SetUpdates(const Aws::Vector<XssMatchSetUpdate>& value) { m_updatesHasBeenSet = true; m_updates = value; }
172 
173     /**
174      * <p>An array of <code>XssMatchSetUpdate</code> objects that you want to insert
175      * into or delete from an <a>XssMatchSet</a>. For more information, see the
176      * applicable data types:</p> <ul> <li> <p> <a>XssMatchSetUpdate</a>: Contains
177      * <code>Action</code> and <code>XssMatchTuple</code> </p> </li> <li> <p>
178      * <a>XssMatchTuple</a>: Contains <code>FieldToMatch</code> and
179      * <code>TextTransformation</code> </p> </li> <li> <p> <a>FieldToMatch</a>:
180      * Contains <code>Data</code> and <code>Type</code> </p> </li> </ul>
181      */
SetUpdates(Aws::Vector<XssMatchSetUpdate> && value)182     inline void SetUpdates(Aws::Vector<XssMatchSetUpdate>&& value) { m_updatesHasBeenSet = true; m_updates = std::move(value); }
183 
184     /**
185      * <p>An array of <code>XssMatchSetUpdate</code> objects that you want to insert
186      * into or delete from an <a>XssMatchSet</a>. For more information, see the
187      * applicable data types:</p> <ul> <li> <p> <a>XssMatchSetUpdate</a>: Contains
188      * <code>Action</code> and <code>XssMatchTuple</code> </p> </li> <li> <p>
189      * <a>XssMatchTuple</a>: Contains <code>FieldToMatch</code> and
190      * <code>TextTransformation</code> </p> </li> <li> <p> <a>FieldToMatch</a>:
191      * Contains <code>Data</code> and <code>Type</code> </p> </li> </ul>
192      */
WithUpdates(const Aws::Vector<XssMatchSetUpdate> & value)193     inline UpdateXssMatchSetRequest& WithUpdates(const Aws::Vector<XssMatchSetUpdate>& value) { SetUpdates(value); return *this;}
194 
195     /**
196      * <p>An array of <code>XssMatchSetUpdate</code> objects that you want to insert
197      * into or delete from an <a>XssMatchSet</a>. For more information, see the
198      * applicable data types:</p> <ul> <li> <p> <a>XssMatchSetUpdate</a>: Contains
199      * <code>Action</code> and <code>XssMatchTuple</code> </p> </li> <li> <p>
200      * <a>XssMatchTuple</a>: Contains <code>FieldToMatch</code> and
201      * <code>TextTransformation</code> </p> </li> <li> <p> <a>FieldToMatch</a>:
202      * Contains <code>Data</code> and <code>Type</code> </p> </li> </ul>
203      */
WithUpdates(Aws::Vector<XssMatchSetUpdate> && value)204     inline UpdateXssMatchSetRequest& WithUpdates(Aws::Vector<XssMatchSetUpdate>&& value) { SetUpdates(std::move(value)); return *this;}
205 
206     /**
207      * <p>An array of <code>XssMatchSetUpdate</code> objects that you want to insert
208      * into or delete from an <a>XssMatchSet</a>. For more information, see the
209      * applicable data types:</p> <ul> <li> <p> <a>XssMatchSetUpdate</a>: Contains
210      * <code>Action</code> and <code>XssMatchTuple</code> </p> </li> <li> <p>
211      * <a>XssMatchTuple</a>: Contains <code>FieldToMatch</code> and
212      * <code>TextTransformation</code> </p> </li> <li> <p> <a>FieldToMatch</a>:
213      * Contains <code>Data</code> and <code>Type</code> </p> </li> </ul>
214      */
AddUpdates(const XssMatchSetUpdate & value)215     inline UpdateXssMatchSetRequest& AddUpdates(const XssMatchSetUpdate& value) { m_updatesHasBeenSet = true; m_updates.push_back(value); return *this; }
216 
217     /**
218      * <p>An array of <code>XssMatchSetUpdate</code> objects that you want to insert
219      * into or delete from an <a>XssMatchSet</a>. For more information, see the
220      * applicable data types:</p> <ul> <li> <p> <a>XssMatchSetUpdate</a>: Contains
221      * <code>Action</code> and <code>XssMatchTuple</code> </p> </li> <li> <p>
222      * <a>XssMatchTuple</a>: Contains <code>FieldToMatch</code> and
223      * <code>TextTransformation</code> </p> </li> <li> <p> <a>FieldToMatch</a>:
224      * Contains <code>Data</code> and <code>Type</code> </p> </li> </ul>
225      */
AddUpdates(XssMatchSetUpdate && value)226     inline UpdateXssMatchSetRequest& AddUpdates(XssMatchSetUpdate&& value) { m_updatesHasBeenSet = true; m_updates.push_back(std::move(value)); return *this; }
227 
228   private:
229 
230     Aws::String m_xssMatchSetId;
231     bool m_xssMatchSetIdHasBeenSet;
232 
233     Aws::String m_changeToken;
234     bool m_changeTokenHasBeenSet;
235 
236     Aws::Vector<XssMatchSetUpdate> m_updates;
237     bool m_updatesHasBeenSet;
238   };
239 
240 } // namespace Model
241 } // namespace WAFRegional
242 } // namespace Aws
243