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/securityhub/SecurityHub_EXPORTS.h>
8 #include <aws/securityhub/SecurityHubRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace SecurityHub
16 {
17 namespace Model
18 {
19 
20   /**
21    */
22   class AWS_SECURITYHUB_API UpdateFindingAggregatorRequest : public SecurityHubRequest
23   {
24   public:
25     UpdateFindingAggregatorRequest();
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 "UpdateFindingAggregator"; }
32 
33     Aws::String SerializePayload() const override;
34 
35 
36     /**
37      * <p>The ARN of the finding aggregator. To obtain the ARN, use
38      * <code>ListFindingAggregators</code>.</p>
39      */
GetFindingAggregatorArn()40     inline const Aws::String& GetFindingAggregatorArn() const{ return m_findingAggregatorArn; }
41 
42     /**
43      * <p>The ARN of the finding aggregator. To obtain the ARN, use
44      * <code>ListFindingAggregators</code>.</p>
45      */
FindingAggregatorArnHasBeenSet()46     inline bool FindingAggregatorArnHasBeenSet() const { return m_findingAggregatorArnHasBeenSet; }
47 
48     /**
49      * <p>The ARN of the finding aggregator. To obtain the ARN, use
50      * <code>ListFindingAggregators</code>.</p>
51      */
SetFindingAggregatorArn(const Aws::String & value)52     inline void SetFindingAggregatorArn(const Aws::String& value) { m_findingAggregatorArnHasBeenSet = true; m_findingAggregatorArn = value; }
53 
54     /**
55      * <p>The ARN of the finding aggregator. To obtain the ARN, use
56      * <code>ListFindingAggregators</code>.</p>
57      */
SetFindingAggregatorArn(Aws::String && value)58     inline void SetFindingAggregatorArn(Aws::String&& value) { m_findingAggregatorArnHasBeenSet = true; m_findingAggregatorArn = std::move(value); }
59 
60     /**
61      * <p>The ARN of the finding aggregator. To obtain the ARN, use
62      * <code>ListFindingAggregators</code>.</p>
63      */
SetFindingAggregatorArn(const char * value)64     inline void SetFindingAggregatorArn(const char* value) { m_findingAggregatorArnHasBeenSet = true; m_findingAggregatorArn.assign(value); }
65 
66     /**
67      * <p>The ARN of the finding aggregator. To obtain the ARN, use
68      * <code>ListFindingAggregators</code>.</p>
69      */
WithFindingAggregatorArn(const Aws::String & value)70     inline UpdateFindingAggregatorRequest& WithFindingAggregatorArn(const Aws::String& value) { SetFindingAggregatorArn(value); return *this;}
71 
72     /**
73      * <p>The ARN of the finding aggregator. To obtain the ARN, use
74      * <code>ListFindingAggregators</code>.</p>
75      */
WithFindingAggregatorArn(Aws::String && value)76     inline UpdateFindingAggregatorRequest& WithFindingAggregatorArn(Aws::String&& value) { SetFindingAggregatorArn(std::move(value)); return *this;}
77 
78     /**
79      * <p>The ARN of the finding aggregator. To obtain the ARN, use
80      * <code>ListFindingAggregators</code>.</p>
81      */
WithFindingAggregatorArn(const char * value)82     inline UpdateFindingAggregatorRequest& WithFindingAggregatorArn(const char* value) { SetFindingAggregatorArn(value); return *this;}
83 
84 
85     /**
86      * <p>Indicates whether to aggregate findings from all of the available Regions in
87      * the current partition. Also determines whether to automatically aggregate
88      * findings from new Regions as Security Hub supports them and you opt into
89      * them.</p> <p>The selected option also determines how to use the Regions provided
90      * in the Regions list.</p> <p>The options are as follows:</p> <ul> <li> <p>
91      * <code>ALL_REGIONS</code> - Indicates to aggregate findings from all of the
92      * Regions where Security Hub is enabled. When you choose this option, Security Hub
93      * also automatically aggregates findings from new Regions as Security Hub supports
94      * them and you opt into them. </p> </li> <li> <p>
95      * <code>ALL_REGIONS_EXCEPT_SPECIFIED</code> - Indicates to aggregate findings from
96      * all of the Regions where Security Hub is enabled, except for the Regions listed
97      * in the <code>Regions</code> parameter. When you choose this option, Security Hub
98      * also automatically aggregates findings from new Regions as Security Hub supports
99      * them and you opt into them. </p> </li> <li> <p> <code>SPECIFIED_REGIONS</code> -
100      * Indicates to aggregate findings only from the Regions listed in the
101      * <code>Regions</code> parameter. Security Hub does not automatically aggregate
102      * findings from new Regions. </p> </li> </ul>
103      */
GetRegionLinkingMode()104     inline const Aws::String& GetRegionLinkingMode() const{ return m_regionLinkingMode; }
105 
106     /**
107      * <p>Indicates whether to aggregate findings from all of the available Regions in
108      * the current partition. Also determines whether to automatically aggregate
109      * findings from new Regions as Security Hub supports them and you opt into
110      * them.</p> <p>The selected option also determines how to use the Regions provided
111      * in the Regions list.</p> <p>The options are as follows:</p> <ul> <li> <p>
112      * <code>ALL_REGIONS</code> - Indicates to aggregate findings from all of the
113      * Regions where Security Hub is enabled. When you choose this option, Security Hub
114      * also automatically aggregates findings from new Regions as Security Hub supports
115      * them and you opt into them. </p> </li> <li> <p>
116      * <code>ALL_REGIONS_EXCEPT_SPECIFIED</code> - Indicates to aggregate findings from
117      * all of the Regions where Security Hub is enabled, except for the Regions listed
118      * in the <code>Regions</code> parameter. When you choose this option, Security Hub
119      * also automatically aggregates findings from new Regions as Security Hub supports
120      * them and you opt into them. </p> </li> <li> <p> <code>SPECIFIED_REGIONS</code> -
121      * Indicates to aggregate findings only from the Regions listed in the
122      * <code>Regions</code> parameter. Security Hub does not automatically aggregate
123      * findings from new Regions. </p> </li> </ul>
124      */
RegionLinkingModeHasBeenSet()125     inline bool RegionLinkingModeHasBeenSet() const { return m_regionLinkingModeHasBeenSet; }
126 
127     /**
128      * <p>Indicates whether to aggregate findings from all of the available Regions in
129      * the current partition. Also determines whether to automatically aggregate
130      * findings from new Regions as Security Hub supports them and you opt into
131      * them.</p> <p>The selected option also determines how to use the Regions provided
132      * in the Regions list.</p> <p>The options are as follows:</p> <ul> <li> <p>
133      * <code>ALL_REGIONS</code> - Indicates to aggregate findings from all of the
134      * Regions where Security Hub is enabled. When you choose this option, Security Hub
135      * also automatically aggregates findings from new Regions as Security Hub supports
136      * them and you opt into them. </p> </li> <li> <p>
137      * <code>ALL_REGIONS_EXCEPT_SPECIFIED</code> - Indicates to aggregate findings from
138      * all of the Regions where Security Hub is enabled, except for the Regions listed
139      * in the <code>Regions</code> parameter. When you choose this option, Security Hub
140      * also automatically aggregates findings from new Regions as Security Hub supports
141      * them and you opt into them. </p> </li> <li> <p> <code>SPECIFIED_REGIONS</code> -
142      * Indicates to aggregate findings only from the Regions listed in the
143      * <code>Regions</code> parameter. Security Hub does not automatically aggregate
144      * findings from new Regions. </p> </li> </ul>
145      */
SetRegionLinkingMode(const Aws::String & value)146     inline void SetRegionLinkingMode(const Aws::String& value) { m_regionLinkingModeHasBeenSet = true; m_regionLinkingMode = value; }
147 
148     /**
149      * <p>Indicates whether to aggregate findings from all of the available Regions in
150      * the current partition. Also determines whether to automatically aggregate
151      * findings from new Regions as Security Hub supports them and you opt into
152      * them.</p> <p>The selected option also determines how to use the Regions provided
153      * in the Regions list.</p> <p>The options are as follows:</p> <ul> <li> <p>
154      * <code>ALL_REGIONS</code> - Indicates to aggregate findings from all of the
155      * Regions where Security Hub is enabled. When you choose this option, Security Hub
156      * also automatically aggregates findings from new Regions as Security Hub supports
157      * them and you opt into them. </p> </li> <li> <p>
158      * <code>ALL_REGIONS_EXCEPT_SPECIFIED</code> - Indicates to aggregate findings from
159      * all of the Regions where Security Hub is enabled, except for the Regions listed
160      * in the <code>Regions</code> parameter. When you choose this option, Security Hub
161      * also automatically aggregates findings from new Regions as Security Hub supports
162      * them and you opt into them. </p> </li> <li> <p> <code>SPECIFIED_REGIONS</code> -
163      * Indicates to aggregate findings only from the Regions listed in the
164      * <code>Regions</code> parameter. Security Hub does not automatically aggregate
165      * findings from new Regions. </p> </li> </ul>
166      */
SetRegionLinkingMode(Aws::String && value)167     inline void SetRegionLinkingMode(Aws::String&& value) { m_regionLinkingModeHasBeenSet = true; m_regionLinkingMode = std::move(value); }
168 
169     /**
170      * <p>Indicates whether to aggregate findings from all of the available Regions in
171      * the current partition. Also determines whether to automatically aggregate
172      * findings from new Regions as Security Hub supports them and you opt into
173      * them.</p> <p>The selected option also determines how to use the Regions provided
174      * in the Regions list.</p> <p>The options are as follows:</p> <ul> <li> <p>
175      * <code>ALL_REGIONS</code> - Indicates to aggregate findings from all of the
176      * Regions where Security Hub is enabled. When you choose this option, Security Hub
177      * also automatically aggregates findings from new Regions as Security Hub supports
178      * them and you opt into them. </p> </li> <li> <p>
179      * <code>ALL_REGIONS_EXCEPT_SPECIFIED</code> - Indicates to aggregate findings from
180      * all of the Regions where Security Hub is enabled, except for the Regions listed
181      * in the <code>Regions</code> parameter. When you choose this option, Security Hub
182      * also automatically aggregates findings from new Regions as Security Hub supports
183      * them and you opt into them. </p> </li> <li> <p> <code>SPECIFIED_REGIONS</code> -
184      * Indicates to aggregate findings only from the Regions listed in the
185      * <code>Regions</code> parameter. Security Hub does not automatically aggregate
186      * findings from new Regions. </p> </li> </ul>
187      */
SetRegionLinkingMode(const char * value)188     inline void SetRegionLinkingMode(const char* value) { m_regionLinkingModeHasBeenSet = true; m_regionLinkingMode.assign(value); }
189 
190     /**
191      * <p>Indicates whether to aggregate findings from all of the available Regions in
192      * the current partition. Also determines whether to automatically aggregate
193      * findings from new Regions as Security Hub supports them and you opt into
194      * them.</p> <p>The selected option also determines how to use the Regions provided
195      * in the Regions list.</p> <p>The options are as follows:</p> <ul> <li> <p>
196      * <code>ALL_REGIONS</code> - Indicates to aggregate findings from all of the
197      * Regions where Security Hub is enabled. When you choose this option, Security Hub
198      * also automatically aggregates findings from new Regions as Security Hub supports
199      * them and you opt into them. </p> </li> <li> <p>
200      * <code>ALL_REGIONS_EXCEPT_SPECIFIED</code> - Indicates to aggregate findings from
201      * all of the Regions where Security Hub is enabled, except for the Regions listed
202      * in the <code>Regions</code> parameter. When you choose this option, Security Hub
203      * also automatically aggregates findings from new Regions as Security Hub supports
204      * them and you opt into them. </p> </li> <li> <p> <code>SPECIFIED_REGIONS</code> -
205      * Indicates to aggregate findings only from the Regions listed in the
206      * <code>Regions</code> parameter. Security Hub does not automatically aggregate
207      * findings from new Regions. </p> </li> </ul>
208      */
WithRegionLinkingMode(const Aws::String & value)209     inline UpdateFindingAggregatorRequest& WithRegionLinkingMode(const Aws::String& value) { SetRegionLinkingMode(value); return *this;}
210 
211     /**
212      * <p>Indicates whether to aggregate findings from all of the available Regions in
213      * the current partition. Also determines whether to automatically aggregate
214      * findings from new Regions as Security Hub supports them and you opt into
215      * them.</p> <p>The selected option also determines how to use the Regions provided
216      * in the Regions list.</p> <p>The options are as follows:</p> <ul> <li> <p>
217      * <code>ALL_REGIONS</code> - Indicates to aggregate findings from all of the
218      * Regions where Security Hub is enabled. When you choose this option, Security Hub
219      * also automatically aggregates findings from new Regions as Security Hub supports
220      * them and you opt into them. </p> </li> <li> <p>
221      * <code>ALL_REGIONS_EXCEPT_SPECIFIED</code> - Indicates to aggregate findings from
222      * all of the Regions where Security Hub is enabled, except for the Regions listed
223      * in the <code>Regions</code> parameter. When you choose this option, Security Hub
224      * also automatically aggregates findings from new Regions as Security Hub supports
225      * them and you opt into them. </p> </li> <li> <p> <code>SPECIFIED_REGIONS</code> -
226      * Indicates to aggregate findings only from the Regions listed in the
227      * <code>Regions</code> parameter. Security Hub does not automatically aggregate
228      * findings from new Regions. </p> </li> </ul>
229      */
WithRegionLinkingMode(Aws::String && value)230     inline UpdateFindingAggregatorRequest& WithRegionLinkingMode(Aws::String&& value) { SetRegionLinkingMode(std::move(value)); return *this;}
231 
232     /**
233      * <p>Indicates whether to aggregate findings from all of the available Regions in
234      * the current partition. Also determines whether to automatically aggregate
235      * findings from new Regions as Security Hub supports them and you opt into
236      * them.</p> <p>The selected option also determines how to use the Regions provided
237      * in the Regions list.</p> <p>The options are as follows:</p> <ul> <li> <p>
238      * <code>ALL_REGIONS</code> - Indicates to aggregate findings from all of the
239      * Regions where Security Hub is enabled. When you choose this option, Security Hub
240      * also automatically aggregates findings from new Regions as Security Hub supports
241      * them and you opt into them. </p> </li> <li> <p>
242      * <code>ALL_REGIONS_EXCEPT_SPECIFIED</code> - Indicates to aggregate findings from
243      * all of the Regions where Security Hub is enabled, except for the Regions listed
244      * in the <code>Regions</code> parameter. When you choose this option, Security Hub
245      * also automatically aggregates findings from new Regions as Security Hub supports
246      * them and you opt into them. </p> </li> <li> <p> <code>SPECIFIED_REGIONS</code> -
247      * Indicates to aggregate findings only from the Regions listed in the
248      * <code>Regions</code> parameter. Security Hub does not automatically aggregate
249      * findings from new Regions. </p> </li> </ul>
250      */
WithRegionLinkingMode(const char * value)251     inline UpdateFindingAggregatorRequest& WithRegionLinkingMode(const char* value) { SetRegionLinkingMode(value); return *this;}
252 
253 
254     /**
255      * <p>If <code>RegionLinkingMode</code> is
256      * <code>ALL_REGIONS_EXCEPT_SPECIFIED</code>, then this is a comma-separated list
257      * of Regions that do not aggregate findings to the aggregation Region.</p> <p>If
258      * <code>RegionLinkingMode</code> is <code>SPECIFIED_REGIONS</code>, then this is a
259      * comma-separated list of Regions that do aggregate findings to the aggregation
260      * Region.</p>
261      */
GetRegions()262     inline const Aws::Vector<Aws::String>& GetRegions() const{ return m_regions; }
263 
264     /**
265      * <p>If <code>RegionLinkingMode</code> is
266      * <code>ALL_REGIONS_EXCEPT_SPECIFIED</code>, then this is a comma-separated list
267      * of Regions that do not aggregate findings to the aggregation Region.</p> <p>If
268      * <code>RegionLinkingMode</code> is <code>SPECIFIED_REGIONS</code>, then this is a
269      * comma-separated list of Regions that do aggregate findings to the aggregation
270      * Region.</p>
271      */
RegionsHasBeenSet()272     inline bool RegionsHasBeenSet() const { return m_regionsHasBeenSet; }
273 
274     /**
275      * <p>If <code>RegionLinkingMode</code> is
276      * <code>ALL_REGIONS_EXCEPT_SPECIFIED</code>, then this is a comma-separated list
277      * of Regions that do not aggregate findings to the aggregation Region.</p> <p>If
278      * <code>RegionLinkingMode</code> is <code>SPECIFIED_REGIONS</code>, then this is a
279      * comma-separated list of Regions that do aggregate findings to the aggregation
280      * Region.</p>
281      */
SetRegions(const Aws::Vector<Aws::String> & value)282     inline void SetRegions(const Aws::Vector<Aws::String>& value) { m_regionsHasBeenSet = true; m_regions = value; }
283 
284     /**
285      * <p>If <code>RegionLinkingMode</code> is
286      * <code>ALL_REGIONS_EXCEPT_SPECIFIED</code>, then this is a comma-separated list
287      * of Regions that do not aggregate findings to the aggregation Region.</p> <p>If
288      * <code>RegionLinkingMode</code> is <code>SPECIFIED_REGIONS</code>, then this is a
289      * comma-separated list of Regions that do aggregate findings to the aggregation
290      * Region.</p>
291      */
SetRegions(Aws::Vector<Aws::String> && value)292     inline void SetRegions(Aws::Vector<Aws::String>&& value) { m_regionsHasBeenSet = true; m_regions = std::move(value); }
293 
294     /**
295      * <p>If <code>RegionLinkingMode</code> is
296      * <code>ALL_REGIONS_EXCEPT_SPECIFIED</code>, then this is a comma-separated list
297      * of Regions that do not aggregate findings to the aggregation Region.</p> <p>If
298      * <code>RegionLinkingMode</code> is <code>SPECIFIED_REGIONS</code>, then this is a
299      * comma-separated list of Regions that do aggregate findings to the aggregation
300      * Region.</p>
301      */
WithRegions(const Aws::Vector<Aws::String> & value)302     inline UpdateFindingAggregatorRequest& WithRegions(const Aws::Vector<Aws::String>& value) { SetRegions(value); return *this;}
303 
304     /**
305      * <p>If <code>RegionLinkingMode</code> is
306      * <code>ALL_REGIONS_EXCEPT_SPECIFIED</code>, then this is a comma-separated list
307      * of Regions that do not aggregate findings to the aggregation Region.</p> <p>If
308      * <code>RegionLinkingMode</code> is <code>SPECIFIED_REGIONS</code>, then this is a
309      * comma-separated list of Regions that do aggregate findings to the aggregation
310      * Region.</p>
311      */
WithRegions(Aws::Vector<Aws::String> && value)312     inline UpdateFindingAggregatorRequest& WithRegions(Aws::Vector<Aws::String>&& value) { SetRegions(std::move(value)); return *this;}
313 
314     /**
315      * <p>If <code>RegionLinkingMode</code> is
316      * <code>ALL_REGIONS_EXCEPT_SPECIFIED</code>, then this is a comma-separated list
317      * of Regions that do not aggregate findings to the aggregation Region.</p> <p>If
318      * <code>RegionLinkingMode</code> is <code>SPECIFIED_REGIONS</code>, then this is a
319      * comma-separated list of Regions that do aggregate findings to the aggregation
320      * Region.</p>
321      */
AddRegions(const Aws::String & value)322     inline UpdateFindingAggregatorRequest& AddRegions(const Aws::String& value) { m_regionsHasBeenSet = true; m_regions.push_back(value); return *this; }
323 
324     /**
325      * <p>If <code>RegionLinkingMode</code> is
326      * <code>ALL_REGIONS_EXCEPT_SPECIFIED</code>, then this is a comma-separated list
327      * of Regions that do not aggregate findings to the aggregation Region.</p> <p>If
328      * <code>RegionLinkingMode</code> is <code>SPECIFIED_REGIONS</code>, then this is a
329      * comma-separated list of Regions that do aggregate findings to the aggregation
330      * Region.</p>
331      */
AddRegions(Aws::String && value)332     inline UpdateFindingAggregatorRequest& AddRegions(Aws::String&& value) { m_regionsHasBeenSet = true; m_regions.push_back(std::move(value)); return *this; }
333 
334     /**
335      * <p>If <code>RegionLinkingMode</code> is
336      * <code>ALL_REGIONS_EXCEPT_SPECIFIED</code>, then this is a comma-separated list
337      * of Regions that do not aggregate findings to the aggregation Region.</p> <p>If
338      * <code>RegionLinkingMode</code> is <code>SPECIFIED_REGIONS</code>, then this is a
339      * comma-separated list of Regions that do aggregate findings to the aggregation
340      * Region.</p>
341      */
AddRegions(const char * value)342     inline UpdateFindingAggregatorRequest& AddRegions(const char* value) { m_regionsHasBeenSet = true; m_regions.push_back(value); return *this; }
343 
344   private:
345 
346     Aws::String m_findingAggregatorArn;
347     bool m_findingAggregatorArnHasBeenSet;
348 
349     Aws::String m_regionLinkingMode;
350     bool m_regionLinkingModeHasBeenSet;
351 
352     Aws::Vector<Aws::String> m_regions;
353     bool m_regionsHasBeenSet;
354   };
355 
356 } // namespace Model
357 } // namespace SecurityHub
358 } // namespace Aws
359