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