1 /**
2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3 * SPDX-License-Identifier: Apache-2.0.
4 */
5
6 #include <aws/medialive/model/VpcOutputSettingsDescription.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 MediaLive
17 {
18 namespace Model
19 {
20
VpcOutputSettingsDescription()21 VpcOutputSettingsDescription::VpcOutputSettingsDescription() :
22 m_availabilityZonesHasBeenSet(false),
23 m_networkInterfaceIdsHasBeenSet(false),
24 m_securityGroupIdsHasBeenSet(false),
25 m_subnetIdsHasBeenSet(false)
26 {
27 }
28
VpcOutputSettingsDescription(JsonView jsonValue)29 VpcOutputSettingsDescription::VpcOutputSettingsDescription(JsonView jsonValue) :
30 m_availabilityZonesHasBeenSet(false),
31 m_networkInterfaceIdsHasBeenSet(false),
32 m_securityGroupIdsHasBeenSet(false),
33 m_subnetIdsHasBeenSet(false)
34 {
35 *this = jsonValue;
36 }
37
operator =(JsonView jsonValue)38 VpcOutputSettingsDescription& VpcOutputSettingsDescription::operator =(JsonView jsonValue)
39 {
40 if(jsonValue.ValueExists("availabilityZones"))
41 {
42 Array<JsonView> availabilityZonesJsonList = jsonValue.GetArray("availabilityZones");
43 for(unsigned availabilityZonesIndex = 0; availabilityZonesIndex < availabilityZonesJsonList.GetLength(); ++availabilityZonesIndex)
44 {
45 m_availabilityZones.push_back(availabilityZonesJsonList[availabilityZonesIndex].AsString());
46 }
47 m_availabilityZonesHasBeenSet = true;
48 }
49
50 if(jsonValue.ValueExists("networkInterfaceIds"))
51 {
52 Array<JsonView> networkInterfaceIdsJsonList = jsonValue.GetArray("networkInterfaceIds");
53 for(unsigned networkInterfaceIdsIndex = 0; networkInterfaceIdsIndex < networkInterfaceIdsJsonList.GetLength(); ++networkInterfaceIdsIndex)
54 {
55 m_networkInterfaceIds.push_back(networkInterfaceIdsJsonList[networkInterfaceIdsIndex].AsString());
56 }
57 m_networkInterfaceIdsHasBeenSet = true;
58 }
59
60 if(jsonValue.ValueExists("securityGroupIds"))
61 {
62 Array<JsonView> securityGroupIdsJsonList = jsonValue.GetArray("securityGroupIds");
63 for(unsigned securityGroupIdsIndex = 0; securityGroupIdsIndex < securityGroupIdsJsonList.GetLength(); ++securityGroupIdsIndex)
64 {
65 m_securityGroupIds.push_back(securityGroupIdsJsonList[securityGroupIdsIndex].AsString());
66 }
67 m_securityGroupIdsHasBeenSet = true;
68 }
69
70 if(jsonValue.ValueExists("subnetIds"))
71 {
72 Array<JsonView> subnetIdsJsonList = jsonValue.GetArray("subnetIds");
73 for(unsigned subnetIdsIndex = 0; subnetIdsIndex < subnetIdsJsonList.GetLength(); ++subnetIdsIndex)
74 {
75 m_subnetIds.push_back(subnetIdsJsonList[subnetIdsIndex].AsString());
76 }
77 m_subnetIdsHasBeenSet = true;
78 }
79
80 return *this;
81 }
82
Jsonize() const83 JsonValue VpcOutputSettingsDescription::Jsonize() const
84 {
85 JsonValue payload;
86
87 if(m_availabilityZonesHasBeenSet)
88 {
89 Array<JsonValue> availabilityZonesJsonList(m_availabilityZones.size());
90 for(unsigned availabilityZonesIndex = 0; availabilityZonesIndex < availabilityZonesJsonList.GetLength(); ++availabilityZonesIndex)
91 {
92 availabilityZonesJsonList[availabilityZonesIndex].AsString(m_availabilityZones[availabilityZonesIndex]);
93 }
94 payload.WithArray("availabilityZones", std::move(availabilityZonesJsonList));
95
96 }
97
98 if(m_networkInterfaceIdsHasBeenSet)
99 {
100 Array<JsonValue> networkInterfaceIdsJsonList(m_networkInterfaceIds.size());
101 for(unsigned networkInterfaceIdsIndex = 0; networkInterfaceIdsIndex < networkInterfaceIdsJsonList.GetLength(); ++networkInterfaceIdsIndex)
102 {
103 networkInterfaceIdsJsonList[networkInterfaceIdsIndex].AsString(m_networkInterfaceIds[networkInterfaceIdsIndex]);
104 }
105 payload.WithArray("networkInterfaceIds", std::move(networkInterfaceIdsJsonList));
106
107 }
108
109 if(m_securityGroupIdsHasBeenSet)
110 {
111 Array<JsonValue> securityGroupIdsJsonList(m_securityGroupIds.size());
112 for(unsigned securityGroupIdsIndex = 0; securityGroupIdsIndex < securityGroupIdsJsonList.GetLength(); ++securityGroupIdsIndex)
113 {
114 securityGroupIdsJsonList[securityGroupIdsIndex].AsString(m_securityGroupIds[securityGroupIdsIndex]);
115 }
116 payload.WithArray("securityGroupIds", std::move(securityGroupIdsJsonList));
117
118 }
119
120 if(m_subnetIdsHasBeenSet)
121 {
122 Array<JsonValue> subnetIdsJsonList(m_subnetIds.size());
123 for(unsigned subnetIdsIndex = 0; subnetIdsIndex < subnetIdsJsonList.GetLength(); ++subnetIdsIndex)
124 {
125 subnetIdsJsonList[subnetIdsIndex].AsString(m_subnetIds[subnetIdsIndex]);
126 }
127 payload.WithArray("subnetIds", std::move(subnetIdsJsonList));
128
129 }
130
131 return payload;
132 }
133
134 } // namespace Model
135 } // namespace MediaLive
136 } // namespace Aws
137