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