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/firehose/Firehose_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/firehose/model/BufferingHints.h>
10 #include <aws/firehose/model/CompressionFormat.h>
11 #include <aws/firehose/model/EncryptionConfiguration.h>
12 #include <aws/firehose/model/CloudWatchLoggingOptions.h>
13 #include <aws/firehose/model/ProcessingConfiguration.h>
14 #include <aws/firehose/model/S3BackupMode.h>
15 #include <aws/firehose/model/S3DestinationDescription.h>
16 #include <aws/firehose/model/DataFormatConversionConfiguration.h>
17 #include <aws/firehose/model/DynamicPartitioningConfiguration.h>
18 #include <utility>
19 
20 namespace Aws
21 {
22 namespace Utils
23 {
24 namespace Json
25 {
26   class JsonValue;
27   class JsonView;
28 } // namespace Json
29 } // namespace Utils
30 namespace Firehose
31 {
32 namespace Model
33 {
34 
35   /**
36    * <p>Describes a destination in Amazon S3.</p><p><h3>See Also:</h3>   <a
37    * href="http://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/ExtendedS3DestinationDescription">AWS
38    * API Reference</a></p>
39    */
40   class AWS_FIREHOSE_API ExtendedS3DestinationDescription
41   {
42   public:
43     ExtendedS3DestinationDescription();
44     ExtendedS3DestinationDescription(Aws::Utils::Json::JsonView jsonValue);
45     ExtendedS3DestinationDescription& operator=(Aws::Utils::Json::JsonView jsonValue);
46     Aws::Utils::Json::JsonValue Jsonize() const;
47 
48 
49     /**
50      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
51      * see <a
52      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
53      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
54      */
GetRoleARN()55     inline const Aws::String& GetRoleARN() const{ return m_roleARN; }
56 
57     /**
58      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
59      * see <a
60      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
61      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
62      */
RoleARNHasBeenSet()63     inline bool RoleARNHasBeenSet() const { return m_roleARNHasBeenSet; }
64 
65     /**
66      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
67      * see <a
68      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
69      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
70      */
SetRoleARN(const Aws::String & value)71     inline void SetRoleARN(const Aws::String& value) { m_roleARNHasBeenSet = true; m_roleARN = value; }
72 
73     /**
74      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
75      * see <a
76      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
77      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
78      */
SetRoleARN(Aws::String && value)79     inline void SetRoleARN(Aws::String&& value) { m_roleARNHasBeenSet = true; m_roleARN = std::move(value); }
80 
81     /**
82      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
83      * see <a
84      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
85      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
86      */
SetRoleARN(const char * value)87     inline void SetRoleARN(const char* value) { m_roleARNHasBeenSet = true; m_roleARN.assign(value); }
88 
89     /**
90      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
91      * see <a
92      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
93      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
94      */
WithRoleARN(const Aws::String & value)95     inline ExtendedS3DestinationDescription& WithRoleARN(const Aws::String& value) { SetRoleARN(value); return *this;}
96 
97     /**
98      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
99      * see <a
100      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
101      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
102      */
WithRoleARN(Aws::String && value)103     inline ExtendedS3DestinationDescription& WithRoleARN(Aws::String&& value) { SetRoleARN(std::move(value)); return *this;}
104 
105     /**
106      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
107      * see <a
108      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
109      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
110      */
WithRoleARN(const char * value)111     inline ExtendedS3DestinationDescription& WithRoleARN(const char* value) { SetRoleARN(value); return *this;}
112 
113 
114     /**
115      * <p>The ARN of the S3 bucket. For more information, see <a
116      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
117      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
118      */
GetBucketARN()119     inline const Aws::String& GetBucketARN() const{ return m_bucketARN; }
120 
121     /**
122      * <p>The ARN of the S3 bucket. For more information, see <a
123      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
124      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
125      */
BucketARNHasBeenSet()126     inline bool BucketARNHasBeenSet() const { return m_bucketARNHasBeenSet; }
127 
128     /**
129      * <p>The ARN of the S3 bucket. For more information, see <a
130      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
131      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
132      */
SetBucketARN(const Aws::String & value)133     inline void SetBucketARN(const Aws::String& value) { m_bucketARNHasBeenSet = true; m_bucketARN = value; }
134 
135     /**
136      * <p>The ARN of the S3 bucket. For more information, see <a
137      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
138      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
139      */
SetBucketARN(Aws::String && value)140     inline void SetBucketARN(Aws::String&& value) { m_bucketARNHasBeenSet = true; m_bucketARN = std::move(value); }
141 
142     /**
143      * <p>The ARN of the S3 bucket. For more information, see <a
144      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
145      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
146      */
SetBucketARN(const char * value)147     inline void SetBucketARN(const char* value) { m_bucketARNHasBeenSet = true; m_bucketARN.assign(value); }
148 
149     /**
150      * <p>The ARN of the S3 bucket. For more information, see <a
151      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
152      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
153      */
WithBucketARN(const Aws::String & value)154     inline ExtendedS3DestinationDescription& WithBucketARN(const Aws::String& value) { SetBucketARN(value); return *this;}
155 
156     /**
157      * <p>The ARN of the S3 bucket. For more information, see <a
158      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
159      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
160      */
WithBucketARN(Aws::String && value)161     inline ExtendedS3DestinationDescription& WithBucketARN(Aws::String&& value) { SetBucketARN(std::move(value)); return *this;}
162 
163     /**
164      * <p>The ARN of the S3 bucket. For more information, see <a
165      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
166      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
167      */
WithBucketARN(const char * value)168     inline ExtendedS3DestinationDescription& WithBucketARN(const char* value) { SetBucketARN(value); return *this;}
169 
170 
171     /**
172      * <p>The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
173      * Amazon S3 files. You can also specify a custom prefix, as described in <a
174      * href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom
175      * Prefixes for Amazon S3 Objects</a>.</p>
176      */
GetPrefix()177     inline const Aws::String& GetPrefix() const{ return m_prefix; }
178 
179     /**
180      * <p>The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
181      * Amazon S3 files. You can also specify a custom prefix, as described in <a
182      * href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom
183      * Prefixes for Amazon S3 Objects</a>.</p>
184      */
PrefixHasBeenSet()185     inline bool PrefixHasBeenSet() const { return m_prefixHasBeenSet; }
186 
187     /**
188      * <p>The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
189      * Amazon S3 files. You can also specify a custom prefix, as described in <a
190      * href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom
191      * Prefixes for Amazon S3 Objects</a>.</p>
192      */
SetPrefix(const Aws::String & value)193     inline void SetPrefix(const Aws::String& value) { m_prefixHasBeenSet = true; m_prefix = value; }
194 
195     /**
196      * <p>The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
197      * Amazon S3 files. You can also specify a custom prefix, as described in <a
198      * href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom
199      * Prefixes for Amazon S3 Objects</a>.</p>
200      */
SetPrefix(Aws::String && value)201     inline void SetPrefix(Aws::String&& value) { m_prefixHasBeenSet = true; m_prefix = std::move(value); }
202 
203     /**
204      * <p>The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
205      * Amazon S3 files. You can also specify a custom prefix, as described in <a
206      * href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom
207      * Prefixes for Amazon S3 Objects</a>.</p>
208      */
SetPrefix(const char * value)209     inline void SetPrefix(const char* value) { m_prefixHasBeenSet = true; m_prefix.assign(value); }
210 
211     /**
212      * <p>The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
213      * Amazon S3 files. You can also specify a custom prefix, as described in <a
214      * href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom
215      * Prefixes for Amazon S3 Objects</a>.</p>
216      */
WithPrefix(const Aws::String & value)217     inline ExtendedS3DestinationDescription& WithPrefix(const Aws::String& value) { SetPrefix(value); return *this;}
218 
219     /**
220      * <p>The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
221      * Amazon S3 files. You can also specify a custom prefix, as described in <a
222      * href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom
223      * Prefixes for Amazon S3 Objects</a>.</p>
224      */
WithPrefix(Aws::String && value)225     inline ExtendedS3DestinationDescription& WithPrefix(Aws::String&& value) { SetPrefix(std::move(value)); return *this;}
226 
227     /**
228      * <p>The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered
229      * Amazon S3 files. You can also specify a custom prefix, as described in <a
230      * href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom
231      * Prefixes for Amazon S3 Objects</a>.</p>
232      */
WithPrefix(const char * value)233     inline ExtendedS3DestinationDescription& WithPrefix(const char* value) { SetPrefix(value); return *this;}
234 
235 
236     /**
237      * <p>A prefix that Kinesis Data Firehose evaluates and adds to failed records
238      * before writing them to S3. This prefix appears immediately following the bucket
239      * name. For information about how to specify this prefix, see <a
240      * href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom
241      * Prefixes for Amazon S3 Objects</a>.</p>
242      */
GetErrorOutputPrefix()243     inline const Aws::String& GetErrorOutputPrefix() const{ return m_errorOutputPrefix; }
244 
245     /**
246      * <p>A prefix that Kinesis Data Firehose evaluates and adds to failed records
247      * before writing them to S3. This prefix appears immediately following the bucket
248      * name. For information about how to specify this prefix, see <a
249      * href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom
250      * Prefixes for Amazon S3 Objects</a>.</p>
251      */
ErrorOutputPrefixHasBeenSet()252     inline bool ErrorOutputPrefixHasBeenSet() const { return m_errorOutputPrefixHasBeenSet; }
253 
254     /**
255      * <p>A prefix that Kinesis Data Firehose evaluates and adds to failed records
256      * before writing them to S3. This prefix appears immediately following the bucket
257      * name. For information about how to specify this prefix, see <a
258      * href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom
259      * Prefixes for Amazon S3 Objects</a>.</p>
260      */
SetErrorOutputPrefix(const Aws::String & value)261     inline void SetErrorOutputPrefix(const Aws::String& value) { m_errorOutputPrefixHasBeenSet = true; m_errorOutputPrefix = value; }
262 
263     /**
264      * <p>A prefix that Kinesis Data Firehose evaluates and adds to failed records
265      * before writing them to S3. This prefix appears immediately following the bucket
266      * name. For information about how to specify this prefix, see <a
267      * href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom
268      * Prefixes for Amazon S3 Objects</a>.</p>
269      */
SetErrorOutputPrefix(Aws::String && value)270     inline void SetErrorOutputPrefix(Aws::String&& value) { m_errorOutputPrefixHasBeenSet = true; m_errorOutputPrefix = std::move(value); }
271 
272     /**
273      * <p>A prefix that Kinesis Data Firehose evaluates and adds to failed records
274      * before writing them to S3. This prefix appears immediately following the bucket
275      * name. For information about how to specify this prefix, see <a
276      * href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom
277      * Prefixes for Amazon S3 Objects</a>.</p>
278      */
SetErrorOutputPrefix(const char * value)279     inline void SetErrorOutputPrefix(const char* value) { m_errorOutputPrefixHasBeenSet = true; m_errorOutputPrefix.assign(value); }
280 
281     /**
282      * <p>A prefix that Kinesis Data Firehose evaluates and adds to failed records
283      * before writing them to S3. This prefix appears immediately following the bucket
284      * name. For information about how to specify this prefix, see <a
285      * href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom
286      * Prefixes for Amazon S3 Objects</a>.</p>
287      */
WithErrorOutputPrefix(const Aws::String & value)288     inline ExtendedS3DestinationDescription& WithErrorOutputPrefix(const Aws::String& value) { SetErrorOutputPrefix(value); return *this;}
289 
290     /**
291      * <p>A prefix that Kinesis Data Firehose evaluates and adds to failed records
292      * before writing them to S3. This prefix appears immediately following the bucket
293      * name. For information about how to specify this prefix, see <a
294      * href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom
295      * Prefixes for Amazon S3 Objects</a>.</p>
296      */
WithErrorOutputPrefix(Aws::String && value)297     inline ExtendedS3DestinationDescription& WithErrorOutputPrefix(Aws::String&& value) { SetErrorOutputPrefix(std::move(value)); return *this;}
298 
299     /**
300      * <p>A prefix that Kinesis Data Firehose evaluates and adds to failed records
301      * before writing them to S3. This prefix appears immediately following the bucket
302      * name. For information about how to specify this prefix, see <a
303      * href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom
304      * Prefixes for Amazon S3 Objects</a>.</p>
305      */
WithErrorOutputPrefix(const char * value)306     inline ExtendedS3DestinationDescription& WithErrorOutputPrefix(const char* value) { SetErrorOutputPrefix(value); return *this;}
307 
308 
309     /**
310      * <p>The buffering option.</p>
311      */
GetBufferingHints()312     inline const BufferingHints& GetBufferingHints() const{ return m_bufferingHints; }
313 
314     /**
315      * <p>The buffering option.</p>
316      */
BufferingHintsHasBeenSet()317     inline bool BufferingHintsHasBeenSet() const { return m_bufferingHintsHasBeenSet; }
318 
319     /**
320      * <p>The buffering option.</p>
321      */
SetBufferingHints(const BufferingHints & value)322     inline void SetBufferingHints(const BufferingHints& value) { m_bufferingHintsHasBeenSet = true; m_bufferingHints = value; }
323 
324     /**
325      * <p>The buffering option.</p>
326      */
SetBufferingHints(BufferingHints && value)327     inline void SetBufferingHints(BufferingHints&& value) { m_bufferingHintsHasBeenSet = true; m_bufferingHints = std::move(value); }
328 
329     /**
330      * <p>The buffering option.</p>
331      */
WithBufferingHints(const BufferingHints & value)332     inline ExtendedS3DestinationDescription& WithBufferingHints(const BufferingHints& value) { SetBufferingHints(value); return *this;}
333 
334     /**
335      * <p>The buffering option.</p>
336      */
WithBufferingHints(BufferingHints && value)337     inline ExtendedS3DestinationDescription& WithBufferingHints(BufferingHints&& value) { SetBufferingHints(std::move(value)); return *this;}
338 
339 
340     /**
341      * <p>The compression format. If no value is specified, the default is
342      * <code>UNCOMPRESSED</code>.</p>
343      */
GetCompressionFormat()344     inline const CompressionFormat& GetCompressionFormat() const{ return m_compressionFormat; }
345 
346     /**
347      * <p>The compression format. If no value is specified, the default is
348      * <code>UNCOMPRESSED</code>.</p>
349      */
CompressionFormatHasBeenSet()350     inline bool CompressionFormatHasBeenSet() const { return m_compressionFormatHasBeenSet; }
351 
352     /**
353      * <p>The compression format. If no value is specified, the default is
354      * <code>UNCOMPRESSED</code>.</p>
355      */
SetCompressionFormat(const CompressionFormat & value)356     inline void SetCompressionFormat(const CompressionFormat& value) { m_compressionFormatHasBeenSet = true; m_compressionFormat = value; }
357 
358     /**
359      * <p>The compression format. If no value is specified, the default is
360      * <code>UNCOMPRESSED</code>.</p>
361      */
SetCompressionFormat(CompressionFormat && value)362     inline void SetCompressionFormat(CompressionFormat&& value) { m_compressionFormatHasBeenSet = true; m_compressionFormat = std::move(value); }
363 
364     /**
365      * <p>The compression format. If no value is specified, the default is
366      * <code>UNCOMPRESSED</code>.</p>
367      */
WithCompressionFormat(const CompressionFormat & value)368     inline ExtendedS3DestinationDescription& WithCompressionFormat(const CompressionFormat& value) { SetCompressionFormat(value); return *this;}
369 
370     /**
371      * <p>The compression format. If no value is specified, the default is
372      * <code>UNCOMPRESSED</code>.</p>
373      */
WithCompressionFormat(CompressionFormat && value)374     inline ExtendedS3DestinationDescription& WithCompressionFormat(CompressionFormat&& value) { SetCompressionFormat(std::move(value)); return *this;}
375 
376 
377     /**
378      * <p>The encryption configuration. If no value is specified, the default is no
379      * encryption.</p>
380      */
GetEncryptionConfiguration()381     inline const EncryptionConfiguration& GetEncryptionConfiguration() const{ return m_encryptionConfiguration; }
382 
383     /**
384      * <p>The encryption configuration. If no value is specified, the default is no
385      * encryption.</p>
386      */
EncryptionConfigurationHasBeenSet()387     inline bool EncryptionConfigurationHasBeenSet() const { return m_encryptionConfigurationHasBeenSet; }
388 
389     /**
390      * <p>The encryption configuration. If no value is specified, the default is no
391      * encryption.</p>
392      */
SetEncryptionConfiguration(const EncryptionConfiguration & value)393     inline void SetEncryptionConfiguration(const EncryptionConfiguration& value) { m_encryptionConfigurationHasBeenSet = true; m_encryptionConfiguration = value; }
394 
395     /**
396      * <p>The encryption configuration. If no value is specified, the default is no
397      * encryption.</p>
398      */
SetEncryptionConfiguration(EncryptionConfiguration && value)399     inline void SetEncryptionConfiguration(EncryptionConfiguration&& value) { m_encryptionConfigurationHasBeenSet = true; m_encryptionConfiguration = std::move(value); }
400 
401     /**
402      * <p>The encryption configuration. If no value is specified, the default is no
403      * encryption.</p>
404      */
WithEncryptionConfiguration(const EncryptionConfiguration & value)405     inline ExtendedS3DestinationDescription& WithEncryptionConfiguration(const EncryptionConfiguration& value) { SetEncryptionConfiguration(value); return *this;}
406 
407     /**
408      * <p>The encryption configuration. If no value is specified, the default is no
409      * encryption.</p>
410      */
WithEncryptionConfiguration(EncryptionConfiguration && value)411     inline ExtendedS3DestinationDescription& WithEncryptionConfiguration(EncryptionConfiguration&& value) { SetEncryptionConfiguration(std::move(value)); return *this;}
412 
413 
414     /**
415      * <p>The Amazon CloudWatch logging options for your delivery stream.</p>
416      */
GetCloudWatchLoggingOptions()417     inline const CloudWatchLoggingOptions& GetCloudWatchLoggingOptions() const{ return m_cloudWatchLoggingOptions; }
418 
419     /**
420      * <p>The Amazon CloudWatch logging options for your delivery stream.</p>
421      */
CloudWatchLoggingOptionsHasBeenSet()422     inline bool CloudWatchLoggingOptionsHasBeenSet() const { return m_cloudWatchLoggingOptionsHasBeenSet; }
423 
424     /**
425      * <p>The Amazon CloudWatch logging options for your delivery stream.</p>
426      */
SetCloudWatchLoggingOptions(const CloudWatchLoggingOptions & value)427     inline void SetCloudWatchLoggingOptions(const CloudWatchLoggingOptions& value) { m_cloudWatchLoggingOptionsHasBeenSet = true; m_cloudWatchLoggingOptions = value; }
428 
429     /**
430      * <p>The Amazon CloudWatch logging options for your delivery stream.</p>
431      */
SetCloudWatchLoggingOptions(CloudWatchLoggingOptions && value)432     inline void SetCloudWatchLoggingOptions(CloudWatchLoggingOptions&& value) { m_cloudWatchLoggingOptionsHasBeenSet = true; m_cloudWatchLoggingOptions = std::move(value); }
433 
434     /**
435      * <p>The Amazon CloudWatch logging options for your delivery stream.</p>
436      */
WithCloudWatchLoggingOptions(const CloudWatchLoggingOptions & value)437     inline ExtendedS3DestinationDescription& WithCloudWatchLoggingOptions(const CloudWatchLoggingOptions& value) { SetCloudWatchLoggingOptions(value); return *this;}
438 
439     /**
440      * <p>The Amazon CloudWatch logging options for your delivery stream.</p>
441      */
WithCloudWatchLoggingOptions(CloudWatchLoggingOptions && value)442     inline ExtendedS3DestinationDescription& WithCloudWatchLoggingOptions(CloudWatchLoggingOptions&& value) { SetCloudWatchLoggingOptions(std::move(value)); return *this;}
443 
444 
445     /**
446      * <p>The data processing configuration.</p>
447      */
GetProcessingConfiguration()448     inline const ProcessingConfiguration& GetProcessingConfiguration() const{ return m_processingConfiguration; }
449 
450     /**
451      * <p>The data processing configuration.</p>
452      */
ProcessingConfigurationHasBeenSet()453     inline bool ProcessingConfigurationHasBeenSet() const { return m_processingConfigurationHasBeenSet; }
454 
455     /**
456      * <p>The data processing configuration.</p>
457      */
SetProcessingConfiguration(const ProcessingConfiguration & value)458     inline void SetProcessingConfiguration(const ProcessingConfiguration& value) { m_processingConfigurationHasBeenSet = true; m_processingConfiguration = value; }
459 
460     /**
461      * <p>The data processing configuration.</p>
462      */
SetProcessingConfiguration(ProcessingConfiguration && value)463     inline void SetProcessingConfiguration(ProcessingConfiguration&& value) { m_processingConfigurationHasBeenSet = true; m_processingConfiguration = std::move(value); }
464 
465     /**
466      * <p>The data processing configuration.</p>
467      */
WithProcessingConfiguration(const ProcessingConfiguration & value)468     inline ExtendedS3DestinationDescription& WithProcessingConfiguration(const ProcessingConfiguration& value) { SetProcessingConfiguration(value); return *this;}
469 
470     /**
471      * <p>The data processing configuration.</p>
472      */
WithProcessingConfiguration(ProcessingConfiguration && value)473     inline ExtendedS3DestinationDescription& WithProcessingConfiguration(ProcessingConfiguration&& value) { SetProcessingConfiguration(std::move(value)); return *this;}
474 
475 
476     /**
477      * <p>The Amazon S3 backup mode.</p>
478      */
GetS3BackupMode()479     inline const S3BackupMode& GetS3BackupMode() const{ return m_s3BackupMode; }
480 
481     /**
482      * <p>The Amazon S3 backup mode.</p>
483      */
S3BackupModeHasBeenSet()484     inline bool S3BackupModeHasBeenSet() const { return m_s3BackupModeHasBeenSet; }
485 
486     /**
487      * <p>The Amazon S3 backup mode.</p>
488      */
SetS3BackupMode(const S3BackupMode & value)489     inline void SetS3BackupMode(const S3BackupMode& value) { m_s3BackupModeHasBeenSet = true; m_s3BackupMode = value; }
490 
491     /**
492      * <p>The Amazon S3 backup mode.</p>
493      */
SetS3BackupMode(S3BackupMode && value)494     inline void SetS3BackupMode(S3BackupMode&& value) { m_s3BackupModeHasBeenSet = true; m_s3BackupMode = std::move(value); }
495 
496     /**
497      * <p>The Amazon S3 backup mode.</p>
498      */
WithS3BackupMode(const S3BackupMode & value)499     inline ExtendedS3DestinationDescription& WithS3BackupMode(const S3BackupMode& value) { SetS3BackupMode(value); return *this;}
500 
501     /**
502      * <p>The Amazon S3 backup mode.</p>
503      */
WithS3BackupMode(S3BackupMode && value)504     inline ExtendedS3DestinationDescription& WithS3BackupMode(S3BackupMode&& value) { SetS3BackupMode(std::move(value)); return *this;}
505 
506 
507     /**
508      * <p>The configuration for backup in Amazon S3.</p>
509      */
GetS3BackupDescription()510     inline const S3DestinationDescription& GetS3BackupDescription() const{ return m_s3BackupDescription; }
511 
512     /**
513      * <p>The configuration for backup in Amazon S3.</p>
514      */
S3BackupDescriptionHasBeenSet()515     inline bool S3BackupDescriptionHasBeenSet() const { return m_s3BackupDescriptionHasBeenSet; }
516 
517     /**
518      * <p>The configuration for backup in Amazon S3.</p>
519      */
SetS3BackupDescription(const S3DestinationDescription & value)520     inline void SetS3BackupDescription(const S3DestinationDescription& value) { m_s3BackupDescriptionHasBeenSet = true; m_s3BackupDescription = value; }
521 
522     /**
523      * <p>The configuration for backup in Amazon S3.</p>
524      */
SetS3BackupDescription(S3DestinationDescription && value)525     inline void SetS3BackupDescription(S3DestinationDescription&& value) { m_s3BackupDescriptionHasBeenSet = true; m_s3BackupDescription = std::move(value); }
526 
527     /**
528      * <p>The configuration for backup in Amazon S3.</p>
529      */
WithS3BackupDescription(const S3DestinationDescription & value)530     inline ExtendedS3DestinationDescription& WithS3BackupDescription(const S3DestinationDescription& value) { SetS3BackupDescription(value); return *this;}
531 
532     /**
533      * <p>The configuration for backup in Amazon S3.</p>
534      */
WithS3BackupDescription(S3DestinationDescription && value)535     inline ExtendedS3DestinationDescription& WithS3BackupDescription(S3DestinationDescription&& value) { SetS3BackupDescription(std::move(value)); return *this;}
536 
537 
538     /**
539      * <p>The serializer, deserializer, and schema for converting data from the JSON
540      * format to the Parquet or ORC format before writing it to Amazon S3.</p>
541      */
GetDataFormatConversionConfiguration()542     inline const DataFormatConversionConfiguration& GetDataFormatConversionConfiguration() const{ return m_dataFormatConversionConfiguration; }
543 
544     /**
545      * <p>The serializer, deserializer, and schema for converting data from the JSON
546      * format to the Parquet or ORC format before writing it to Amazon S3.</p>
547      */
DataFormatConversionConfigurationHasBeenSet()548     inline bool DataFormatConversionConfigurationHasBeenSet() const { return m_dataFormatConversionConfigurationHasBeenSet; }
549 
550     /**
551      * <p>The serializer, deserializer, and schema for converting data from the JSON
552      * format to the Parquet or ORC format before writing it to Amazon S3.</p>
553      */
SetDataFormatConversionConfiguration(const DataFormatConversionConfiguration & value)554     inline void SetDataFormatConversionConfiguration(const DataFormatConversionConfiguration& value) { m_dataFormatConversionConfigurationHasBeenSet = true; m_dataFormatConversionConfiguration = value; }
555 
556     /**
557      * <p>The serializer, deserializer, and schema for converting data from the JSON
558      * format to the Parquet or ORC format before writing it to Amazon S3.</p>
559      */
SetDataFormatConversionConfiguration(DataFormatConversionConfiguration && value)560     inline void SetDataFormatConversionConfiguration(DataFormatConversionConfiguration&& value) { m_dataFormatConversionConfigurationHasBeenSet = true; m_dataFormatConversionConfiguration = std::move(value); }
561 
562     /**
563      * <p>The serializer, deserializer, and schema for converting data from the JSON
564      * format to the Parquet or ORC format before writing it to Amazon S3.</p>
565      */
WithDataFormatConversionConfiguration(const DataFormatConversionConfiguration & value)566     inline ExtendedS3DestinationDescription& WithDataFormatConversionConfiguration(const DataFormatConversionConfiguration& value) { SetDataFormatConversionConfiguration(value); return *this;}
567 
568     /**
569      * <p>The serializer, deserializer, and schema for converting data from the JSON
570      * format to the Parquet or ORC format before writing it to Amazon S3.</p>
571      */
WithDataFormatConversionConfiguration(DataFormatConversionConfiguration && value)572     inline ExtendedS3DestinationDescription& WithDataFormatConversionConfiguration(DataFormatConversionConfiguration&& value) { SetDataFormatConversionConfiguration(std::move(value)); return *this;}
573 
574 
575     /**
576      * <p>The configuration of the dynamic partitioning mechanism that creates smaller
577      * data sets from the streaming data by partitioning it based on partition keys.
578      * Currently, dynamic partitioning is only supported for Amazon S3 destinations.
579      * For more information, see <a
580      * href="https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html">https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html</a>
581      * </p>
582      */
GetDynamicPartitioningConfiguration()583     inline const DynamicPartitioningConfiguration& GetDynamicPartitioningConfiguration() const{ return m_dynamicPartitioningConfiguration; }
584 
585     /**
586      * <p>The configuration of the dynamic partitioning mechanism that creates smaller
587      * data sets from the streaming data by partitioning it based on partition keys.
588      * Currently, dynamic partitioning is only supported for Amazon S3 destinations.
589      * For more information, see <a
590      * href="https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html">https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html</a>
591      * </p>
592      */
DynamicPartitioningConfigurationHasBeenSet()593     inline bool DynamicPartitioningConfigurationHasBeenSet() const { return m_dynamicPartitioningConfigurationHasBeenSet; }
594 
595     /**
596      * <p>The configuration of the dynamic partitioning mechanism that creates smaller
597      * data sets from the streaming data by partitioning it based on partition keys.
598      * Currently, dynamic partitioning is only supported for Amazon S3 destinations.
599      * For more information, see <a
600      * href="https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html">https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html</a>
601      * </p>
602      */
SetDynamicPartitioningConfiguration(const DynamicPartitioningConfiguration & value)603     inline void SetDynamicPartitioningConfiguration(const DynamicPartitioningConfiguration& value) { m_dynamicPartitioningConfigurationHasBeenSet = true; m_dynamicPartitioningConfiguration = value; }
604 
605     /**
606      * <p>The configuration of the dynamic partitioning mechanism that creates smaller
607      * data sets from the streaming data by partitioning it based on partition keys.
608      * Currently, dynamic partitioning is only supported for Amazon S3 destinations.
609      * For more information, see <a
610      * href="https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html">https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html</a>
611      * </p>
612      */
SetDynamicPartitioningConfiguration(DynamicPartitioningConfiguration && value)613     inline void SetDynamicPartitioningConfiguration(DynamicPartitioningConfiguration&& value) { m_dynamicPartitioningConfigurationHasBeenSet = true; m_dynamicPartitioningConfiguration = std::move(value); }
614 
615     /**
616      * <p>The configuration of the dynamic partitioning mechanism that creates smaller
617      * data sets from the streaming data by partitioning it based on partition keys.
618      * Currently, dynamic partitioning is only supported for Amazon S3 destinations.
619      * For more information, see <a
620      * href="https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html">https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html</a>
621      * </p>
622      */
WithDynamicPartitioningConfiguration(const DynamicPartitioningConfiguration & value)623     inline ExtendedS3DestinationDescription& WithDynamicPartitioningConfiguration(const DynamicPartitioningConfiguration& value) { SetDynamicPartitioningConfiguration(value); return *this;}
624 
625     /**
626      * <p>The configuration of the dynamic partitioning mechanism that creates smaller
627      * data sets from the streaming data by partitioning it based on partition keys.
628      * Currently, dynamic partitioning is only supported for Amazon S3 destinations.
629      * For more information, see <a
630      * href="https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html">https://docs.aws.amazon.com/firehose/latest/dev/dynamic-partitioning.html</a>
631      * </p>
632      */
WithDynamicPartitioningConfiguration(DynamicPartitioningConfiguration && value)633     inline ExtendedS3DestinationDescription& WithDynamicPartitioningConfiguration(DynamicPartitioningConfiguration&& value) { SetDynamicPartitioningConfiguration(std::move(value)); return *this;}
634 
635   private:
636 
637     Aws::String m_roleARN;
638     bool m_roleARNHasBeenSet;
639 
640     Aws::String m_bucketARN;
641     bool m_bucketARNHasBeenSet;
642 
643     Aws::String m_prefix;
644     bool m_prefixHasBeenSet;
645 
646     Aws::String m_errorOutputPrefix;
647     bool m_errorOutputPrefixHasBeenSet;
648 
649     BufferingHints m_bufferingHints;
650     bool m_bufferingHintsHasBeenSet;
651 
652     CompressionFormat m_compressionFormat;
653     bool m_compressionFormatHasBeenSet;
654 
655     EncryptionConfiguration m_encryptionConfiguration;
656     bool m_encryptionConfigurationHasBeenSet;
657 
658     CloudWatchLoggingOptions m_cloudWatchLoggingOptions;
659     bool m_cloudWatchLoggingOptionsHasBeenSet;
660 
661     ProcessingConfiguration m_processingConfiguration;
662     bool m_processingConfigurationHasBeenSet;
663 
664     S3BackupMode m_s3BackupMode;
665     bool m_s3BackupModeHasBeenSet;
666 
667     S3DestinationDescription m_s3BackupDescription;
668     bool m_s3BackupDescriptionHasBeenSet;
669 
670     DataFormatConversionConfiguration m_dataFormatConversionConfiguration;
671     bool m_dataFormatConversionConfigurationHasBeenSet;
672 
673     DynamicPartitioningConfiguration m_dynamicPartitioningConfiguration;
674     bool m_dynamicPartitioningConfigurationHasBeenSet;
675   };
676 
677 } // namespace Model
678 } // namespace Firehose
679 } // namespace Aws
680