1 /**
2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3 * SPDX-License-Identifier: Apache-2.0.
4 */
5
6 #include <aws/lexv2-models/model/SlotValueElicitationSetting.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 LexModelsV2
17 {
18 namespace Model
19 {
20
SlotValueElicitationSetting()21 SlotValueElicitationSetting::SlotValueElicitationSetting() :
22 m_defaultValueSpecificationHasBeenSet(false),
23 m_slotConstraint(SlotConstraint::NOT_SET),
24 m_slotConstraintHasBeenSet(false),
25 m_promptSpecificationHasBeenSet(false),
26 m_sampleUtterancesHasBeenSet(false),
27 m_waitAndContinueSpecificationHasBeenSet(false)
28 {
29 }
30
SlotValueElicitationSetting(JsonView jsonValue)31 SlotValueElicitationSetting::SlotValueElicitationSetting(JsonView jsonValue) :
32 m_defaultValueSpecificationHasBeenSet(false),
33 m_slotConstraint(SlotConstraint::NOT_SET),
34 m_slotConstraintHasBeenSet(false),
35 m_promptSpecificationHasBeenSet(false),
36 m_sampleUtterancesHasBeenSet(false),
37 m_waitAndContinueSpecificationHasBeenSet(false)
38 {
39 *this = jsonValue;
40 }
41
operator =(JsonView jsonValue)42 SlotValueElicitationSetting& SlotValueElicitationSetting::operator =(JsonView jsonValue)
43 {
44 if(jsonValue.ValueExists("defaultValueSpecification"))
45 {
46 m_defaultValueSpecification = jsonValue.GetObject("defaultValueSpecification");
47
48 m_defaultValueSpecificationHasBeenSet = true;
49 }
50
51 if(jsonValue.ValueExists("slotConstraint"))
52 {
53 m_slotConstraint = SlotConstraintMapper::GetSlotConstraintForName(jsonValue.GetString("slotConstraint"));
54
55 m_slotConstraintHasBeenSet = true;
56 }
57
58 if(jsonValue.ValueExists("promptSpecification"))
59 {
60 m_promptSpecification = jsonValue.GetObject("promptSpecification");
61
62 m_promptSpecificationHasBeenSet = true;
63 }
64
65 if(jsonValue.ValueExists("sampleUtterances"))
66 {
67 Array<JsonView> sampleUtterancesJsonList = jsonValue.GetArray("sampleUtterances");
68 for(unsigned sampleUtterancesIndex = 0; sampleUtterancesIndex < sampleUtterancesJsonList.GetLength(); ++sampleUtterancesIndex)
69 {
70 m_sampleUtterances.push_back(sampleUtterancesJsonList[sampleUtterancesIndex].AsObject());
71 }
72 m_sampleUtterancesHasBeenSet = true;
73 }
74
75 if(jsonValue.ValueExists("waitAndContinueSpecification"))
76 {
77 m_waitAndContinueSpecification = jsonValue.GetObject("waitAndContinueSpecification");
78
79 m_waitAndContinueSpecificationHasBeenSet = true;
80 }
81
82 return *this;
83 }
84
Jsonize() const85 JsonValue SlotValueElicitationSetting::Jsonize() const
86 {
87 JsonValue payload;
88
89 if(m_defaultValueSpecificationHasBeenSet)
90 {
91 payload.WithObject("defaultValueSpecification", m_defaultValueSpecification.Jsonize());
92
93 }
94
95 if(m_slotConstraintHasBeenSet)
96 {
97 payload.WithString("slotConstraint", SlotConstraintMapper::GetNameForSlotConstraint(m_slotConstraint));
98 }
99
100 if(m_promptSpecificationHasBeenSet)
101 {
102 payload.WithObject("promptSpecification", m_promptSpecification.Jsonize());
103
104 }
105
106 if(m_sampleUtterancesHasBeenSet)
107 {
108 Array<JsonValue> sampleUtterancesJsonList(m_sampleUtterances.size());
109 for(unsigned sampleUtterancesIndex = 0; sampleUtterancesIndex < sampleUtterancesJsonList.GetLength(); ++sampleUtterancesIndex)
110 {
111 sampleUtterancesJsonList[sampleUtterancesIndex].AsObject(m_sampleUtterances[sampleUtterancesIndex].Jsonize());
112 }
113 payload.WithArray("sampleUtterances", std::move(sampleUtterancesJsonList));
114
115 }
116
117 if(m_waitAndContinueSpecificationHasBeenSet)
118 {
119 payload.WithObject("waitAndContinueSpecification", m_waitAndContinueSpecification.Jsonize());
120
121 }
122
123 return payload;
124 }
125
126 } // namespace Model
127 } // namespace LexModelsV2
128 } // namespace Aws
129