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/glue/Glue_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <utility>
11 
12 namespace Aws
13 {
14 namespace Utils
15 {
16 namespace Json
17 {
18   class JsonValue;
19   class JsonView;
20 } // namespace Json
21 } // namespace Utils
22 namespace Glue
23 {
24 namespace Model
25 {
26 
27   /**
28    * <p>Specifies a data store in Amazon Simple Storage Service (Amazon
29    * S3).</p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/S3Target">AWS API
31    * Reference</a></p>
32    */
33   class AWS_GLUE_API S3Target
34   {
35   public:
36     S3Target();
37     S3Target(Aws::Utils::Json::JsonView jsonValue);
38     S3Target& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The path to the Amazon S3 target.</p>
44      */
GetPath()45     inline const Aws::String& GetPath() const{ return m_path; }
46 
47     /**
48      * <p>The path to the Amazon S3 target.</p>
49      */
PathHasBeenSet()50     inline bool PathHasBeenSet() const { return m_pathHasBeenSet; }
51 
52     /**
53      * <p>The path to the Amazon S3 target.</p>
54      */
SetPath(const Aws::String & value)55     inline void SetPath(const Aws::String& value) { m_pathHasBeenSet = true; m_path = value; }
56 
57     /**
58      * <p>The path to the Amazon S3 target.</p>
59      */
SetPath(Aws::String && value)60     inline void SetPath(Aws::String&& value) { m_pathHasBeenSet = true; m_path = std::move(value); }
61 
62     /**
63      * <p>The path to the Amazon S3 target.</p>
64      */
SetPath(const char * value)65     inline void SetPath(const char* value) { m_pathHasBeenSet = true; m_path.assign(value); }
66 
67     /**
68      * <p>The path to the Amazon S3 target.</p>
69      */
WithPath(const Aws::String & value)70     inline S3Target& WithPath(const Aws::String& value) { SetPath(value); return *this;}
71 
72     /**
73      * <p>The path to the Amazon S3 target.</p>
74      */
WithPath(Aws::String && value)75     inline S3Target& WithPath(Aws::String&& value) { SetPath(std::move(value)); return *this;}
76 
77     /**
78      * <p>The path to the Amazon S3 target.</p>
79      */
WithPath(const char * value)80     inline S3Target& WithPath(const char* value) { SetPath(value); return *this;}
81 
82 
83     /**
84      * <p>A list of glob patterns used to exclude from the crawl. For more information,
85      * see <a
86      * href="https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html">Catalog
87      * Tables with a Crawler</a>.</p>
88      */
GetExclusions()89     inline const Aws::Vector<Aws::String>& GetExclusions() const{ return m_exclusions; }
90 
91     /**
92      * <p>A list of glob patterns used to exclude from the crawl. For more information,
93      * see <a
94      * href="https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html">Catalog
95      * Tables with a Crawler</a>.</p>
96      */
ExclusionsHasBeenSet()97     inline bool ExclusionsHasBeenSet() const { return m_exclusionsHasBeenSet; }
98 
99     /**
100      * <p>A list of glob patterns used to exclude from the crawl. For more information,
101      * see <a
102      * href="https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html">Catalog
103      * Tables with a Crawler</a>.</p>
104      */
SetExclusions(const Aws::Vector<Aws::String> & value)105     inline void SetExclusions(const Aws::Vector<Aws::String>& value) { m_exclusionsHasBeenSet = true; m_exclusions = value; }
106 
107     /**
108      * <p>A list of glob patterns used to exclude from the crawl. For more information,
109      * see <a
110      * href="https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html">Catalog
111      * Tables with a Crawler</a>.</p>
112      */
SetExclusions(Aws::Vector<Aws::String> && value)113     inline void SetExclusions(Aws::Vector<Aws::String>&& value) { m_exclusionsHasBeenSet = true; m_exclusions = std::move(value); }
114 
115     /**
116      * <p>A list of glob patterns used to exclude from the crawl. For more information,
117      * see <a
118      * href="https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html">Catalog
119      * Tables with a Crawler</a>.</p>
120      */
WithExclusions(const Aws::Vector<Aws::String> & value)121     inline S3Target& WithExclusions(const Aws::Vector<Aws::String>& value) { SetExclusions(value); return *this;}
122 
123     /**
124      * <p>A list of glob patterns used to exclude from the crawl. For more information,
125      * see <a
126      * href="https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html">Catalog
127      * Tables with a Crawler</a>.</p>
128      */
WithExclusions(Aws::Vector<Aws::String> && value)129     inline S3Target& WithExclusions(Aws::Vector<Aws::String>&& value) { SetExclusions(std::move(value)); return *this;}
130 
131     /**
132      * <p>A list of glob patterns used to exclude from the crawl. For more information,
133      * see <a
134      * href="https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html">Catalog
135      * Tables with a Crawler</a>.</p>
136      */
AddExclusions(const Aws::String & value)137     inline S3Target& AddExclusions(const Aws::String& value) { m_exclusionsHasBeenSet = true; m_exclusions.push_back(value); return *this; }
138 
139     /**
140      * <p>A list of glob patterns used to exclude from the crawl. For more information,
141      * see <a
142      * href="https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html">Catalog
143      * Tables with a Crawler</a>.</p>
144      */
AddExclusions(Aws::String && value)145     inline S3Target& AddExclusions(Aws::String&& value) { m_exclusionsHasBeenSet = true; m_exclusions.push_back(std::move(value)); return *this; }
146 
147     /**
148      * <p>A list of glob patterns used to exclude from the crawl. For more information,
149      * see <a
150      * href="https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html">Catalog
151      * Tables with a Crawler</a>.</p>
152      */
AddExclusions(const char * value)153     inline S3Target& AddExclusions(const char* value) { m_exclusionsHasBeenSet = true; m_exclusions.push_back(value); return *this; }
154 
155 
156     /**
157      * <p>The name of a connection which allows a job or crawler to access data in
158      * Amazon S3 within an Amazon Virtual Private Cloud environment (Amazon VPC).</p>
159      */
GetConnectionName()160     inline const Aws::String& GetConnectionName() const{ return m_connectionName; }
161 
162     /**
163      * <p>The name of a connection which allows a job or crawler to access data in
164      * Amazon S3 within an Amazon Virtual Private Cloud environment (Amazon VPC).</p>
165      */
ConnectionNameHasBeenSet()166     inline bool ConnectionNameHasBeenSet() const { return m_connectionNameHasBeenSet; }
167 
168     /**
169      * <p>The name of a connection which allows a job or crawler to access data in
170      * Amazon S3 within an Amazon Virtual Private Cloud environment (Amazon VPC).</p>
171      */
SetConnectionName(const Aws::String & value)172     inline void SetConnectionName(const Aws::String& value) { m_connectionNameHasBeenSet = true; m_connectionName = value; }
173 
174     /**
175      * <p>The name of a connection which allows a job or crawler to access data in
176      * Amazon S3 within an Amazon Virtual Private Cloud environment (Amazon VPC).</p>
177      */
SetConnectionName(Aws::String && value)178     inline void SetConnectionName(Aws::String&& value) { m_connectionNameHasBeenSet = true; m_connectionName = std::move(value); }
179 
180     /**
181      * <p>The name of a connection which allows a job or crawler to access data in
182      * Amazon S3 within an Amazon Virtual Private Cloud environment (Amazon VPC).</p>
183      */
SetConnectionName(const char * value)184     inline void SetConnectionName(const char* value) { m_connectionNameHasBeenSet = true; m_connectionName.assign(value); }
185 
186     /**
187      * <p>The name of a connection which allows a job or crawler to access data in
188      * Amazon S3 within an Amazon Virtual Private Cloud environment (Amazon VPC).</p>
189      */
WithConnectionName(const Aws::String & value)190     inline S3Target& WithConnectionName(const Aws::String& value) { SetConnectionName(value); return *this;}
191 
192     /**
193      * <p>The name of a connection which allows a job or crawler to access data in
194      * Amazon S3 within an Amazon Virtual Private Cloud environment (Amazon VPC).</p>
195      */
WithConnectionName(Aws::String && value)196     inline S3Target& WithConnectionName(Aws::String&& value) { SetConnectionName(std::move(value)); return *this;}
197 
198     /**
199      * <p>The name of a connection which allows a job or crawler to access data in
200      * Amazon S3 within an Amazon Virtual Private Cloud environment (Amazon VPC).</p>
201      */
WithConnectionName(const char * value)202     inline S3Target& WithConnectionName(const char* value) { SetConnectionName(value); return *this;}
203 
204 
205     /**
206      * <p>Sets the number of files in each leaf folder to be crawled when crawling
207      * sample files in a dataset. If not set, all the files are crawled. A valid value
208      * is an integer between 1 and 249.</p>
209      */
GetSampleSize()210     inline int GetSampleSize() const{ return m_sampleSize; }
211 
212     /**
213      * <p>Sets the number of files in each leaf folder to be crawled when crawling
214      * sample files in a dataset. If not set, all the files are crawled. A valid value
215      * is an integer between 1 and 249.</p>
216      */
SampleSizeHasBeenSet()217     inline bool SampleSizeHasBeenSet() const { return m_sampleSizeHasBeenSet; }
218 
219     /**
220      * <p>Sets the number of files in each leaf folder to be crawled when crawling
221      * sample files in a dataset. If not set, all the files are crawled. A valid value
222      * is an integer between 1 and 249.</p>
223      */
SetSampleSize(int value)224     inline void SetSampleSize(int value) { m_sampleSizeHasBeenSet = true; m_sampleSize = value; }
225 
226     /**
227      * <p>Sets the number of files in each leaf folder to be crawled when crawling
228      * sample files in a dataset. If not set, all the files are crawled. A valid value
229      * is an integer between 1 and 249.</p>
230      */
WithSampleSize(int value)231     inline S3Target& WithSampleSize(int value) { SetSampleSize(value); return *this;}
232 
233 
234     /**
235      * <p>A valid Amazon SQS ARN. For example,
236      * <code>arn:aws:sqs:region:account:sqs</code>.</p>
237      */
GetEventQueueArn()238     inline const Aws::String& GetEventQueueArn() const{ return m_eventQueueArn; }
239 
240     /**
241      * <p>A valid Amazon SQS ARN. For example,
242      * <code>arn:aws:sqs:region:account:sqs</code>.</p>
243      */
EventQueueArnHasBeenSet()244     inline bool EventQueueArnHasBeenSet() const { return m_eventQueueArnHasBeenSet; }
245 
246     /**
247      * <p>A valid Amazon SQS ARN. For example,
248      * <code>arn:aws:sqs:region:account:sqs</code>.</p>
249      */
SetEventQueueArn(const Aws::String & value)250     inline void SetEventQueueArn(const Aws::String& value) { m_eventQueueArnHasBeenSet = true; m_eventQueueArn = value; }
251 
252     /**
253      * <p>A valid Amazon SQS ARN. For example,
254      * <code>arn:aws:sqs:region:account:sqs</code>.</p>
255      */
SetEventQueueArn(Aws::String && value)256     inline void SetEventQueueArn(Aws::String&& value) { m_eventQueueArnHasBeenSet = true; m_eventQueueArn = std::move(value); }
257 
258     /**
259      * <p>A valid Amazon SQS ARN. For example,
260      * <code>arn:aws:sqs:region:account:sqs</code>.</p>
261      */
SetEventQueueArn(const char * value)262     inline void SetEventQueueArn(const char* value) { m_eventQueueArnHasBeenSet = true; m_eventQueueArn.assign(value); }
263 
264     /**
265      * <p>A valid Amazon SQS ARN. For example,
266      * <code>arn:aws:sqs:region:account:sqs</code>.</p>
267      */
WithEventQueueArn(const Aws::String & value)268     inline S3Target& WithEventQueueArn(const Aws::String& value) { SetEventQueueArn(value); return *this;}
269 
270     /**
271      * <p>A valid Amazon SQS ARN. For example,
272      * <code>arn:aws:sqs:region:account:sqs</code>.</p>
273      */
WithEventQueueArn(Aws::String && value)274     inline S3Target& WithEventQueueArn(Aws::String&& value) { SetEventQueueArn(std::move(value)); return *this;}
275 
276     /**
277      * <p>A valid Amazon SQS ARN. For example,
278      * <code>arn:aws:sqs:region:account:sqs</code>.</p>
279      */
WithEventQueueArn(const char * value)280     inline S3Target& WithEventQueueArn(const char* value) { SetEventQueueArn(value); return *this;}
281 
282 
283     /**
284      * <p>A valid Amazon dead-letter SQS ARN. For example,
285      * <code>arn:aws:sqs:region:account:deadLetterQueue</code>.</p>
286      */
GetDlqEventQueueArn()287     inline const Aws::String& GetDlqEventQueueArn() const{ return m_dlqEventQueueArn; }
288 
289     /**
290      * <p>A valid Amazon dead-letter SQS ARN. For example,
291      * <code>arn:aws:sqs:region:account:deadLetterQueue</code>.</p>
292      */
DlqEventQueueArnHasBeenSet()293     inline bool DlqEventQueueArnHasBeenSet() const { return m_dlqEventQueueArnHasBeenSet; }
294 
295     /**
296      * <p>A valid Amazon dead-letter SQS ARN. For example,
297      * <code>arn:aws:sqs:region:account:deadLetterQueue</code>.</p>
298      */
SetDlqEventQueueArn(const Aws::String & value)299     inline void SetDlqEventQueueArn(const Aws::String& value) { m_dlqEventQueueArnHasBeenSet = true; m_dlqEventQueueArn = value; }
300 
301     /**
302      * <p>A valid Amazon dead-letter SQS ARN. For example,
303      * <code>arn:aws:sqs:region:account:deadLetterQueue</code>.</p>
304      */
SetDlqEventQueueArn(Aws::String && value)305     inline void SetDlqEventQueueArn(Aws::String&& value) { m_dlqEventQueueArnHasBeenSet = true; m_dlqEventQueueArn = std::move(value); }
306 
307     /**
308      * <p>A valid Amazon dead-letter SQS ARN. For example,
309      * <code>arn:aws:sqs:region:account:deadLetterQueue</code>.</p>
310      */
SetDlqEventQueueArn(const char * value)311     inline void SetDlqEventQueueArn(const char* value) { m_dlqEventQueueArnHasBeenSet = true; m_dlqEventQueueArn.assign(value); }
312 
313     /**
314      * <p>A valid Amazon dead-letter SQS ARN. For example,
315      * <code>arn:aws:sqs:region:account:deadLetterQueue</code>.</p>
316      */
WithDlqEventQueueArn(const Aws::String & value)317     inline S3Target& WithDlqEventQueueArn(const Aws::String& value) { SetDlqEventQueueArn(value); return *this;}
318 
319     /**
320      * <p>A valid Amazon dead-letter SQS ARN. For example,
321      * <code>arn:aws:sqs:region:account:deadLetterQueue</code>.</p>
322      */
WithDlqEventQueueArn(Aws::String && value)323     inline S3Target& WithDlqEventQueueArn(Aws::String&& value) { SetDlqEventQueueArn(std::move(value)); return *this;}
324 
325     /**
326      * <p>A valid Amazon dead-letter SQS ARN. For example,
327      * <code>arn:aws:sqs:region:account:deadLetterQueue</code>.</p>
328      */
WithDlqEventQueueArn(const char * value)329     inline S3Target& WithDlqEventQueueArn(const char* value) { SetDlqEventQueueArn(value); return *this;}
330 
331   private:
332 
333     Aws::String m_path;
334     bool m_pathHasBeenSet;
335 
336     Aws::Vector<Aws::String> m_exclusions;
337     bool m_exclusionsHasBeenSet;
338 
339     Aws::String m_connectionName;
340     bool m_connectionNameHasBeenSet;
341 
342     int m_sampleSize;
343     bool m_sampleSizeHasBeenSet;
344 
345     Aws::String m_eventQueueArn;
346     bool m_eventQueueArnHasBeenSet;
347 
348     Aws::String m_dlqEventQueueArn;
349     bool m_dlqEventQueueArnHasBeenSet;
350   };
351 
352 } // namespace Model
353 } // namespace Glue
354 } // namespace Aws
355