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/S3DestinationDescription.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 a destination in Amazon Redshift.</p><p><h3>See Also:</h3>   <a
34    * href="http://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/RedshiftDestinationDescription">AWS
35    * API Reference</a></p>
36    */
37   class AWS_FIREHOSE_API RedshiftDestinationDescription
38   {
39   public:
40     RedshiftDestinationDescription();
41     RedshiftDestinationDescription(Aws::Utils::Json::JsonView jsonValue);
42     RedshiftDestinationDescription& operator=(Aws::Utils::Json::JsonView jsonValue);
43     Aws::Utils::Json::JsonValue Jsonize() const;
44 
45 
46     /**
47      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
48      * see <a
49      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
50      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
51      */
GetRoleARN()52     inline const Aws::String& GetRoleARN() const{ return m_roleARN; }
53 
54     /**
55      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
56      * see <a
57      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
58      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
59      */
RoleARNHasBeenSet()60     inline bool RoleARNHasBeenSet() const { return m_roleARNHasBeenSet; }
61 
62     /**
63      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
64      * see <a
65      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
66      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
67      */
SetRoleARN(const Aws::String & value)68     inline void SetRoleARN(const Aws::String& value) { m_roleARNHasBeenSet = true; m_roleARN = value; }
69 
70     /**
71      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
72      * see <a
73      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
74      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
75      */
SetRoleARN(Aws::String && value)76     inline void SetRoleARN(Aws::String&& value) { m_roleARNHasBeenSet = true; m_roleARN = std::move(value); }
77 
78     /**
79      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
80      * see <a
81      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
82      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
83      */
SetRoleARN(const char * value)84     inline void SetRoleARN(const char* value) { m_roleARNHasBeenSet = true; m_roleARN.assign(value); }
85 
86     /**
87      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
88      * see <a
89      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
90      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
91      */
WithRoleARN(const Aws::String & value)92     inline RedshiftDestinationDescription& WithRoleARN(const Aws::String& value) { SetRoleARN(value); return *this;}
93 
94     /**
95      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
96      * see <a
97      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
98      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
99      */
WithRoleARN(Aws::String && value)100     inline RedshiftDestinationDescription& WithRoleARN(Aws::String&& value) { SetRoleARN(std::move(value)); return *this;}
101 
102     /**
103      * <p>The Amazon Resource Name (ARN) of the AWS credentials. For more information,
104      * see <a
105      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
106      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
107      */
WithRoleARN(const char * value)108     inline RedshiftDestinationDescription& WithRoleARN(const char* value) { SetRoleARN(value); return *this;}
109 
110 
111     /**
112      * <p>The database connection string.</p>
113      */
GetClusterJDBCURL()114     inline const Aws::String& GetClusterJDBCURL() const{ return m_clusterJDBCURL; }
115 
116     /**
117      * <p>The database connection string.</p>
118      */
ClusterJDBCURLHasBeenSet()119     inline bool ClusterJDBCURLHasBeenSet() const { return m_clusterJDBCURLHasBeenSet; }
120 
121     /**
122      * <p>The database connection string.</p>
123      */
SetClusterJDBCURL(const Aws::String & value)124     inline void SetClusterJDBCURL(const Aws::String& value) { m_clusterJDBCURLHasBeenSet = true; m_clusterJDBCURL = value; }
125 
126     /**
127      * <p>The database connection string.</p>
128      */
SetClusterJDBCURL(Aws::String && value)129     inline void SetClusterJDBCURL(Aws::String&& value) { m_clusterJDBCURLHasBeenSet = true; m_clusterJDBCURL = std::move(value); }
130 
131     /**
132      * <p>The database connection string.</p>
133      */
SetClusterJDBCURL(const char * value)134     inline void SetClusterJDBCURL(const char* value) { m_clusterJDBCURLHasBeenSet = true; m_clusterJDBCURL.assign(value); }
135 
136     /**
137      * <p>The database connection string.</p>
138      */
WithClusterJDBCURL(const Aws::String & value)139     inline RedshiftDestinationDescription& WithClusterJDBCURL(const Aws::String& value) { SetClusterJDBCURL(value); return *this;}
140 
141     /**
142      * <p>The database connection string.</p>
143      */
WithClusterJDBCURL(Aws::String && value)144     inline RedshiftDestinationDescription& WithClusterJDBCURL(Aws::String&& value) { SetClusterJDBCURL(std::move(value)); return *this;}
145 
146     /**
147      * <p>The database connection string.</p>
148      */
WithClusterJDBCURL(const char * value)149     inline RedshiftDestinationDescription& WithClusterJDBCURL(const char* value) { SetClusterJDBCURL(value); return *this;}
150 
151 
152     /**
153      * <p>The <code>COPY</code> command.</p>
154      */
GetCopyCommand()155     inline const CopyCommand& GetCopyCommand() const{ return m_copyCommand; }
156 
157     /**
158      * <p>The <code>COPY</code> command.</p>
159      */
CopyCommandHasBeenSet()160     inline bool CopyCommandHasBeenSet() const { return m_copyCommandHasBeenSet; }
161 
162     /**
163      * <p>The <code>COPY</code> command.</p>
164      */
SetCopyCommand(const CopyCommand & value)165     inline void SetCopyCommand(const CopyCommand& value) { m_copyCommandHasBeenSet = true; m_copyCommand = value; }
166 
167     /**
168      * <p>The <code>COPY</code> command.</p>
169      */
SetCopyCommand(CopyCommand && value)170     inline void SetCopyCommand(CopyCommand&& value) { m_copyCommandHasBeenSet = true; m_copyCommand = std::move(value); }
171 
172     /**
173      * <p>The <code>COPY</code> command.</p>
174      */
WithCopyCommand(const CopyCommand & value)175     inline RedshiftDestinationDescription& WithCopyCommand(const CopyCommand& value) { SetCopyCommand(value); return *this;}
176 
177     /**
178      * <p>The <code>COPY</code> command.</p>
179      */
WithCopyCommand(CopyCommand && value)180     inline RedshiftDestinationDescription& WithCopyCommand(CopyCommand&& value) { SetCopyCommand(std::move(value)); return *this;}
181 
182 
183     /**
184      * <p>The name of the user.</p>
185      */
GetUsername()186     inline const Aws::String& GetUsername() const{ return m_username; }
187 
188     /**
189      * <p>The name of the user.</p>
190      */
UsernameHasBeenSet()191     inline bool UsernameHasBeenSet() const { return m_usernameHasBeenSet; }
192 
193     /**
194      * <p>The name of the user.</p>
195      */
SetUsername(const Aws::String & value)196     inline void SetUsername(const Aws::String& value) { m_usernameHasBeenSet = true; m_username = value; }
197 
198     /**
199      * <p>The name of the user.</p>
200      */
SetUsername(Aws::String && value)201     inline void SetUsername(Aws::String&& value) { m_usernameHasBeenSet = true; m_username = std::move(value); }
202 
203     /**
204      * <p>The name of the user.</p>
205      */
SetUsername(const char * value)206     inline void SetUsername(const char* value) { m_usernameHasBeenSet = true; m_username.assign(value); }
207 
208     /**
209      * <p>The name of the user.</p>
210      */
WithUsername(const Aws::String & value)211     inline RedshiftDestinationDescription& WithUsername(const Aws::String& value) { SetUsername(value); return *this;}
212 
213     /**
214      * <p>The name of the user.</p>
215      */
WithUsername(Aws::String && value)216     inline RedshiftDestinationDescription& WithUsername(Aws::String&& value) { SetUsername(std::move(value)); return *this;}
217 
218     /**
219      * <p>The name of the user.</p>
220      */
WithUsername(const char * value)221     inline RedshiftDestinationDescription& WithUsername(const char* value) { SetUsername(value); return *this;}
222 
223 
224     /**
225      * <p>The retry behavior in case Kinesis Data Firehose is unable to deliver
226      * documents to Amazon Redshift. Default value is 3600 (60 minutes).</p>
227      */
GetRetryOptions()228     inline const RedshiftRetryOptions& GetRetryOptions() const{ return m_retryOptions; }
229 
230     /**
231      * <p>The retry behavior in case Kinesis Data Firehose is unable to deliver
232      * documents to Amazon Redshift. Default value is 3600 (60 minutes).</p>
233      */
RetryOptionsHasBeenSet()234     inline bool RetryOptionsHasBeenSet() const { return m_retryOptionsHasBeenSet; }
235 
236     /**
237      * <p>The retry behavior in case Kinesis Data Firehose is unable to deliver
238      * documents to Amazon Redshift. Default value is 3600 (60 minutes).</p>
239      */
SetRetryOptions(const RedshiftRetryOptions & value)240     inline void SetRetryOptions(const RedshiftRetryOptions& value) { m_retryOptionsHasBeenSet = true; m_retryOptions = value; }
241 
242     /**
243      * <p>The retry behavior in case Kinesis Data Firehose is unable to deliver
244      * documents to Amazon Redshift. Default value is 3600 (60 minutes).</p>
245      */
SetRetryOptions(RedshiftRetryOptions && value)246     inline void SetRetryOptions(RedshiftRetryOptions&& value) { m_retryOptionsHasBeenSet = true; m_retryOptions = std::move(value); }
247 
248     /**
249      * <p>The retry behavior in case Kinesis Data Firehose is unable to deliver
250      * documents to Amazon Redshift. Default value is 3600 (60 minutes).</p>
251      */
WithRetryOptions(const RedshiftRetryOptions & value)252     inline RedshiftDestinationDescription& WithRetryOptions(const RedshiftRetryOptions& value) { SetRetryOptions(value); return *this;}
253 
254     /**
255      * <p>The retry behavior in case Kinesis Data Firehose is unable to deliver
256      * documents to Amazon Redshift. Default value is 3600 (60 minutes).</p>
257      */
WithRetryOptions(RedshiftRetryOptions && value)258     inline RedshiftDestinationDescription& WithRetryOptions(RedshiftRetryOptions&& value) { SetRetryOptions(std::move(value)); return *this;}
259 
260 
261     /**
262      * <p>The Amazon S3 destination.</p>
263      */
GetS3DestinationDescription()264     inline const S3DestinationDescription& GetS3DestinationDescription() const{ return m_s3DestinationDescription; }
265 
266     /**
267      * <p>The Amazon S3 destination.</p>
268      */
S3DestinationDescriptionHasBeenSet()269     inline bool S3DestinationDescriptionHasBeenSet() const { return m_s3DestinationDescriptionHasBeenSet; }
270 
271     /**
272      * <p>The Amazon S3 destination.</p>
273      */
SetS3DestinationDescription(const S3DestinationDescription & value)274     inline void SetS3DestinationDescription(const S3DestinationDescription& value) { m_s3DestinationDescriptionHasBeenSet = true; m_s3DestinationDescription = value; }
275 
276     /**
277      * <p>The Amazon S3 destination.</p>
278      */
SetS3DestinationDescription(S3DestinationDescription && value)279     inline void SetS3DestinationDescription(S3DestinationDescription&& value) { m_s3DestinationDescriptionHasBeenSet = true; m_s3DestinationDescription = std::move(value); }
280 
281     /**
282      * <p>The Amazon S3 destination.</p>
283      */
WithS3DestinationDescription(const S3DestinationDescription & value)284     inline RedshiftDestinationDescription& WithS3DestinationDescription(const S3DestinationDescription& value) { SetS3DestinationDescription(value); return *this;}
285 
286     /**
287      * <p>The Amazon S3 destination.</p>
288      */
WithS3DestinationDescription(S3DestinationDescription && value)289     inline RedshiftDestinationDescription& WithS3DestinationDescription(S3DestinationDescription&& value) { SetS3DestinationDescription(std::move(value)); return *this;}
290 
291 
292     /**
293      * <p>The data processing configuration.</p>
294      */
GetProcessingConfiguration()295     inline const ProcessingConfiguration& GetProcessingConfiguration() const{ return m_processingConfiguration; }
296 
297     /**
298      * <p>The data processing configuration.</p>
299      */
ProcessingConfigurationHasBeenSet()300     inline bool ProcessingConfigurationHasBeenSet() const { return m_processingConfigurationHasBeenSet; }
301 
302     /**
303      * <p>The data processing configuration.</p>
304      */
SetProcessingConfiguration(const ProcessingConfiguration & value)305     inline void SetProcessingConfiguration(const ProcessingConfiguration& value) { m_processingConfigurationHasBeenSet = true; m_processingConfiguration = value; }
306 
307     /**
308      * <p>The data processing configuration.</p>
309      */
SetProcessingConfiguration(ProcessingConfiguration && value)310     inline void SetProcessingConfiguration(ProcessingConfiguration&& value) { m_processingConfigurationHasBeenSet = true; m_processingConfiguration = std::move(value); }
311 
312     /**
313      * <p>The data processing configuration.</p>
314      */
WithProcessingConfiguration(const ProcessingConfiguration & value)315     inline RedshiftDestinationDescription& WithProcessingConfiguration(const ProcessingConfiguration& value) { SetProcessingConfiguration(value); return *this;}
316 
317     /**
318      * <p>The data processing configuration.</p>
319      */
WithProcessingConfiguration(ProcessingConfiguration && value)320     inline RedshiftDestinationDescription& WithProcessingConfiguration(ProcessingConfiguration&& value) { SetProcessingConfiguration(std::move(value)); return *this;}
321 
322 
323     /**
324      * <p>The Amazon S3 backup mode.</p>
325      */
GetS3BackupMode()326     inline const RedshiftS3BackupMode& GetS3BackupMode() const{ return m_s3BackupMode; }
327 
328     /**
329      * <p>The Amazon S3 backup mode.</p>
330      */
S3BackupModeHasBeenSet()331     inline bool S3BackupModeHasBeenSet() const { return m_s3BackupModeHasBeenSet; }
332 
333     /**
334      * <p>The Amazon S3 backup mode.</p>
335      */
SetS3BackupMode(const RedshiftS3BackupMode & value)336     inline void SetS3BackupMode(const RedshiftS3BackupMode& value) { m_s3BackupModeHasBeenSet = true; m_s3BackupMode = value; }
337 
338     /**
339      * <p>The Amazon S3 backup mode.</p>
340      */
SetS3BackupMode(RedshiftS3BackupMode && value)341     inline void SetS3BackupMode(RedshiftS3BackupMode&& value) { m_s3BackupModeHasBeenSet = true; m_s3BackupMode = std::move(value); }
342 
343     /**
344      * <p>The Amazon S3 backup mode.</p>
345      */
WithS3BackupMode(const RedshiftS3BackupMode & value)346     inline RedshiftDestinationDescription& WithS3BackupMode(const RedshiftS3BackupMode& value) { SetS3BackupMode(value); return *this;}
347 
348     /**
349      * <p>The Amazon S3 backup mode.</p>
350      */
WithS3BackupMode(RedshiftS3BackupMode && value)351     inline RedshiftDestinationDescription& WithS3BackupMode(RedshiftS3BackupMode&& value) { SetS3BackupMode(std::move(value)); return *this;}
352 
353 
354     /**
355      * <p>The configuration for backup in Amazon S3.</p>
356      */
GetS3BackupDescription()357     inline const S3DestinationDescription& GetS3BackupDescription() const{ return m_s3BackupDescription; }
358 
359     /**
360      * <p>The configuration for backup in Amazon S3.</p>
361      */
S3BackupDescriptionHasBeenSet()362     inline bool S3BackupDescriptionHasBeenSet() const { return m_s3BackupDescriptionHasBeenSet; }
363 
364     /**
365      * <p>The configuration for backup in Amazon S3.</p>
366      */
SetS3BackupDescription(const S3DestinationDescription & value)367     inline void SetS3BackupDescription(const S3DestinationDescription& value) { m_s3BackupDescriptionHasBeenSet = true; m_s3BackupDescription = value; }
368 
369     /**
370      * <p>The configuration for backup in Amazon S3.</p>
371      */
SetS3BackupDescription(S3DestinationDescription && value)372     inline void SetS3BackupDescription(S3DestinationDescription&& value) { m_s3BackupDescriptionHasBeenSet = true; m_s3BackupDescription = std::move(value); }
373 
374     /**
375      * <p>The configuration for backup in Amazon S3.</p>
376      */
WithS3BackupDescription(const S3DestinationDescription & value)377     inline RedshiftDestinationDescription& WithS3BackupDescription(const S3DestinationDescription& value) { SetS3BackupDescription(value); return *this;}
378 
379     /**
380      * <p>The configuration for backup in Amazon S3.</p>
381      */
WithS3BackupDescription(S3DestinationDescription && value)382     inline RedshiftDestinationDescription& WithS3BackupDescription(S3DestinationDescription&& value) { SetS3BackupDescription(std::move(value)); return *this;}
383 
384 
385     /**
386      * <p>The Amazon CloudWatch logging options for your delivery stream.</p>
387      */
GetCloudWatchLoggingOptions()388     inline const CloudWatchLoggingOptions& GetCloudWatchLoggingOptions() const{ return m_cloudWatchLoggingOptions; }
389 
390     /**
391      * <p>The Amazon CloudWatch logging options for your delivery stream.</p>
392      */
CloudWatchLoggingOptionsHasBeenSet()393     inline bool CloudWatchLoggingOptionsHasBeenSet() const { return m_cloudWatchLoggingOptionsHasBeenSet; }
394 
395     /**
396      * <p>The Amazon CloudWatch logging options for your delivery stream.</p>
397      */
SetCloudWatchLoggingOptions(const CloudWatchLoggingOptions & value)398     inline void SetCloudWatchLoggingOptions(const CloudWatchLoggingOptions& value) { m_cloudWatchLoggingOptionsHasBeenSet = true; m_cloudWatchLoggingOptions = value; }
399 
400     /**
401      * <p>The Amazon CloudWatch logging options for your delivery stream.</p>
402      */
SetCloudWatchLoggingOptions(CloudWatchLoggingOptions && value)403     inline void SetCloudWatchLoggingOptions(CloudWatchLoggingOptions&& value) { m_cloudWatchLoggingOptionsHasBeenSet = true; m_cloudWatchLoggingOptions = std::move(value); }
404 
405     /**
406      * <p>The Amazon CloudWatch logging options for your delivery stream.</p>
407      */
WithCloudWatchLoggingOptions(const CloudWatchLoggingOptions & value)408     inline RedshiftDestinationDescription& WithCloudWatchLoggingOptions(const CloudWatchLoggingOptions& value) { SetCloudWatchLoggingOptions(value); return *this;}
409 
410     /**
411      * <p>The Amazon CloudWatch logging options for your delivery stream.</p>
412      */
WithCloudWatchLoggingOptions(CloudWatchLoggingOptions && value)413     inline RedshiftDestinationDescription& WithCloudWatchLoggingOptions(CloudWatchLoggingOptions&& value) { SetCloudWatchLoggingOptions(std::move(value)); return *this;}
414 
415   private:
416 
417     Aws::String m_roleARN;
418     bool m_roleARNHasBeenSet;
419 
420     Aws::String m_clusterJDBCURL;
421     bool m_clusterJDBCURLHasBeenSet;
422 
423     CopyCommand m_copyCommand;
424     bool m_copyCommandHasBeenSet;
425 
426     Aws::String m_username;
427     bool m_usernameHasBeenSet;
428 
429     RedshiftRetryOptions m_retryOptions;
430     bool m_retryOptionsHasBeenSet;
431 
432     S3DestinationDescription m_s3DestinationDescription;
433     bool m_s3DestinationDescriptionHasBeenSet;
434 
435     ProcessingConfiguration m_processingConfiguration;
436     bool m_processingConfigurationHasBeenSet;
437 
438     RedshiftS3BackupMode m_s3BackupMode;
439     bool m_s3BackupModeHasBeenSet;
440 
441     S3DestinationDescription m_s3BackupDescription;
442     bool m_s3BackupDescriptionHasBeenSet;
443 
444     CloudWatchLoggingOptions m_cloudWatchLoggingOptions;
445     bool m_cloudWatchLoggingOptionsHasBeenSet;
446   };
447 
448 } // namespace Model
449 } // namespace Firehose
450 } // namespace Aws
451