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