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