/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include namespace Aws { namespace LexRuntimeService { namespace Model { /** */ class PostTextRequest : public LexRuntimeServiceRequest { public: AWS_LEXRUNTIMESERVICE_API PostTextRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "PostText"; } AWS_LEXRUNTIMESERVICE_API Aws::String SerializePayload() const override; /** *

The name of the Amazon Lex bot.

*/ inline const Aws::String& GetBotName() const{ return m_botName; } /** *

The name of the Amazon Lex bot.

*/ inline bool BotNameHasBeenSet() const { return m_botNameHasBeenSet; } /** *

The name of the Amazon Lex bot.

*/ inline void SetBotName(const Aws::String& value) { m_botNameHasBeenSet = true; m_botName = value; } /** *

The name of the Amazon Lex bot.

*/ inline void SetBotName(Aws::String&& value) { m_botNameHasBeenSet = true; m_botName = std::move(value); } /** *

The name of the Amazon Lex bot.

*/ inline void SetBotName(const char* value) { m_botNameHasBeenSet = true; m_botName.assign(value); } /** *

The name of the Amazon Lex bot.

*/ inline PostTextRequest& WithBotName(const Aws::String& value) { SetBotName(value); return *this;} /** *

The name of the Amazon Lex bot.

*/ inline PostTextRequest& WithBotName(Aws::String&& value) { SetBotName(std::move(value)); return *this;} /** *

The name of the Amazon Lex bot.

*/ inline PostTextRequest& WithBotName(const char* value) { SetBotName(value); return *this;} /** *

The alias of the Amazon Lex bot.

*/ inline const Aws::String& GetBotAlias() const{ return m_botAlias; } /** *

The alias of the Amazon Lex bot.

*/ inline bool BotAliasHasBeenSet() const { return m_botAliasHasBeenSet; } /** *

The alias of the Amazon Lex bot.

*/ inline void SetBotAlias(const Aws::String& value) { m_botAliasHasBeenSet = true; m_botAlias = value; } /** *

The alias of the Amazon Lex bot.

*/ inline void SetBotAlias(Aws::String&& value) { m_botAliasHasBeenSet = true; m_botAlias = std::move(value); } /** *

The alias of the Amazon Lex bot.

*/ inline void SetBotAlias(const char* value) { m_botAliasHasBeenSet = true; m_botAlias.assign(value); } /** *

The alias of the Amazon Lex bot.

*/ inline PostTextRequest& WithBotAlias(const Aws::String& value) { SetBotAlias(value); return *this;} /** *

The alias of the Amazon Lex bot.

*/ inline PostTextRequest& WithBotAlias(Aws::String&& value) { SetBotAlias(std::move(value)); return *this;} /** *

The alias of the Amazon Lex bot.

*/ inline PostTextRequest& WithBotAlias(const char* value) { SetBotAlias(value); return *this;} /** *

The ID of the client application user. Amazon Lex uses this to identify a * user's conversation with your bot. At runtime, each request must contain the * userID field.

To decide the user ID to use for your * application, consider the following factors.

  • The * userID field must not contain any personally identifiable * information of the user, for example, name, personal identification numbers, or * other end user personal information.

  • If you want a user to * start a conversation on one device and continue on another device, use a * user-specific identifier.

  • If you want the same user to be able * to have two independent conversations on two different devices, choose a * device-specific identifier.

  • A user can't have two independent * conversations with two different versions of the same bot. For example, a user * can't have a conversation with the PROD and BETA versions of the same bot. If * you anticipate that a user will need to have conversation with two different * versions, for example, while testing, include the bot alias in the user ID to * separate the two conversations.

*/ inline const Aws::String& GetUserId() const{ return m_userId; } /** *

The ID of the client application user. Amazon Lex uses this to identify a * user's conversation with your bot. At runtime, each request must contain the * userID field.

To decide the user ID to use for your * application, consider the following factors.

  • The * userID field must not contain any personally identifiable * information of the user, for example, name, personal identification numbers, or * other end user personal information.

  • If you want a user to * start a conversation on one device and continue on another device, use a * user-specific identifier.

  • If you want the same user to be able * to have two independent conversations on two different devices, choose a * device-specific identifier.

  • A user can't have two independent * conversations with two different versions of the same bot. For example, a user * can't have a conversation with the PROD and BETA versions of the same bot. If * you anticipate that a user will need to have conversation with two different * versions, for example, while testing, include the bot alias in the user ID to * separate the two conversations.

*/ inline bool UserIdHasBeenSet() const { return m_userIdHasBeenSet; } /** *

The ID of the client application user. Amazon Lex uses this to identify a * user's conversation with your bot. At runtime, each request must contain the * userID field.

To decide the user ID to use for your * application, consider the following factors.

  • The * userID field must not contain any personally identifiable * information of the user, for example, name, personal identification numbers, or * other end user personal information.

  • If you want a user to * start a conversation on one device and continue on another device, use a * user-specific identifier.

  • If you want the same user to be able * to have two independent conversations on two different devices, choose a * device-specific identifier.

  • A user can't have two independent * conversations with two different versions of the same bot. For example, a user * can't have a conversation with the PROD and BETA versions of the same bot. If * you anticipate that a user will need to have conversation with two different * versions, for example, while testing, include the bot alias in the user ID to * separate the two conversations.

*/ inline void SetUserId(const Aws::String& value) { m_userIdHasBeenSet = true; m_userId = value; } /** *

The ID of the client application user. Amazon Lex uses this to identify a * user's conversation with your bot. At runtime, each request must contain the * userID field.

To decide the user ID to use for your * application, consider the following factors.

  • The * userID field must not contain any personally identifiable * information of the user, for example, name, personal identification numbers, or * other end user personal information.

  • If you want a user to * start a conversation on one device and continue on another device, use a * user-specific identifier.

  • If you want the same user to be able * to have two independent conversations on two different devices, choose a * device-specific identifier.

  • A user can't have two independent * conversations with two different versions of the same bot. For example, a user * can't have a conversation with the PROD and BETA versions of the same bot. If * you anticipate that a user will need to have conversation with two different * versions, for example, while testing, include the bot alias in the user ID to * separate the two conversations.

*/ inline void SetUserId(Aws::String&& value) { m_userIdHasBeenSet = true; m_userId = std::move(value); } /** *

The ID of the client application user. Amazon Lex uses this to identify a * user's conversation with your bot. At runtime, each request must contain the * userID field.

To decide the user ID to use for your * application, consider the following factors.

  • The * userID field must not contain any personally identifiable * information of the user, for example, name, personal identification numbers, or * other end user personal information.

  • If you want a user to * start a conversation on one device and continue on another device, use a * user-specific identifier.

  • If you want the same user to be able * to have two independent conversations on two different devices, choose a * device-specific identifier.

  • A user can't have two independent * conversations with two different versions of the same bot. For example, a user * can't have a conversation with the PROD and BETA versions of the same bot. If * you anticipate that a user will need to have conversation with two different * versions, for example, while testing, include the bot alias in the user ID to * separate the two conversations.

*/ inline void SetUserId(const char* value) { m_userIdHasBeenSet = true; m_userId.assign(value); } /** *

The ID of the client application user. Amazon Lex uses this to identify a * user's conversation with your bot. At runtime, each request must contain the * userID field.

To decide the user ID to use for your * application, consider the following factors.

  • The * userID field must not contain any personally identifiable * information of the user, for example, name, personal identification numbers, or * other end user personal information.

  • If you want a user to * start a conversation on one device and continue on another device, use a * user-specific identifier.

  • If you want the same user to be able * to have two independent conversations on two different devices, choose a * device-specific identifier.

  • A user can't have two independent * conversations with two different versions of the same bot. For example, a user * can't have a conversation with the PROD and BETA versions of the same bot. If * you anticipate that a user will need to have conversation with two different * versions, for example, while testing, include the bot alias in the user ID to * separate the two conversations.

*/ inline PostTextRequest& WithUserId(const Aws::String& value) { SetUserId(value); return *this;} /** *

The ID of the client application user. Amazon Lex uses this to identify a * user's conversation with your bot. At runtime, each request must contain the * userID field.

To decide the user ID to use for your * application, consider the following factors.

  • The * userID field must not contain any personally identifiable * information of the user, for example, name, personal identification numbers, or * other end user personal information.

  • If you want a user to * start a conversation on one device and continue on another device, use a * user-specific identifier.

  • If you want the same user to be able * to have two independent conversations on two different devices, choose a * device-specific identifier.

  • A user can't have two independent * conversations with two different versions of the same bot. For example, a user * can't have a conversation with the PROD and BETA versions of the same bot. If * you anticipate that a user will need to have conversation with two different * versions, for example, while testing, include the bot alias in the user ID to * separate the two conversations.

*/ inline PostTextRequest& WithUserId(Aws::String&& value) { SetUserId(std::move(value)); return *this;} /** *

The ID of the client application user. Amazon Lex uses this to identify a * user's conversation with your bot. At runtime, each request must contain the * userID field.

To decide the user ID to use for your * application, consider the following factors.

  • The * userID field must not contain any personally identifiable * information of the user, for example, name, personal identification numbers, or * other end user personal information.

  • If you want a user to * start a conversation on one device and continue on another device, use a * user-specific identifier.

  • If you want the same user to be able * to have two independent conversations on two different devices, choose a * device-specific identifier.

  • A user can't have two independent * conversations with two different versions of the same bot. For example, a user * can't have a conversation with the PROD and BETA versions of the same bot. If * you anticipate that a user will need to have conversation with two different * versions, for example, while testing, include the bot alias in the user ID to * separate the two conversations.

*/ inline PostTextRequest& WithUserId(const char* value) { SetUserId(value); return *this;} /** *

Application-specific information passed between Amazon Lex and a client * application.

For more information, see Setting * Session Attributes.

*/ inline const Aws::Map& GetSessionAttributes() const{ return m_sessionAttributes; } /** *

Application-specific information passed between Amazon Lex and a client * application.

For more information, see Setting * Session Attributes.

*/ inline bool SessionAttributesHasBeenSet() const { return m_sessionAttributesHasBeenSet; } /** *

Application-specific information passed between Amazon Lex and a client * application.

For more information, see Setting * Session Attributes.

*/ inline void SetSessionAttributes(const Aws::Map& value) { m_sessionAttributesHasBeenSet = true; m_sessionAttributes = value; } /** *

Application-specific information passed between Amazon Lex and a client * application.

For more information, see Setting * Session Attributes.

*/ inline void SetSessionAttributes(Aws::Map&& value) { m_sessionAttributesHasBeenSet = true; m_sessionAttributes = std::move(value); } /** *

Application-specific information passed between Amazon Lex and a client * application.

For more information, see Setting * Session Attributes.

*/ inline PostTextRequest& WithSessionAttributes(const Aws::Map& value) { SetSessionAttributes(value); return *this;} /** *

Application-specific information passed between Amazon Lex and a client * application.

For more information, see Setting * Session Attributes.

*/ inline PostTextRequest& WithSessionAttributes(Aws::Map&& value) { SetSessionAttributes(std::move(value)); return *this;} /** *

Application-specific information passed between Amazon Lex and a client * application.

For more information, see Setting * Session Attributes.

*/ inline PostTextRequest& AddSessionAttributes(const Aws::String& key, const Aws::String& value) { m_sessionAttributesHasBeenSet = true; m_sessionAttributes.emplace(key, value); return *this; } /** *

Application-specific information passed between Amazon Lex and a client * application.

For more information, see Setting * Session Attributes.

*/ inline PostTextRequest& AddSessionAttributes(Aws::String&& key, const Aws::String& value) { m_sessionAttributesHasBeenSet = true; m_sessionAttributes.emplace(std::move(key), value); return *this; } /** *

Application-specific information passed between Amazon Lex and a client * application.

For more information, see Setting * Session Attributes.

*/ inline PostTextRequest& AddSessionAttributes(const Aws::String& key, Aws::String&& value) { m_sessionAttributesHasBeenSet = true; m_sessionAttributes.emplace(key, std::move(value)); return *this; } /** *

Application-specific information passed between Amazon Lex and a client * application.

For more information, see Setting * Session Attributes.

*/ inline PostTextRequest& AddSessionAttributes(Aws::String&& key, Aws::String&& value) { m_sessionAttributesHasBeenSet = true; m_sessionAttributes.emplace(std::move(key), std::move(value)); return *this; } /** *

Application-specific information passed between Amazon Lex and a client * application.

For more information, see Setting * Session Attributes.

*/ inline PostTextRequest& AddSessionAttributes(const char* key, Aws::String&& value) { m_sessionAttributesHasBeenSet = true; m_sessionAttributes.emplace(key, std::move(value)); return *this; } /** *

Application-specific information passed between Amazon Lex and a client * application.

For more information, see Setting * Session Attributes.

*/ inline PostTextRequest& AddSessionAttributes(Aws::String&& key, const char* value) { m_sessionAttributesHasBeenSet = true; m_sessionAttributes.emplace(std::move(key), value); return *this; } /** *

Application-specific information passed between Amazon Lex and a client * application.

For more information, see Setting * Session Attributes.

*/ inline PostTextRequest& AddSessionAttributes(const char* key, const char* value) { m_sessionAttributesHasBeenSet = true; m_sessionAttributes.emplace(key, value); return *this; } /** *

Request-specific information passed between Amazon Lex and a client * application.

The namespace x-amz-lex: is reserved for * special attributes. Don't create any request attributes with the prefix * x-amz-lex:.

For more information, see Setting * Request Attributes.

*/ inline const Aws::Map& GetRequestAttributes() const{ return m_requestAttributes; } /** *

Request-specific information passed between Amazon Lex and a client * application.

The namespace x-amz-lex: is reserved for * special attributes. Don't create any request attributes with the prefix * x-amz-lex:.

For more information, see Setting * Request Attributes.

*/ inline bool RequestAttributesHasBeenSet() const { return m_requestAttributesHasBeenSet; } /** *

Request-specific information passed between Amazon Lex and a client * application.

The namespace x-amz-lex: is reserved for * special attributes. Don't create any request attributes with the prefix * x-amz-lex:.

For more information, see Setting * Request Attributes.

*/ inline void SetRequestAttributes(const Aws::Map& value) { m_requestAttributesHasBeenSet = true; m_requestAttributes = value; } /** *

Request-specific information passed between Amazon Lex and a client * application.

The namespace x-amz-lex: is reserved for * special attributes. Don't create any request attributes with the prefix * x-amz-lex:.

For more information, see Setting * Request Attributes.

*/ inline void SetRequestAttributes(Aws::Map&& value) { m_requestAttributesHasBeenSet = true; m_requestAttributes = std::move(value); } /** *

Request-specific information passed between Amazon Lex and a client * application.

The namespace x-amz-lex: is reserved for * special attributes. Don't create any request attributes with the prefix * x-amz-lex:.

For more information, see Setting * Request Attributes.

*/ inline PostTextRequest& WithRequestAttributes(const Aws::Map& value) { SetRequestAttributes(value); return *this;} /** *

Request-specific information passed between Amazon Lex and a client * application.

The namespace x-amz-lex: is reserved for * special attributes. Don't create any request attributes with the prefix * x-amz-lex:.

For more information, see Setting * Request Attributes.

*/ inline PostTextRequest& WithRequestAttributes(Aws::Map&& value) { SetRequestAttributes(std::move(value)); return *this;} /** *

Request-specific information passed between Amazon Lex and a client * application.

The namespace x-amz-lex: is reserved for * special attributes. Don't create any request attributes with the prefix * x-amz-lex:.

For more information, see Setting * Request Attributes.

*/ inline PostTextRequest& AddRequestAttributes(const Aws::String& key, const Aws::String& value) { m_requestAttributesHasBeenSet = true; m_requestAttributes.emplace(key, value); return *this; } /** *

Request-specific information passed between Amazon Lex and a client * application.

The namespace x-amz-lex: is reserved for * special attributes. Don't create any request attributes with the prefix * x-amz-lex:.

For more information, see Setting * Request Attributes.

*/ inline PostTextRequest& AddRequestAttributes(Aws::String&& key, const Aws::String& value) { m_requestAttributesHasBeenSet = true; m_requestAttributes.emplace(std::move(key), value); return *this; } /** *

Request-specific information passed between Amazon Lex and a client * application.

The namespace x-amz-lex: is reserved for * special attributes. Don't create any request attributes with the prefix * x-amz-lex:.

For more information, see Setting * Request Attributes.

*/ inline PostTextRequest& AddRequestAttributes(const Aws::String& key, Aws::String&& value) { m_requestAttributesHasBeenSet = true; m_requestAttributes.emplace(key, std::move(value)); return *this; } /** *

Request-specific information passed between Amazon Lex and a client * application.

The namespace x-amz-lex: is reserved for * special attributes. Don't create any request attributes with the prefix * x-amz-lex:.

For more information, see Setting * Request Attributes.

*/ inline PostTextRequest& AddRequestAttributes(Aws::String&& key, Aws::String&& value) { m_requestAttributesHasBeenSet = true; m_requestAttributes.emplace(std::move(key), std::move(value)); return *this; } /** *

Request-specific information passed between Amazon Lex and a client * application.

The namespace x-amz-lex: is reserved for * special attributes. Don't create any request attributes with the prefix * x-amz-lex:.

For more information, see Setting * Request Attributes.

*/ inline PostTextRequest& AddRequestAttributes(const char* key, Aws::String&& value) { m_requestAttributesHasBeenSet = true; m_requestAttributes.emplace(key, std::move(value)); return *this; } /** *

Request-specific information passed between Amazon Lex and a client * application.

The namespace x-amz-lex: is reserved for * special attributes. Don't create any request attributes with the prefix * x-amz-lex:.

For more information, see Setting * Request Attributes.

*/ inline PostTextRequest& AddRequestAttributes(Aws::String&& key, const char* value) { m_requestAttributesHasBeenSet = true; m_requestAttributes.emplace(std::move(key), value); return *this; } /** *

Request-specific information passed between Amazon Lex and a client * application.

The namespace x-amz-lex: is reserved for * special attributes. Don't create any request attributes with the prefix * x-amz-lex:.

For more information, see Setting * Request Attributes.

*/ inline PostTextRequest& AddRequestAttributes(const char* key, const char* value) { m_requestAttributesHasBeenSet = true; m_requestAttributes.emplace(key, value); return *this; } /** *

The text that the user entered (Amazon Lex interprets this text).

*/ inline const Aws::String& GetInputText() const{ return m_inputText; } /** *

The text that the user entered (Amazon Lex interprets this text).

*/ inline bool InputTextHasBeenSet() const { return m_inputTextHasBeenSet; } /** *

The text that the user entered (Amazon Lex interprets this text).

*/ inline void SetInputText(const Aws::String& value) { m_inputTextHasBeenSet = true; m_inputText = value; } /** *

The text that the user entered (Amazon Lex interprets this text).

*/ inline void SetInputText(Aws::String&& value) { m_inputTextHasBeenSet = true; m_inputText = std::move(value); } /** *

The text that the user entered (Amazon Lex interprets this text).

*/ inline void SetInputText(const char* value) { m_inputTextHasBeenSet = true; m_inputText.assign(value); } /** *

The text that the user entered (Amazon Lex interprets this text).

*/ inline PostTextRequest& WithInputText(const Aws::String& value) { SetInputText(value); return *this;} /** *

The text that the user entered (Amazon Lex interprets this text).

*/ inline PostTextRequest& WithInputText(Aws::String&& value) { SetInputText(std::move(value)); return *this;} /** *

The text that the user entered (Amazon Lex interprets this text).

*/ inline PostTextRequest& WithInputText(const char* value) { SetInputText(value); return *this;} /** *

A list of contexts active for the request. A context can be activated when a * previous intent is fulfilled, or by including the context in the request,

*

If you don't specify a list of contexts, Amazon Lex will use the current list * of contexts for the session. If you specify an empty list, all contexts for the * session are cleared.

*/ inline const Aws::Vector& GetActiveContexts() const{ return m_activeContexts; } /** *

A list of contexts active for the request. A context can be activated when a * previous intent is fulfilled, or by including the context in the request,

*

If you don't specify a list of contexts, Amazon Lex will use the current list * of contexts for the session. If you specify an empty list, all contexts for the * session are cleared.

*/ inline bool ActiveContextsHasBeenSet() const { return m_activeContextsHasBeenSet; } /** *

A list of contexts active for the request. A context can be activated when a * previous intent is fulfilled, or by including the context in the request,

*

If you don't specify a list of contexts, Amazon Lex will use the current list * of contexts for the session. If you specify an empty list, all contexts for the * session are cleared.

*/ inline void SetActiveContexts(const Aws::Vector& value) { m_activeContextsHasBeenSet = true; m_activeContexts = value; } /** *

A list of contexts active for the request. A context can be activated when a * previous intent is fulfilled, or by including the context in the request,

*

If you don't specify a list of contexts, Amazon Lex will use the current list * of contexts for the session. If you specify an empty list, all contexts for the * session are cleared.

*/ inline void SetActiveContexts(Aws::Vector&& value) { m_activeContextsHasBeenSet = true; m_activeContexts = std::move(value); } /** *

A list of contexts active for the request. A context can be activated when a * previous intent is fulfilled, or by including the context in the request,

*

If you don't specify a list of contexts, Amazon Lex will use the current list * of contexts for the session. If you specify an empty list, all contexts for the * session are cleared.

*/ inline PostTextRequest& WithActiveContexts(const Aws::Vector& value) { SetActiveContexts(value); return *this;} /** *

A list of contexts active for the request. A context can be activated when a * previous intent is fulfilled, or by including the context in the request,

*

If you don't specify a list of contexts, Amazon Lex will use the current list * of contexts for the session. If you specify an empty list, all contexts for the * session are cleared.

*/ inline PostTextRequest& WithActiveContexts(Aws::Vector&& value) { SetActiveContexts(std::move(value)); return *this;} /** *

A list of contexts active for the request. A context can be activated when a * previous intent is fulfilled, or by including the context in the request,

*

If you don't specify a list of contexts, Amazon Lex will use the current list * of contexts for the session. If you specify an empty list, all contexts for the * session are cleared.

*/ inline PostTextRequest& AddActiveContexts(const ActiveContext& value) { m_activeContextsHasBeenSet = true; m_activeContexts.push_back(value); return *this; } /** *

A list of contexts active for the request. A context can be activated when a * previous intent is fulfilled, or by including the context in the request,

*

If you don't specify a list of contexts, Amazon Lex will use the current list * of contexts for the session. If you specify an empty list, all contexts for the * session are cleared.

*/ inline PostTextRequest& AddActiveContexts(ActiveContext&& value) { m_activeContextsHasBeenSet = true; m_activeContexts.push_back(std::move(value)); return *this; } private: Aws::String m_botName; bool m_botNameHasBeenSet = false; Aws::String m_botAlias; bool m_botAliasHasBeenSet = false; Aws::String m_userId; bool m_userIdHasBeenSet = false; Aws::Map m_sessionAttributes; bool m_sessionAttributesHasBeenSet = false; Aws::Map m_requestAttributes; bool m_requestAttributesHasBeenSet = false; Aws::String m_inputText; bool m_inputTextHasBeenSet = false; Aws::Vector m_activeContexts; bool m_activeContextsHasBeenSet = false; }; } // namespace Model } // namespace LexRuntimeService } // namespace Aws