1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #include <aws/dms/model/CreateReplicationInstanceRequest.h>
7 #include <aws/core/utils/json/JsonSerializer.h>
8 
9 #include <utility>
10 
11 using namespace Aws::DatabaseMigrationService::Model;
12 using namespace Aws::Utils::Json;
13 using namespace Aws::Utils;
14 
CreateReplicationInstanceRequest()15 CreateReplicationInstanceRequest::CreateReplicationInstanceRequest() :
16     m_replicationInstanceIdentifierHasBeenSet(false),
17     m_allocatedStorage(0),
18     m_allocatedStorageHasBeenSet(false),
19     m_replicationInstanceClassHasBeenSet(false),
20     m_vpcSecurityGroupIdsHasBeenSet(false),
21     m_availabilityZoneHasBeenSet(false),
22     m_replicationSubnetGroupIdentifierHasBeenSet(false),
23     m_preferredMaintenanceWindowHasBeenSet(false),
24     m_multiAZ(false),
25     m_multiAZHasBeenSet(false),
26     m_engineVersionHasBeenSet(false),
27     m_autoMinorVersionUpgrade(false),
28     m_autoMinorVersionUpgradeHasBeenSet(false),
29     m_tagsHasBeenSet(false),
30     m_kmsKeyIdHasBeenSet(false),
31     m_publiclyAccessible(false),
32     m_publiclyAccessibleHasBeenSet(false),
33     m_dnsNameServersHasBeenSet(false),
34     m_resourceIdentifierHasBeenSet(false)
35 {
36 }
37 
SerializePayload() const38 Aws::String CreateReplicationInstanceRequest::SerializePayload() const
39 {
40   JsonValue payload;
41 
42   if(m_replicationInstanceIdentifierHasBeenSet)
43   {
44    payload.WithString("ReplicationInstanceIdentifier", m_replicationInstanceIdentifier);
45 
46   }
47 
48   if(m_allocatedStorageHasBeenSet)
49   {
50    payload.WithInteger("AllocatedStorage", m_allocatedStorage);
51 
52   }
53 
54   if(m_replicationInstanceClassHasBeenSet)
55   {
56    payload.WithString("ReplicationInstanceClass", m_replicationInstanceClass);
57 
58   }
59 
60   if(m_vpcSecurityGroupIdsHasBeenSet)
61   {
62    Array<JsonValue> vpcSecurityGroupIdsJsonList(m_vpcSecurityGroupIds.size());
63    for(unsigned vpcSecurityGroupIdsIndex = 0; vpcSecurityGroupIdsIndex < vpcSecurityGroupIdsJsonList.GetLength(); ++vpcSecurityGroupIdsIndex)
64    {
65      vpcSecurityGroupIdsJsonList[vpcSecurityGroupIdsIndex].AsString(m_vpcSecurityGroupIds[vpcSecurityGroupIdsIndex]);
66    }
67    payload.WithArray("VpcSecurityGroupIds", std::move(vpcSecurityGroupIdsJsonList));
68 
69   }
70 
71   if(m_availabilityZoneHasBeenSet)
72   {
73    payload.WithString("AvailabilityZone", m_availabilityZone);
74 
75   }
76 
77   if(m_replicationSubnetGroupIdentifierHasBeenSet)
78   {
79    payload.WithString("ReplicationSubnetGroupIdentifier", m_replicationSubnetGroupIdentifier);
80 
81   }
82 
83   if(m_preferredMaintenanceWindowHasBeenSet)
84   {
85    payload.WithString("PreferredMaintenanceWindow", m_preferredMaintenanceWindow);
86 
87   }
88 
89   if(m_multiAZHasBeenSet)
90   {
91    payload.WithBool("MultiAZ", m_multiAZ);
92 
93   }
94 
95   if(m_engineVersionHasBeenSet)
96   {
97    payload.WithString("EngineVersion", m_engineVersion);
98 
99   }
100 
101   if(m_autoMinorVersionUpgradeHasBeenSet)
102   {
103    payload.WithBool("AutoMinorVersionUpgrade", m_autoMinorVersionUpgrade);
104 
105   }
106 
107   if(m_tagsHasBeenSet)
108   {
109    Array<JsonValue> tagsJsonList(m_tags.size());
110    for(unsigned tagsIndex = 0; tagsIndex < tagsJsonList.GetLength(); ++tagsIndex)
111    {
112      tagsJsonList[tagsIndex].AsObject(m_tags[tagsIndex].Jsonize());
113    }
114    payload.WithArray("Tags", std::move(tagsJsonList));
115 
116   }
117 
118   if(m_kmsKeyIdHasBeenSet)
119   {
120    payload.WithString("KmsKeyId", m_kmsKeyId);
121 
122   }
123 
124   if(m_publiclyAccessibleHasBeenSet)
125   {
126    payload.WithBool("PubliclyAccessible", m_publiclyAccessible);
127 
128   }
129 
130   if(m_dnsNameServersHasBeenSet)
131   {
132    payload.WithString("DnsNameServers", m_dnsNameServers);
133 
134   }
135 
136   if(m_resourceIdentifierHasBeenSet)
137   {
138    payload.WithString("ResourceIdentifier", m_resourceIdentifier);
139 
140   }
141 
142   return payload.View().WriteReadable();
143 }
144 
GetRequestSpecificHeaders() const145 Aws::Http::HeaderValueCollection CreateReplicationInstanceRequest::GetRequestSpecificHeaders() const
146 {
147   Aws::Http::HeaderValueCollection headers;
148   headers.insert(Aws::Http::HeaderValuePair("X-Amz-Target", "AmazonDMSv20160101.CreateReplicationInstance"));
149   return headers;
150 
151 }
152 
153 
154 
155 
156