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/securityhub/SecurityHub_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <utility>
10 
11 namespace Aws
12 {
13 namespace Utils
14 {
15 namespace Json
16 {
17   class JsonValue;
18   class JsonView;
19 } // namespace Json
20 } // namespace Utils
21 namespace SecurityHub
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>Information about a cross-Region snapshot copy.</p><p><h3>See Also:</h3>   <a
28    * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsRedshiftClusterClusterSnapshotCopyStatus">AWS
29    * API Reference</a></p>
30    */
31   class AWS_SECURITYHUB_API AwsRedshiftClusterClusterSnapshotCopyStatus
32   {
33   public:
34     AwsRedshiftClusterClusterSnapshotCopyStatus();
35     AwsRedshiftClusterClusterSnapshotCopyStatus(Aws::Utils::Json::JsonView jsonValue);
36     AwsRedshiftClusterClusterSnapshotCopyStatus& operator=(Aws::Utils::Json::JsonView jsonValue);
37     Aws::Utils::Json::JsonValue Jsonize() const;
38 
39 
40     /**
41      * <p>The destination Region that snapshots are automatically copied to when
42      * cross-Region snapshot copy is enabled.</p>
43      */
GetDestinationRegion()44     inline const Aws::String& GetDestinationRegion() const{ return m_destinationRegion; }
45 
46     /**
47      * <p>The destination Region that snapshots are automatically copied to when
48      * cross-Region snapshot copy is enabled.</p>
49      */
DestinationRegionHasBeenSet()50     inline bool DestinationRegionHasBeenSet() const { return m_destinationRegionHasBeenSet; }
51 
52     /**
53      * <p>The destination Region that snapshots are automatically copied to when
54      * cross-Region snapshot copy is enabled.</p>
55      */
SetDestinationRegion(const Aws::String & value)56     inline void SetDestinationRegion(const Aws::String& value) { m_destinationRegionHasBeenSet = true; m_destinationRegion = value; }
57 
58     /**
59      * <p>The destination Region that snapshots are automatically copied to when
60      * cross-Region snapshot copy is enabled.</p>
61      */
SetDestinationRegion(Aws::String && value)62     inline void SetDestinationRegion(Aws::String&& value) { m_destinationRegionHasBeenSet = true; m_destinationRegion = std::move(value); }
63 
64     /**
65      * <p>The destination Region that snapshots are automatically copied to when
66      * cross-Region snapshot copy is enabled.</p>
67      */
SetDestinationRegion(const char * value)68     inline void SetDestinationRegion(const char* value) { m_destinationRegionHasBeenSet = true; m_destinationRegion.assign(value); }
69 
70     /**
71      * <p>The destination Region that snapshots are automatically copied to when
72      * cross-Region snapshot copy is enabled.</p>
73      */
WithDestinationRegion(const Aws::String & value)74     inline AwsRedshiftClusterClusterSnapshotCopyStatus& WithDestinationRegion(const Aws::String& value) { SetDestinationRegion(value); return *this;}
75 
76     /**
77      * <p>The destination Region that snapshots are automatically copied to when
78      * cross-Region snapshot copy is enabled.</p>
79      */
WithDestinationRegion(Aws::String && value)80     inline AwsRedshiftClusterClusterSnapshotCopyStatus& WithDestinationRegion(Aws::String&& value) { SetDestinationRegion(std::move(value)); return *this;}
81 
82     /**
83      * <p>The destination Region that snapshots are automatically copied to when
84      * cross-Region snapshot copy is enabled.</p>
85      */
WithDestinationRegion(const char * value)86     inline AwsRedshiftClusterClusterSnapshotCopyStatus& WithDestinationRegion(const char* value) { SetDestinationRegion(value); return *this;}
87 
88 
89     /**
90      * <p>The number of days that manual snapshots are retained in the destination
91      * region after they are copied from a source region.</p> <p>If the value is -1,
92      * then the manual snapshot is retained indefinitely.</p> <p>Valid values: Either
93      * -1 or an integer between 1 and 3,653</p>
94      */
GetManualSnapshotRetentionPeriod()95     inline int GetManualSnapshotRetentionPeriod() const{ return m_manualSnapshotRetentionPeriod; }
96 
97     /**
98      * <p>The number of days that manual snapshots are retained in the destination
99      * region after they are copied from a source region.</p> <p>If the value is -1,
100      * then the manual snapshot is retained indefinitely.</p> <p>Valid values: Either
101      * -1 or an integer between 1 and 3,653</p>
102      */
ManualSnapshotRetentionPeriodHasBeenSet()103     inline bool ManualSnapshotRetentionPeriodHasBeenSet() const { return m_manualSnapshotRetentionPeriodHasBeenSet; }
104 
105     /**
106      * <p>The number of days that manual snapshots are retained in the destination
107      * region after they are copied from a source region.</p> <p>If the value is -1,
108      * then the manual snapshot is retained indefinitely.</p> <p>Valid values: Either
109      * -1 or an integer between 1 and 3,653</p>
110      */
SetManualSnapshotRetentionPeriod(int value)111     inline void SetManualSnapshotRetentionPeriod(int value) { m_manualSnapshotRetentionPeriodHasBeenSet = true; m_manualSnapshotRetentionPeriod = value; }
112 
113     /**
114      * <p>The number of days that manual snapshots are retained in the destination
115      * region after they are copied from a source region.</p> <p>If the value is -1,
116      * then the manual snapshot is retained indefinitely.</p> <p>Valid values: Either
117      * -1 or an integer between 1 and 3,653</p>
118      */
WithManualSnapshotRetentionPeriod(int value)119     inline AwsRedshiftClusterClusterSnapshotCopyStatus& WithManualSnapshotRetentionPeriod(int value) { SetManualSnapshotRetentionPeriod(value); return *this;}
120 
121 
122     /**
123      * <p>The number of days to retain automated snapshots in the destination Region
124      * after they are copied from a source Region.</p>
125      */
GetRetentionPeriod()126     inline int GetRetentionPeriod() const{ return m_retentionPeriod; }
127 
128     /**
129      * <p>The number of days to retain automated snapshots in the destination Region
130      * after they are copied from a source Region.</p>
131      */
RetentionPeriodHasBeenSet()132     inline bool RetentionPeriodHasBeenSet() const { return m_retentionPeriodHasBeenSet; }
133 
134     /**
135      * <p>The number of days to retain automated snapshots in the destination Region
136      * after they are copied from a source Region.</p>
137      */
SetRetentionPeriod(int value)138     inline void SetRetentionPeriod(int value) { m_retentionPeriodHasBeenSet = true; m_retentionPeriod = value; }
139 
140     /**
141      * <p>The number of days to retain automated snapshots in the destination Region
142      * after they are copied from a source Region.</p>
143      */
WithRetentionPeriod(int value)144     inline AwsRedshiftClusterClusterSnapshotCopyStatus& WithRetentionPeriod(int value) { SetRetentionPeriod(value); return *this;}
145 
146 
147     /**
148      * <p>The name of the snapshot copy grant.</p>
149      */
GetSnapshotCopyGrantName()150     inline const Aws::String& GetSnapshotCopyGrantName() const{ return m_snapshotCopyGrantName; }
151 
152     /**
153      * <p>The name of the snapshot copy grant.</p>
154      */
SnapshotCopyGrantNameHasBeenSet()155     inline bool SnapshotCopyGrantNameHasBeenSet() const { return m_snapshotCopyGrantNameHasBeenSet; }
156 
157     /**
158      * <p>The name of the snapshot copy grant.</p>
159      */
SetSnapshotCopyGrantName(const Aws::String & value)160     inline void SetSnapshotCopyGrantName(const Aws::String& value) { m_snapshotCopyGrantNameHasBeenSet = true; m_snapshotCopyGrantName = value; }
161 
162     /**
163      * <p>The name of the snapshot copy grant.</p>
164      */
SetSnapshotCopyGrantName(Aws::String && value)165     inline void SetSnapshotCopyGrantName(Aws::String&& value) { m_snapshotCopyGrantNameHasBeenSet = true; m_snapshotCopyGrantName = std::move(value); }
166 
167     /**
168      * <p>The name of the snapshot copy grant.</p>
169      */
SetSnapshotCopyGrantName(const char * value)170     inline void SetSnapshotCopyGrantName(const char* value) { m_snapshotCopyGrantNameHasBeenSet = true; m_snapshotCopyGrantName.assign(value); }
171 
172     /**
173      * <p>The name of the snapshot copy grant.</p>
174      */
WithSnapshotCopyGrantName(const Aws::String & value)175     inline AwsRedshiftClusterClusterSnapshotCopyStatus& WithSnapshotCopyGrantName(const Aws::String& value) { SetSnapshotCopyGrantName(value); return *this;}
176 
177     /**
178      * <p>The name of the snapshot copy grant.</p>
179      */
WithSnapshotCopyGrantName(Aws::String && value)180     inline AwsRedshiftClusterClusterSnapshotCopyStatus& WithSnapshotCopyGrantName(Aws::String&& value) { SetSnapshotCopyGrantName(std::move(value)); return *this;}
181 
182     /**
183      * <p>The name of the snapshot copy grant.</p>
184      */
WithSnapshotCopyGrantName(const char * value)185     inline AwsRedshiftClusterClusterSnapshotCopyStatus& WithSnapshotCopyGrantName(const char* value) { SetSnapshotCopyGrantName(value); return *this;}
186 
187   private:
188 
189     Aws::String m_destinationRegion;
190     bool m_destinationRegionHasBeenSet;
191 
192     int m_manualSnapshotRetentionPeriod;
193     bool m_manualSnapshotRetentionPeriodHasBeenSet;
194 
195     int m_retentionPeriod;
196     bool m_retentionPeriodHasBeenSet;
197 
198     Aws::String m_snapshotCopyGrantName;
199     bool m_snapshotCopyGrantNameHasBeenSet;
200   };
201 
202 } // namespace Model
203 } // namespace SecurityHub
204 } // namespace Aws
205