/** * 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 AWS_LEXRUNTIMESERVICE_API PutSessionResult { public: PutSessionResult(); //We have to define these because Microsoft doesn't auto generate them PutSessionResult(PutSessionResult&&); 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; PutSessionResult(Aws::AmazonWebServiceResult&& result); 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.

*/ inline const Aws::String& GetMessage() const{ return m_message; } /** *

The next message that should be presented to the user.

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

The next message that should be presented to the user.

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

The next message that should be presented to the user.

*/ inline void SetMessage(const char* value) { m_message.assign(value); } /** *

The next message that should be presented to the user.

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

The next message that should be presented to the user.

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

The next message that should be presented to the user.

*/ inline PutSessionResult& WithMessage(const char* value) { SetMessage(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() { 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;} private: Aws::String m_contentType; Aws::String m_intentName; Aws::String m_slots; Aws::String m_sessionAttributes; Aws::String m_message; MessageFormatType m_messageFormat; DialogState m_dialogState; Aws::String m_slotToElicit; Aws::Utils::Stream::ResponseStream m_audioStream; Aws::String m_sessionId; }; } // namespace Model } // namespace LexRuntimeService } // namespace Aws