1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #include <aws/iotsitewise/model/CreateAssetModelRequest.h>
7 #include <aws/core/utils/json/JsonSerializer.h>
8 
9 #include <utility>
10 
11 using namespace Aws::IoTSiteWise::Model;
12 using namespace Aws::Utils::Json;
13 using namespace Aws::Utils;
14 
CreateAssetModelRequest()15 CreateAssetModelRequest::CreateAssetModelRequest() :
16     m_assetModelNameHasBeenSet(false),
17     m_assetModelDescriptionHasBeenSet(false),
18     m_assetModelPropertiesHasBeenSet(false),
19     m_assetModelHierarchiesHasBeenSet(false),
20     m_assetModelCompositeModelsHasBeenSet(false),
21     m_clientToken(Aws::Utils::UUID::RandomUUID()),
22     m_clientTokenHasBeenSet(true),
23     m_tagsHasBeenSet(false)
24 {
25 }
26 
SerializePayload() const27 Aws::String CreateAssetModelRequest::SerializePayload() const
28 {
29   JsonValue payload;
30 
31   if(m_assetModelNameHasBeenSet)
32   {
33    payload.WithString("assetModelName", m_assetModelName);
34 
35   }
36 
37   if(m_assetModelDescriptionHasBeenSet)
38   {
39    payload.WithString("assetModelDescription", m_assetModelDescription);
40 
41   }
42 
43   if(m_assetModelPropertiesHasBeenSet)
44   {
45    Array<JsonValue> assetModelPropertiesJsonList(m_assetModelProperties.size());
46    for(unsigned assetModelPropertiesIndex = 0; assetModelPropertiesIndex < assetModelPropertiesJsonList.GetLength(); ++assetModelPropertiesIndex)
47    {
48      assetModelPropertiesJsonList[assetModelPropertiesIndex].AsObject(m_assetModelProperties[assetModelPropertiesIndex].Jsonize());
49    }
50    payload.WithArray("assetModelProperties", std::move(assetModelPropertiesJsonList));
51 
52   }
53 
54   if(m_assetModelHierarchiesHasBeenSet)
55   {
56    Array<JsonValue> assetModelHierarchiesJsonList(m_assetModelHierarchies.size());
57    for(unsigned assetModelHierarchiesIndex = 0; assetModelHierarchiesIndex < assetModelHierarchiesJsonList.GetLength(); ++assetModelHierarchiesIndex)
58    {
59      assetModelHierarchiesJsonList[assetModelHierarchiesIndex].AsObject(m_assetModelHierarchies[assetModelHierarchiesIndex].Jsonize());
60    }
61    payload.WithArray("assetModelHierarchies", std::move(assetModelHierarchiesJsonList));
62 
63   }
64 
65   if(m_assetModelCompositeModelsHasBeenSet)
66   {
67    Array<JsonValue> assetModelCompositeModelsJsonList(m_assetModelCompositeModels.size());
68    for(unsigned assetModelCompositeModelsIndex = 0; assetModelCompositeModelsIndex < assetModelCompositeModelsJsonList.GetLength(); ++assetModelCompositeModelsIndex)
69    {
70      assetModelCompositeModelsJsonList[assetModelCompositeModelsIndex].AsObject(m_assetModelCompositeModels[assetModelCompositeModelsIndex].Jsonize());
71    }
72    payload.WithArray("assetModelCompositeModels", std::move(assetModelCompositeModelsJsonList));
73 
74   }
75 
76   if(m_clientTokenHasBeenSet)
77   {
78    payload.WithString("clientToken", m_clientToken);
79 
80   }
81 
82   if(m_tagsHasBeenSet)
83   {
84    JsonValue tagsJsonMap;
85    for(auto& tagsItem : m_tags)
86    {
87      tagsJsonMap.WithString(tagsItem.first, tagsItem.second);
88    }
89    payload.WithObject("tags", std::move(tagsJsonMap));
90 
91   }
92 
93   return payload.View().WriteReadable();
94 }
95 
96 
97 
98 
99