1 /**
2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3 * SPDX-License-Identifier: Apache-2.0.
4 */
5
6 #include <aws/dlm/model/FastRestoreRule.h>
7 #include <aws/core/utils/json/JsonSerializer.h>
8
9 #include <utility>
10
11 using namespace Aws::Utils::Json;
12 using namespace Aws::Utils;
13
14 namespace Aws
15 {
16 namespace DLM
17 {
18 namespace Model
19 {
20
FastRestoreRule()21 FastRestoreRule::FastRestoreRule() :
22 m_count(0),
23 m_countHasBeenSet(false),
24 m_interval(0),
25 m_intervalHasBeenSet(false),
26 m_intervalUnit(RetentionIntervalUnitValues::NOT_SET),
27 m_intervalUnitHasBeenSet(false),
28 m_availabilityZonesHasBeenSet(false)
29 {
30 }
31
FastRestoreRule(JsonView jsonValue)32 FastRestoreRule::FastRestoreRule(JsonView jsonValue) :
33 m_count(0),
34 m_countHasBeenSet(false),
35 m_interval(0),
36 m_intervalHasBeenSet(false),
37 m_intervalUnit(RetentionIntervalUnitValues::NOT_SET),
38 m_intervalUnitHasBeenSet(false),
39 m_availabilityZonesHasBeenSet(false)
40 {
41 *this = jsonValue;
42 }
43
operator =(JsonView jsonValue)44 FastRestoreRule& FastRestoreRule::operator =(JsonView jsonValue)
45 {
46 if(jsonValue.ValueExists("Count"))
47 {
48 m_count = jsonValue.GetInteger("Count");
49
50 m_countHasBeenSet = true;
51 }
52
53 if(jsonValue.ValueExists("Interval"))
54 {
55 m_interval = jsonValue.GetInteger("Interval");
56
57 m_intervalHasBeenSet = true;
58 }
59
60 if(jsonValue.ValueExists("IntervalUnit"))
61 {
62 m_intervalUnit = RetentionIntervalUnitValuesMapper::GetRetentionIntervalUnitValuesForName(jsonValue.GetString("IntervalUnit"));
63
64 m_intervalUnitHasBeenSet = true;
65 }
66
67 if(jsonValue.ValueExists("AvailabilityZones"))
68 {
69 Array<JsonView> availabilityZonesJsonList = jsonValue.GetArray("AvailabilityZones");
70 for(unsigned availabilityZonesIndex = 0; availabilityZonesIndex < availabilityZonesJsonList.GetLength(); ++availabilityZonesIndex)
71 {
72 m_availabilityZones.push_back(availabilityZonesJsonList[availabilityZonesIndex].AsString());
73 }
74 m_availabilityZonesHasBeenSet = true;
75 }
76
77 return *this;
78 }
79
Jsonize() const80 JsonValue FastRestoreRule::Jsonize() const
81 {
82 JsonValue payload;
83
84 if(m_countHasBeenSet)
85 {
86 payload.WithInteger("Count", m_count);
87
88 }
89
90 if(m_intervalHasBeenSet)
91 {
92 payload.WithInteger("Interval", m_interval);
93
94 }
95
96 if(m_intervalUnitHasBeenSet)
97 {
98 payload.WithString("IntervalUnit", RetentionIntervalUnitValuesMapper::GetNameForRetentionIntervalUnitValues(m_intervalUnit));
99 }
100
101 if(m_availabilityZonesHasBeenSet)
102 {
103 Array<JsonValue> availabilityZonesJsonList(m_availabilityZones.size());
104 for(unsigned availabilityZonesIndex = 0; availabilityZonesIndex < availabilityZonesJsonList.GetLength(); ++availabilityZonesIndex)
105 {
106 availabilityZonesJsonList[availabilityZonesIndex].AsString(m_availabilityZones[availabilityZonesIndex]);
107 }
108 payload.WithArray("AvailabilityZones", std::move(availabilityZonesJsonList));
109
110 }
111
112 return payload;
113 }
114
115 } // namespace Model
116 } // namespace DLM
117 } // namespace Aws
118