1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/lexv2-runtime/LexRuntimeV2_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/core/utils/memory/stl/AWSMap.h>
10 #include <aws/lexv2-runtime/model/IntentState.h>
11 #include <aws/lexv2-runtime/model/ConfirmationState.h>
12 #include <aws/lexv2-runtime/model/Slot.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace Utils
18 {
19 namespace Json
20 {
21   class JsonValue;
22   class JsonView;
23 } // namespace Json
24 } // namespace Utils
25 namespace LexRuntimeV2
26 {
27 namespace Model
28 {
29 
30   /**
31    * <p>The current intent that Amazon Lex V2 is attempting to fulfill.</p><p><h3>See
32    * Also:</h3>   <a
33    * href="http://docs.aws.amazon.com/goto/WebAPI/runtime.lex.v2-2020-08-07/Intent">AWS
34    * API Reference</a></p>
35    */
36   class AWS_LEXRUNTIMEV2_API Intent
37   {
38   public:
39     Intent();
40     Intent(Aws::Utils::Json::JsonView jsonValue);
41     Intent& operator=(Aws::Utils::Json::JsonView jsonValue);
42     Aws::Utils::Json::JsonValue Jsonize() const;
43 
44 
45     /**
46      * <p>The name of the intent.</p>
47      */
GetName()48     inline const Aws::String& GetName() const{ return m_name; }
49 
50     /**
51      * <p>The name of the intent.</p>
52      */
NameHasBeenSet()53     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
54 
55     /**
56      * <p>The name of the intent.</p>
57      */
SetName(const Aws::String & value)58     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
59 
60     /**
61      * <p>The name of the intent.</p>
62      */
SetName(Aws::String && value)63     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
64 
65     /**
66      * <p>The name of the intent.</p>
67      */
SetName(const char * value)68     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
69 
70     /**
71      * <p>The name of the intent.</p>
72      */
WithName(const Aws::String & value)73     inline Intent& WithName(const Aws::String& value) { SetName(value); return *this;}
74 
75     /**
76      * <p>The name of the intent.</p>
77      */
WithName(Aws::String && value)78     inline Intent& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
79 
80     /**
81      * <p>The name of the intent.</p>
82      */
WithName(const char * value)83     inline Intent& WithName(const char* value) { SetName(value); return *this;}
84 
85 
86     /**
87      * <p>A map of all of the slots for the intent. The name of the slot maps to the
88      * value of the slot. If a slot has not been filled, the value is null.</p>
89      */
GetSlots()90     inline const Aws::Map<Aws::String, Slot>& GetSlots() const{ return m_slots; }
91 
92     /**
93      * <p>A map of all of the slots for the intent. The name of the slot maps to the
94      * value of the slot. If a slot has not been filled, the value is null.</p>
95      */
SlotsHasBeenSet()96     inline bool SlotsHasBeenSet() const { return m_slotsHasBeenSet; }
97 
98     /**
99      * <p>A map of all of the slots for the intent. The name of the slot maps to the
100      * value of the slot. If a slot has not been filled, the value is null.</p>
101      */
SetSlots(const Aws::Map<Aws::String,Slot> & value)102     inline void SetSlots(const Aws::Map<Aws::String, Slot>& value) { m_slotsHasBeenSet = true; m_slots = value; }
103 
104     /**
105      * <p>A map of all of the slots for the intent. The name of the slot maps to the
106      * value of the slot. If a slot has not been filled, the value is null.</p>
107      */
SetSlots(Aws::Map<Aws::String,Slot> && value)108     inline void SetSlots(Aws::Map<Aws::String, Slot>&& value) { m_slotsHasBeenSet = true; m_slots = std::move(value); }
109 
110     /**
111      * <p>A map of all of the slots for the intent. The name of the slot maps to the
112      * value of the slot. If a slot has not been filled, the value is null.</p>
113      */
WithSlots(const Aws::Map<Aws::String,Slot> & value)114     inline Intent& WithSlots(const Aws::Map<Aws::String, Slot>& value) { SetSlots(value); return *this;}
115 
116     /**
117      * <p>A map of all of the slots for the intent. The name of the slot maps to the
118      * value of the slot. If a slot has not been filled, the value is null.</p>
119      */
WithSlots(Aws::Map<Aws::String,Slot> && value)120     inline Intent& WithSlots(Aws::Map<Aws::String, Slot>&& value) { SetSlots(std::move(value)); return *this;}
121 
122     /**
123      * <p>A map of all of the slots for the intent. The name of the slot maps to the
124      * value of the slot. If a slot has not been filled, the value is null.</p>
125      */
AddSlots(const Aws::String & key,const Slot & value)126     inline Intent& AddSlots(const Aws::String& key, const Slot& value) { m_slotsHasBeenSet = true; m_slots.emplace(key, value); return *this; }
127 
128     /**
129      * <p>A map of all of the slots for the intent. The name of the slot maps to the
130      * value of the slot. If a slot has not been filled, the value is null.</p>
131      */
AddSlots(Aws::String && key,const Slot & value)132     inline Intent& AddSlots(Aws::String&& key, const Slot& value) { m_slotsHasBeenSet = true; m_slots.emplace(std::move(key), value); return *this; }
133 
134     /**
135      * <p>A map of all of the slots for the intent. The name of the slot maps to the
136      * value of the slot. If a slot has not been filled, the value is null.</p>
137      */
AddSlots(const Aws::String & key,Slot && value)138     inline Intent& AddSlots(const Aws::String& key, Slot&& value) { m_slotsHasBeenSet = true; m_slots.emplace(key, std::move(value)); return *this; }
139 
140     /**
141      * <p>A map of all of the slots for the intent. The name of the slot maps to the
142      * value of the slot. If a slot has not been filled, the value is null.</p>
143      */
AddSlots(Aws::String && key,Slot && value)144     inline Intent& AddSlots(Aws::String&& key, Slot&& value) { m_slotsHasBeenSet = true; m_slots.emplace(std::move(key), std::move(value)); return *this; }
145 
146     /**
147      * <p>A map of all of the slots for the intent. The name of the slot maps to the
148      * value of the slot. If a slot has not been filled, the value is null.</p>
149      */
AddSlots(const char * key,Slot && value)150     inline Intent& AddSlots(const char* key, Slot&& value) { m_slotsHasBeenSet = true; m_slots.emplace(key, std::move(value)); return *this; }
151 
152     /**
153      * <p>A map of all of the slots for the intent. The name of the slot maps to the
154      * value of the slot. If a slot has not been filled, the value is null.</p>
155      */
AddSlots(const char * key,const Slot & value)156     inline Intent& AddSlots(const char* key, const Slot& value) { m_slotsHasBeenSet = true; m_slots.emplace(key, value); return *this; }
157 
158 
159     /**
160      * <p>Contains fulfillment information for the intent. </p>
161      */
GetState()162     inline const IntentState& GetState() const{ return m_state; }
163 
164     /**
165      * <p>Contains fulfillment information for the intent. </p>
166      */
StateHasBeenSet()167     inline bool StateHasBeenSet() const { return m_stateHasBeenSet; }
168 
169     /**
170      * <p>Contains fulfillment information for the intent. </p>
171      */
SetState(const IntentState & value)172     inline void SetState(const IntentState& value) { m_stateHasBeenSet = true; m_state = value; }
173 
174     /**
175      * <p>Contains fulfillment information for the intent. </p>
176      */
SetState(IntentState && value)177     inline void SetState(IntentState&& value) { m_stateHasBeenSet = true; m_state = std::move(value); }
178 
179     /**
180      * <p>Contains fulfillment information for the intent. </p>
181      */
WithState(const IntentState & value)182     inline Intent& WithState(const IntentState& value) { SetState(value); return *this;}
183 
184     /**
185      * <p>Contains fulfillment information for the intent. </p>
186      */
WithState(IntentState && value)187     inline Intent& WithState(IntentState&& value) { SetState(std::move(value)); return *this;}
188 
189 
190     /**
191      * <p>Contains information about whether fulfillment of the intent has been
192      * confirmed.</p>
193      */
GetConfirmationState()194     inline const ConfirmationState& GetConfirmationState() const{ return m_confirmationState; }
195 
196     /**
197      * <p>Contains information about whether fulfillment of the intent has been
198      * confirmed.</p>
199      */
ConfirmationStateHasBeenSet()200     inline bool ConfirmationStateHasBeenSet() const { return m_confirmationStateHasBeenSet; }
201 
202     /**
203      * <p>Contains information about whether fulfillment of the intent has been
204      * confirmed.</p>
205      */
SetConfirmationState(const ConfirmationState & value)206     inline void SetConfirmationState(const ConfirmationState& value) { m_confirmationStateHasBeenSet = true; m_confirmationState = value; }
207 
208     /**
209      * <p>Contains information about whether fulfillment of the intent has been
210      * confirmed.</p>
211      */
SetConfirmationState(ConfirmationState && value)212     inline void SetConfirmationState(ConfirmationState&& value) { m_confirmationStateHasBeenSet = true; m_confirmationState = std::move(value); }
213 
214     /**
215      * <p>Contains information about whether fulfillment of the intent has been
216      * confirmed.</p>
217      */
WithConfirmationState(const ConfirmationState & value)218     inline Intent& WithConfirmationState(const ConfirmationState& value) { SetConfirmationState(value); return *this;}
219 
220     /**
221      * <p>Contains information about whether fulfillment of the intent has been
222      * confirmed.</p>
223      */
WithConfirmationState(ConfirmationState && value)224     inline Intent& WithConfirmationState(ConfirmationState&& value) { SetConfirmationState(std::move(value)); return *this;}
225 
226   private:
227 
228     Aws::String m_name;
229     bool m_nameHasBeenSet;
230 
231     Aws::Map<Aws::String, Slot> m_slots;
232     bool m_slotsHasBeenSet;
233 
234     IntentState m_state;
235     bool m_stateHasBeenSet;
236 
237     ConfirmationState m_confirmationState;
238     bool m_confirmationStateHasBeenSet;
239   };
240 
241 } // namespace Model
242 } // namespace LexRuntimeV2
243 } // namespace Aws
244