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/kinesisanalyticsv2/KinesisAnalyticsV2_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/kinesisanalyticsv2/model/S3ReferenceDataSourceUpdate.h>
10 #include <aws/kinesisanalyticsv2/model/SourceSchema.h>
11 #include <utility>
12 
13 namespace Aws
14 {
15 namespace Utils
16 {
17 namespace Json
18 {
19   class JsonValue;
20   class JsonView;
21 } // namespace Json
22 } // namespace Utils
23 namespace KinesisAnalyticsV2
24 {
25 namespace Model
26 {
27 
28   /**
29    * <p>When you update a reference data source configuration for a SQL-based Kinesis
30    * Data Analytics application, this object provides all the updated values (such as
31    * the source bucket name and object key name), the in-application table name that
32    * is created, and updated mapping information that maps the data in the Amazon S3
33    * object to the in-application reference table that is created.</p><p><h3>See
34    * Also:</h3>   <a
35    * href="http://docs.aws.amazon.com/goto/WebAPI/kinesisanalyticsv2-2018-05-23/ReferenceDataSourceUpdate">AWS
36    * API Reference</a></p>
37    */
38   class AWS_KINESISANALYTICSV2_API ReferenceDataSourceUpdate
39   {
40   public:
41     ReferenceDataSourceUpdate();
42     ReferenceDataSourceUpdate(Aws::Utils::Json::JsonView jsonValue);
43     ReferenceDataSourceUpdate& operator=(Aws::Utils::Json::JsonView jsonValue);
44     Aws::Utils::Json::JsonValue Jsonize() const;
45 
46 
47     /**
48      * <p>The ID of the reference data source that is being updated. You can use the
49      * <a>DescribeApplication</a> operation to get this value.</p>
50      */
GetReferenceId()51     inline const Aws::String& GetReferenceId() const{ return m_referenceId; }
52 
53     /**
54      * <p>The ID of the reference data source that is being updated. You can use the
55      * <a>DescribeApplication</a> operation to get this value.</p>
56      */
ReferenceIdHasBeenSet()57     inline bool ReferenceIdHasBeenSet() const { return m_referenceIdHasBeenSet; }
58 
59     /**
60      * <p>The ID of the reference data source that is being updated. You can use the
61      * <a>DescribeApplication</a> operation to get this value.</p>
62      */
SetReferenceId(const Aws::String & value)63     inline void SetReferenceId(const Aws::String& value) { m_referenceIdHasBeenSet = true; m_referenceId = value; }
64 
65     /**
66      * <p>The ID of the reference data source that is being updated. You can use the
67      * <a>DescribeApplication</a> operation to get this value.</p>
68      */
SetReferenceId(Aws::String && value)69     inline void SetReferenceId(Aws::String&& value) { m_referenceIdHasBeenSet = true; m_referenceId = std::move(value); }
70 
71     /**
72      * <p>The ID of the reference data source that is being updated. You can use the
73      * <a>DescribeApplication</a> operation to get this value.</p>
74      */
SetReferenceId(const char * value)75     inline void SetReferenceId(const char* value) { m_referenceIdHasBeenSet = true; m_referenceId.assign(value); }
76 
77     /**
78      * <p>The ID of the reference data source that is being updated. You can use the
79      * <a>DescribeApplication</a> operation to get this value.</p>
80      */
WithReferenceId(const Aws::String & value)81     inline ReferenceDataSourceUpdate& WithReferenceId(const Aws::String& value) { SetReferenceId(value); return *this;}
82 
83     /**
84      * <p>The ID of the reference data source that is being updated. You can use the
85      * <a>DescribeApplication</a> operation to get this value.</p>
86      */
WithReferenceId(Aws::String && value)87     inline ReferenceDataSourceUpdate& WithReferenceId(Aws::String&& value) { SetReferenceId(std::move(value)); return *this;}
88 
89     /**
90      * <p>The ID of the reference data source that is being updated. You can use the
91      * <a>DescribeApplication</a> operation to get this value.</p>
92      */
WithReferenceId(const char * value)93     inline ReferenceDataSourceUpdate& WithReferenceId(const char* value) { SetReferenceId(value); return *this;}
94 
95 
96     /**
97      * <p>The in-application table name that is created by this update.</p>
98      */
GetTableNameUpdate()99     inline const Aws::String& GetTableNameUpdate() const{ return m_tableNameUpdate; }
100 
101     /**
102      * <p>The in-application table name that is created by this update.</p>
103      */
TableNameUpdateHasBeenSet()104     inline bool TableNameUpdateHasBeenSet() const { return m_tableNameUpdateHasBeenSet; }
105 
106     /**
107      * <p>The in-application table name that is created by this update.</p>
108      */
SetTableNameUpdate(const Aws::String & value)109     inline void SetTableNameUpdate(const Aws::String& value) { m_tableNameUpdateHasBeenSet = true; m_tableNameUpdate = value; }
110 
111     /**
112      * <p>The in-application table name that is created by this update.</p>
113      */
SetTableNameUpdate(Aws::String && value)114     inline void SetTableNameUpdate(Aws::String&& value) { m_tableNameUpdateHasBeenSet = true; m_tableNameUpdate = std::move(value); }
115 
116     /**
117      * <p>The in-application table name that is created by this update.</p>
118      */
SetTableNameUpdate(const char * value)119     inline void SetTableNameUpdate(const char* value) { m_tableNameUpdateHasBeenSet = true; m_tableNameUpdate.assign(value); }
120 
121     /**
122      * <p>The in-application table name that is created by this update.</p>
123      */
WithTableNameUpdate(const Aws::String & value)124     inline ReferenceDataSourceUpdate& WithTableNameUpdate(const Aws::String& value) { SetTableNameUpdate(value); return *this;}
125 
126     /**
127      * <p>The in-application table name that is created by this update.</p>
128      */
WithTableNameUpdate(Aws::String && value)129     inline ReferenceDataSourceUpdate& WithTableNameUpdate(Aws::String&& value) { SetTableNameUpdate(std::move(value)); return *this;}
130 
131     /**
132      * <p>The in-application table name that is created by this update.</p>
133      */
WithTableNameUpdate(const char * value)134     inline ReferenceDataSourceUpdate& WithTableNameUpdate(const char* value) { SetTableNameUpdate(value); return *this;}
135 
136 
137     /**
138      * <p>Describes the S3 bucket name, object key name, and IAM role that Kinesis Data
139      * Analytics can assume to read the Amazon S3 object on your behalf and populate
140      * the in-application reference table.</p>
141      */
GetS3ReferenceDataSourceUpdate()142     inline const S3ReferenceDataSourceUpdate& GetS3ReferenceDataSourceUpdate() const{ return m_s3ReferenceDataSourceUpdate; }
143 
144     /**
145      * <p>Describes the S3 bucket name, object key name, and IAM role that Kinesis Data
146      * Analytics can assume to read the Amazon S3 object on your behalf and populate
147      * the in-application reference table.</p>
148      */
S3ReferenceDataSourceUpdateHasBeenSet()149     inline bool S3ReferenceDataSourceUpdateHasBeenSet() const { return m_s3ReferenceDataSourceUpdateHasBeenSet; }
150 
151     /**
152      * <p>Describes the S3 bucket name, object key name, and IAM role that Kinesis Data
153      * Analytics can assume to read the Amazon S3 object on your behalf and populate
154      * the in-application reference table.</p>
155      */
SetS3ReferenceDataSourceUpdate(const S3ReferenceDataSourceUpdate & value)156     inline void SetS3ReferenceDataSourceUpdate(const S3ReferenceDataSourceUpdate& value) { m_s3ReferenceDataSourceUpdateHasBeenSet = true; m_s3ReferenceDataSourceUpdate = value; }
157 
158     /**
159      * <p>Describes the S3 bucket name, object key name, and IAM role that Kinesis Data
160      * Analytics can assume to read the Amazon S3 object on your behalf and populate
161      * the in-application reference table.</p>
162      */
SetS3ReferenceDataSourceUpdate(S3ReferenceDataSourceUpdate && value)163     inline void SetS3ReferenceDataSourceUpdate(S3ReferenceDataSourceUpdate&& value) { m_s3ReferenceDataSourceUpdateHasBeenSet = true; m_s3ReferenceDataSourceUpdate = std::move(value); }
164 
165     /**
166      * <p>Describes the S3 bucket name, object key name, and IAM role that Kinesis Data
167      * Analytics can assume to read the Amazon S3 object on your behalf and populate
168      * the in-application reference table.</p>
169      */
WithS3ReferenceDataSourceUpdate(const S3ReferenceDataSourceUpdate & value)170     inline ReferenceDataSourceUpdate& WithS3ReferenceDataSourceUpdate(const S3ReferenceDataSourceUpdate& value) { SetS3ReferenceDataSourceUpdate(value); return *this;}
171 
172     /**
173      * <p>Describes the S3 bucket name, object key name, and IAM role that Kinesis Data
174      * Analytics can assume to read the Amazon S3 object on your behalf and populate
175      * the in-application reference table.</p>
176      */
WithS3ReferenceDataSourceUpdate(S3ReferenceDataSourceUpdate && value)177     inline ReferenceDataSourceUpdate& WithS3ReferenceDataSourceUpdate(S3ReferenceDataSourceUpdate&& value) { SetS3ReferenceDataSourceUpdate(std::move(value)); return *this;}
178 
179 
180     /**
181      * <p>Describes the format of the data in the streaming source, and how each data
182      * element maps to corresponding columns created in the in-application stream. </p>
183      */
GetReferenceSchemaUpdate()184     inline const SourceSchema& GetReferenceSchemaUpdate() const{ return m_referenceSchemaUpdate; }
185 
186     /**
187      * <p>Describes the format of the data in the streaming source, and how each data
188      * element maps to corresponding columns created in the in-application stream. </p>
189      */
ReferenceSchemaUpdateHasBeenSet()190     inline bool ReferenceSchemaUpdateHasBeenSet() const { return m_referenceSchemaUpdateHasBeenSet; }
191 
192     /**
193      * <p>Describes the format of the data in the streaming source, and how each data
194      * element maps to corresponding columns created in the in-application stream. </p>
195      */
SetReferenceSchemaUpdate(const SourceSchema & value)196     inline void SetReferenceSchemaUpdate(const SourceSchema& value) { m_referenceSchemaUpdateHasBeenSet = true; m_referenceSchemaUpdate = value; }
197 
198     /**
199      * <p>Describes the format of the data in the streaming source, and how each data
200      * element maps to corresponding columns created in the in-application stream. </p>
201      */
SetReferenceSchemaUpdate(SourceSchema && value)202     inline void SetReferenceSchemaUpdate(SourceSchema&& value) { m_referenceSchemaUpdateHasBeenSet = true; m_referenceSchemaUpdate = std::move(value); }
203 
204     /**
205      * <p>Describes the format of the data in the streaming source, and how each data
206      * element maps to corresponding columns created in the in-application stream. </p>
207      */
WithReferenceSchemaUpdate(const SourceSchema & value)208     inline ReferenceDataSourceUpdate& WithReferenceSchemaUpdate(const SourceSchema& value) { SetReferenceSchemaUpdate(value); return *this;}
209 
210     /**
211      * <p>Describes the format of the data in the streaming source, and how each data
212      * element maps to corresponding columns created in the in-application stream. </p>
213      */
WithReferenceSchemaUpdate(SourceSchema && value)214     inline ReferenceDataSourceUpdate& WithReferenceSchemaUpdate(SourceSchema&& value) { SetReferenceSchemaUpdate(std::move(value)); return *this;}
215 
216   private:
217 
218     Aws::String m_referenceId;
219     bool m_referenceIdHasBeenSet;
220 
221     Aws::String m_tableNameUpdate;
222     bool m_tableNameUpdateHasBeenSet;
223 
224     S3ReferenceDataSourceUpdate m_s3ReferenceDataSourceUpdate;
225     bool m_s3ReferenceDataSourceUpdateHasBeenSet;
226 
227     SourceSchema m_referenceSchemaUpdate;
228     bool m_referenceSchemaUpdateHasBeenSet;
229   };
230 
231 } // namespace Model
232 } // namespace KinesisAnalyticsV2
233 } // namespace Aws
234