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 <aws/core/utils/memory/stl/AWSVector.h>
10 #include <aws/securityhub/model/AwsDynamoDbTableProjection.h>
11 #include <aws/securityhub/model/AwsDynamoDbTableProvisionedThroughput.h>
12 #include <aws/securityhub/model/AwsDynamoDbTableKeySchema.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace Utils
18 {
19 namespace Json
20 {
21   class JsonValue;
22   class JsonView;
23 } // namespace Json
24 } // namespace Utils
25 namespace SecurityHub
26 {
27 namespace Model
28 {
29 
30   /**
31    * <p>Information abut a global secondary index for the table.</p><p><h3>See
32    * Also:</h3>   <a
33    * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AwsDynamoDbTableGlobalSecondaryIndex">AWS
34    * API Reference</a></p>
35    */
36   class AWS_SECURITYHUB_API AwsDynamoDbTableGlobalSecondaryIndex
37   {
38   public:
39     AwsDynamoDbTableGlobalSecondaryIndex();
40     AwsDynamoDbTableGlobalSecondaryIndex(Aws::Utils::Json::JsonView jsonValue);
41     AwsDynamoDbTableGlobalSecondaryIndex& operator=(Aws::Utils::Json::JsonView jsonValue);
42     Aws::Utils::Json::JsonValue Jsonize() const;
43 
44 
45     /**
46      * <p>Whether the index is currently backfilling.</p>
47      */
GetBackfilling()48     inline bool GetBackfilling() const{ return m_backfilling; }
49 
50     /**
51      * <p>Whether the index is currently backfilling.</p>
52      */
BackfillingHasBeenSet()53     inline bool BackfillingHasBeenSet() const { return m_backfillingHasBeenSet; }
54 
55     /**
56      * <p>Whether the index is currently backfilling.</p>
57      */
SetBackfilling(bool value)58     inline void SetBackfilling(bool value) { m_backfillingHasBeenSet = true; m_backfilling = value; }
59 
60     /**
61      * <p>Whether the index is currently backfilling.</p>
62      */
WithBackfilling(bool value)63     inline AwsDynamoDbTableGlobalSecondaryIndex& WithBackfilling(bool value) { SetBackfilling(value); return *this;}
64 
65 
66     /**
67      * <p>The ARN of the index.</p>
68      */
GetIndexArn()69     inline const Aws::String& GetIndexArn() const{ return m_indexArn; }
70 
71     /**
72      * <p>The ARN of the index.</p>
73      */
IndexArnHasBeenSet()74     inline bool IndexArnHasBeenSet() const { return m_indexArnHasBeenSet; }
75 
76     /**
77      * <p>The ARN of the index.</p>
78      */
SetIndexArn(const Aws::String & value)79     inline void SetIndexArn(const Aws::String& value) { m_indexArnHasBeenSet = true; m_indexArn = value; }
80 
81     /**
82      * <p>The ARN of the index.</p>
83      */
SetIndexArn(Aws::String && value)84     inline void SetIndexArn(Aws::String&& value) { m_indexArnHasBeenSet = true; m_indexArn = std::move(value); }
85 
86     /**
87      * <p>The ARN of the index.</p>
88      */
SetIndexArn(const char * value)89     inline void SetIndexArn(const char* value) { m_indexArnHasBeenSet = true; m_indexArn.assign(value); }
90 
91     /**
92      * <p>The ARN of the index.</p>
93      */
WithIndexArn(const Aws::String & value)94     inline AwsDynamoDbTableGlobalSecondaryIndex& WithIndexArn(const Aws::String& value) { SetIndexArn(value); return *this;}
95 
96     /**
97      * <p>The ARN of the index.</p>
98      */
WithIndexArn(Aws::String && value)99     inline AwsDynamoDbTableGlobalSecondaryIndex& WithIndexArn(Aws::String&& value) { SetIndexArn(std::move(value)); return *this;}
100 
101     /**
102      * <p>The ARN of the index.</p>
103      */
WithIndexArn(const char * value)104     inline AwsDynamoDbTableGlobalSecondaryIndex& WithIndexArn(const char* value) { SetIndexArn(value); return *this;}
105 
106 
107     /**
108      * <p>The name of the index.</p>
109      */
GetIndexName()110     inline const Aws::String& GetIndexName() const{ return m_indexName; }
111 
112     /**
113      * <p>The name of the index.</p>
114      */
IndexNameHasBeenSet()115     inline bool IndexNameHasBeenSet() const { return m_indexNameHasBeenSet; }
116 
117     /**
118      * <p>The name of the index.</p>
119      */
SetIndexName(const Aws::String & value)120     inline void SetIndexName(const Aws::String& value) { m_indexNameHasBeenSet = true; m_indexName = value; }
121 
122     /**
123      * <p>The name of the index.</p>
124      */
SetIndexName(Aws::String && value)125     inline void SetIndexName(Aws::String&& value) { m_indexNameHasBeenSet = true; m_indexName = std::move(value); }
126 
127     /**
128      * <p>The name of the index.</p>
129      */
SetIndexName(const char * value)130     inline void SetIndexName(const char* value) { m_indexNameHasBeenSet = true; m_indexName.assign(value); }
131 
132     /**
133      * <p>The name of the index.</p>
134      */
WithIndexName(const Aws::String & value)135     inline AwsDynamoDbTableGlobalSecondaryIndex& WithIndexName(const Aws::String& value) { SetIndexName(value); return *this;}
136 
137     /**
138      * <p>The name of the index.</p>
139      */
WithIndexName(Aws::String && value)140     inline AwsDynamoDbTableGlobalSecondaryIndex& WithIndexName(Aws::String&& value) { SetIndexName(std::move(value)); return *this;}
141 
142     /**
143      * <p>The name of the index.</p>
144      */
WithIndexName(const char * value)145     inline AwsDynamoDbTableGlobalSecondaryIndex& WithIndexName(const char* value) { SetIndexName(value); return *this;}
146 
147 
148     /**
149      * <p>The total size in bytes of the index.</p>
150      */
GetIndexSizeBytes()151     inline long long GetIndexSizeBytes() const{ return m_indexSizeBytes; }
152 
153     /**
154      * <p>The total size in bytes of the index.</p>
155      */
IndexSizeBytesHasBeenSet()156     inline bool IndexSizeBytesHasBeenSet() const { return m_indexSizeBytesHasBeenSet; }
157 
158     /**
159      * <p>The total size in bytes of the index.</p>
160      */
SetIndexSizeBytes(long long value)161     inline void SetIndexSizeBytes(long long value) { m_indexSizeBytesHasBeenSet = true; m_indexSizeBytes = value; }
162 
163     /**
164      * <p>The total size in bytes of the index.</p>
165      */
WithIndexSizeBytes(long long value)166     inline AwsDynamoDbTableGlobalSecondaryIndex& WithIndexSizeBytes(long long value) { SetIndexSizeBytes(value); return *this;}
167 
168 
169     /**
170      * <p>The current status of the index.</p>
171      */
GetIndexStatus()172     inline const Aws::String& GetIndexStatus() const{ return m_indexStatus; }
173 
174     /**
175      * <p>The current status of the index.</p>
176      */
IndexStatusHasBeenSet()177     inline bool IndexStatusHasBeenSet() const { return m_indexStatusHasBeenSet; }
178 
179     /**
180      * <p>The current status of the index.</p>
181      */
SetIndexStatus(const Aws::String & value)182     inline void SetIndexStatus(const Aws::String& value) { m_indexStatusHasBeenSet = true; m_indexStatus = value; }
183 
184     /**
185      * <p>The current status of the index.</p>
186      */
SetIndexStatus(Aws::String && value)187     inline void SetIndexStatus(Aws::String&& value) { m_indexStatusHasBeenSet = true; m_indexStatus = std::move(value); }
188 
189     /**
190      * <p>The current status of the index.</p>
191      */
SetIndexStatus(const char * value)192     inline void SetIndexStatus(const char* value) { m_indexStatusHasBeenSet = true; m_indexStatus.assign(value); }
193 
194     /**
195      * <p>The current status of the index.</p>
196      */
WithIndexStatus(const Aws::String & value)197     inline AwsDynamoDbTableGlobalSecondaryIndex& WithIndexStatus(const Aws::String& value) { SetIndexStatus(value); return *this;}
198 
199     /**
200      * <p>The current status of the index.</p>
201      */
WithIndexStatus(Aws::String && value)202     inline AwsDynamoDbTableGlobalSecondaryIndex& WithIndexStatus(Aws::String&& value) { SetIndexStatus(std::move(value)); return *this;}
203 
204     /**
205      * <p>The current status of the index.</p>
206      */
WithIndexStatus(const char * value)207     inline AwsDynamoDbTableGlobalSecondaryIndex& WithIndexStatus(const char* value) { SetIndexStatus(value); return *this;}
208 
209 
210     /**
211      * <p>The number of items in the index.</p>
212      */
GetItemCount()213     inline int GetItemCount() const{ return m_itemCount; }
214 
215     /**
216      * <p>The number of items in the index.</p>
217      */
ItemCountHasBeenSet()218     inline bool ItemCountHasBeenSet() const { return m_itemCountHasBeenSet; }
219 
220     /**
221      * <p>The number of items in the index.</p>
222      */
SetItemCount(int value)223     inline void SetItemCount(int value) { m_itemCountHasBeenSet = true; m_itemCount = value; }
224 
225     /**
226      * <p>The number of items in the index.</p>
227      */
WithItemCount(int value)228     inline AwsDynamoDbTableGlobalSecondaryIndex& WithItemCount(int value) { SetItemCount(value); return *this;}
229 
230 
231     /**
232      * <p>The key schema for the index.</p>
233      */
GetKeySchema()234     inline const Aws::Vector<AwsDynamoDbTableKeySchema>& GetKeySchema() const{ return m_keySchema; }
235 
236     /**
237      * <p>The key schema for the index.</p>
238      */
KeySchemaHasBeenSet()239     inline bool KeySchemaHasBeenSet() const { return m_keySchemaHasBeenSet; }
240 
241     /**
242      * <p>The key schema for the index.</p>
243      */
SetKeySchema(const Aws::Vector<AwsDynamoDbTableKeySchema> & value)244     inline void SetKeySchema(const Aws::Vector<AwsDynamoDbTableKeySchema>& value) { m_keySchemaHasBeenSet = true; m_keySchema = value; }
245 
246     /**
247      * <p>The key schema for the index.</p>
248      */
SetKeySchema(Aws::Vector<AwsDynamoDbTableKeySchema> && value)249     inline void SetKeySchema(Aws::Vector<AwsDynamoDbTableKeySchema>&& value) { m_keySchemaHasBeenSet = true; m_keySchema = std::move(value); }
250 
251     /**
252      * <p>The key schema for the index.</p>
253      */
WithKeySchema(const Aws::Vector<AwsDynamoDbTableKeySchema> & value)254     inline AwsDynamoDbTableGlobalSecondaryIndex& WithKeySchema(const Aws::Vector<AwsDynamoDbTableKeySchema>& value) { SetKeySchema(value); return *this;}
255 
256     /**
257      * <p>The key schema for the index.</p>
258      */
WithKeySchema(Aws::Vector<AwsDynamoDbTableKeySchema> && value)259     inline AwsDynamoDbTableGlobalSecondaryIndex& WithKeySchema(Aws::Vector<AwsDynamoDbTableKeySchema>&& value) { SetKeySchema(std::move(value)); return *this;}
260 
261     /**
262      * <p>The key schema for the index.</p>
263      */
AddKeySchema(const AwsDynamoDbTableKeySchema & value)264     inline AwsDynamoDbTableGlobalSecondaryIndex& AddKeySchema(const AwsDynamoDbTableKeySchema& value) { m_keySchemaHasBeenSet = true; m_keySchema.push_back(value); return *this; }
265 
266     /**
267      * <p>The key schema for the index.</p>
268      */
AddKeySchema(AwsDynamoDbTableKeySchema && value)269     inline AwsDynamoDbTableGlobalSecondaryIndex& AddKeySchema(AwsDynamoDbTableKeySchema&& value) { m_keySchemaHasBeenSet = true; m_keySchema.push_back(std::move(value)); return *this; }
270 
271 
272     /**
273      * <p>Attributes that are copied from the table into an index.</p>
274      */
GetProjection()275     inline const AwsDynamoDbTableProjection& GetProjection() const{ return m_projection; }
276 
277     /**
278      * <p>Attributes that are copied from the table into an index.</p>
279      */
ProjectionHasBeenSet()280     inline bool ProjectionHasBeenSet() const { return m_projectionHasBeenSet; }
281 
282     /**
283      * <p>Attributes that are copied from the table into an index.</p>
284      */
SetProjection(const AwsDynamoDbTableProjection & value)285     inline void SetProjection(const AwsDynamoDbTableProjection& value) { m_projectionHasBeenSet = true; m_projection = value; }
286 
287     /**
288      * <p>Attributes that are copied from the table into an index.</p>
289      */
SetProjection(AwsDynamoDbTableProjection && value)290     inline void SetProjection(AwsDynamoDbTableProjection&& value) { m_projectionHasBeenSet = true; m_projection = std::move(value); }
291 
292     /**
293      * <p>Attributes that are copied from the table into an index.</p>
294      */
WithProjection(const AwsDynamoDbTableProjection & value)295     inline AwsDynamoDbTableGlobalSecondaryIndex& WithProjection(const AwsDynamoDbTableProjection& value) { SetProjection(value); return *this;}
296 
297     /**
298      * <p>Attributes that are copied from the table into an index.</p>
299      */
WithProjection(AwsDynamoDbTableProjection && value)300     inline AwsDynamoDbTableGlobalSecondaryIndex& WithProjection(AwsDynamoDbTableProjection&& value) { SetProjection(std::move(value)); return *this;}
301 
302 
303     /**
304      * <p>Information about the provisioned throughput settings for the indexes.</p>
305      */
GetProvisionedThroughput()306     inline const AwsDynamoDbTableProvisionedThroughput& GetProvisionedThroughput() const{ return m_provisionedThroughput; }
307 
308     /**
309      * <p>Information about the provisioned throughput settings for the indexes.</p>
310      */
ProvisionedThroughputHasBeenSet()311     inline bool ProvisionedThroughputHasBeenSet() const { return m_provisionedThroughputHasBeenSet; }
312 
313     /**
314      * <p>Information about the provisioned throughput settings for the indexes.</p>
315      */
SetProvisionedThroughput(const AwsDynamoDbTableProvisionedThroughput & value)316     inline void SetProvisionedThroughput(const AwsDynamoDbTableProvisionedThroughput& value) { m_provisionedThroughputHasBeenSet = true; m_provisionedThroughput = value; }
317 
318     /**
319      * <p>Information about the provisioned throughput settings for the indexes.</p>
320      */
SetProvisionedThroughput(AwsDynamoDbTableProvisionedThroughput && value)321     inline void SetProvisionedThroughput(AwsDynamoDbTableProvisionedThroughput&& value) { m_provisionedThroughputHasBeenSet = true; m_provisionedThroughput = std::move(value); }
322 
323     /**
324      * <p>Information about the provisioned throughput settings for the indexes.</p>
325      */
WithProvisionedThroughput(const AwsDynamoDbTableProvisionedThroughput & value)326     inline AwsDynamoDbTableGlobalSecondaryIndex& WithProvisionedThroughput(const AwsDynamoDbTableProvisionedThroughput& value) { SetProvisionedThroughput(value); return *this;}
327 
328     /**
329      * <p>Information about the provisioned throughput settings for the indexes.</p>
330      */
WithProvisionedThroughput(AwsDynamoDbTableProvisionedThroughput && value)331     inline AwsDynamoDbTableGlobalSecondaryIndex& WithProvisionedThroughput(AwsDynamoDbTableProvisionedThroughput&& value) { SetProvisionedThroughput(std::move(value)); return *this;}
332 
333   private:
334 
335     bool m_backfilling;
336     bool m_backfillingHasBeenSet;
337 
338     Aws::String m_indexArn;
339     bool m_indexArnHasBeenSet;
340 
341     Aws::String m_indexName;
342     bool m_indexNameHasBeenSet;
343 
344     long long m_indexSizeBytes;
345     bool m_indexSizeBytesHasBeenSet;
346 
347     Aws::String m_indexStatus;
348     bool m_indexStatusHasBeenSet;
349 
350     int m_itemCount;
351     bool m_itemCountHasBeenSet;
352 
353     Aws::Vector<AwsDynamoDbTableKeySchema> m_keySchema;
354     bool m_keySchemaHasBeenSet;
355 
356     AwsDynamoDbTableProjection m_projection;
357     bool m_projectionHasBeenSet;
358 
359     AwsDynamoDbTableProvisionedThroughput m_provisionedThroughput;
360     bool m_provisionedThroughputHasBeenSet;
361   };
362 
363 } // namespace Model
364 } // namespace SecurityHub
365 } // namespace Aws
366