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/s3control/S3Control_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSVector.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Xml
17 {
18   class XmlNode;
19 } // namespace Xml
20 } // namespace Utils
21 namespace S3Control
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>A container for what Amazon S3 Storage Lens will exclude.</p><p><h3>See
28    * Also:</h3>   <a
29    * href="http://docs.aws.amazon.com/goto/WebAPI/s3control-2018-08-20/Exclude">AWS
30    * API Reference</a></p>
31    */
32   class AWS_S3CONTROL_API Exclude
33   {
34   public:
35     Exclude();
36     Exclude(const Aws::Utils::Xml::XmlNode& xmlNode);
37     Exclude& operator=(const Aws::Utils::Xml::XmlNode& xmlNode);
38 
39     void AddToNode(Aws::Utils::Xml::XmlNode& parentNode) const;
40 
41 
42     /**
43      * <p>A container for the S3 Storage Lens bucket excludes.</p>
44      */
GetBuckets()45     inline const Aws::Vector<Aws::String>& GetBuckets() const{ return m_buckets; }
46 
47     /**
48      * <p>A container for the S3 Storage Lens bucket excludes.</p>
49      */
BucketsHasBeenSet()50     inline bool BucketsHasBeenSet() const { return m_bucketsHasBeenSet; }
51 
52     /**
53      * <p>A container for the S3 Storage Lens bucket excludes.</p>
54      */
SetBuckets(const Aws::Vector<Aws::String> & value)55     inline void SetBuckets(const Aws::Vector<Aws::String>& value) { m_bucketsHasBeenSet = true; m_buckets = value; }
56 
57     /**
58      * <p>A container for the S3 Storage Lens bucket excludes.</p>
59      */
SetBuckets(Aws::Vector<Aws::String> && value)60     inline void SetBuckets(Aws::Vector<Aws::String>&& value) { m_bucketsHasBeenSet = true; m_buckets = std::move(value); }
61 
62     /**
63      * <p>A container for the S3 Storage Lens bucket excludes.</p>
64      */
WithBuckets(const Aws::Vector<Aws::String> & value)65     inline Exclude& WithBuckets(const Aws::Vector<Aws::String>& value) { SetBuckets(value); return *this;}
66 
67     /**
68      * <p>A container for the S3 Storage Lens bucket excludes.</p>
69      */
WithBuckets(Aws::Vector<Aws::String> && value)70     inline Exclude& WithBuckets(Aws::Vector<Aws::String>&& value) { SetBuckets(std::move(value)); return *this;}
71 
72     /**
73      * <p>A container for the S3 Storage Lens bucket excludes.</p>
74      */
AddBuckets(const Aws::String & value)75     inline Exclude& AddBuckets(const Aws::String& value) { m_bucketsHasBeenSet = true; m_buckets.push_back(value); return *this; }
76 
77     /**
78      * <p>A container for the S3 Storage Lens bucket excludes.</p>
79      */
AddBuckets(Aws::String && value)80     inline Exclude& AddBuckets(Aws::String&& value) { m_bucketsHasBeenSet = true; m_buckets.push_back(std::move(value)); return *this; }
81 
82     /**
83      * <p>A container for the S3 Storage Lens bucket excludes.</p>
84      */
AddBuckets(const char * value)85     inline Exclude& AddBuckets(const char* value) { m_bucketsHasBeenSet = true; m_buckets.push_back(value); return *this; }
86 
87 
88     /**
89      * <p>A container for the S3 Storage Lens Region excludes.</p>
90      */
GetRegions()91     inline const Aws::Vector<Aws::String>& GetRegions() const{ return m_regions; }
92 
93     /**
94      * <p>A container for the S3 Storage Lens Region excludes.</p>
95      */
RegionsHasBeenSet()96     inline bool RegionsHasBeenSet() const { return m_regionsHasBeenSet; }
97 
98     /**
99      * <p>A container for the S3 Storage Lens Region excludes.</p>
100      */
SetRegions(const Aws::Vector<Aws::String> & value)101     inline void SetRegions(const Aws::Vector<Aws::String>& value) { m_regionsHasBeenSet = true; m_regions = value; }
102 
103     /**
104      * <p>A container for the S3 Storage Lens Region excludes.</p>
105      */
SetRegions(Aws::Vector<Aws::String> && value)106     inline void SetRegions(Aws::Vector<Aws::String>&& value) { m_regionsHasBeenSet = true; m_regions = std::move(value); }
107 
108     /**
109      * <p>A container for the S3 Storage Lens Region excludes.</p>
110      */
WithRegions(const Aws::Vector<Aws::String> & value)111     inline Exclude& WithRegions(const Aws::Vector<Aws::String>& value) { SetRegions(value); return *this;}
112 
113     /**
114      * <p>A container for the S3 Storage Lens Region excludes.</p>
115      */
WithRegions(Aws::Vector<Aws::String> && value)116     inline Exclude& WithRegions(Aws::Vector<Aws::String>&& value) { SetRegions(std::move(value)); return *this;}
117 
118     /**
119      * <p>A container for the S3 Storage Lens Region excludes.</p>
120      */
AddRegions(const Aws::String & value)121     inline Exclude& AddRegions(const Aws::String& value) { m_regionsHasBeenSet = true; m_regions.push_back(value); return *this; }
122 
123     /**
124      * <p>A container for the S3 Storage Lens Region excludes.</p>
125      */
AddRegions(Aws::String && value)126     inline Exclude& AddRegions(Aws::String&& value) { m_regionsHasBeenSet = true; m_regions.push_back(std::move(value)); return *this; }
127 
128     /**
129      * <p>A container for the S3 Storage Lens Region excludes.</p>
130      */
AddRegions(const char * value)131     inline Exclude& AddRegions(const char* value) { m_regionsHasBeenSet = true; m_regions.push_back(value); return *this; }
132 
133   private:
134 
135     Aws::Vector<Aws::String> m_buckets;
136     bool m_bucketsHasBeenSet;
137 
138     Aws::Vector<Aws::String> m_regions;
139     bool m_regionsHasBeenSet;
140   };
141 
142 } // namespace Model
143 } // namespace S3Control
144 } // namespace Aws
145