1 /**
2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3 * SPDX-License-Identifier: Apache-2.0.
4 */
5
6 #include <aws/route53-recovery-readiness/model/RuleResult.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 Route53RecoveryReadiness
17 {
18 namespace Model
19 {
20
RuleResult()21 RuleResult::RuleResult() :
22 m_lastCheckedTimestampHasBeenSet(false),
23 m_messagesHasBeenSet(false),
24 m_readiness(Readiness::NOT_SET),
25 m_readinessHasBeenSet(false),
26 m_ruleIdHasBeenSet(false)
27 {
28 }
29
RuleResult(JsonView jsonValue)30 RuleResult::RuleResult(JsonView jsonValue) :
31 m_lastCheckedTimestampHasBeenSet(false),
32 m_messagesHasBeenSet(false),
33 m_readiness(Readiness::NOT_SET),
34 m_readinessHasBeenSet(false),
35 m_ruleIdHasBeenSet(false)
36 {
37 *this = jsonValue;
38 }
39
operator =(JsonView jsonValue)40 RuleResult& RuleResult::operator =(JsonView jsonValue)
41 {
42 if(jsonValue.ValueExists("lastCheckedTimestamp"))
43 {
44 m_lastCheckedTimestamp = jsonValue.GetString("lastCheckedTimestamp");
45
46 m_lastCheckedTimestampHasBeenSet = true;
47 }
48
49 if(jsonValue.ValueExists("messages"))
50 {
51 Array<JsonView> messagesJsonList = jsonValue.GetArray("messages");
52 for(unsigned messagesIndex = 0; messagesIndex < messagesJsonList.GetLength(); ++messagesIndex)
53 {
54 m_messages.push_back(messagesJsonList[messagesIndex].AsObject());
55 }
56 m_messagesHasBeenSet = true;
57 }
58
59 if(jsonValue.ValueExists("readiness"))
60 {
61 m_readiness = ReadinessMapper::GetReadinessForName(jsonValue.GetString("readiness"));
62
63 m_readinessHasBeenSet = true;
64 }
65
66 if(jsonValue.ValueExists("ruleId"))
67 {
68 m_ruleId = jsonValue.GetString("ruleId");
69
70 m_ruleIdHasBeenSet = true;
71 }
72
73 return *this;
74 }
75
Jsonize() const76 JsonValue RuleResult::Jsonize() const
77 {
78 JsonValue payload;
79
80 if(m_lastCheckedTimestampHasBeenSet)
81 {
82 payload.WithString("lastCheckedTimestamp", m_lastCheckedTimestamp.ToGmtString(DateFormat::ISO_8601));
83 }
84
85 if(m_messagesHasBeenSet)
86 {
87 Array<JsonValue> messagesJsonList(m_messages.size());
88 for(unsigned messagesIndex = 0; messagesIndex < messagesJsonList.GetLength(); ++messagesIndex)
89 {
90 messagesJsonList[messagesIndex].AsObject(m_messages[messagesIndex].Jsonize());
91 }
92 payload.WithArray("messages", std::move(messagesJsonList));
93
94 }
95
96 if(m_readinessHasBeenSet)
97 {
98 payload.WithString("readiness", ReadinessMapper::GetNameForReadiness(m_readiness));
99 }
100
101 if(m_ruleIdHasBeenSet)
102 {
103 payload.WithString("ruleId", m_ruleId);
104
105 }
106
107 return payload;
108 }
109
110 } // namespace Model
111 } // namespace Route53RecoveryReadiness
112 } // namespace Aws
113