1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #include <aws/chime/model/VoiceConnectorGroup.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 Chime
17 {
18 namespace Model
19 {
20 
VoiceConnectorGroup()21 VoiceConnectorGroup::VoiceConnectorGroup() :
22     m_voiceConnectorGroupIdHasBeenSet(false),
23     m_nameHasBeenSet(false),
24     m_voiceConnectorItemsHasBeenSet(false),
25     m_createdTimestampHasBeenSet(false),
26     m_updatedTimestampHasBeenSet(false),
27     m_voiceConnectorGroupArnHasBeenSet(false)
28 {
29 }
30 
VoiceConnectorGroup(JsonView jsonValue)31 VoiceConnectorGroup::VoiceConnectorGroup(JsonView jsonValue) :
32     m_voiceConnectorGroupIdHasBeenSet(false),
33     m_nameHasBeenSet(false),
34     m_voiceConnectorItemsHasBeenSet(false),
35     m_createdTimestampHasBeenSet(false),
36     m_updatedTimestampHasBeenSet(false),
37     m_voiceConnectorGroupArnHasBeenSet(false)
38 {
39   *this = jsonValue;
40 }
41 
operator =(JsonView jsonValue)42 VoiceConnectorGroup& VoiceConnectorGroup::operator =(JsonView jsonValue)
43 {
44   if(jsonValue.ValueExists("VoiceConnectorGroupId"))
45   {
46     m_voiceConnectorGroupId = jsonValue.GetString("VoiceConnectorGroupId");
47 
48     m_voiceConnectorGroupIdHasBeenSet = true;
49   }
50 
51   if(jsonValue.ValueExists("Name"))
52   {
53     m_name = jsonValue.GetString("Name");
54 
55     m_nameHasBeenSet = true;
56   }
57 
58   if(jsonValue.ValueExists("VoiceConnectorItems"))
59   {
60     Array<JsonView> voiceConnectorItemsJsonList = jsonValue.GetArray("VoiceConnectorItems");
61     for(unsigned voiceConnectorItemsIndex = 0; voiceConnectorItemsIndex < voiceConnectorItemsJsonList.GetLength(); ++voiceConnectorItemsIndex)
62     {
63       m_voiceConnectorItems.push_back(voiceConnectorItemsJsonList[voiceConnectorItemsIndex].AsObject());
64     }
65     m_voiceConnectorItemsHasBeenSet = true;
66   }
67 
68   if(jsonValue.ValueExists("CreatedTimestamp"))
69   {
70     m_createdTimestamp = jsonValue.GetString("CreatedTimestamp");
71 
72     m_createdTimestampHasBeenSet = true;
73   }
74 
75   if(jsonValue.ValueExists("UpdatedTimestamp"))
76   {
77     m_updatedTimestamp = jsonValue.GetString("UpdatedTimestamp");
78 
79     m_updatedTimestampHasBeenSet = true;
80   }
81 
82   if(jsonValue.ValueExists("VoiceConnectorGroupArn"))
83   {
84     m_voiceConnectorGroupArn = jsonValue.GetString("VoiceConnectorGroupArn");
85 
86     m_voiceConnectorGroupArnHasBeenSet = true;
87   }
88 
89   return *this;
90 }
91 
Jsonize() const92 JsonValue VoiceConnectorGroup::Jsonize() const
93 {
94   JsonValue payload;
95 
96   if(m_voiceConnectorGroupIdHasBeenSet)
97   {
98    payload.WithString("VoiceConnectorGroupId", m_voiceConnectorGroupId);
99 
100   }
101 
102   if(m_nameHasBeenSet)
103   {
104    payload.WithString("Name", m_name);
105 
106   }
107 
108   if(m_voiceConnectorItemsHasBeenSet)
109   {
110    Array<JsonValue> voiceConnectorItemsJsonList(m_voiceConnectorItems.size());
111    for(unsigned voiceConnectorItemsIndex = 0; voiceConnectorItemsIndex < voiceConnectorItemsJsonList.GetLength(); ++voiceConnectorItemsIndex)
112    {
113      voiceConnectorItemsJsonList[voiceConnectorItemsIndex].AsObject(m_voiceConnectorItems[voiceConnectorItemsIndex].Jsonize());
114    }
115    payload.WithArray("VoiceConnectorItems", std::move(voiceConnectorItemsJsonList));
116 
117   }
118 
119   if(m_createdTimestampHasBeenSet)
120   {
121    payload.WithString("CreatedTimestamp", m_createdTimestamp.ToGmtString(DateFormat::ISO_8601));
122   }
123 
124   if(m_updatedTimestampHasBeenSet)
125   {
126    payload.WithString("UpdatedTimestamp", m_updatedTimestamp.ToGmtString(DateFormat::ISO_8601));
127   }
128 
129   if(m_voiceConnectorGroupArnHasBeenSet)
130   {
131    payload.WithString("VoiceConnectorGroupArn", m_voiceConnectorGroupArn);
132 
133   }
134 
135   return payload;
136 }
137 
138 } // namespace Model
139 } // namespace Chime
140 } // namespace Aws
141