1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #include <aws/quicksight/model/Parameters.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 QuickSight
17 {
18 namespace Model
19 {
20 
Parameters()21 Parameters::Parameters() :
22     m_stringParametersHasBeenSet(false),
23     m_integerParametersHasBeenSet(false),
24     m_decimalParametersHasBeenSet(false),
25     m_dateTimeParametersHasBeenSet(false)
26 {
27 }
28 
Parameters(JsonView jsonValue)29 Parameters::Parameters(JsonView jsonValue) :
30     m_stringParametersHasBeenSet(false),
31     m_integerParametersHasBeenSet(false),
32     m_decimalParametersHasBeenSet(false),
33     m_dateTimeParametersHasBeenSet(false)
34 {
35   *this = jsonValue;
36 }
37 
operator =(JsonView jsonValue)38 Parameters& Parameters::operator =(JsonView jsonValue)
39 {
40   if(jsonValue.ValueExists("StringParameters"))
41   {
42     Array<JsonView> stringParametersJsonList = jsonValue.GetArray("StringParameters");
43     for(unsigned stringParametersIndex = 0; stringParametersIndex < stringParametersJsonList.GetLength(); ++stringParametersIndex)
44     {
45       m_stringParameters.push_back(stringParametersJsonList[stringParametersIndex].AsObject());
46     }
47     m_stringParametersHasBeenSet = true;
48   }
49 
50   if(jsonValue.ValueExists("IntegerParameters"))
51   {
52     Array<JsonView> integerParametersJsonList = jsonValue.GetArray("IntegerParameters");
53     for(unsigned integerParametersIndex = 0; integerParametersIndex < integerParametersJsonList.GetLength(); ++integerParametersIndex)
54     {
55       m_integerParameters.push_back(integerParametersJsonList[integerParametersIndex].AsObject());
56     }
57     m_integerParametersHasBeenSet = true;
58   }
59 
60   if(jsonValue.ValueExists("DecimalParameters"))
61   {
62     Array<JsonView> decimalParametersJsonList = jsonValue.GetArray("DecimalParameters");
63     for(unsigned decimalParametersIndex = 0; decimalParametersIndex < decimalParametersJsonList.GetLength(); ++decimalParametersIndex)
64     {
65       m_decimalParameters.push_back(decimalParametersJsonList[decimalParametersIndex].AsObject());
66     }
67     m_decimalParametersHasBeenSet = true;
68   }
69 
70   if(jsonValue.ValueExists("DateTimeParameters"))
71   {
72     Array<JsonView> dateTimeParametersJsonList = jsonValue.GetArray("DateTimeParameters");
73     for(unsigned dateTimeParametersIndex = 0; dateTimeParametersIndex < dateTimeParametersJsonList.GetLength(); ++dateTimeParametersIndex)
74     {
75       m_dateTimeParameters.push_back(dateTimeParametersJsonList[dateTimeParametersIndex].AsObject());
76     }
77     m_dateTimeParametersHasBeenSet = true;
78   }
79 
80   return *this;
81 }
82 
Jsonize() const83 JsonValue Parameters::Jsonize() const
84 {
85   JsonValue payload;
86 
87   if(m_stringParametersHasBeenSet)
88   {
89    Array<JsonValue> stringParametersJsonList(m_stringParameters.size());
90    for(unsigned stringParametersIndex = 0; stringParametersIndex < stringParametersJsonList.GetLength(); ++stringParametersIndex)
91    {
92      stringParametersJsonList[stringParametersIndex].AsObject(m_stringParameters[stringParametersIndex].Jsonize());
93    }
94    payload.WithArray("StringParameters", std::move(stringParametersJsonList));
95 
96   }
97 
98   if(m_integerParametersHasBeenSet)
99   {
100    Array<JsonValue> integerParametersJsonList(m_integerParameters.size());
101    for(unsigned integerParametersIndex = 0; integerParametersIndex < integerParametersJsonList.GetLength(); ++integerParametersIndex)
102    {
103      integerParametersJsonList[integerParametersIndex].AsObject(m_integerParameters[integerParametersIndex].Jsonize());
104    }
105    payload.WithArray("IntegerParameters", std::move(integerParametersJsonList));
106 
107   }
108 
109   if(m_decimalParametersHasBeenSet)
110   {
111    Array<JsonValue> decimalParametersJsonList(m_decimalParameters.size());
112    for(unsigned decimalParametersIndex = 0; decimalParametersIndex < decimalParametersJsonList.GetLength(); ++decimalParametersIndex)
113    {
114      decimalParametersJsonList[decimalParametersIndex].AsObject(m_decimalParameters[decimalParametersIndex].Jsonize());
115    }
116    payload.WithArray("DecimalParameters", std::move(decimalParametersJsonList));
117 
118   }
119 
120   if(m_dateTimeParametersHasBeenSet)
121   {
122    Array<JsonValue> dateTimeParametersJsonList(m_dateTimeParameters.size());
123    for(unsigned dateTimeParametersIndex = 0; dateTimeParametersIndex < dateTimeParametersJsonList.GetLength(); ++dateTimeParametersIndex)
124    {
125      dateTimeParametersJsonList[dateTimeParametersIndex].AsObject(m_dateTimeParameters[dateTimeParametersIndex].Jsonize());
126    }
127    payload.WithArray("DateTimeParameters", std::move(dateTimeParametersJsonList));
128 
129   }
130 
131   return payload;
132 }
133 
134 } // namespace Model
135 } // namespace QuickSight
136 } // namespace Aws
137