/** * 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 #include namespace Aws { namespace LexRuntimeV2 { namespace Model { /** */ class PutSessionRequest : public LexRuntimeV2Request { public: AWS_LEXRUNTIMEV2_API PutSessionRequest(); // 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 "PutSession"; } AWS_LEXRUNTIMEV2_API Aws::String SerializePayload() const override; AWS_LEXRUNTIMEV2_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

The identifier of the bot that receives the session data.

*/ inline const Aws::String& GetBotId() const{ return m_botId; } /** *

The identifier of the bot that receives the session data.

*/ inline bool BotIdHasBeenSet() const { return m_botIdHasBeenSet; } /** *

The identifier of the bot that receives the session data.

*/ inline void SetBotId(const Aws::String& value) { m_botIdHasBeenSet = true; m_botId = value; } /** *

The identifier of the bot that receives the session data.

*/ inline void SetBotId(Aws::String&& value) { m_botIdHasBeenSet = true; m_botId = std::move(value); } /** *

The identifier of the bot that receives the session data.

*/ inline void SetBotId(const char* value) { m_botIdHasBeenSet = true; m_botId.assign(value); } /** *

The identifier of the bot that receives the session data.

*/ inline PutSessionRequest& WithBotId(const Aws::String& value) { SetBotId(value); return *this;} /** *

The identifier of the bot that receives the session data.

*/ inline PutSessionRequest& WithBotId(Aws::String&& value) { SetBotId(std::move(value)); return *this;} /** *

The identifier of the bot that receives the session data.

*/ inline PutSessionRequest& WithBotId(const char* value) { SetBotId(value); return *this;} /** *

The alias identifier of the bot that receives the session data.

*/ inline const Aws::String& GetBotAliasId() const{ return m_botAliasId; } /** *

The alias identifier of the bot that receives the session data.

*/ inline bool BotAliasIdHasBeenSet() const { return m_botAliasIdHasBeenSet; } /** *

The alias identifier of the bot that receives the session data.

*/ inline void SetBotAliasId(const Aws::String& value) { m_botAliasIdHasBeenSet = true; m_botAliasId = value; } /** *

The alias identifier of the bot that receives the session data.

*/ inline void SetBotAliasId(Aws::String&& value) { m_botAliasIdHasBeenSet = true; m_botAliasId = std::move(value); } /** *

The alias identifier of the bot that receives the session data.

*/ inline void SetBotAliasId(const char* value) { m_botAliasIdHasBeenSet = true; m_botAliasId.assign(value); } /** *

The alias identifier of the bot that receives the session data.

*/ inline PutSessionRequest& WithBotAliasId(const Aws::String& value) { SetBotAliasId(value); return *this;} /** *

The alias identifier of the bot that receives the session data.

*/ inline PutSessionRequest& WithBotAliasId(Aws::String&& value) { SetBotAliasId(std::move(value)); return *this;} /** *

The alias identifier of the bot that receives the session data.

*/ inline PutSessionRequest& WithBotAliasId(const char* value) { SetBotAliasId(value); return *this;} /** *

The locale where the session is in use.

*/ inline const Aws::String& GetLocaleId() const{ return m_localeId; } /** *

The locale where the session is in use.

*/ inline bool LocaleIdHasBeenSet() const { return m_localeIdHasBeenSet; } /** *

The locale where the session is in use.

*/ inline void SetLocaleId(const Aws::String& value) { m_localeIdHasBeenSet = true; m_localeId = value; } /** *

The locale where the session is in use.

*/ inline void SetLocaleId(Aws::String&& value) { m_localeIdHasBeenSet = true; m_localeId = std::move(value); } /** *

The locale where the session is in use.

*/ inline void SetLocaleId(const char* value) { m_localeIdHasBeenSet = true; m_localeId.assign(value); } /** *

The locale where the session is in use.

*/ inline PutSessionRequest& WithLocaleId(const Aws::String& value) { SetLocaleId(value); return *this;} /** *

The locale where the session is in use.

*/ inline PutSessionRequest& WithLocaleId(Aws::String&& value) { SetLocaleId(std::move(value)); return *this;} /** *

The locale where the session is in use.

*/ inline PutSessionRequest& WithLocaleId(const char* value) { SetLocaleId(value); return *this;} /** *

The identifier of the session that receives the session data.

*/ inline const Aws::String& GetSessionId() const{ return m_sessionId; } /** *

The identifier of the session that receives the session data.

*/ inline bool SessionIdHasBeenSet() const { return m_sessionIdHasBeenSet; } /** *

The identifier of the session that receives the session data.

*/ inline void SetSessionId(const Aws::String& value) { m_sessionIdHasBeenSet = true; m_sessionId = value; } /** *

The identifier of the session that receives the session data.

*/ inline void SetSessionId(Aws::String&& value) { m_sessionIdHasBeenSet = true; m_sessionId = std::move(value); } /** *

The identifier of the session that receives the session data.

*/ inline void SetSessionId(const char* value) { m_sessionIdHasBeenSet = true; m_sessionId.assign(value); } /** *

The identifier of the session that receives the session data.

*/ inline PutSessionRequest& WithSessionId(const Aws::String& value) { SetSessionId(value); return *this;} /** *

The identifier of the session that receives the session data.

*/ inline PutSessionRequest& WithSessionId(Aws::String&& value) { SetSessionId(std::move(value)); return *this;} /** *

The identifier of the session that receives the session data.

*/ inline PutSessionRequest& WithSessionId(const char* value) { SetSessionId(value); return *this;} /** *

A list of messages to send to the user. Messages are sent in the order that * they are defined in the list.

*/ inline const Aws::Vector& GetMessages() const{ return m_messages; } /** *

A list of messages to send to the user. Messages are sent in the order that * they are defined in the list.

*/ inline bool MessagesHasBeenSet() const { return m_messagesHasBeenSet; } /** *

A list of messages to send to the user. Messages are sent in the order that * they are defined in the list.

*/ inline void SetMessages(const Aws::Vector& value) { m_messagesHasBeenSet = true; m_messages = value; } /** *

A list of messages to send to the user. Messages are sent in the order that * they are defined in the list.

*/ inline void SetMessages(Aws::Vector&& value) { m_messagesHasBeenSet = true; m_messages = std::move(value); } /** *

A list of messages to send to the user. Messages are sent in the order that * they are defined in the list.

*/ inline PutSessionRequest& WithMessages(const Aws::Vector& value) { SetMessages(value); return *this;} /** *

A list of messages to send to the user. Messages are sent in the order that * they are defined in the list.

*/ inline PutSessionRequest& WithMessages(Aws::Vector&& value) { SetMessages(std::move(value)); return *this;} /** *

A list of messages to send to the user. Messages are sent in the order that * they are defined in the list.

*/ inline PutSessionRequest& AddMessages(const Message& value) { m_messagesHasBeenSet = true; m_messages.push_back(value); return *this; } /** *

A list of messages to send to the user. Messages are sent in the order that * they are defined in the list.

*/ inline PutSessionRequest& AddMessages(Message&& value) { m_messagesHasBeenSet = true; m_messages.push_back(std::move(value)); return *this; } /** *

Sets the state of the session with the user. You can use this to set the * current intent, attributes, context, and dialog action. Use the dialog action to * determine the next step that Amazon Lex V2 should use in the conversation with * the user.

*/ inline const SessionState& GetSessionState() const{ return m_sessionState; } /** *

Sets the state of the session with the user. You can use this to set the * current intent, attributes, context, and dialog action. Use the dialog action to * determine the next step that Amazon Lex V2 should use in the conversation with * the user.

*/ inline bool SessionStateHasBeenSet() const { return m_sessionStateHasBeenSet; } /** *

Sets the state of the session with the user. You can use this to set the * current intent, attributes, context, and dialog action. Use the dialog action to * determine the next step that Amazon Lex V2 should use in the conversation with * the user.

*/ inline void SetSessionState(const SessionState& value) { m_sessionStateHasBeenSet = true; m_sessionState = value; } /** *

Sets the state of the session with the user. You can use this to set the * current intent, attributes, context, and dialog action. Use the dialog action to * determine the next step that Amazon Lex V2 should use in the conversation with * the user.

*/ inline void SetSessionState(SessionState&& value) { m_sessionStateHasBeenSet = true; m_sessionState = std::move(value); } /** *

Sets the state of the session with the user. You can use this to set the * current intent, attributes, context, and dialog action. Use the dialog action to * determine the next step that Amazon Lex V2 should use in the conversation with * the user.

*/ inline PutSessionRequest& WithSessionState(const SessionState& value) { SetSessionState(value); return *this;} /** *

Sets the state of the session with the user. You can use this to set the * current intent, attributes, context, and dialog action. Use the dialog action to * determine the next step that Amazon Lex V2 should use in the conversation with * the user.

*/ inline PutSessionRequest& WithSessionState(SessionState&& value) { SetSessionState(std::move(value)); return *this;} /** *

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

*/ inline PutSessionRequest& 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 V2 and the client * application.

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

*/ inline PutSessionRequest& 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 V2 and the client * application.

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

*/ inline PutSessionRequest& 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 V2 and the client * application.

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

*/ inline PutSessionRequest& 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 V2 and the client * application.

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

*/ inline PutSessionRequest& 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 V2 and the client * application.

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

*/ inline PutSessionRequest& 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 V2 and the client * application.

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

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

The message that Amazon Lex V2 returns in the response can be either text or * speech depending on the value of this parameter.

  • If the value * is text/plain; charset=utf-8, Amazon Lex V2 returns text in the * response.

*/ inline const Aws::String& GetResponseContentType() const{ return m_responseContentType; } /** *

The message that Amazon Lex V2 returns in the response can be either text or * speech depending on the value of this parameter.

  • If the value * is text/plain; charset=utf-8, Amazon Lex V2 returns text in the * response.

*/ inline bool ResponseContentTypeHasBeenSet() const { return m_responseContentTypeHasBeenSet; } /** *

The message that Amazon Lex V2 returns in the response can be either text or * speech depending on the value of this parameter.

  • If the value * is text/plain; charset=utf-8, Amazon Lex V2 returns text in the * response.

*/ inline void SetResponseContentType(const Aws::String& value) { m_responseContentTypeHasBeenSet = true; m_responseContentType = value; } /** *

The message that Amazon Lex V2 returns in the response can be either text or * speech depending on the value of this parameter.

  • If the value * is text/plain; charset=utf-8, Amazon Lex V2 returns text in the * response.

*/ inline void SetResponseContentType(Aws::String&& value) { m_responseContentTypeHasBeenSet = true; m_responseContentType = std::move(value); } /** *

The message that Amazon Lex V2 returns in the response can be either text or * speech depending on the value of this parameter.

  • If the value * is text/plain; charset=utf-8, Amazon Lex V2 returns text in the * response.

*/ inline void SetResponseContentType(const char* value) { m_responseContentTypeHasBeenSet = true; m_responseContentType.assign(value); } /** *

The message that Amazon Lex V2 returns in the response can be either text or * speech depending on the value of this parameter.

  • If the value * is text/plain; charset=utf-8, Amazon Lex V2 returns text in the * response.

*/ inline PutSessionRequest& WithResponseContentType(const Aws::String& value) { SetResponseContentType(value); return *this;} /** *

The message that Amazon Lex V2 returns in the response can be either text or * speech depending on the value of this parameter.

  • If the value * is text/plain; charset=utf-8, Amazon Lex V2 returns text in the * response.

*/ inline PutSessionRequest& WithResponseContentType(Aws::String&& value) { SetResponseContentType(std::move(value)); return *this;} /** *

The message that Amazon Lex V2 returns in the response can be either text or * speech depending on the value of this parameter.

  • If the value * is text/plain; charset=utf-8, Amazon Lex V2 returns text in the * response.

*/ inline PutSessionRequest& WithResponseContentType(const char* value) { SetResponseContentType(value); return *this;} private: Aws::String m_botId; bool m_botIdHasBeenSet = false; Aws::String m_botAliasId; bool m_botAliasIdHasBeenSet = false; Aws::String m_localeId; bool m_localeIdHasBeenSet = false; Aws::String m_sessionId; bool m_sessionIdHasBeenSet = false; Aws::Vector m_messages; bool m_messagesHasBeenSet = false; SessionState m_sessionState; bool m_sessionStateHasBeenSet = false; Aws::Map m_requestAttributes; bool m_requestAttributesHasBeenSet = false; Aws::String m_responseContentType; bool m_responseContentTypeHasBeenSet = false; }; } // namespace Model } // namespace LexRuntimeV2 } // namespace Aws