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/DateTime.h>
10 #include <aws/dynamodb/model/BackupStatus.h>
11 #include <aws/dynamodb/model/BackupType.h>
12 #include <utility>
13 
14 namespace Aws
15 {
16 namespace Utils
17 {
18 namespace Json
19 {
20   class JsonValue;
21   class JsonView;
22 } // namespace Json
23 } // namespace Utils
24 namespace DynamoDB
25 {
26 namespace Model
27 {
28 
29   /**
30    * <p>Contains details for the backup.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/BackupSummary">AWS
32    * API Reference</a></p>
33    */
34   class AWS_DYNAMODB_API BackupSummary
35   {
36   public:
37     BackupSummary();
38     BackupSummary(Aws::Utils::Json::JsonView jsonValue);
39     BackupSummary& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>Name of the table.</p>
45      */
GetTableName()46     inline const Aws::String& GetTableName() const{ return m_tableName; }
47 
48     /**
49      * <p>Name of the table.</p>
50      */
TableNameHasBeenSet()51     inline bool TableNameHasBeenSet() const { return m_tableNameHasBeenSet; }
52 
53     /**
54      * <p>Name of the table.</p>
55      */
SetTableName(const Aws::String & value)56     inline void SetTableName(const Aws::String& value) { m_tableNameHasBeenSet = true; m_tableName = value; }
57 
58     /**
59      * <p>Name of the table.</p>
60      */
SetTableName(Aws::String && value)61     inline void SetTableName(Aws::String&& value) { m_tableNameHasBeenSet = true; m_tableName = std::move(value); }
62 
63     /**
64      * <p>Name of the table.</p>
65      */
SetTableName(const char * value)66     inline void SetTableName(const char* value) { m_tableNameHasBeenSet = true; m_tableName.assign(value); }
67 
68     /**
69      * <p>Name of the table.</p>
70      */
WithTableName(const Aws::String & value)71     inline BackupSummary& WithTableName(const Aws::String& value) { SetTableName(value); return *this;}
72 
73     /**
74      * <p>Name of the table.</p>
75      */
WithTableName(Aws::String && value)76     inline BackupSummary& WithTableName(Aws::String&& value) { SetTableName(std::move(value)); return *this;}
77 
78     /**
79      * <p>Name of the table.</p>
80      */
WithTableName(const char * value)81     inline BackupSummary& WithTableName(const char* value) { SetTableName(value); return *this;}
82 
83 
84     /**
85      * <p>Unique identifier for the table.</p>
86      */
GetTableId()87     inline const Aws::String& GetTableId() const{ return m_tableId; }
88 
89     /**
90      * <p>Unique identifier for the table.</p>
91      */
TableIdHasBeenSet()92     inline bool TableIdHasBeenSet() const { return m_tableIdHasBeenSet; }
93 
94     /**
95      * <p>Unique identifier for the table.</p>
96      */
SetTableId(const Aws::String & value)97     inline void SetTableId(const Aws::String& value) { m_tableIdHasBeenSet = true; m_tableId = value; }
98 
99     /**
100      * <p>Unique identifier for the table.</p>
101      */
SetTableId(Aws::String && value)102     inline void SetTableId(Aws::String&& value) { m_tableIdHasBeenSet = true; m_tableId = std::move(value); }
103 
104     /**
105      * <p>Unique identifier for the table.</p>
106      */
SetTableId(const char * value)107     inline void SetTableId(const char* value) { m_tableIdHasBeenSet = true; m_tableId.assign(value); }
108 
109     /**
110      * <p>Unique identifier for the table.</p>
111      */
WithTableId(const Aws::String & value)112     inline BackupSummary& WithTableId(const Aws::String& value) { SetTableId(value); return *this;}
113 
114     /**
115      * <p>Unique identifier for the table.</p>
116      */
WithTableId(Aws::String && value)117     inline BackupSummary& WithTableId(Aws::String&& value) { SetTableId(std::move(value)); return *this;}
118 
119     /**
120      * <p>Unique identifier for the table.</p>
121      */
WithTableId(const char * value)122     inline BackupSummary& WithTableId(const char* value) { SetTableId(value); return *this;}
123 
124 
125     /**
126      * <p>ARN associated with the table.</p>
127      */
GetTableArn()128     inline const Aws::String& GetTableArn() const{ return m_tableArn; }
129 
130     /**
131      * <p>ARN associated with the table.</p>
132      */
TableArnHasBeenSet()133     inline bool TableArnHasBeenSet() const { return m_tableArnHasBeenSet; }
134 
135     /**
136      * <p>ARN associated with the table.</p>
137      */
SetTableArn(const Aws::String & value)138     inline void SetTableArn(const Aws::String& value) { m_tableArnHasBeenSet = true; m_tableArn = value; }
139 
140     /**
141      * <p>ARN associated with the table.</p>
142      */
SetTableArn(Aws::String && value)143     inline void SetTableArn(Aws::String&& value) { m_tableArnHasBeenSet = true; m_tableArn = std::move(value); }
144 
145     /**
146      * <p>ARN associated with the table.</p>
147      */
SetTableArn(const char * value)148     inline void SetTableArn(const char* value) { m_tableArnHasBeenSet = true; m_tableArn.assign(value); }
149 
150     /**
151      * <p>ARN associated with the table.</p>
152      */
WithTableArn(const Aws::String & value)153     inline BackupSummary& WithTableArn(const Aws::String& value) { SetTableArn(value); return *this;}
154 
155     /**
156      * <p>ARN associated with the table.</p>
157      */
WithTableArn(Aws::String && value)158     inline BackupSummary& WithTableArn(Aws::String&& value) { SetTableArn(std::move(value)); return *this;}
159 
160     /**
161      * <p>ARN associated with the table.</p>
162      */
WithTableArn(const char * value)163     inline BackupSummary& WithTableArn(const char* value) { SetTableArn(value); return *this;}
164 
165 
166     /**
167      * <p>ARN associated with the backup.</p>
168      */
GetBackupArn()169     inline const Aws::String& GetBackupArn() const{ return m_backupArn; }
170 
171     /**
172      * <p>ARN associated with the backup.</p>
173      */
BackupArnHasBeenSet()174     inline bool BackupArnHasBeenSet() const { return m_backupArnHasBeenSet; }
175 
176     /**
177      * <p>ARN associated with the backup.</p>
178      */
SetBackupArn(const Aws::String & value)179     inline void SetBackupArn(const Aws::String& value) { m_backupArnHasBeenSet = true; m_backupArn = value; }
180 
181     /**
182      * <p>ARN associated with the backup.</p>
183      */
SetBackupArn(Aws::String && value)184     inline void SetBackupArn(Aws::String&& value) { m_backupArnHasBeenSet = true; m_backupArn = std::move(value); }
185 
186     /**
187      * <p>ARN associated with the backup.</p>
188      */
SetBackupArn(const char * value)189     inline void SetBackupArn(const char* value) { m_backupArnHasBeenSet = true; m_backupArn.assign(value); }
190 
191     /**
192      * <p>ARN associated with the backup.</p>
193      */
WithBackupArn(const Aws::String & value)194     inline BackupSummary& WithBackupArn(const Aws::String& value) { SetBackupArn(value); return *this;}
195 
196     /**
197      * <p>ARN associated with the backup.</p>
198      */
WithBackupArn(Aws::String && value)199     inline BackupSummary& WithBackupArn(Aws::String&& value) { SetBackupArn(std::move(value)); return *this;}
200 
201     /**
202      * <p>ARN associated with the backup.</p>
203      */
WithBackupArn(const char * value)204     inline BackupSummary& WithBackupArn(const char* value) { SetBackupArn(value); return *this;}
205 
206 
207     /**
208      * <p>Name of the specified backup.</p>
209      */
GetBackupName()210     inline const Aws::String& GetBackupName() const{ return m_backupName; }
211 
212     /**
213      * <p>Name of the specified backup.</p>
214      */
BackupNameHasBeenSet()215     inline bool BackupNameHasBeenSet() const { return m_backupNameHasBeenSet; }
216 
217     /**
218      * <p>Name of the specified backup.</p>
219      */
SetBackupName(const Aws::String & value)220     inline void SetBackupName(const Aws::String& value) { m_backupNameHasBeenSet = true; m_backupName = value; }
221 
222     /**
223      * <p>Name of the specified backup.</p>
224      */
SetBackupName(Aws::String && value)225     inline void SetBackupName(Aws::String&& value) { m_backupNameHasBeenSet = true; m_backupName = std::move(value); }
226 
227     /**
228      * <p>Name of the specified backup.</p>
229      */
SetBackupName(const char * value)230     inline void SetBackupName(const char* value) { m_backupNameHasBeenSet = true; m_backupName.assign(value); }
231 
232     /**
233      * <p>Name of the specified backup.</p>
234      */
WithBackupName(const Aws::String & value)235     inline BackupSummary& WithBackupName(const Aws::String& value) { SetBackupName(value); return *this;}
236 
237     /**
238      * <p>Name of the specified backup.</p>
239      */
WithBackupName(Aws::String && value)240     inline BackupSummary& WithBackupName(Aws::String&& value) { SetBackupName(std::move(value)); return *this;}
241 
242     /**
243      * <p>Name of the specified backup.</p>
244      */
WithBackupName(const char * value)245     inline BackupSummary& WithBackupName(const char* value) { SetBackupName(value); return *this;}
246 
247 
248     /**
249      * <p>Time at which the backup was created.</p>
250      */
GetBackupCreationDateTime()251     inline const Aws::Utils::DateTime& GetBackupCreationDateTime() const{ return m_backupCreationDateTime; }
252 
253     /**
254      * <p>Time at which the backup was created.</p>
255      */
BackupCreationDateTimeHasBeenSet()256     inline bool BackupCreationDateTimeHasBeenSet() const { return m_backupCreationDateTimeHasBeenSet; }
257 
258     /**
259      * <p>Time at which the backup was created.</p>
260      */
SetBackupCreationDateTime(const Aws::Utils::DateTime & value)261     inline void SetBackupCreationDateTime(const Aws::Utils::DateTime& value) { m_backupCreationDateTimeHasBeenSet = true; m_backupCreationDateTime = value; }
262 
263     /**
264      * <p>Time at which the backup was created.</p>
265      */
SetBackupCreationDateTime(Aws::Utils::DateTime && value)266     inline void SetBackupCreationDateTime(Aws::Utils::DateTime&& value) { m_backupCreationDateTimeHasBeenSet = true; m_backupCreationDateTime = std::move(value); }
267 
268     /**
269      * <p>Time at which the backup was created.</p>
270      */
WithBackupCreationDateTime(const Aws::Utils::DateTime & value)271     inline BackupSummary& WithBackupCreationDateTime(const Aws::Utils::DateTime& value) { SetBackupCreationDateTime(value); return *this;}
272 
273     /**
274      * <p>Time at which the backup was created.</p>
275      */
WithBackupCreationDateTime(Aws::Utils::DateTime && value)276     inline BackupSummary& WithBackupCreationDateTime(Aws::Utils::DateTime&& value) { SetBackupCreationDateTime(std::move(value)); return *this;}
277 
278 
279     /**
280      * <p>Time at which the automatic on-demand backup created by DynamoDB will expire.
281      * This <code>SYSTEM</code> on-demand backup expires automatically 35 days after
282      * its creation.</p>
283      */
GetBackupExpiryDateTime()284     inline const Aws::Utils::DateTime& GetBackupExpiryDateTime() const{ return m_backupExpiryDateTime; }
285 
286     /**
287      * <p>Time at which the automatic on-demand backup created by DynamoDB will expire.
288      * This <code>SYSTEM</code> on-demand backup expires automatically 35 days after
289      * its creation.</p>
290      */
BackupExpiryDateTimeHasBeenSet()291     inline bool BackupExpiryDateTimeHasBeenSet() const { return m_backupExpiryDateTimeHasBeenSet; }
292 
293     /**
294      * <p>Time at which the automatic on-demand backup created by DynamoDB will expire.
295      * This <code>SYSTEM</code> on-demand backup expires automatically 35 days after
296      * its creation.</p>
297      */
SetBackupExpiryDateTime(const Aws::Utils::DateTime & value)298     inline void SetBackupExpiryDateTime(const Aws::Utils::DateTime& value) { m_backupExpiryDateTimeHasBeenSet = true; m_backupExpiryDateTime = value; }
299 
300     /**
301      * <p>Time at which the automatic on-demand backup created by DynamoDB will expire.
302      * This <code>SYSTEM</code> on-demand backup expires automatically 35 days after
303      * its creation.</p>
304      */
SetBackupExpiryDateTime(Aws::Utils::DateTime && value)305     inline void SetBackupExpiryDateTime(Aws::Utils::DateTime&& value) { m_backupExpiryDateTimeHasBeenSet = true; m_backupExpiryDateTime = std::move(value); }
306 
307     /**
308      * <p>Time at which the automatic on-demand backup created by DynamoDB will expire.
309      * This <code>SYSTEM</code> on-demand backup expires automatically 35 days after
310      * its creation.</p>
311      */
WithBackupExpiryDateTime(const Aws::Utils::DateTime & value)312     inline BackupSummary& WithBackupExpiryDateTime(const Aws::Utils::DateTime& value) { SetBackupExpiryDateTime(value); return *this;}
313 
314     /**
315      * <p>Time at which the automatic on-demand backup created by DynamoDB will expire.
316      * This <code>SYSTEM</code> on-demand backup expires automatically 35 days after
317      * its creation.</p>
318      */
WithBackupExpiryDateTime(Aws::Utils::DateTime && value)319     inline BackupSummary& WithBackupExpiryDateTime(Aws::Utils::DateTime&& value) { SetBackupExpiryDateTime(std::move(value)); return *this;}
320 
321 
322     /**
323      * <p>Backup can be in one of the following states: CREATING, ACTIVE, DELETED.</p>
324      */
GetBackupStatus()325     inline const BackupStatus& GetBackupStatus() const{ return m_backupStatus; }
326 
327     /**
328      * <p>Backup can be in one of the following states: CREATING, ACTIVE, DELETED.</p>
329      */
BackupStatusHasBeenSet()330     inline bool BackupStatusHasBeenSet() const { return m_backupStatusHasBeenSet; }
331 
332     /**
333      * <p>Backup can be in one of the following states: CREATING, ACTIVE, DELETED.</p>
334      */
SetBackupStatus(const BackupStatus & value)335     inline void SetBackupStatus(const BackupStatus& value) { m_backupStatusHasBeenSet = true; m_backupStatus = value; }
336 
337     /**
338      * <p>Backup can be in one of the following states: CREATING, ACTIVE, DELETED.</p>
339      */
SetBackupStatus(BackupStatus && value)340     inline void SetBackupStatus(BackupStatus&& value) { m_backupStatusHasBeenSet = true; m_backupStatus = std::move(value); }
341 
342     /**
343      * <p>Backup can be in one of the following states: CREATING, ACTIVE, DELETED.</p>
344      */
WithBackupStatus(const BackupStatus & value)345     inline BackupSummary& WithBackupStatus(const BackupStatus& value) { SetBackupStatus(value); return *this;}
346 
347     /**
348      * <p>Backup can be in one of the following states: CREATING, ACTIVE, DELETED.</p>
349      */
WithBackupStatus(BackupStatus && value)350     inline BackupSummary& WithBackupStatus(BackupStatus&& value) { SetBackupStatus(std::move(value)); return *this;}
351 
352 
353     /**
354      * <p>BackupType:</p> <ul> <li> <p> <code>USER</code> - You create and manage these
355      * using the on-demand backup feature.</p> </li> <li> <p> <code>SYSTEM</code> - If
356      * you delete a table with point-in-time recovery enabled, a <code>SYSTEM</code>
357      * backup is automatically created and is retained for 35 days (at no additional
358      * cost). System backups allow you to restore the deleted table to the state it was
359      * in just before the point of deletion. </p> </li> <li> <p>
360      * <code>AWS_BACKUP</code> - On-demand backup created by you from AWS Backup
361      * service.</p> </li> </ul>
362      */
GetBackupType()363     inline const BackupType& GetBackupType() const{ return m_backupType; }
364 
365     /**
366      * <p>BackupType:</p> <ul> <li> <p> <code>USER</code> - You create and manage these
367      * using the on-demand backup feature.</p> </li> <li> <p> <code>SYSTEM</code> - If
368      * you delete a table with point-in-time recovery enabled, a <code>SYSTEM</code>
369      * backup is automatically created and is retained for 35 days (at no additional
370      * cost). System backups allow you to restore the deleted table to the state it was
371      * in just before the point of deletion. </p> </li> <li> <p>
372      * <code>AWS_BACKUP</code> - On-demand backup created by you from AWS Backup
373      * service.</p> </li> </ul>
374      */
BackupTypeHasBeenSet()375     inline bool BackupTypeHasBeenSet() const { return m_backupTypeHasBeenSet; }
376 
377     /**
378      * <p>BackupType:</p> <ul> <li> <p> <code>USER</code> - You create and manage these
379      * using the on-demand backup feature.</p> </li> <li> <p> <code>SYSTEM</code> - If
380      * you delete a table with point-in-time recovery enabled, a <code>SYSTEM</code>
381      * backup is automatically created and is retained for 35 days (at no additional
382      * cost). System backups allow you to restore the deleted table to the state it was
383      * in just before the point of deletion. </p> </li> <li> <p>
384      * <code>AWS_BACKUP</code> - On-demand backup created by you from AWS Backup
385      * service.</p> </li> </ul>
386      */
SetBackupType(const BackupType & value)387     inline void SetBackupType(const BackupType& value) { m_backupTypeHasBeenSet = true; m_backupType = value; }
388 
389     /**
390      * <p>BackupType:</p> <ul> <li> <p> <code>USER</code> - You create and manage these
391      * using the on-demand backup feature.</p> </li> <li> <p> <code>SYSTEM</code> - If
392      * you delete a table with point-in-time recovery enabled, a <code>SYSTEM</code>
393      * backup is automatically created and is retained for 35 days (at no additional
394      * cost). System backups allow you to restore the deleted table to the state it was
395      * in just before the point of deletion. </p> </li> <li> <p>
396      * <code>AWS_BACKUP</code> - On-demand backup created by you from AWS Backup
397      * service.</p> </li> </ul>
398      */
SetBackupType(BackupType && value)399     inline void SetBackupType(BackupType&& value) { m_backupTypeHasBeenSet = true; m_backupType = std::move(value); }
400 
401     /**
402      * <p>BackupType:</p> <ul> <li> <p> <code>USER</code> - You create and manage these
403      * using the on-demand backup feature.</p> </li> <li> <p> <code>SYSTEM</code> - If
404      * you delete a table with point-in-time recovery enabled, a <code>SYSTEM</code>
405      * backup is automatically created and is retained for 35 days (at no additional
406      * cost). System backups allow you to restore the deleted table to the state it was
407      * in just before the point of deletion. </p> </li> <li> <p>
408      * <code>AWS_BACKUP</code> - On-demand backup created by you from AWS Backup
409      * service.</p> </li> </ul>
410      */
WithBackupType(const BackupType & value)411     inline BackupSummary& WithBackupType(const BackupType& value) { SetBackupType(value); return *this;}
412 
413     /**
414      * <p>BackupType:</p> <ul> <li> <p> <code>USER</code> - You create and manage these
415      * using the on-demand backup feature.</p> </li> <li> <p> <code>SYSTEM</code> - If
416      * you delete a table with point-in-time recovery enabled, a <code>SYSTEM</code>
417      * backup is automatically created and is retained for 35 days (at no additional
418      * cost). System backups allow you to restore the deleted table to the state it was
419      * in just before the point of deletion. </p> </li> <li> <p>
420      * <code>AWS_BACKUP</code> - On-demand backup created by you from AWS Backup
421      * service.</p> </li> </ul>
422      */
WithBackupType(BackupType && value)423     inline BackupSummary& WithBackupType(BackupType&& value) { SetBackupType(std::move(value)); return *this;}
424 
425 
426     /**
427      * <p>Size of the backup in bytes.</p>
428      */
GetBackupSizeBytes()429     inline long long GetBackupSizeBytes() const{ return m_backupSizeBytes; }
430 
431     /**
432      * <p>Size of the backup in bytes.</p>
433      */
BackupSizeBytesHasBeenSet()434     inline bool BackupSizeBytesHasBeenSet() const { return m_backupSizeBytesHasBeenSet; }
435 
436     /**
437      * <p>Size of the backup in bytes.</p>
438      */
SetBackupSizeBytes(long long value)439     inline void SetBackupSizeBytes(long long value) { m_backupSizeBytesHasBeenSet = true; m_backupSizeBytes = value; }
440 
441     /**
442      * <p>Size of the backup in bytes.</p>
443      */
WithBackupSizeBytes(long long value)444     inline BackupSummary& WithBackupSizeBytes(long long value) { SetBackupSizeBytes(value); return *this;}
445 
446   private:
447 
448     Aws::String m_tableName;
449     bool m_tableNameHasBeenSet;
450 
451     Aws::String m_tableId;
452     bool m_tableIdHasBeenSet;
453 
454     Aws::String m_tableArn;
455     bool m_tableArnHasBeenSet;
456 
457     Aws::String m_backupArn;
458     bool m_backupArnHasBeenSet;
459 
460     Aws::String m_backupName;
461     bool m_backupNameHasBeenSet;
462 
463     Aws::Utils::DateTime m_backupCreationDateTime;
464     bool m_backupCreationDateTimeHasBeenSet;
465 
466     Aws::Utils::DateTime m_backupExpiryDateTime;
467     bool m_backupExpiryDateTimeHasBeenSet;
468 
469     BackupStatus m_backupStatus;
470     bool m_backupStatusHasBeenSet;
471 
472     BackupType m_backupType;
473     bool m_backupTypeHasBeenSet;
474 
475     long long m_backupSizeBytes;
476     bool m_backupSizeBytesHasBeenSet;
477   };
478 
479 } // namespace Model
480 } // namespace DynamoDB
481 } // namespace Aws
482