1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #include <aws/lightsail/model/CreateLoadBalancerRequest.h>
7 #include <aws/core/utils/json/JsonSerializer.h>
8 
9 #include <utility>
10 
11 using namespace Aws::Lightsail::Model;
12 using namespace Aws::Utils::Json;
13 using namespace Aws::Utils;
14 
CreateLoadBalancerRequest()15 CreateLoadBalancerRequest::CreateLoadBalancerRequest() :
16     m_loadBalancerNameHasBeenSet(false),
17     m_instancePort(0),
18     m_instancePortHasBeenSet(false),
19     m_healthCheckPathHasBeenSet(false),
20     m_certificateNameHasBeenSet(false),
21     m_certificateDomainNameHasBeenSet(false),
22     m_certificateAlternativeNamesHasBeenSet(false),
23     m_tagsHasBeenSet(false),
24     m_ipAddressType(IpAddressType::NOT_SET),
25     m_ipAddressTypeHasBeenSet(false)
26 {
27 }
28 
SerializePayload() const29 Aws::String CreateLoadBalancerRequest::SerializePayload() const
30 {
31   JsonValue payload;
32 
33   if(m_loadBalancerNameHasBeenSet)
34   {
35    payload.WithString("loadBalancerName", m_loadBalancerName);
36 
37   }
38 
39   if(m_instancePortHasBeenSet)
40   {
41    payload.WithInteger("instancePort", m_instancePort);
42 
43   }
44 
45   if(m_healthCheckPathHasBeenSet)
46   {
47    payload.WithString("healthCheckPath", m_healthCheckPath);
48 
49   }
50 
51   if(m_certificateNameHasBeenSet)
52   {
53    payload.WithString("certificateName", m_certificateName);
54 
55   }
56 
57   if(m_certificateDomainNameHasBeenSet)
58   {
59    payload.WithString("certificateDomainName", m_certificateDomainName);
60 
61   }
62 
63   if(m_certificateAlternativeNamesHasBeenSet)
64   {
65    Array<JsonValue> certificateAlternativeNamesJsonList(m_certificateAlternativeNames.size());
66    for(unsigned certificateAlternativeNamesIndex = 0; certificateAlternativeNamesIndex < certificateAlternativeNamesJsonList.GetLength(); ++certificateAlternativeNamesIndex)
67    {
68      certificateAlternativeNamesJsonList[certificateAlternativeNamesIndex].AsString(m_certificateAlternativeNames[certificateAlternativeNamesIndex]);
69    }
70    payload.WithArray("certificateAlternativeNames", std::move(certificateAlternativeNamesJsonList));
71 
72   }
73 
74   if(m_tagsHasBeenSet)
75   {
76    Array<JsonValue> tagsJsonList(m_tags.size());
77    for(unsigned tagsIndex = 0; tagsIndex < tagsJsonList.GetLength(); ++tagsIndex)
78    {
79      tagsJsonList[tagsIndex].AsObject(m_tags[tagsIndex].Jsonize());
80    }
81    payload.WithArray("tags", std::move(tagsJsonList));
82 
83   }
84 
85   if(m_ipAddressTypeHasBeenSet)
86   {
87    payload.WithString("ipAddressType", IpAddressTypeMapper::GetNameForIpAddressType(m_ipAddressType));
88   }
89 
90   return payload.View().WriteReadable();
91 }
92 
GetRequestSpecificHeaders() const93 Aws::Http::HeaderValueCollection CreateLoadBalancerRequest::GetRequestSpecificHeaders() const
94 {
95   Aws::Http::HeaderValueCollection headers;
96   headers.insert(Aws::Http::HeaderValuePair("X-Amz-Target", "Lightsail_20161128.CreateLoadBalancer"));
97   return headers;
98 
99 }
100 
101 
102 
103 
104