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/CopyCommand.h>
10 #include <aws/firehose/model/RedshiftRetryOptions.h>
11 #include <aws/firehose/model/S3DestinationConfiguration.h>
12 #include <aws/firehose/model/ProcessingConfiguration.h>
13 #include <aws/firehose/model/RedshiftS3BackupMode.h>
14 #include <aws/firehose/model/CloudWatchLoggingOptions.h>
15 #include <utility>
16 
17 namespace Aws
18 {
19 namespace Utils
20 {
21 namespace Json
22 {
23   class JsonValue;
24   class JsonView;
25 } // namespace Json
26 } // namespace Utils
27 namespace Firehose
28 {
29 namespace Model
30 {
31 
32   /**
33    * <p>Describes the configuration of a destination in Amazon
34    * Redshift.</p><p><h3>See Also:</h3>   <a
35    * href="http://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/RedshiftDestinationConfiguration">AWS
36    * API Reference</a></p>
37    */
38   class AWS_FIREHOSE_API RedshiftDestinationConfiguration
39   {
40   public:
41     RedshiftDestinationConfiguration();
42     RedshiftDestinationConfiguration(Aws::Utils::Json::JsonView jsonValue);
43     RedshiftDestinationConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue);
44     Aws::Utils::Json::JsonValue Jsonize() const;
45 
46 
47     /**
48      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
49      * see <a
50      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
51      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
52      */
GetRoleARN()53     inline const Aws::String& GetRoleARN() const{ return m_roleARN; }
54 
55     /**
56      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
57      * see <a
58      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
59      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
60      */
RoleARNHasBeenSet()61     inline bool RoleARNHasBeenSet() const { return m_roleARNHasBeenSet; }
62 
63     /**
64      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
65      * see <a
66      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
67      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
68      */
SetRoleARN(const Aws::String & value)69     inline void SetRoleARN(const Aws::String& value) { m_roleARNHasBeenSet = true; m_roleARN = value; }
70 
71     /**
72      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
73      * see <a
74      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
75      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
76      */
SetRoleARN(Aws::String && value)77     inline void SetRoleARN(Aws::String&& value) { m_roleARNHasBeenSet = true; m_roleARN = std::move(value); }
78 
79     /**
80      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
81      * see <a
82      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
83      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
84      */
SetRoleARN(const char * value)85     inline void SetRoleARN(const char* value) { m_roleARNHasBeenSet = true; m_roleARN.assign(value); }
86 
87     /**
88      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
89      * see <a
90      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
91      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
92      */
WithRoleARN(const Aws::String & value)93     inline RedshiftDestinationConfiguration& WithRoleARN(const Aws::String& value) { SetRoleARN(value); return *this;}
94 
95     /**
96      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
97      * see <a
98      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
99      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
100      */
WithRoleARN(Aws::String && value)101     inline RedshiftDestinationConfiguration& WithRoleARN(Aws::String&& value) { SetRoleARN(std::move(value)); return *this;}
102 
103     /**
104      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
105      * see <a
106      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
107      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
108      */
WithRoleARN(const char * value)109     inline RedshiftDestinationConfiguration& WithRoleARN(const char* value) { SetRoleARN(value); return *this;}
110 
111 
112     /**
113      * <p>The database connection string.</p>
114      */
GetClusterJDBCURL()115     inline const Aws::String& GetClusterJDBCURL() const{ return m_clusterJDBCURL; }
116 
117     /**
118      * <p>The database connection string.</p>
119      */
ClusterJDBCURLHasBeenSet()120     inline bool ClusterJDBCURLHasBeenSet() const { return m_clusterJDBCURLHasBeenSet; }
121 
122     /**
123      * <p>The database connection string.</p>
124      */
SetClusterJDBCURL(const Aws::String & value)125     inline void SetClusterJDBCURL(const Aws::String& value) { m_clusterJDBCURLHasBeenSet = true; m_clusterJDBCURL = value; }
126 
127     /**
128      * <p>The database connection string.</p>
129      */
SetClusterJDBCURL(Aws::String && value)130     inline void SetClusterJDBCURL(Aws::String&& value) { m_clusterJDBCURLHasBeenSet = true; m_clusterJDBCURL = std::move(value); }
131 
132     /**
133      * <p>The database connection string.</p>
134      */
SetClusterJDBCURL(const char * value)135     inline void SetClusterJDBCURL(const char* value) { m_clusterJDBCURLHasBeenSet = true; m_clusterJDBCURL.assign(value); }
136 
137     /**
138      * <p>The database connection string.</p>
139      */
WithClusterJDBCURL(const Aws::String & value)140     inline RedshiftDestinationConfiguration& WithClusterJDBCURL(const Aws::String& value) { SetClusterJDBCURL(value); return *this;}
141 
142     /**
143      * <p>The database connection string.</p>
144      */
WithClusterJDBCURL(Aws::String && value)145     inline RedshiftDestinationConfiguration& WithClusterJDBCURL(Aws::String&& value) { SetClusterJDBCURL(std::move(value)); return *this;}
146 
147     /**
148      * <p>The database connection string.</p>
149      */
WithClusterJDBCURL(const char * value)150     inline RedshiftDestinationConfiguration& WithClusterJDBCURL(const char* value) { SetClusterJDBCURL(value); return *this;}
151 
152 
153     /**
154      * <p>The <code>COPY</code> command.</p>
155      */
GetCopyCommand()156     inline const CopyCommand& GetCopyCommand() const{ return m_copyCommand; }
157 
158     /**
159      * <p>The <code>COPY</code> command.</p>
160      */
CopyCommandHasBeenSet()161     inline bool CopyCommandHasBeenSet() const { return m_copyCommandHasBeenSet; }
162 
163     /**
164      * <p>The <code>COPY</code> command.</p>
165      */
SetCopyCommand(const CopyCommand & value)166     inline void SetCopyCommand(const CopyCommand& value) { m_copyCommandHasBeenSet = true; m_copyCommand = value; }
167 
168     /**
169      * <p>The <code>COPY</code> command.</p>
170      */
SetCopyCommand(CopyCommand && value)171     inline void SetCopyCommand(CopyCommand&& value) { m_copyCommandHasBeenSet = true; m_copyCommand = std::move(value); }
172 
173     /**
174      * <p>The <code>COPY</code> command.</p>
175      */
WithCopyCommand(const CopyCommand & value)176     inline RedshiftDestinationConfiguration& WithCopyCommand(const CopyCommand& value) { SetCopyCommand(value); return *this;}
177 
178     /**
179      * <p>The <code>COPY</code> command.</p>
180      */
WithCopyCommand(CopyCommand && value)181     inline RedshiftDestinationConfiguration& WithCopyCommand(CopyCommand&& value) { SetCopyCommand(std::move(value)); return *this;}
182 
183 
184     /**
185      * <p>The name of the user.</p>
186      */
GetUsername()187     inline const Aws::String& GetUsername() const{ return m_username; }
188 
189     /**
190      * <p>The name of the user.</p>
191      */
UsernameHasBeenSet()192     inline bool UsernameHasBeenSet() const { return m_usernameHasBeenSet; }
193 
194     /**
195      * <p>The name of the user.</p>
196      */
SetUsername(const Aws::String & value)197     inline void SetUsername(const Aws::String& value) { m_usernameHasBeenSet = true; m_username = value; }
198 
199     /**
200      * <p>The name of the user.</p>
201      */
SetUsername(Aws::String && value)202     inline void SetUsername(Aws::String&& value) { m_usernameHasBeenSet = true; m_username = std::move(value); }
203 
204     /**
205      * <p>The name of the user.</p>
206      */
SetUsername(const char * value)207     inline void SetUsername(const char* value) { m_usernameHasBeenSet = true; m_username.assign(value); }
208 
209     /**
210      * <p>The name of the user.</p>
211      */
WithUsername(const Aws::String & value)212     inline RedshiftDestinationConfiguration& WithUsername(const Aws::String& value) { SetUsername(value); return *this;}
213 
214     /**
215      * <p>The name of the user.</p>
216      */
WithUsername(Aws::String && value)217     inline RedshiftDestinationConfiguration& WithUsername(Aws::String&& value) { SetUsername(std::move(value)); return *this;}
218 
219     /**
220      * <p>The name of the user.</p>
221      */
WithUsername(const char * value)222     inline RedshiftDestinationConfiguration& WithUsername(const char* value) { SetUsername(value); return *this;}
223 
224 
225     /**
226      * <p>The user password.</p>
227      */
GetPassword()228     inline const Aws::String& GetPassword() const{ return m_password; }
229 
230     /**
231      * <p>The user password.</p>
232      */
PasswordHasBeenSet()233     inline bool PasswordHasBeenSet() const { return m_passwordHasBeenSet; }
234 
235     /**
236      * <p>The user password.</p>
237      */
SetPassword(const Aws::String & value)238     inline void SetPassword(const Aws::String& value) { m_passwordHasBeenSet = true; m_password = value; }
239 
240     /**
241      * <p>The user password.</p>
242      */
SetPassword(Aws::String && value)243     inline void SetPassword(Aws::String&& value) { m_passwordHasBeenSet = true; m_password = std::move(value); }
244 
245     /**
246      * <p>The user password.</p>
247      */
SetPassword(const char * value)248     inline void SetPassword(const char* value) { m_passwordHasBeenSet = true; m_password.assign(value); }
249 
250     /**
251      * <p>The user password.</p>
252      */
WithPassword(const Aws::String & value)253     inline RedshiftDestinationConfiguration& WithPassword(const Aws::String& value) { SetPassword(value); return *this;}
254 
255     /**
256      * <p>The user password.</p>
257      */
WithPassword(Aws::String && value)258     inline RedshiftDestinationConfiguration& WithPassword(Aws::String&& value) { SetPassword(std::move(value)); return *this;}
259 
260     /**
261      * <p>The user password.</p>
262      */
WithPassword(const char * value)263     inline RedshiftDestinationConfiguration& WithPassword(const char* value) { SetPassword(value); return *this;}
264 
265 
266     /**
267      * <p>The retry behavior in case Kinesis Data Firehose is unable to deliver
268      * documents to Amazon Redshift. Default value is 3600 (60 minutes).</p>
269      */
GetRetryOptions()270     inline const RedshiftRetryOptions& GetRetryOptions() const{ return m_retryOptions; }
271 
272     /**
273      * <p>The retry behavior in case Kinesis Data Firehose is unable to deliver
274      * documents to Amazon Redshift. Default value is 3600 (60 minutes).</p>
275      */
RetryOptionsHasBeenSet()276     inline bool RetryOptionsHasBeenSet() const { return m_retryOptionsHasBeenSet; }
277 
278     /**
279      * <p>The retry behavior in case Kinesis Data Firehose is unable to deliver
280      * documents to Amazon Redshift. Default value is 3600 (60 minutes).</p>
281      */
SetRetryOptions(const RedshiftRetryOptions & value)282     inline void SetRetryOptions(const RedshiftRetryOptions& value) { m_retryOptionsHasBeenSet = true; m_retryOptions = value; }
283 
284     /**
285      * <p>The retry behavior in case Kinesis Data Firehose is unable to deliver
286      * documents to Amazon Redshift. Default value is 3600 (60 minutes).</p>
287      */
SetRetryOptions(RedshiftRetryOptions && value)288     inline void SetRetryOptions(RedshiftRetryOptions&& value) { m_retryOptionsHasBeenSet = true; m_retryOptions = std::move(value); }
289 
290     /**
291      * <p>The retry behavior in case Kinesis Data Firehose is unable to deliver
292      * documents to Amazon Redshift. Default value is 3600 (60 minutes).</p>
293      */
WithRetryOptions(const RedshiftRetryOptions & value)294     inline RedshiftDestinationConfiguration& WithRetryOptions(const RedshiftRetryOptions& value) { SetRetryOptions(value); return *this;}
295 
296     /**
297      * <p>The retry behavior in case Kinesis Data Firehose is unable to deliver
298      * documents to Amazon Redshift. Default value is 3600 (60 minutes).</p>
299      */
WithRetryOptions(RedshiftRetryOptions && value)300     inline RedshiftDestinationConfiguration& WithRetryOptions(RedshiftRetryOptions&& value) { SetRetryOptions(std::move(value)); return *this;}
301 
302 
303     /**
304      * <p>The configuration for the intermediate Amazon S3 location from which Amazon
305      * Redshift obtains data. Restrictions are described in the topic for
306      * <a>CreateDeliveryStream</a>.</p> <p>The compression formats <code>SNAPPY</code>
307      * or <code>ZIP</code> cannot be specified in
308      * <code>RedshiftDestinationConfiguration.S3Configuration</code> because the Amazon
309      * Redshift <code>COPY</code> operation that reads from the S3 bucket doesn't
310      * support these compression formats.</p>
311      */
GetS3Configuration()312     inline const S3DestinationConfiguration& GetS3Configuration() const{ return m_s3Configuration; }
313 
314     /**
315      * <p>The configuration for the intermediate Amazon S3 location from which Amazon
316      * Redshift obtains data. Restrictions are described in the topic for
317      * <a>CreateDeliveryStream</a>.</p> <p>The compression formats <code>SNAPPY</code>
318      * or <code>ZIP</code> cannot be specified in
319      * <code>RedshiftDestinationConfiguration.S3Configuration</code> because the Amazon
320      * Redshift <code>COPY</code> operation that reads from the S3 bucket doesn't
321      * support these compression formats.</p>
322      */
S3ConfigurationHasBeenSet()323     inline bool S3ConfigurationHasBeenSet() const { return m_s3ConfigurationHasBeenSet; }
324 
325     /**
326      * <p>The configuration for the intermediate Amazon S3 location from which Amazon
327      * Redshift obtains data. Restrictions are described in the topic for
328      * <a>CreateDeliveryStream</a>.</p> <p>The compression formats <code>SNAPPY</code>
329      * or <code>ZIP</code> cannot be specified in
330      * <code>RedshiftDestinationConfiguration.S3Configuration</code> because the Amazon
331      * Redshift <code>COPY</code> operation that reads from the S3 bucket doesn't
332      * support these compression formats.</p>
333      */
SetS3Configuration(const S3DestinationConfiguration & value)334     inline void SetS3Configuration(const S3DestinationConfiguration& value) { m_s3ConfigurationHasBeenSet = true; m_s3Configuration = value; }
335 
336     /**
337      * <p>The configuration for the intermediate Amazon S3 location from which Amazon
338      * Redshift obtains data. Restrictions are described in the topic for
339      * <a>CreateDeliveryStream</a>.</p> <p>The compression formats <code>SNAPPY</code>
340      * or <code>ZIP</code> cannot be specified in
341      * <code>RedshiftDestinationConfiguration.S3Configuration</code> because the Amazon
342      * Redshift <code>COPY</code> operation that reads from the S3 bucket doesn't
343      * support these compression formats.</p>
344      */
SetS3Configuration(S3DestinationConfiguration && value)345     inline void SetS3Configuration(S3DestinationConfiguration&& value) { m_s3ConfigurationHasBeenSet = true; m_s3Configuration = std::move(value); }
346 
347     /**
348      * <p>The configuration for the intermediate Amazon S3 location from which Amazon
349      * Redshift obtains data. Restrictions are described in the topic for
350      * <a>CreateDeliveryStream</a>.</p> <p>The compression formats <code>SNAPPY</code>
351      * or <code>ZIP</code> cannot be specified in
352      * <code>RedshiftDestinationConfiguration.S3Configuration</code> because the Amazon
353      * Redshift <code>COPY</code> operation that reads from the S3 bucket doesn't
354      * support these compression formats.</p>
355      */
WithS3Configuration(const S3DestinationConfiguration & value)356     inline RedshiftDestinationConfiguration& WithS3Configuration(const S3DestinationConfiguration& value) { SetS3Configuration(value); return *this;}
357 
358     /**
359      * <p>The configuration for the intermediate Amazon S3 location from which Amazon
360      * Redshift obtains data. Restrictions are described in the topic for
361      * <a>CreateDeliveryStream</a>.</p> <p>The compression formats <code>SNAPPY</code>
362      * or <code>ZIP</code> cannot be specified in
363      * <code>RedshiftDestinationConfiguration.S3Configuration</code> because the Amazon
364      * Redshift <code>COPY</code> operation that reads from the S3 bucket doesn't
365      * support these compression formats.</p>
366      */
WithS3Configuration(S3DestinationConfiguration && value)367     inline RedshiftDestinationConfiguration& WithS3Configuration(S3DestinationConfiguration&& value) { SetS3Configuration(std::move(value)); return *this;}
368 
369 
370     /**
371      * <p>The data processing configuration.</p>
372      */
GetProcessingConfiguration()373     inline const ProcessingConfiguration& GetProcessingConfiguration() const{ return m_processingConfiguration; }
374 
375     /**
376      * <p>The data processing configuration.</p>
377      */
ProcessingConfigurationHasBeenSet()378     inline bool ProcessingConfigurationHasBeenSet() const { return m_processingConfigurationHasBeenSet; }
379 
380     /**
381      * <p>The data processing configuration.</p>
382      */
SetProcessingConfiguration(const ProcessingConfiguration & value)383     inline void SetProcessingConfiguration(const ProcessingConfiguration& value) { m_processingConfigurationHasBeenSet = true; m_processingConfiguration = value; }
384 
385     /**
386      * <p>The data processing configuration.</p>
387      */
SetProcessingConfiguration(ProcessingConfiguration && value)388     inline void SetProcessingConfiguration(ProcessingConfiguration&& value) { m_processingConfigurationHasBeenSet = true; m_processingConfiguration = std::move(value); }
389 
390     /**
391      * <p>The data processing configuration.</p>
392      */
WithProcessingConfiguration(const ProcessingConfiguration & value)393     inline RedshiftDestinationConfiguration& WithProcessingConfiguration(const ProcessingConfiguration& value) { SetProcessingConfiguration(value); return *this;}
394 
395     /**
396      * <p>The data processing configuration.</p>
397      */
WithProcessingConfiguration(ProcessingConfiguration && value)398     inline RedshiftDestinationConfiguration& WithProcessingConfiguration(ProcessingConfiguration&& value) { SetProcessingConfiguration(std::move(value)); return *this;}
399 
400 
401     /**
402      * <p>The Amazon S3 backup mode. After you create a delivery stream, you can update
403      * it to enable Amazon S3 backup if it is disabled. If backup is enabled, you can't
404      * update the delivery stream to disable it. </p>
405      */
GetS3BackupMode()406     inline const RedshiftS3BackupMode& GetS3BackupMode() const{ return m_s3BackupMode; }
407 
408     /**
409      * <p>The Amazon S3 backup mode. After you create a delivery stream, you can update
410      * it to enable Amazon S3 backup if it is disabled. If backup is enabled, you can't
411      * update the delivery stream to disable it. </p>
412      */
S3BackupModeHasBeenSet()413     inline bool S3BackupModeHasBeenSet() const { return m_s3BackupModeHasBeenSet; }
414 
415     /**
416      * <p>The Amazon S3 backup mode. After you create a delivery stream, you can update
417      * it to enable Amazon S3 backup if it is disabled. If backup is enabled, you can't
418      * update the delivery stream to disable it. </p>
419      */
SetS3BackupMode(const RedshiftS3BackupMode & value)420     inline void SetS3BackupMode(const RedshiftS3BackupMode& value) { m_s3BackupModeHasBeenSet = true; m_s3BackupMode = value; }
421 
422     /**
423      * <p>The Amazon S3 backup mode. After you create a delivery stream, you can update
424      * it to enable Amazon S3 backup if it is disabled. If backup is enabled, you can't
425      * update the delivery stream to disable it. </p>
426      */
SetS3BackupMode(RedshiftS3BackupMode && value)427     inline void SetS3BackupMode(RedshiftS3BackupMode&& value) { m_s3BackupModeHasBeenSet = true; m_s3BackupMode = std::move(value); }
428 
429     /**
430      * <p>The Amazon S3 backup mode. After you create a delivery stream, you can update
431      * it to enable Amazon S3 backup if it is disabled. If backup is enabled, you can't
432      * update the delivery stream to disable it. </p>
433      */
WithS3BackupMode(const RedshiftS3BackupMode & value)434     inline RedshiftDestinationConfiguration& WithS3BackupMode(const RedshiftS3BackupMode& value) { SetS3BackupMode(value); return *this;}
435 
436     /**
437      * <p>The Amazon S3 backup mode. After you create a delivery stream, you can update
438      * it to enable Amazon S3 backup if it is disabled. If backup is enabled, you can't
439      * update the delivery stream to disable it. </p>
440      */
WithS3BackupMode(RedshiftS3BackupMode && value)441     inline RedshiftDestinationConfiguration& WithS3BackupMode(RedshiftS3BackupMode&& value) { SetS3BackupMode(std::move(value)); return *this;}
442 
443 
444     /**
445      * <p>The configuration for backup in Amazon S3.</p>
446      */
GetS3BackupConfiguration()447     inline const S3DestinationConfiguration& GetS3BackupConfiguration() const{ return m_s3BackupConfiguration; }
448 
449     /**
450      * <p>The configuration for backup in Amazon S3.</p>
451      */
S3BackupConfigurationHasBeenSet()452     inline bool S3BackupConfigurationHasBeenSet() const { return m_s3BackupConfigurationHasBeenSet; }
453 
454     /**
455      * <p>The configuration for backup in Amazon S3.</p>
456      */
SetS3BackupConfiguration(const S3DestinationConfiguration & value)457     inline void SetS3BackupConfiguration(const S3DestinationConfiguration& value) { m_s3BackupConfigurationHasBeenSet = true; m_s3BackupConfiguration = value; }
458 
459     /**
460      * <p>The configuration for backup in Amazon S3.</p>
461      */
SetS3BackupConfiguration(S3DestinationConfiguration && value)462     inline void SetS3BackupConfiguration(S3DestinationConfiguration&& value) { m_s3BackupConfigurationHasBeenSet = true; m_s3BackupConfiguration = std::move(value); }
463 
464     /**
465      * <p>The configuration for backup in Amazon S3.</p>
466      */
WithS3BackupConfiguration(const S3DestinationConfiguration & value)467     inline RedshiftDestinationConfiguration& WithS3BackupConfiguration(const S3DestinationConfiguration& value) { SetS3BackupConfiguration(value); return *this;}
468 
469     /**
470      * <p>The configuration for backup in Amazon S3.</p>
471      */
WithS3BackupConfiguration(S3DestinationConfiguration && value)472     inline RedshiftDestinationConfiguration& WithS3BackupConfiguration(S3DestinationConfiguration&& value) { SetS3BackupConfiguration(std::move(value)); return *this;}
473 
474 
475     /**
476      * <p>The CloudWatch logging options for your delivery stream.</p>
477      */
GetCloudWatchLoggingOptions()478     inline const CloudWatchLoggingOptions& GetCloudWatchLoggingOptions() const{ return m_cloudWatchLoggingOptions; }
479 
480     /**
481      * <p>The CloudWatch logging options for your delivery stream.</p>
482      */
CloudWatchLoggingOptionsHasBeenSet()483     inline bool CloudWatchLoggingOptionsHasBeenSet() const { return m_cloudWatchLoggingOptionsHasBeenSet; }
484 
485     /**
486      * <p>The CloudWatch logging options for your delivery stream.</p>
487      */
SetCloudWatchLoggingOptions(const CloudWatchLoggingOptions & value)488     inline void SetCloudWatchLoggingOptions(const CloudWatchLoggingOptions& value) { m_cloudWatchLoggingOptionsHasBeenSet = true; m_cloudWatchLoggingOptions = value; }
489 
490     /**
491      * <p>The CloudWatch logging options for your delivery stream.</p>
492      */
SetCloudWatchLoggingOptions(CloudWatchLoggingOptions && value)493     inline void SetCloudWatchLoggingOptions(CloudWatchLoggingOptions&& value) { m_cloudWatchLoggingOptionsHasBeenSet = true; m_cloudWatchLoggingOptions = std::move(value); }
494 
495     /**
496      * <p>The CloudWatch logging options for your delivery stream.</p>
497      */
WithCloudWatchLoggingOptions(const CloudWatchLoggingOptions & value)498     inline RedshiftDestinationConfiguration& WithCloudWatchLoggingOptions(const CloudWatchLoggingOptions& value) { SetCloudWatchLoggingOptions(value); return *this;}
499 
500     /**
501      * <p>The CloudWatch logging options for your delivery stream.</p>
502      */
WithCloudWatchLoggingOptions(CloudWatchLoggingOptions && value)503     inline RedshiftDestinationConfiguration& WithCloudWatchLoggingOptions(CloudWatchLoggingOptions&& value) { SetCloudWatchLoggingOptions(std::move(value)); return *this;}
504 
505   private:
506 
507     Aws::String m_roleARN;
508     bool m_roleARNHasBeenSet;
509 
510     Aws::String m_clusterJDBCURL;
511     bool m_clusterJDBCURLHasBeenSet;
512 
513     CopyCommand m_copyCommand;
514     bool m_copyCommandHasBeenSet;
515 
516     Aws::String m_username;
517     bool m_usernameHasBeenSet;
518 
519     Aws::String m_password;
520     bool m_passwordHasBeenSet;
521 
522     RedshiftRetryOptions m_retryOptions;
523     bool m_retryOptionsHasBeenSet;
524 
525     S3DestinationConfiguration m_s3Configuration;
526     bool m_s3ConfigurationHasBeenSet;
527 
528     ProcessingConfiguration m_processingConfiguration;
529     bool m_processingConfigurationHasBeenSet;
530 
531     RedshiftS3BackupMode m_s3BackupMode;
532     bool m_s3BackupModeHasBeenSet;
533 
534     S3DestinationConfiguration m_s3BackupConfiguration;
535     bool m_s3BackupConfigurationHasBeenSet;
536 
537     CloudWatchLoggingOptions m_cloudWatchLoggingOptions;
538     bool m_cloudWatchLoggingOptionsHasBeenSet;
539   };
540 
541 } // namespace Model
542 } // namespace Firehose
543 } // namespace Aws
544