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/dynamodb/DynamoDB_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/core/utils/DateTime.h>
11 #include <aws/dynamodb/model/ProvisionedThroughput.h>
12 #include <aws/dynamodb/model/BillingMode.h>
13 #include <aws/dynamodb/model/KeySchemaElement.h>
14 #include <utility>
15 
16 namespace Aws
17 {
18 namespace Utils
19 {
20 namespace Json
21 {
22   class JsonValue;
23   class JsonView;
24 } // namespace Json
25 } // namespace Utils
26 namespace DynamoDB
27 {
28 namespace Model
29 {
30 
31   /**
32    * <p>Contains the details of the table when the backup was created. </p><p><h3>See
33    * Also:</h3>   <a
34    * href="http://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/SourceTableDetails">AWS
35    * API Reference</a></p>
36    */
37   class AWS_DYNAMODB_API SourceTableDetails
38   {
39   public:
40     SourceTableDetails();
41     SourceTableDetails(Aws::Utils::Json::JsonView jsonValue);
42     SourceTableDetails& operator=(Aws::Utils::Json::JsonView jsonValue);
43     Aws::Utils::Json::JsonValue Jsonize() const;
44 
45 
46     /**
47      * <p>The name of the table for which the backup was created. </p>
48      */
GetTableName()49     inline const Aws::String& GetTableName() const{ return m_tableName; }
50 
51     /**
52      * <p>The name of the table for which the backup was created. </p>
53      */
TableNameHasBeenSet()54     inline bool TableNameHasBeenSet() const { return m_tableNameHasBeenSet; }
55 
56     /**
57      * <p>The name of the table for which the backup was created. </p>
58      */
SetTableName(const Aws::String & value)59     inline void SetTableName(const Aws::String& value) { m_tableNameHasBeenSet = true; m_tableName = value; }
60 
61     /**
62      * <p>The name of the table for which the backup was created. </p>
63      */
SetTableName(Aws::String && value)64     inline void SetTableName(Aws::String&& value) { m_tableNameHasBeenSet = true; m_tableName = std::move(value); }
65 
66     /**
67      * <p>The name of the table for which the backup was created. </p>
68      */
SetTableName(const char * value)69     inline void SetTableName(const char* value) { m_tableNameHasBeenSet = true; m_tableName.assign(value); }
70 
71     /**
72      * <p>The name of the table for which the backup was created. </p>
73      */
WithTableName(const Aws::String & value)74     inline SourceTableDetails& WithTableName(const Aws::String& value) { SetTableName(value); return *this;}
75 
76     /**
77      * <p>The name of the table for which the backup was created. </p>
78      */
WithTableName(Aws::String && value)79     inline SourceTableDetails& WithTableName(Aws::String&& value) { SetTableName(std::move(value)); return *this;}
80 
81     /**
82      * <p>The name of the table for which the backup was created. </p>
83      */
WithTableName(const char * value)84     inline SourceTableDetails& WithTableName(const char* value) { SetTableName(value); return *this;}
85 
86 
87     /**
88      * <p>Unique identifier for the table for which the backup was created. </p>
89      */
GetTableId()90     inline const Aws::String& GetTableId() const{ return m_tableId; }
91 
92     /**
93      * <p>Unique identifier for the table for which the backup was created. </p>
94      */
TableIdHasBeenSet()95     inline bool TableIdHasBeenSet() const { return m_tableIdHasBeenSet; }
96 
97     /**
98      * <p>Unique identifier for the table for which the backup was created. </p>
99      */
SetTableId(const Aws::String & value)100     inline void SetTableId(const Aws::String& value) { m_tableIdHasBeenSet = true; m_tableId = value; }
101 
102     /**
103      * <p>Unique identifier for the table for which the backup was created. </p>
104      */
SetTableId(Aws::String && value)105     inline void SetTableId(Aws::String&& value) { m_tableIdHasBeenSet = true; m_tableId = std::move(value); }
106 
107     /**
108      * <p>Unique identifier for the table for which the backup was created. </p>
109      */
SetTableId(const char * value)110     inline void SetTableId(const char* value) { m_tableIdHasBeenSet = true; m_tableId.assign(value); }
111 
112     /**
113      * <p>Unique identifier for the table for which the backup was created. </p>
114      */
WithTableId(const Aws::String & value)115     inline SourceTableDetails& WithTableId(const Aws::String& value) { SetTableId(value); return *this;}
116 
117     /**
118      * <p>Unique identifier for the table for which the backup was created. </p>
119      */
WithTableId(Aws::String && value)120     inline SourceTableDetails& WithTableId(Aws::String&& value) { SetTableId(std::move(value)); return *this;}
121 
122     /**
123      * <p>Unique identifier for the table for which the backup was created. </p>
124      */
WithTableId(const char * value)125     inline SourceTableDetails& WithTableId(const char* value) { SetTableId(value); return *this;}
126 
127 
128     /**
129      * <p>ARN of the table for which backup was created. </p>
130      */
GetTableArn()131     inline const Aws::String& GetTableArn() const{ return m_tableArn; }
132 
133     /**
134      * <p>ARN of the table for which backup was created. </p>
135      */
TableArnHasBeenSet()136     inline bool TableArnHasBeenSet() const { return m_tableArnHasBeenSet; }
137 
138     /**
139      * <p>ARN of the table for which backup was created. </p>
140      */
SetTableArn(const Aws::String & value)141     inline void SetTableArn(const Aws::String& value) { m_tableArnHasBeenSet = true; m_tableArn = value; }
142 
143     /**
144      * <p>ARN of the table for which backup was created. </p>
145      */
SetTableArn(Aws::String && value)146     inline void SetTableArn(Aws::String&& value) { m_tableArnHasBeenSet = true; m_tableArn = std::move(value); }
147 
148     /**
149      * <p>ARN of the table for which backup was created. </p>
150      */
SetTableArn(const char * value)151     inline void SetTableArn(const char* value) { m_tableArnHasBeenSet = true; m_tableArn.assign(value); }
152 
153     /**
154      * <p>ARN of the table for which backup was created. </p>
155      */
WithTableArn(const Aws::String & value)156     inline SourceTableDetails& WithTableArn(const Aws::String& value) { SetTableArn(value); return *this;}
157 
158     /**
159      * <p>ARN of the table for which backup was created. </p>
160      */
WithTableArn(Aws::String && value)161     inline SourceTableDetails& WithTableArn(Aws::String&& value) { SetTableArn(std::move(value)); return *this;}
162 
163     /**
164      * <p>ARN of the table for which backup was created. </p>
165      */
WithTableArn(const char * value)166     inline SourceTableDetails& WithTableArn(const char* value) { SetTableArn(value); return *this;}
167 
168 
169     /**
170      * <p>Size of the table in bytes. Note that this is an approximate value.</p>
171      */
GetTableSizeBytes()172     inline long long GetTableSizeBytes() const{ return m_tableSizeBytes; }
173 
174     /**
175      * <p>Size of the table in bytes. Note that this is an approximate value.</p>
176      */
TableSizeBytesHasBeenSet()177     inline bool TableSizeBytesHasBeenSet() const { return m_tableSizeBytesHasBeenSet; }
178 
179     /**
180      * <p>Size of the table in bytes. Note that this is an approximate value.</p>
181      */
SetTableSizeBytes(long long value)182     inline void SetTableSizeBytes(long long value) { m_tableSizeBytesHasBeenSet = true; m_tableSizeBytes = value; }
183 
184     /**
185      * <p>Size of the table in bytes. Note that this is an approximate value.</p>
186      */
WithTableSizeBytes(long long value)187     inline SourceTableDetails& WithTableSizeBytes(long long value) { SetTableSizeBytes(value); return *this;}
188 
189 
190     /**
191      * <p>Schema of the table. </p>
192      */
GetKeySchema()193     inline const Aws::Vector<KeySchemaElement>& GetKeySchema() const{ return m_keySchema; }
194 
195     /**
196      * <p>Schema of the table. </p>
197      */
KeySchemaHasBeenSet()198     inline bool KeySchemaHasBeenSet() const { return m_keySchemaHasBeenSet; }
199 
200     /**
201      * <p>Schema of the table. </p>
202      */
SetKeySchema(const Aws::Vector<KeySchemaElement> & value)203     inline void SetKeySchema(const Aws::Vector<KeySchemaElement>& value) { m_keySchemaHasBeenSet = true; m_keySchema = value; }
204 
205     /**
206      * <p>Schema of the table. </p>
207      */
SetKeySchema(Aws::Vector<KeySchemaElement> && value)208     inline void SetKeySchema(Aws::Vector<KeySchemaElement>&& value) { m_keySchemaHasBeenSet = true; m_keySchema = std::move(value); }
209 
210     /**
211      * <p>Schema of the table. </p>
212      */
WithKeySchema(const Aws::Vector<KeySchemaElement> & value)213     inline SourceTableDetails& WithKeySchema(const Aws::Vector<KeySchemaElement>& value) { SetKeySchema(value); return *this;}
214 
215     /**
216      * <p>Schema of the table. </p>
217      */
WithKeySchema(Aws::Vector<KeySchemaElement> && value)218     inline SourceTableDetails& WithKeySchema(Aws::Vector<KeySchemaElement>&& value) { SetKeySchema(std::move(value)); return *this;}
219 
220     /**
221      * <p>Schema of the table. </p>
222      */
AddKeySchema(const KeySchemaElement & value)223     inline SourceTableDetails& AddKeySchema(const KeySchemaElement& value) { m_keySchemaHasBeenSet = true; m_keySchema.push_back(value); return *this; }
224 
225     /**
226      * <p>Schema of the table. </p>
227      */
AddKeySchema(KeySchemaElement && value)228     inline SourceTableDetails& AddKeySchema(KeySchemaElement&& value) { m_keySchemaHasBeenSet = true; m_keySchema.push_back(std::move(value)); return *this; }
229 
230 
231     /**
232      * <p>Time when the source table was created. </p>
233      */
GetTableCreationDateTime()234     inline const Aws::Utils::DateTime& GetTableCreationDateTime() const{ return m_tableCreationDateTime; }
235 
236     /**
237      * <p>Time when the source table was created. </p>
238      */
TableCreationDateTimeHasBeenSet()239     inline bool TableCreationDateTimeHasBeenSet() const { return m_tableCreationDateTimeHasBeenSet; }
240 
241     /**
242      * <p>Time when the source table was created. </p>
243      */
SetTableCreationDateTime(const Aws::Utils::DateTime & value)244     inline void SetTableCreationDateTime(const Aws::Utils::DateTime& value) { m_tableCreationDateTimeHasBeenSet = true; m_tableCreationDateTime = value; }
245 
246     /**
247      * <p>Time when the source table was created. </p>
248      */
SetTableCreationDateTime(Aws::Utils::DateTime && value)249     inline void SetTableCreationDateTime(Aws::Utils::DateTime&& value) { m_tableCreationDateTimeHasBeenSet = true; m_tableCreationDateTime = std::move(value); }
250 
251     /**
252      * <p>Time when the source table was created. </p>
253      */
WithTableCreationDateTime(const Aws::Utils::DateTime & value)254     inline SourceTableDetails& WithTableCreationDateTime(const Aws::Utils::DateTime& value) { SetTableCreationDateTime(value); return *this;}
255 
256     /**
257      * <p>Time when the source table was created. </p>
258      */
WithTableCreationDateTime(Aws::Utils::DateTime && value)259     inline SourceTableDetails& WithTableCreationDateTime(Aws::Utils::DateTime&& value) { SetTableCreationDateTime(std::move(value)); return *this;}
260 
261 
262     /**
263      * <p>Read IOPs and Write IOPS on the table when the backup was created.</p>
264      */
GetProvisionedThroughput()265     inline const ProvisionedThroughput& GetProvisionedThroughput() const{ return m_provisionedThroughput; }
266 
267     /**
268      * <p>Read IOPs and Write IOPS on the table when the backup was created.</p>
269      */
ProvisionedThroughputHasBeenSet()270     inline bool ProvisionedThroughputHasBeenSet() const { return m_provisionedThroughputHasBeenSet; }
271 
272     /**
273      * <p>Read IOPs and Write IOPS on the table when the backup was created.</p>
274      */
SetProvisionedThroughput(const ProvisionedThroughput & value)275     inline void SetProvisionedThroughput(const ProvisionedThroughput& value) { m_provisionedThroughputHasBeenSet = true; m_provisionedThroughput = value; }
276 
277     /**
278      * <p>Read IOPs and Write IOPS on the table when the backup was created.</p>
279      */
SetProvisionedThroughput(ProvisionedThroughput && value)280     inline void SetProvisionedThroughput(ProvisionedThroughput&& value) { m_provisionedThroughputHasBeenSet = true; m_provisionedThroughput = std::move(value); }
281 
282     /**
283      * <p>Read IOPs and Write IOPS on the table when the backup was created.</p>
284      */
WithProvisionedThroughput(const ProvisionedThroughput & value)285     inline SourceTableDetails& WithProvisionedThroughput(const ProvisionedThroughput& value) { SetProvisionedThroughput(value); return *this;}
286 
287     /**
288      * <p>Read IOPs and Write IOPS on the table when the backup was created.</p>
289      */
WithProvisionedThroughput(ProvisionedThroughput && value)290     inline SourceTableDetails& WithProvisionedThroughput(ProvisionedThroughput&& value) { SetProvisionedThroughput(std::move(value)); return *this;}
291 
292 
293     /**
294      * <p>Number of items in the table. Note that this is an approximate value. </p>
295      */
GetItemCount()296     inline long long GetItemCount() const{ return m_itemCount; }
297 
298     /**
299      * <p>Number of items in the table. Note that this is an approximate value. </p>
300      */
ItemCountHasBeenSet()301     inline bool ItemCountHasBeenSet() const { return m_itemCountHasBeenSet; }
302 
303     /**
304      * <p>Number of items in the table. Note that this is an approximate value. </p>
305      */
SetItemCount(long long value)306     inline void SetItemCount(long long value) { m_itemCountHasBeenSet = true; m_itemCount = value; }
307 
308     /**
309      * <p>Number of items in the table. Note that this is an approximate value. </p>
310      */
WithItemCount(long long value)311     inline SourceTableDetails& WithItemCount(long long value) { SetItemCount(value); return *this;}
312 
313 
314     /**
315      * <p>Controls how you are charged for read and write throughput and how you manage
316      * capacity. This setting can be changed later.</p> <ul> <li> <p>
317      * <code>PROVISIONED</code> - Sets the read/write capacity mode to
318      * <code>PROVISIONED</code>. We recommend using <code>PROVISIONED</code> for
319      * predictable workloads.</p> </li> <li> <p> <code>PAY_PER_REQUEST</code> - Sets
320      * the read/write capacity mode to <code>PAY_PER_REQUEST</code>. We recommend using
321      * <code>PAY_PER_REQUEST</code> for unpredictable workloads. </p> </li> </ul>
322      */
GetBillingMode()323     inline const BillingMode& GetBillingMode() const{ return m_billingMode; }
324 
325     /**
326      * <p>Controls how you are charged for read and write throughput and how you manage
327      * capacity. This setting can be changed later.</p> <ul> <li> <p>
328      * <code>PROVISIONED</code> - Sets the read/write capacity mode to
329      * <code>PROVISIONED</code>. We recommend using <code>PROVISIONED</code> for
330      * predictable workloads.</p> </li> <li> <p> <code>PAY_PER_REQUEST</code> - Sets
331      * the read/write capacity mode to <code>PAY_PER_REQUEST</code>. We recommend using
332      * <code>PAY_PER_REQUEST</code> for unpredictable workloads. </p> </li> </ul>
333      */
BillingModeHasBeenSet()334     inline bool BillingModeHasBeenSet() const { return m_billingModeHasBeenSet; }
335 
336     /**
337      * <p>Controls how you are charged for read and write throughput and how you manage
338      * capacity. This setting can be changed later.</p> <ul> <li> <p>
339      * <code>PROVISIONED</code> - Sets the read/write capacity mode to
340      * <code>PROVISIONED</code>. We recommend using <code>PROVISIONED</code> for
341      * predictable workloads.</p> </li> <li> <p> <code>PAY_PER_REQUEST</code> - Sets
342      * the read/write capacity mode to <code>PAY_PER_REQUEST</code>. We recommend using
343      * <code>PAY_PER_REQUEST</code> for unpredictable workloads. </p> </li> </ul>
344      */
SetBillingMode(const BillingMode & value)345     inline void SetBillingMode(const BillingMode& value) { m_billingModeHasBeenSet = true; m_billingMode = value; }
346 
347     /**
348      * <p>Controls how you are charged for read and write throughput and how you manage
349      * capacity. This setting can be changed later.</p> <ul> <li> <p>
350      * <code>PROVISIONED</code> - Sets the read/write capacity mode to
351      * <code>PROVISIONED</code>. We recommend using <code>PROVISIONED</code> for
352      * predictable workloads.</p> </li> <li> <p> <code>PAY_PER_REQUEST</code> - Sets
353      * the read/write capacity mode to <code>PAY_PER_REQUEST</code>. We recommend using
354      * <code>PAY_PER_REQUEST</code> for unpredictable workloads. </p> </li> </ul>
355      */
SetBillingMode(BillingMode && value)356     inline void SetBillingMode(BillingMode&& value) { m_billingModeHasBeenSet = true; m_billingMode = std::move(value); }
357 
358     /**
359      * <p>Controls how you are charged for read and write throughput and how you manage
360      * capacity. This setting can be changed later.</p> <ul> <li> <p>
361      * <code>PROVISIONED</code> - Sets the read/write capacity mode to
362      * <code>PROVISIONED</code>. We recommend using <code>PROVISIONED</code> for
363      * predictable workloads.</p> </li> <li> <p> <code>PAY_PER_REQUEST</code> - Sets
364      * the read/write capacity mode to <code>PAY_PER_REQUEST</code>. We recommend using
365      * <code>PAY_PER_REQUEST</code> for unpredictable workloads. </p> </li> </ul>
366      */
WithBillingMode(const BillingMode & value)367     inline SourceTableDetails& WithBillingMode(const BillingMode& value) { SetBillingMode(value); return *this;}
368 
369     /**
370      * <p>Controls how you are charged for read and write throughput and how you manage
371      * capacity. This setting can be changed later.</p> <ul> <li> <p>
372      * <code>PROVISIONED</code> - Sets the read/write capacity mode to
373      * <code>PROVISIONED</code>. We recommend using <code>PROVISIONED</code> for
374      * predictable workloads.</p> </li> <li> <p> <code>PAY_PER_REQUEST</code> - Sets
375      * the read/write capacity mode to <code>PAY_PER_REQUEST</code>. We recommend using
376      * <code>PAY_PER_REQUEST</code> for unpredictable workloads. </p> </li> </ul>
377      */
WithBillingMode(BillingMode && value)378     inline SourceTableDetails& WithBillingMode(BillingMode&& value) { SetBillingMode(std::move(value)); return *this;}
379 
380   private:
381 
382     Aws::String m_tableName;
383     bool m_tableNameHasBeenSet;
384 
385     Aws::String m_tableId;
386     bool m_tableIdHasBeenSet;
387 
388     Aws::String m_tableArn;
389     bool m_tableArnHasBeenSet;
390 
391     long long m_tableSizeBytes;
392     bool m_tableSizeBytesHasBeenSet;
393 
394     Aws::Vector<KeySchemaElement> m_keySchema;
395     bool m_keySchemaHasBeenSet;
396 
397     Aws::Utils::DateTime m_tableCreationDateTime;
398     bool m_tableCreationDateTimeHasBeenSet;
399 
400     ProvisionedThroughput m_provisionedThroughput;
401     bool m_provisionedThroughputHasBeenSet;
402 
403     long long m_itemCount;
404     bool m_itemCountHasBeenSet;
405 
406     BillingMode m_billingMode;
407     bool m_billingModeHasBeenSet;
408   };
409 
410 } // namespace Model
411 } // namespace DynamoDB
412 } // namespace Aws
413