1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #include <aws/forecast/model/ParameterRanges.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 ForecastService
17 {
18 namespace Model
19 {
20 
ParameterRanges()21 ParameterRanges::ParameterRanges() :
22     m_categoricalParameterRangesHasBeenSet(false),
23     m_continuousParameterRangesHasBeenSet(false),
24     m_integerParameterRangesHasBeenSet(false)
25 {
26 }
27 
ParameterRanges(JsonView jsonValue)28 ParameterRanges::ParameterRanges(JsonView jsonValue) :
29     m_categoricalParameterRangesHasBeenSet(false),
30     m_continuousParameterRangesHasBeenSet(false),
31     m_integerParameterRangesHasBeenSet(false)
32 {
33   *this = jsonValue;
34 }
35 
operator =(JsonView jsonValue)36 ParameterRanges& ParameterRanges::operator =(JsonView jsonValue)
37 {
38   if(jsonValue.ValueExists("CategoricalParameterRanges"))
39   {
40     Array<JsonView> categoricalParameterRangesJsonList = jsonValue.GetArray("CategoricalParameterRanges");
41     for(unsigned categoricalParameterRangesIndex = 0; categoricalParameterRangesIndex < categoricalParameterRangesJsonList.GetLength(); ++categoricalParameterRangesIndex)
42     {
43       m_categoricalParameterRanges.push_back(categoricalParameterRangesJsonList[categoricalParameterRangesIndex].AsObject());
44     }
45     m_categoricalParameterRangesHasBeenSet = true;
46   }
47 
48   if(jsonValue.ValueExists("ContinuousParameterRanges"))
49   {
50     Array<JsonView> continuousParameterRangesJsonList = jsonValue.GetArray("ContinuousParameterRanges");
51     for(unsigned continuousParameterRangesIndex = 0; continuousParameterRangesIndex < continuousParameterRangesJsonList.GetLength(); ++continuousParameterRangesIndex)
52     {
53       m_continuousParameterRanges.push_back(continuousParameterRangesJsonList[continuousParameterRangesIndex].AsObject());
54     }
55     m_continuousParameterRangesHasBeenSet = true;
56   }
57 
58   if(jsonValue.ValueExists("IntegerParameterRanges"))
59   {
60     Array<JsonView> integerParameterRangesJsonList = jsonValue.GetArray("IntegerParameterRanges");
61     for(unsigned integerParameterRangesIndex = 0; integerParameterRangesIndex < integerParameterRangesJsonList.GetLength(); ++integerParameterRangesIndex)
62     {
63       m_integerParameterRanges.push_back(integerParameterRangesJsonList[integerParameterRangesIndex].AsObject());
64     }
65     m_integerParameterRangesHasBeenSet = true;
66   }
67 
68   return *this;
69 }
70 
Jsonize() const71 JsonValue ParameterRanges::Jsonize() const
72 {
73   JsonValue payload;
74 
75   if(m_categoricalParameterRangesHasBeenSet)
76   {
77    Array<JsonValue> categoricalParameterRangesJsonList(m_categoricalParameterRanges.size());
78    for(unsigned categoricalParameterRangesIndex = 0; categoricalParameterRangesIndex < categoricalParameterRangesJsonList.GetLength(); ++categoricalParameterRangesIndex)
79    {
80      categoricalParameterRangesJsonList[categoricalParameterRangesIndex].AsObject(m_categoricalParameterRanges[categoricalParameterRangesIndex].Jsonize());
81    }
82    payload.WithArray("CategoricalParameterRanges", std::move(categoricalParameterRangesJsonList));
83 
84   }
85 
86   if(m_continuousParameterRangesHasBeenSet)
87   {
88    Array<JsonValue> continuousParameterRangesJsonList(m_continuousParameterRanges.size());
89    for(unsigned continuousParameterRangesIndex = 0; continuousParameterRangesIndex < continuousParameterRangesJsonList.GetLength(); ++continuousParameterRangesIndex)
90    {
91      continuousParameterRangesJsonList[continuousParameterRangesIndex].AsObject(m_continuousParameterRanges[continuousParameterRangesIndex].Jsonize());
92    }
93    payload.WithArray("ContinuousParameterRanges", std::move(continuousParameterRangesJsonList));
94 
95   }
96 
97   if(m_integerParameterRangesHasBeenSet)
98   {
99    Array<JsonValue> integerParameterRangesJsonList(m_integerParameterRanges.size());
100    for(unsigned integerParameterRangesIndex = 0; integerParameterRangesIndex < integerParameterRangesJsonList.GetLength(); ++integerParameterRangesIndex)
101    {
102      integerParameterRangesJsonList[integerParameterRangesIndex].AsObject(m_integerParameterRanges[integerParameterRangesIndex].Jsonize());
103    }
104    payload.WithArray("IntegerParameterRanges", std::move(integerParameterRangesJsonList));
105 
106   }
107 
108   return payload;
109 }
110 
111 } // namespace Model
112 } // namespace ForecastService
113 } // namespace Aws
114