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/lex/LexRuntimeService_EXPORTS.h>
8 #include <aws/lex/LexRuntimeServiceRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSMap.h>
11 #include <aws/core/utils/memory/stl/AWSVector.h>
12 #include <aws/lex/model/ActiveContext.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace LexRuntimeService
18 {
19 namespace Model
20 {
21 
22   /**
23    */
24   class AWS_LEXRUNTIMESERVICE_API PostTextRequest : public LexRuntimeServiceRequest
25   {
26   public:
27     PostTextRequest();
28 
29     // Service request name is the Operation name which will send this request out,
30     // each operation should has unique request name, so that we can get operation's name from this request.
31     // Note: this is not true for response, multiple operations may have the same response name,
32     // so we can not get operation's name from response.
GetServiceRequestName()33     inline virtual const char* GetServiceRequestName() const override { return "PostText"; }
34 
35     Aws::String SerializePayload() const override;
36 
37 
38     /**
39      * <p>The name of the Amazon Lex bot.</p>
40      */
GetBotName()41     inline const Aws::String& GetBotName() const{ return m_botName; }
42 
43     /**
44      * <p>The name of the Amazon Lex bot.</p>
45      */
BotNameHasBeenSet()46     inline bool BotNameHasBeenSet() const { return m_botNameHasBeenSet; }
47 
48     /**
49      * <p>The name of the Amazon Lex bot.</p>
50      */
SetBotName(const Aws::String & value)51     inline void SetBotName(const Aws::String& value) { m_botNameHasBeenSet = true; m_botName = value; }
52 
53     /**
54      * <p>The name of the Amazon Lex bot.</p>
55      */
SetBotName(Aws::String && value)56     inline void SetBotName(Aws::String&& value) { m_botNameHasBeenSet = true; m_botName = std::move(value); }
57 
58     /**
59      * <p>The name of the Amazon Lex bot.</p>
60      */
SetBotName(const char * value)61     inline void SetBotName(const char* value) { m_botNameHasBeenSet = true; m_botName.assign(value); }
62 
63     /**
64      * <p>The name of the Amazon Lex bot.</p>
65      */
WithBotName(const Aws::String & value)66     inline PostTextRequest& WithBotName(const Aws::String& value) { SetBotName(value); return *this;}
67 
68     /**
69      * <p>The name of the Amazon Lex bot.</p>
70      */
WithBotName(Aws::String && value)71     inline PostTextRequest& WithBotName(Aws::String&& value) { SetBotName(std::move(value)); return *this;}
72 
73     /**
74      * <p>The name of the Amazon Lex bot.</p>
75      */
WithBotName(const char * value)76     inline PostTextRequest& WithBotName(const char* value) { SetBotName(value); return *this;}
77 
78 
79     /**
80      * <p>The alias of the Amazon Lex bot.</p>
81      */
GetBotAlias()82     inline const Aws::String& GetBotAlias() const{ return m_botAlias; }
83 
84     /**
85      * <p>The alias of the Amazon Lex bot.</p>
86      */
BotAliasHasBeenSet()87     inline bool BotAliasHasBeenSet() const { return m_botAliasHasBeenSet; }
88 
89     /**
90      * <p>The alias of the Amazon Lex bot.</p>
91      */
SetBotAlias(const Aws::String & value)92     inline void SetBotAlias(const Aws::String& value) { m_botAliasHasBeenSet = true; m_botAlias = value; }
93 
94     /**
95      * <p>The alias of the Amazon Lex bot.</p>
96      */
SetBotAlias(Aws::String && value)97     inline void SetBotAlias(Aws::String&& value) { m_botAliasHasBeenSet = true; m_botAlias = std::move(value); }
98 
99     /**
100      * <p>The alias of the Amazon Lex bot.</p>
101      */
SetBotAlias(const char * value)102     inline void SetBotAlias(const char* value) { m_botAliasHasBeenSet = true; m_botAlias.assign(value); }
103 
104     /**
105      * <p>The alias of the Amazon Lex bot.</p>
106      */
WithBotAlias(const Aws::String & value)107     inline PostTextRequest& WithBotAlias(const Aws::String& value) { SetBotAlias(value); return *this;}
108 
109     /**
110      * <p>The alias of the Amazon Lex bot.</p>
111      */
WithBotAlias(Aws::String && value)112     inline PostTextRequest& WithBotAlias(Aws::String&& value) { SetBotAlias(std::move(value)); return *this;}
113 
114     /**
115      * <p>The alias of the Amazon Lex bot.</p>
116      */
WithBotAlias(const char * value)117     inline PostTextRequest& WithBotAlias(const char* value) { SetBotAlias(value); return *this;}
118 
119 
120     /**
121      * <p>The ID of the client application user. Amazon Lex uses this to identify a
122      * user's conversation with your bot. At runtime, each request must contain the
123      * <code>userID</code> field.</p> <p>To decide the user ID to use for your
124      * application, consider the following factors.</p> <ul> <li> <p>The
125      * <code>userID</code> field must not contain any personally identifiable
126      * information of the user, for example, name, personal identification numbers, or
127      * other end user personal information.</p> </li> <li> <p>If you want a user to
128      * start a conversation on one device and continue on another device, use a
129      * user-specific identifier.</p> </li> <li> <p>If you want the same user to be able
130      * to have two independent conversations on two different devices, choose a
131      * device-specific identifier.</p> </li> <li> <p>A user can't have two independent
132      * conversations with two different versions of the same bot. For example, a user
133      * can't have a conversation with the PROD and BETA versions of the same bot. If
134      * you anticipate that a user will need to have conversation with two different
135      * versions, for example, while testing, include the bot alias in the user ID to
136      * separate the two conversations.</p> </li> </ul>
137      */
GetUserId()138     inline const Aws::String& GetUserId() const{ return m_userId; }
139 
140     /**
141      * <p>The ID of the client application user. Amazon Lex uses this to identify a
142      * user's conversation with your bot. At runtime, each request must contain the
143      * <code>userID</code> field.</p> <p>To decide the user ID to use for your
144      * application, consider the following factors.</p> <ul> <li> <p>The
145      * <code>userID</code> field must not contain any personally identifiable
146      * information of the user, for example, name, personal identification numbers, or
147      * other end user personal information.</p> </li> <li> <p>If you want a user to
148      * start a conversation on one device and continue on another device, use a
149      * user-specific identifier.</p> </li> <li> <p>If you want the same user to be able
150      * to have two independent conversations on two different devices, choose a
151      * device-specific identifier.</p> </li> <li> <p>A user can't have two independent
152      * conversations with two different versions of the same bot. For example, a user
153      * can't have a conversation with the PROD and BETA versions of the same bot. If
154      * you anticipate that a user will need to have conversation with two different
155      * versions, for example, while testing, include the bot alias in the user ID to
156      * separate the two conversations.</p> </li> </ul>
157      */
UserIdHasBeenSet()158     inline bool UserIdHasBeenSet() const { return m_userIdHasBeenSet; }
159 
160     /**
161      * <p>The ID of the client application user. Amazon Lex uses this to identify a
162      * user's conversation with your bot. At runtime, each request must contain the
163      * <code>userID</code> field.</p> <p>To decide the user ID to use for your
164      * application, consider the following factors.</p> <ul> <li> <p>The
165      * <code>userID</code> field must not contain any personally identifiable
166      * information of the user, for example, name, personal identification numbers, or
167      * other end user personal information.</p> </li> <li> <p>If you want a user to
168      * start a conversation on one device and continue on another device, use a
169      * user-specific identifier.</p> </li> <li> <p>If you want the same user to be able
170      * to have two independent conversations on two different devices, choose a
171      * device-specific identifier.</p> </li> <li> <p>A user can't have two independent
172      * conversations with two different versions of the same bot. For example, a user
173      * can't have a conversation with the PROD and BETA versions of the same bot. If
174      * you anticipate that a user will need to have conversation with two different
175      * versions, for example, while testing, include the bot alias in the user ID to
176      * separate the two conversations.</p> </li> </ul>
177      */
SetUserId(const Aws::String & value)178     inline void SetUserId(const Aws::String& value) { m_userIdHasBeenSet = true; m_userId = value; }
179 
180     /**
181      * <p>The ID of the client application user. Amazon Lex uses this to identify a
182      * user's conversation with your bot. At runtime, each request must contain the
183      * <code>userID</code> field.</p> <p>To decide the user ID to use for your
184      * application, consider the following factors.</p> <ul> <li> <p>The
185      * <code>userID</code> field must not contain any personally identifiable
186      * information of the user, for example, name, personal identification numbers, or
187      * other end user personal information.</p> </li> <li> <p>If you want a user to
188      * start a conversation on one device and continue on another device, use a
189      * user-specific identifier.</p> </li> <li> <p>If you want the same user to be able
190      * to have two independent conversations on two different devices, choose a
191      * device-specific identifier.</p> </li> <li> <p>A user can't have two independent
192      * conversations with two different versions of the same bot. For example, a user
193      * can't have a conversation with the PROD and BETA versions of the same bot. If
194      * you anticipate that a user will need to have conversation with two different
195      * versions, for example, while testing, include the bot alias in the user ID to
196      * separate the two conversations.</p> </li> </ul>
197      */
SetUserId(Aws::String && value)198     inline void SetUserId(Aws::String&& value) { m_userIdHasBeenSet = true; m_userId = std::move(value); }
199 
200     /**
201      * <p>The ID of the client application user. Amazon Lex uses this to identify a
202      * user's conversation with your bot. At runtime, each request must contain the
203      * <code>userID</code> field.</p> <p>To decide the user ID to use for your
204      * application, consider the following factors.</p> <ul> <li> <p>The
205      * <code>userID</code> field must not contain any personally identifiable
206      * information of the user, for example, name, personal identification numbers, or
207      * other end user personal information.</p> </li> <li> <p>If you want a user to
208      * start a conversation on one device and continue on another device, use a
209      * user-specific identifier.</p> </li> <li> <p>If you want the same user to be able
210      * to have two independent conversations on two different devices, choose a
211      * device-specific identifier.</p> </li> <li> <p>A user can't have two independent
212      * conversations with two different versions of the same bot. For example, a user
213      * can't have a conversation with the PROD and BETA versions of the same bot. If
214      * you anticipate that a user will need to have conversation with two different
215      * versions, for example, while testing, include the bot alias in the user ID to
216      * separate the two conversations.</p> </li> </ul>
217      */
SetUserId(const char * value)218     inline void SetUserId(const char* value) { m_userIdHasBeenSet = true; m_userId.assign(value); }
219 
220     /**
221      * <p>The ID of the client application user. Amazon Lex uses this to identify a
222      * user's conversation with your bot. At runtime, each request must contain the
223      * <code>userID</code> field.</p> <p>To decide the user ID to use for your
224      * application, consider the following factors.</p> <ul> <li> <p>The
225      * <code>userID</code> field must not contain any personally identifiable
226      * information of the user, for example, name, personal identification numbers, or
227      * other end user personal information.</p> </li> <li> <p>If you want a user to
228      * start a conversation on one device and continue on another device, use a
229      * user-specific identifier.</p> </li> <li> <p>If you want the same user to be able
230      * to have two independent conversations on two different devices, choose a
231      * device-specific identifier.</p> </li> <li> <p>A user can't have two independent
232      * conversations with two different versions of the same bot. For example, a user
233      * can't have a conversation with the PROD and BETA versions of the same bot. If
234      * you anticipate that a user will need to have conversation with two different
235      * versions, for example, while testing, include the bot alias in the user ID to
236      * separate the two conversations.</p> </li> </ul>
237      */
WithUserId(const Aws::String & value)238     inline PostTextRequest& WithUserId(const Aws::String& value) { SetUserId(value); return *this;}
239 
240     /**
241      * <p>The ID of the client application user. Amazon Lex uses this to identify a
242      * user's conversation with your bot. At runtime, each request must contain the
243      * <code>userID</code> field.</p> <p>To decide the user ID to use for your
244      * application, consider the following factors.</p> <ul> <li> <p>The
245      * <code>userID</code> field must not contain any personally identifiable
246      * information of the user, for example, name, personal identification numbers, or
247      * other end user personal information.</p> </li> <li> <p>If you want a user to
248      * start a conversation on one device and continue on another device, use a
249      * user-specific identifier.</p> </li> <li> <p>If you want the same user to be able
250      * to have two independent conversations on two different devices, choose a
251      * device-specific identifier.</p> </li> <li> <p>A user can't have two independent
252      * conversations with two different versions of the same bot. For example, a user
253      * can't have a conversation with the PROD and BETA versions of the same bot. If
254      * you anticipate that a user will need to have conversation with two different
255      * versions, for example, while testing, include the bot alias in the user ID to
256      * separate the two conversations.</p> </li> </ul>
257      */
WithUserId(Aws::String && value)258     inline PostTextRequest& WithUserId(Aws::String&& value) { SetUserId(std::move(value)); return *this;}
259 
260     /**
261      * <p>The ID of the client application user. Amazon Lex uses this to identify a
262      * user's conversation with your bot. At runtime, each request must contain the
263      * <code>userID</code> field.</p> <p>To decide the user ID to use for your
264      * application, consider the following factors.</p> <ul> <li> <p>The
265      * <code>userID</code> field must not contain any personally identifiable
266      * information of the user, for example, name, personal identification numbers, or
267      * other end user personal information.</p> </li> <li> <p>If you want a user to
268      * start a conversation on one device and continue on another device, use a
269      * user-specific identifier.</p> </li> <li> <p>If you want the same user to be able
270      * to have two independent conversations on two different devices, choose a
271      * device-specific identifier.</p> </li> <li> <p>A user can't have two independent
272      * conversations with two different versions of the same bot. For example, a user
273      * can't have a conversation with the PROD and BETA versions of the same bot. If
274      * you anticipate that a user will need to have conversation with two different
275      * versions, for example, while testing, include the bot alias in the user ID to
276      * separate the two conversations.</p> </li> </ul>
277      */
WithUserId(const char * value)278     inline PostTextRequest& WithUserId(const char* value) { SetUserId(value); return *this;}
279 
280 
281     /**
282      * <p>Application-specific information passed between Amazon Lex and a client
283      * application.</p> <p>For more information, see <a
284      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-session-attribs">Setting
285      * Session Attributes</a>.</p>
286      */
GetSessionAttributes()287     inline const Aws::Map<Aws::String, Aws::String>& GetSessionAttributes() const{ return m_sessionAttributes; }
288 
289     /**
290      * <p>Application-specific information passed between Amazon Lex and a client
291      * application.</p> <p>For more information, see <a
292      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-session-attribs">Setting
293      * Session Attributes</a>.</p>
294      */
SessionAttributesHasBeenSet()295     inline bool SessionAttributesHasBeenSet() const { return m_sessionAttributesHasBeenSet; }
296 
297     /**
298      * <p>Application-specific information passed between Amazon Lex and a client
299      * application.</p> <p>For more information, see <a
300      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-session-attribs">Setting
301      * Session Attributes</a>.</p>
302      */
SetSessionAttributes(const Aws::Map<Aws::String,Aws::String> & value)303     inline void SetSessionAttributes(const Aws::Map<Aws::String, Aws::String>& value) { m_sessionAttributesHasBeenSet = true; m_sessionAttributes = value; }
304 
305     /**
306      * <p>Application-specific information passed between Amazon Lex and a client
307      * application.</p> <p>For more information, see <a
308      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-session-attribs">Setting
309      * Session Attributes</a>.</p>
310      */
SetSessionAttributes(Aws::Map<Aws::String,Aws::String> && value)311     inline void SetSessionAttributes(Aws::Map<Aws::String, Aws::String>&& value) { m_sessionAttributesHasBeenSet = true; m_sessionAttributes = std::move(value); }
312 
313     /**
314      * <p>Application-specific information passed between Amazon Lex and a client
315      * application.</p> <p>For more information, see <a
316      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-session-attribs">Setting
317      * Session Attributes</a>.</p>
318      */
WithSessionAttributes(const Aws::Map<Aws::String,Aws::String> & value)319     inline PostTextRequest& WithSessionAttributes(const Aws::Map<Aws::String, Aws::String>& value) { SetSessionAttributes(value); return *this;}
320 
321     /**
322      * <p>Application-specific information passed between Amazon Lex and a client
323      * application.</p> <p>For more information, see <a
324      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-session-attribs">Setting
325      * Session Attributes</a>.</p>
326      */
WithSessionAttributes(Aws::Map<Aws::String,Aws::String> && value)327     inline PostTextRequest& WithSessionAttributes(Aws::Map<Aws::String, Aws::String>&& value) { SetSessionAttributes(std::move(value)); return *this;}
328 
329     /**
330      * <p>Application-specific information passed between Amazon Lex and a client
331      * application.</p> <p>For more information, see <a
332      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-session-attribs">Setting
333      * Session Attributes</a>.</p>
334      */
AddSessionAttributes(const Aws::String & key,const Aws::String & value)335     inline PostTextRequest& AddSessionAttributes(const Aws::String& key, const Aws::String& value) { m_sessionAttributesHasBeenSet = true; m_sessionAttributes.emplace(key, value); return *this; }
336 
337     /**
338      * <p>Application-specific information passed between Amazon Lex and a client
339      * application.</p> <p>For more information, see <a
340      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-session-attribs">Setting
341      * Session Attributes</a>.</p>
342      */
AddSessionAttributes(Aws::String && key,const Aws::String & value)343     inline PostTextRequest& AddSessionAttributes(Aws::String&& key, const Aws::String& value) { m_sessionAttributesHasBeenSet = true; m_sessionAttributes.emplace(std::move(key), value); return *this; }
344 
345     /**
346      * <p>Application-specific information passed between Amazon Lex and a client
347      * application.</p> <p>For more information, see <a
348      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-session-attribs">Setting
349      * Session Attributes</a>.</p>
350      */
AddSessionAttributes(const Aws::String & key,Aws::String && value)351     inline PostTextRequest& AddSessionAttributes(const Aws::String& key, Aws::String&& value) { m_sessionAttributesHasBeenSet = true; m_sessionAttributes.emplace(key, std::move(value)); return *this; }
352 
353     /**
354      * <p>Application-specific information passed between Amazon Lex and a client
355      * application.</p> <p>For more information, see <a
356      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-session-attribs">Setting
357      * Session Attributes</a>.</p>
358      */
AddSessionAttributes(Aws::String && key,Aws::String && value)359     inline PostTextRequest& AddSessionAttributes(Aws::String&& key, Aws::String&& value) { m_sessionAttributesHasBeenSet = true; m_sessionAttributes.emplace(std::move(key), std::move(value)); return *this; }
360 
361     /**
362      * <p>Application-specific information passed between Amazon Lex and a client
363      * application.</p> <p>For more information, see <a
364      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-session-attribs">Setting
365      * Session Attributes</a>.</p>
366      */
AddSessionAttributes(const char * key,Aws::String && value)367     inline PostTextRequest& AddSessionAttributes(const char* key, Aws::String&& value) { m_sessionAttributesHasBeenSet = true; m_sessionAttributes.emplace(key, std::move(value)); return *this; }
368 
369     /**
370      * <p>Application-specific information passed between Amazon Lex and a client
371      * application.</p> <p>For more information, see <a
372      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-session-attribs">Setting
373      * Session Attributes</a>.</p>
374      */
AddSessionAttributes(Aws::String && key,const char * value)375     inline PostTextRequest& AddSessionAttributes(Aws::String&& key, const char* value) { m_sessionAttributesHasBeenSet = true; m_sessionAttributes.emplace(std::move(key), value); return *this; }
376 
377     /**
378      * <p>Application-specific information passed between Amazon Lex and a client
379      * application.</p> <p>For more information, see <a
380      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-session-attribs">Setting
381      * Session Attributes</a>.</p>
382      */
AddSessionAttributes(const char * key,const char * value)383     inline PostTextRequest& AddSessionAttributes(const char* key, const char* value) { m_sessionAttributesHasBeenSet = true; m_sessionAttributes.emplace(key, value); return *this; }
384 
385 
386     /**
387      * <p>Request-specific information passed between Amazon Lex and a client
388      * application.</p> <p>The namespace <code>x-amz-lex:</code> is reserved for
389      * special attributes. Don't create any request attributes with the prefix
390      * <code>x-amz-lex:</code>.</p> <p>For more information, see <a
391      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-request-attribs">Setting
392      * Request Attributes</a>.</p>
393      */
GetRequestAttributes()394     inline const Aws::Map<Aws::String, Aws::String>& GetRequestAttributes() const{ return m_requestAttributes; }
395 
396     /**
397      * <p>Request-specific information passed between Amazon Lex and a client
398      * application.</p> <p>The namespace <code>x-amz-lex:</code> is reserved for
399      * special attributes. Don't create any request attributes with the prefix
400      * <code>x-amz-lex:</code>.</p> <p>For more information, see <a
401      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-request-attribs">Setting
402      * Request Attributes</a>.</p>
403      */
RequestAttributesHasBeenSet()404     inline bool RequestAttributesHasBeenSet() const { return m_requestAttributesHasBeenSet; }
405 
406     /**
407      * <p>Request-specific information passed between Amazon Lex and a client
408      * application.</p> <p>The namespace <code>x-amz-lex:</code> is reserved for
409      * special attributes. Don't create any request attributes with the prefix
410      * <code>x-amz-lex:</code>.</p> <p>For more information, see <a
411      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-request-attribs">Setting
412      * Request Attributes</a>.</p>
413      */
SetRequestAttributes(const Aws::Map<Aws::String,Aws::String> & value)414     inline void SetRequestAttributes(const Aws::Map<Aws::String, Aws::String>& value) { m_requestAttributesHasBeenSet = true; m_requestAttributes = value; }
415 
416     /**
417      * <p>Request-specific information passed between Amazon Lex and a client
418      * application.</p> <p>The namespace <code>x-amz-lex:</code> is reserved for
419      * special attributes. Don't create any request attributes with the prefix
420      * <code>x-amz-lex:</code>.</p> <p>For more information, see <a
421      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-request-attribs">Setting
422      * Request Attributes</a>.</p>
423      */
SetRequestAttributes(Aws::Map<Aws::String,Aws::String> && value)424     inline void SetRequestAttributes(Aws::Map<Aws::String, Aws::String>&& value) { m_requestAttributesHasBeenSet = true; m_requestAttributes = std::move(value); }
425 
426     /**
427      * <p>Request-specific information passed between Amazon Lex and a client
428      * application.</p> <p>The namespace <code>x-amz-lex:</code> is reserved for
429      * special attributes. Don't create any request attributes with the prefix
430      * <code>x-amz-lex:</code>.</p> <p>For more information, see <a
431      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-request-attribs">Setting
432      * Request Attributes</a>.</p>
433      */
WithRequestAttributes(const Aws::Map<Aws::String,Aws::String> & value)434     inline PostTextRequest& WithRequestAttributes(const Aws::Map<Aws::String, Aws::String>& value) { SetRequestAttributes(value); return *this;}
435 
436     /**
437      * <p>Request-specific information passed between Amazon Lex and a client
438      * application.</p> <p>The namespace <code>x-amz-lex:</code> is reserved for
439      * special attributes. Don't create any request attributes with the prefix
440      * <code>x-amz-lex:</code>.</p> <p>For more information, see <a
441      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-request-attribs">Setting
442      * Request Attributes</a>.</p>
443      */
WithRequestAttributes(Aws::Map<Aws::String,Aws::String> && value)444     inline PostTextRequest& WithRequestAttributes(Aws::Map<Aws::String, Aws::String>&& value) { SetRequestAttributes(std::move(value)); return *this;}
445 
446     /**
447      * <p>Request-specific information passed between Amazon Lex and a client
448      * application.</p> <p>The namespace <code>x-amz-lex:</code> is reserved for
449      * special attributes. Don't create any request attributes with the prefix
450      * <code>x-amz-lex:</code>.</p> <p>For more information, see <a
451      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-request-attribs">Setting
452      * Request Attributes</a>.</p>
453      */
AddRequestAttributes(const Aws::String & key,const Aws::String & value)454     inline PostTextRequest& AddRequestAttributes(const Aws::String& key, const Aws::String& value) { m_requestAttributesHasBeenSet = true; m_requestAttributes.emplace(key, value); return *this; }
455 
456     /**
457      * <p>Request-specific information passed between Amazon Lex and a client
458      * application.</p> <p>The namespace <code>x-amz-lex:</code> is reserved for
459      * special attributes. Don't create any request attributes with the prefix
460      * <code>x-amz-lex:</code>.</p> <p>For more information, see <a
461      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-request-attribs">Setting
462      * Request Attributes</a>.</p>
463      */
AddRequestAttributes(Aws::String && key,const Aws::String & value)464     inline PostTextRequest& AddRequestAttributes(Aws::String&& key, const Aws::String& value) { m_requestAttributesHasBeenSet = true; m_requestAttributes.emplace(std::move(key), value); return *this; }
465 
466     /**
467      * <p>Request-specific information passed between Amazon Lex and a client
468      * application.</p> <p>The namespace <code>x-amz-lex:</code> is reserved for
469      * special attributes. Don't create any request attributes with the prefix
470      * <code>x-amz-lex:</code>.</p> <p>For more information, see <a
471      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-request-attribs">Setting
472      * Request Attributes</a>.</p>
473      */
AddRequestAttributes(const Aws::String & key,Aws::String && value)474     inline PostTextRequest& AddRequestAttributes(const Aws::String& key, Aws::String&& value) { m_requestAttributesHasBeenSet = true; m_requestAttributes.emplace(key, std::move(value)); return *this; }
475 
476     /**
477      * <p>Request-specific information passed between Amazon Lex and a client
478      * application.</p> <p>The namespace <code>x-amz-lex:</code> is reserved for
479      * special attributes. Don't create any request attributes with the prefix
480      * <code>x-amz-lex:</code>.</p> <p>For more information, see <a
481      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-request-attribs">Setting
482      * Request Attributes</a>.</p>
483      */
AddRequestAttributes(Aws::String && key,Aws::String && value)484     inline PostTextRequest& AddRequestAttributes(Aws::String&& key, Aws::String&& value) { m_requestAttributesHasBeenSet = true; m_requestAttributes.emplace(std::move(key), std::move(value)); return *this; }
485 
486     /**
487      * <p>Request-specific information passed between Amazon Lex and a client
488      * application.</p> <p>The namespace <code>x-amz-lex:</code> is reserved for
489      * special attributes. Don't create any request attributes with the prefix
490      * <code>x-amz-lex:</code>.</p> <p>For more information, see <a
491      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-request-attribs">Setting
492      * Request Attributes</a>.</p>
493      */
AddRequestAttributes(const char * key,Aws::String && value)494     inline PostTextRequest& AddRequestAttributes(const char* key, Aws::String&& value) { m_requestAttributesHasBeenSet = true; m_requestAttributes.emplace(key, std::move(value)); return *this; }
495 
496     /**
497      * <p>Request-specific information passed between Amazon Lex and a client
498      * application.</p> <p>The namespace <code>x-amz-lex:</code> is reserved for
499      * special attributes. Don't create any request attributes with the prefix
500      * <code>x-amz-lex:</code>.</p> <p>For more information, see <a
501      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-request-attribs">Setting
502      * Request Attributes</a>.</p>
503      */
AddRequestAttributes(Aws::String && key,const char * value)504     inline PostTextRequest& AddRequestAttributes(Aws::String&& key, const char* value) { m_requestAttributesHasBeenSet = true; m_requestAttributes.emplace(std::move(key), value); return *this; }
505 
506     /**
507      * <p>Request-specific information passed between Amazon Lex and a client
508      * application.</p> <p>The namespace <code>x-amz-lex:</code> is reserved for
509      * special attributes. Don't create any request attributes with the prefix
510      * <code>x-amz-lex:</code>.</p> <p>For more information, see <a
511      * href="https://docs.aws.amazon.com/lex/latest/dg/context-mgmt.html#context-mgmt-request-attribs">Setting
512      * Request Attributes</a>.</p>
513      */
AddRequestAttributes(const char * key,const char * value)514     inline PostTextRequest& AddRequestAttributes(const char* key, const char* value) { m_requestAttributesHasBeenSet = true; m_requestAttributes.emplace(key, value); return *this; }
515 
516 
517     /**
518      * <p>The text that the user entered (Amazon Lex interprets this text).</p>
519      */
GetInputText()520     inline const Aws::String& GetInputText() const{ return m_inputText; }
521 
522     /**
523      * <p>The text that the user entered (Amazon Lex interprets this text).</p>
524      */
InputTextHasBeenSet()525     inline bool InputTextHasBeenSet() const { return m_inputTextHasBeenSet; }
526 
527     /**
528      * <p>The text that the user entered (Amazon Lex interprets this text).</p>
529      */
SetInputText(const Aws::String & value)530     inline void SetInputText(const Aws::String& value) { m_inputTextHasBeenSet = true; m_inputText = value; }
531 
532     /**
533      * <p>The text that the user entered (Amazon Lex interprets this text).</p>
534      */
SetInputText(Aws::String && value)535     inline void SetInputText(Aws::String&& value) { m_inputTextHasBeenSet = true; m_inputText = std::move(value); }
536 
537     /**
538      * <p>The text that the user entered (Amazon Lex interprets this text).</p>
539      */
SetInputText(const char * value)540     inline void SetInputText(const char* value) { m_inputTextHasBeenSet = true; m_inputText.assign(value); }
541 
542     /**
543      * <p>The text that the user entered (Amazon Lex interprets this text).</p>
544      */
WithInputText(const Aws::String & value)545     inline PostTextRequest& WithInputText(const Aws::String& value) { SetInputText(value); return *this;}
546 
547     /**
548      * <p>The text that the user entered (Amazon Lex interprets this text).</p>
549      */
WithInputText(Aws::String && value)550     inline PostTextRequest& WithInputText(Aws::String&& value) { SetInputText(std::move(value)); return *this;}
551 
552     /**
553      * <p>The text that the user entered (Amazon Lex interprets this text).</p>
554      */
WithInputText(const char * value)555     inline PostTextRequest& WithInputText(const char* value) { SetInputText(value); return *this;}
556 
557 
558     /**
559      * <p>A list of contexts active for the request. A context can be activated when a
560      * previous intent is fulfilled, or by including the context in the request,</p>
561      * <p>If you don't specify a list of contexts, Amazon Lex will use the current list
562      * of contexts for the session. If you specify an empty list, all contexts for the
563      * session are cleared.</p>
564      */
GetActiveContexts()565     inline const Aws::Vector<ActiveContext>& GetActiveContexts() const{ return m_activeContexts; }
566 
567     /**
568      * <p>A list of contexts active for the request. A context can be activated when a
569      * previous intent is fulfilled, or by including the context in the request,</p>
570      * <p>If you don't specify a list of contexts, Amazon Lex will use the current list
571      * of contexts for the session. If you specify an empty list, all contexts for the
572      * session are cleared.</p>
573      */
ActiveContextsHasBeenSet()574     inline bool ActiveContextsHasBeenSet() const { return m_activeContextsHasBeenSet; }
575 
576     /**
577      * <p>A list of contexts active for the request. A context can be activated when a
578      * previous intent is fulfilled, or by including the context in the request,</p>
579      * <p>If you don't specify a list of contexts, Amazon Lex will use the current list
580      * of contexts for the session. If you specify an empty list, all contexts for the
581      * session are cleared.</p>
582      */
SetActiveContexts(const Aws::Vector<ActiveContext> & value)583     inline void SetActiveContexts(const Aws::Vector<ActiveContext>& value) { m_activeContextsHasBeenSet = true; m_activeContexts = value; }
584 
585     /**
586      * <p>A list of contexts active for the request. A context can be activated when a
587      * previous intent is fulfilled, or by including the context in the request,</p>
588      * <p>If you don't specify a list of contexts, Amazon Lex will use the current list
589      * of contexts for the session. If you specify an empty list, all contexts for the
590      * session are cleared.</p>
591      */
SetActiveContexts(Aws::Vector<ActiveContext> && value)592     inline void SetActiveContexts(Aws::Vector<ActiveContext>&& value) { m_activeContextsHasBeenSet = true; m_activeContexts = std::move(value); }
593 
594     /**
595      * <p>A list of contexts active for the request. A context can be activated when a
596      * previous intent is fulfilled, or by including the context in the request,</p>
597      * <p>If you don't specify a list of contexts, Amazon Lex will use the current list
598      * of contexts for the session. If you specify an empty list, all contexts for the
599      * session are cleared.</p>
600      */
WithActiveContexts(const Aws::Vector<ActiveContext> & value)601     inline PostTextRequest& WithActiveContexts(const Aws::Vector<ActiveContext>& value) { SetActiveContexts(value); return *this;}
602 
603     /**
604      * <p>A list of contexts active for the request. A context can be activated when a
605      * previous intent is fulfilled, or by including the context in the request,</p>
606      * <p>If you don't specify a list of contexts, Amazon Lex will use the current list
607      * of contexts for the session. If you specify an empty list, all contexts for the
608      * session are cleared.</p>
609      */
WithActiveContexts(Aws::Vector<ActiveContext> && value)610     inline PostTextRequest& WithActiveContexts(Aws::Vector<ActiveContext>&& value) { SetActiveContexts(std::move(value)); return *this;}
611 
612     /**
613      * <p>A list of contexts active for the request. A context can be activated when a
614      * previous intent is fulfilled, or by including the context in the request,</p>
615      * <p>If you don't specify a list of contexts, Amazon Lex will use the current list
616      * of contexts for the session. If you specify an empty list, all contexts for the
617      * session are cleared.</p>
618      */
AddActiveContexts(const ActiveContext & value)619     inline PostTextRequest& AddActiveContexts(const ActiveContext& value) { m_activeContextsHasBeenSet = true; m_activeContexts.push_back(value); return *this; }
620 
621     /**
622      * <p>A list of contexts active for the request. A context can be activated when a
623      * previous intent is fulfilled, or by including the context in the request,</p>
624      * <p>If you don't specify a list of contexts, Amazon Lex will use the current list
625      * of contexts for the session. If you specify an empty list, all contexts for the
626      * session are cleared.</p>
627      */
AddActiveContexts(ActiveContext && value)628     inline PostTextRequest& AddActiveContexts(ActiveContext&& value) { m_activeContextsHasBeenSet = true; m_activeContexts.push_back(std::move(value)); return *this; }
629 
630   private:
631 
632     Aws::String m_botName;
633     bool m_botNameHasBeenSet;
634 
635     Aws::String m_botAlias;
636     bool m_botAliasHasBeenSet;
637 
638     Aws::String m_userId;
639     bool m_userIdHasBeenSet;
640 
641     Aws::Map<Aws::String, Aws::String> m_sessionAttributes;
642     bool m_sessionAttributesHasBeenSet;
643 
644     Aws::Map<Aws::String, Aws::String> m_requestAttributes;
645     bool m_requestAttributesHasBeenSet;
646 
647     Aws::String m_inputText;
648     bool m_inputTextHasBeenSet;
649 
650     Aws::Vector<ActiveContext> m_activeContexts;
651     bool m_activeContextsHasBeenSet;
652   };
653 
654 } // namespace Model
655 } // namespace LexRuntimeService
656 } // namespace Aws
657