/** * 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 { template class AmazonWebServiceResult; namespace LexRuntimeService { namespace Model { class PutSessionResult { public: AWS_LEXRUNTIMESERVICE_API PutSessionResult(); //We have to define these because Microsoft doesn't auto generate them AWS_LEXRUNTIMESERVICE_API PutSessionResult(PutSessionResult&&); AWS_LEXRUNTIMESERVICE_API PutSessionResult& operator=(PutSessionResult&&); //we delete these because Microsoft doesn't handle move generation correctly //and we therefore don't trust them to get it right here either. PutSessionResult(const PutSessionResult&) = delete; PutSessionResult& operator=(const PutSessionResult&) = delete; AWS_LEXRUNTIMESERVICE_API PutSessionResult(Aws::AmazonWebServiceResult&& result); AWS_LEXRUNTIMESERVICE_API PutSessionResult& operator=(Aws::AmazonWebServiceResult&& result); /** *

Content type as specified in the Accept HTTP header in the * request.

*/ inline const Aws::String& GetContentType() const{ return m_contentType; } /** *

Content type as specified in the Accept HTTP header in the * request.

*/ inline void SetContentType(const Aws::String& value) { m_contentType = value; } /** *

Content type as specified in the Accept HTTP header in the * request.

*/ inline void SetContentType(Aws::String&& value) { m_contentType = std::move(value); } /** *

Content type as specified in the Accept HTTP header in the * request.

*/ inline void SetContentType(const char* value) { m_contentType.assign(value); } /** *

Content type as specified in the Accept HTTP header in the * request.

*/ inline PutSessionResult& WithContentType(const Aws::String& value) { SetContentType(value); return *this;} /** *

Content type as specified in the Accept HTTP header in the * request.

*/ inline PutSessionResult& WithContentType(Aws::String&& value) { SetContentType(std::move(value)); return *this;} /** *

Content type as specified in the Accept HTTP header in the * request.

*/ inline PutSessionResult& WithContentType(const char* value) { SetContentType(value); return *this;} /** *

The name of the current intent.

*/ inline const Aws::String& GetIntentName() const{ return m_intentName; } /** *

The name of the current intent.

*/ inline void SetIntentName(const Aws::String& value) { m_intentName = value; } /** *

The name of the current intent.

*/ inline void SetIntentName(Aws::String&& value) { m_intentName = std::move(value); } /** *

The name of the current intent.

*/ inline void SetIntentName(const char* value) { m_intentName.assign(value); } /** *

The name of the current intent.

*/ inline PutSessionResult& WithIntentName(const Aws::String& value) { SetIntentName(value); return *this;} /** *

The name of the current intent.

*/ inline PutSessionResult& WithIntentName(Aws::String&& value) { SetIntentName(std::move(value)); return *this;} /** *

The name of the current intent.

*/ inline PutSessionResult& WithIntentName(const char* value) { SetIntentName(value); return *this;} /** *

Map of zero or more intent slots Amazon Lex detected from the user input * during the conversation.

Amazon Lex creates a resolution list containing * likely values for a slot. The value that it returns is determined by the * valueSelectionStrategy selected when the slot type was created or * updated. If valueSelectionStrategy is set to * ORIGINAL_VALUE, the value provided by the user is returned, if the * user value is similar to the slot values. If valueSelectionStrategy * is set to TOP_RESOLUTION Amazon Lex returns the first value in the * resolution list or, if there is no resolution list, null. If you don't specify a * valueSelectionStrategy the default is ORIGINAL_VALUE. *

*/ inline const Aws::String& GetSlots() const{ return m_slots; } /** *

Map of zero or more intent slots Amazon Lex detected from the user input * during the conversation.

Amazon Lex creates a resolution list containing * likely values for a slot. The value that it returns is determined by the * valueSelectionStrategy selected when the slot type was created or * updated. If valueSelectionStrategy is set to * ORIGINAL_VALUE, the value provided by the user is returned, if the * user value is similar to the slot values. If valueSelectionStrategy * is set to TOP_RESOLUTION Amazon Lex returns the first value in the * resolution list or, if there is no resolution list, null. If you don't specify a * valueSelectionStrategy the default is ORIGINAL_VALUE. *

*/ inline void SetSlots(const Aws::String& value) { m_slots = value; } /** *

Map of zero or more intent slots Amazon Lex detected from the user input * during the conversation.

Amazon Lex creates a resolution list containing * likely values for a slot. The value that it returns is determined by the * valueSelectionStrategy selected when the slot type was created or * updated. If valueSelectionStrategy is set to * ORIGINAL_VALUE, the value provided by the user is returned, if the * user value is similar to the slot values. If valueSelectionStrategy * is set to TOP_RESOLUTION Amazon Lex returns the first value in the * resolution list or, if there is no resolution list, null. If you don't specify a * valueSelectionStrategy the default is ORIGINAL_VALUE. *

*/ inline void SetSlots(Aws::String&& value) { m_slots = std::move(value); } /** *

Map of zero or more intent slots Amazon Lex detected from the user input * during the conversation.

Amazon Lex creates a resolution list containing * likely values for a slot. The value that it returns is determined by the * valueSelectionStrategy selected when the slot type was created or * updated. If valueSelectionStrategy is set to * ORIGINAL_VALUE, the value provided by the user is returned, if the * user value is similar to the slot values. If valueSelectionStrategy * is set to TOP_RESOLUTION Amazon Lex returns the first value in the * resolution list or, if there is no resolution list, null. If you don't specify a * valueSelectionStrategy the default is ORIGINAL_VALUE. *

*/ inline void SetSlots(const char* value) { m_slots.assign(value); } /** *

Map of zero or more intent slots Amazon Lex detected from the user input * during the conversation.

Amazon Lex creates a resolution list containing * likely values for a slot. The value that it returns is determined by the * valueSelectionStrategy selected when the slot type was created or * updated. If valueSelectionStrategy is set to * ORIGINAL_VALUE, the value provided by the user is returned, if the * user value is similar to the slot values. If valueSelectionStrategy * is set to TOP_RESOLUTION Amazon Lex returns the first value in the * resolution list or, if there is no resolution list, null. If you don't specify a * valueSelectionStrategy the default is ORIGINAL_VALUE. *

*/ inline PutSessionResult& WithSlots(const Aws::String& value) { SetSlots(value); return *this;} /** *

Map of zero or more intent slots Amazon Lex detected from the user input * during the conversation.

Amazon Lex creates a resolution list containing * likely values for a slot. The value that it returns is determined by the * valueSelectionStrategy selected when the slot type was created or * updated. If valueSelectionStrategy is set to * ORIGINAL_VALUE, the value provided by the user is returned, if the * user value is similar to the slot values. If valueSelectionStrategy * is set to TOP_RESOLUTION Amazon Lex returns the first value in the * resolution list or, if there is no resolution list, null. If you don't specify a * valueSelectionStrategy the default is ORIGINAL_VALUE. *

*/ inline PutSessionResult& WithSlots(Aws::String&& value) { SetSlots(std::move(value)); return *this;} /** *

Map of zero or more intent slots Amazon Lex detected from the user input * during the conversation.

Amazon Lex creates a resolution list containing * likely values for a slot. The value that it returns is determined by the * valueSelectionStrategy selected when the slot type was created or * updated. If valueSelectionStrategy is set to * ORIGINAL_VALUE, the value provided by the user is returned, if the * user value is similar to the slot values. If valueSelectionStrategy * is set to TOP_RESOLUTION Amazon Lex returns the first value in the * resolution list or, if there is no resolution list, null. If you don't specify a * valueSelectionStrategy the default is ORIGINAL_VALUE. *

*/ inline PutSessionResult& WithSlots(const char* value) { SetSlots(value); return *this;} /** *

Map of key/value pairs representing session-specific context information.

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

Map of key/value pairs representing session-specific context information.

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

Map of key/value pairs representing session-specific context information.

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

Map of key/value pairs representing session-specific context information.

*/ inline void SetSessionAttributes(const char* value) { m_sessionAttributes.assign(value); } /** *

Map of key/value pairs representing session-specific context information.

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

Map of key/value pairs representing session-specific context information.

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

Map of key/value pairs representing session-specific context information.

*/ inline PutSessionResult& WithSessionAttributes(const char* value) { SetSessionAttributes(value); return *this;} /** *

The next message that should be presented to the user.

The * encodedMessage field is base-64 encoded. You must decode the field * before you can use the value.

*/ inline const Aws::String& GetEncodedMessage() const{ return m_encodedMessage; } /** *

The next message that should be presented to the user.

The * encodedMessage field is base-64 encoded. You must decode the field * before you can use the value.

*/ inline void SetEncodedMessage(const Aws::String& value) { m_encodedMessage = value; } /** *

The next message that should be presented to the user.

The * encodedMessage field is base-64 encoded. You must decode the field * before you can use the value.

*/ inline void SetEncodedMessage(Aws::String&& value) { m_encodedMessage = std::move(value); } /** *

The next message that should be presented to the user.

The * encodedMessage field is base-64 encoded. You must decode the field * before you can use the value.

*/ inline void SetEncodedMessage(const char* value) { m_encodedMessage.assign(value); } /** *

The next message that should be presented to the user.

The * encodedMessage field is base-64 encoded. You must decode the field * before you can use the value.

*/ inline PutSessionResult& WithEncodedMessage(const Aws::String& value) { SetEncodedMessage(value); return *this;} /** *

The next message that should be presented to the user.

The * encodedMessage field is base-64 encoded. You must decode the field * before you can use the value.

*/ inline PutSessionResult& WithEncodedMessage(Aws::String&& value) { SetEncodedMessage(std::move(value)); return *this;} /** *

The next message that should be presented to the user.

The * encodedMessage field is base-64 encoded. You must decode the field * before you can use the value.

*/ inline PutSessionResult& WithEncodedMessage(const char* value) { SetEncodedMessage(value); return *this;} /** *

The format of the response message. One of the following values:

    *
  • PlainText - The message contains plain UTF-8 text.

    *
  • CustomPayload - The message is a custom format for * the client.

  • SSML - The message contains text * formatted for voice output.

  • Composite - The * message contains an escaped JSON object containing one or more messages from the * groups that messages were assigned to when the intent was created.

  • *
*/ inline const MessageFormatType& GetMessageFormat() const{ return m_messageFormat; } /** *

The format of the response message. One of the following values:

    *
  • PlainText - The message contains plain UTF-8 text.

    *
  • CustomPayload - The message is a custom format for * the client.

  • SSML - The message contains text * formatted for voice output.

  • Composite - The * message contains an escaped JSON object containing one or more messages from the * groups that messages were assigned to when the intent was created.

  • *
*/ inline void SetMessageFormat(const MessageFormatType& value) { m_messageFormat = value; } /** *

The format of the response message. One of the following values:

    *
  • PlainText - The message contains plain UTF-8 text.

    *
  • CustomPayload - The message is a custom format for * the client.

  • SSML - The message contains text * formatted for voice output.

  • Composite - The * message contains an escaped JSON object containing one or more messages from the * groups that messages were assigned to when the intent was created.

  • *
*/ inline void SetMessageFormat(MessageFormatType&& value) { m_messageFormat = std::move(value); } /** *

The format of the response message. One of the following values:

    *
  • PlainText - The message contains plain UTF-8 text.

    *
  • CustomPayload - The message is a custom format for * the client.

  • SSML - The message contains text * formatted for voice output.

  • Composite - The * message contains an escaped JSON object containing one or more messages from the * groups that messages were assigned to when the intent was created.

  • *
*/ inline PutSessionResult& WithMessageFormat(const MessageFormatType& value) { SetMessageFormat(value); return *this;} /** *

The format of the response message. One of the following values:

    *
  • PlainText - The message contains plain UTF-8 text.

    *
  • CustomPayload - The message is a custom format for * the client.

  • SSML - The message contains text * formatted for voice output.

  • Composite - The * message contains an escaped JSON object containing one or more messages from the * groups that messages were assigned to when the intent was created.

  • *
*/ inline PutSessionResult& WithMessageFormat(MessageFormatType&& value) { SetMessageFormat(std::move(value)); return *this;} /** *

  • ConfirmIntent - Amazon Lex is expecting a "yes" * or "no" response to confirm the intent before fulfilling an intent.

  • *
  • ElicitIntent - Amazon Lex wants to elicit the user's * intent.

  • ElicitSlot - Amazon Lex is expecting the * value of a slot for the current intent.

  • Failed - * Conveys that the conversation with the user has failed. This can happen for * various reasons, including the user does not provide an appropriate response to * prompts from the service, or if the Lambda function fails to fulfill the * intent.

  • Fulfilled - Conveys that the Lambda * function has sucessfully fulfilled the intent.

  • * ReadyForFulfillment - Conveys that the client has to fulfill the * intent.

*/ inline const DialogState& GetDialogState() const{ return m_dialogState; } /** *

  • ConfirmIntent - Amazon Lex is expecting a "yes" * or "no" response to confirm the intent before fulfilling an intent.

  • *
  • ElicitIntent - Amazon Lex wants to elicit the user's * intent.

  • ElicitSlot - Amazon Lex is expecting the * value of a slot for the current intent.

  • Failed - * Conveys that the conversation with the user has failed. This can happen for * various reasons, including the user does not provide an appropriate response to * prompts from the service, or if the Lambda function fails to fulfill the * intent.

  • Fulfilled - Conveys that the Lambda * function has sucessfully fulfilled the intent.

  • * ReadyForFulfillment - Conveys that the client has to fulfill the * intent.

*/ inline void SetDialogState(const DialogState& value) { m_dialogState = value; } /** *

  • ConfirmIntent - Amazon Lex is expecting a "yes" * or "no" response to confirm the intent before fulfilling an intent.

  • *
  • ElicitIntent - Amazon Lex wants to elicit the user's * intent.

  • ElicitSlot - Amazon Lex is expecting the * value of a slot for the current intent.

  • Failed - * Conveys that the conversation with the user has failed. This can happen for * various reasons, including the user does not provide an appropriate response to * prompts from the service, or if the Lambda function fails to fulfill the * intent.

  • Fulfilled - Conveys that the Lambda * function has sucessfully fulfilled the intent.

  • * ReadyForFulfillment - Conveys that the client has to fulfill the * intent.

*/ inline void SetDialogState(DialogState&& value) { m_dialogState = std::move(value); } /** *

  • ConfirmIntent - Amazon Lex is expecting a "yes" * or "no" response to confirm the intent before fulfilling an intent.

  • *
  • ElicitIntent - Amazon Lex wants to elicit the user's * intent.

  • ElicitSlot - Amazon Lex is expecting the * value of a slot for the current intent.

  • Failed - * Conveys that the conversation with the user has failed. This can happen for * various reasons, including the user does not provide an appropriate response to * prompts from the service, or if the Lambda function fails to fulfill the * intent.

  • Fulfilled - Conveys that the Lambda * function has sucessfully fulfilled the intent.

  • * ReadyForFulfillment - Conveys that the client has to fulfill the * intent.

*/ inline PutSessionResult& WithDialogState(const DialogState& value) { SetDialogState(value); return *this;} /** *

  • ConfirmIntent - Amazon Lex is expecting a "yes" * or "no" response to confirm the intent before fulfilling an intent.

  • *
  • ElicitIntent - Amazon Lex wants to elicit the user's * intent.

  • ElicitSlot - Amazon Lex is expecting the * value of a slot for the current intent.

  • Failed - * Conveys that the conversation with the user has failed. This can happen for * various reasons, including the user does not provide an appropriate response to * prompts from the service, or if the Lambda function fails to fulfill the * intent.

  • Fulfilled - Conveys that the Lambda * function has sucessfully fulfilled the intent.

  • * ReadyForFulfillment - Conveys that the client has to fulfill the * intent.

*/ inline PutSessionResult& WithDialogState(DialogState&& value) { SetDialogState(std::move(value)); return *this;} /** *

If the dialogState is ElicitSlot, returns the name * of the slot for which Amazon Lex is eliciting a value.

*/ inline const Aws::String& GetSlotToElicit() const{ return m_slotToElicit; } /** *

If the dialogState is ElicitSlot, returns the name * of the slot for which Amazon Lex is eliciting a value.

*/ inline void SetSlotToElicit(const Aws::String& value) { m_slotToElicit = value; } /** *

If the dialogState is ElicitSlot, returns the name * of the slot for which Amazon Lex is eliciting a value.

*/ inline void SetSlotToElicit(Aws::String&& value) { m_slotToElicit = std::move(value); } /** *

If the dialogState is ElicitSlot, returns the name * of the slot for which Amazon Lex is eliciting a value.

*/ inline void SetSlotToElicit(const char* value) { m_slotToElicit.assign(value); } /** *

If the dialogState is ElicitSlot, returns the name * of the slot for which Amazon Lex is eliciting a value.

*/ inline PutSessionResult& WithSlotToElicit(const Aws::String& value) { SetSlotToElicit(value); return *this;} /** *

If the dialogState is ElicitSlot, returns the name * of the slot for which Amazon Lex is eliciting a value.

*/ inline PutSessionResult& WithSlotToElicit(Aws::String&& value) { SetSlotToElicit(std::move(value)); return *this;} /** *

If the dialogState is ElicitSlot, returns the name * of the slot for which Amazon Lex is eliciting a value.

*/ inline PutSessionResult& WithSlotToElicit(const char* value) { SetSlotToElicit(value); return *this;} /** *

The audio version of the message to convey to the user.

*/ inline Aws::IOStream& GetAudioStream() const { return m_audioStream.GetUnderlyingStream(); } /** *

The audio version of the message to convey to the user.

*/ inline void ReplaceBody(Aws::IOStream* body) { m_audioStream = Aws::Utils::Stream::ResponseStream(body); } /** *

A unique identifier for the session.

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

A unique identifier for the session.

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

A unique identifier for the session.

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

A unique identifier for the session.

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

A unique identifier for the session.

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

A unique identifier for the session.

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

A unique identifier for the session.

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

A list of active contexts for the session.

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

A list of active contexts for the session.

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

A list of active contexts for the session.

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

A list of active contexts for the session.

*/ inline void SetActiveContexts(const char* value) { m_activeContexts.assign(value); } /** *

A list of active contexts for the session.

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

A list of active contexts for the session.

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

A list of active contexts for the session.

*/ inline PutSessionResult& WithActiveContexts(const char* value) { SetActiveContexts(value); return *this;} inline const Aws::String& GetRequestId() const{ return m_requestId; } inline void SetRequestId(const Aws::String& value) { m_requestId = value; } inline void SetRequestId(Aws::String&& value) { m_requestId = std::move(value); } inline void SetRequestId(const char* value) { m_requestId.assign(value); } inline PutSessionResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} inline PutSessionResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} inline PutSessionResult& WithRequestId(const char* value) { SetRequestId(value); return *this;} private: Aws::String m_contentType; Aws::String m_intentName; Aws::String m_slots; Aws::String m_sessionAttributes; Aws::String m_encodedMessage; MessageFormatType m_messageFormat; DialogState m_dialogState; Aws::String m_slotToElicit; Aws::Utils::Stream::ResponseStream m_audioStream; Aws::String m_sessionId; Aws::String m_activeContexts; Aws::String m_requestId; }; } // namespace Model } // namespace LexRuntimeService } // namespace Aws