/** * 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 { template class AmazonWebServiceResult; namespace Utils { namespace Json { class JsonValue; } // namespace Json } // namespace Utils namespace LexRuntimeService { namespace Model { class GetSessionResult { public: AWS_LEXRUNTIMESERVICE_API GetSessionResult(); AWS_LEXRUNTIMESERVICE_API GetSessionResult(const Aws::AmazonWebServiceResult& result); AWS_LEXRUNTIMESERVICE_API GetSessionResult& operator=(const Aws::AmazonWebServiceResult& result); /** *

An array of information about the intents used in the session. The array can * contain a maximum of three summaries. If more than three intents are used in the * session, the recentIntentSummaryView operation contains information * about the last three intents used.

If you set the * checkpointLabelFilter parameter in the request, the array contains * only the intents with the specified label.

*/ inline const Aws::Vector& GetRecentIntentSummaryView() const{ return m_recentIntentSummaryView; } /** *

An array of information about the intents used in the session. The array can * contain a maximum of three summaries. If more than three intents are used in the * session, the recentIntentSummaryView operation contains information * about the last three intents used.

If you set the * checkpointLabelFilter parameter in the request, the array contains * only the intents with the specified label.

*/ inline void SetRecentIntentSummaryView(const Aws::Vector& value) { m_recentIntentSummaryView = value; } /** *

An array of information about the intents used in the session. The array can * contain a maximum of three summaries. If more than three intents are used in the * session, the recentIntentSummaryView operation contains information * about the last three intents used.

If you set the * checkpointLabelFilter parameter in the request, the array contains * only the intents with the specified label.

*/ inline void SetRecentIntentSummaryView(Aws::Vector&& value) { m_recentIntentSummaryView = std::move(value); } /** *

An array of information about the intents used in the session. The array can * contain a maximum of three summaries. If more than three intents are used in the * session, the recentIntentSummaryView operation contains information * about the last three intents used.

If you set the * checkpointLabelFilter parameter in the request, the array contains * only the intents with the specified label.

*/ inline GetSessionResult& WithRecentIntentSummaryView(const Aws::Vector& value) { SetRecentIntentSummaryView(value); return *this;} /** *

An array of information about the intents used in the session. The array can * contain a maximum of three summaries. If more than three intents are used in the * session, the recentIntentSummaryView operation contains information * about the last three intents used.

If you set the * checkpointLabelFilter parameter in the request, the array contains * only the intents with the specified label.

*/ inline GetSessionResult& WithRecentIntentSummaryView(Aws::Vector&& value) { SetRecentIntentSummaryView(std::move(value)); return *this;} /** *

An array of information about the intents used in the session. The array can * contain a maximum of three summaries. If more than three intents are used in the * session, the recentIntentSummaryView operation contains information * about the last three intents used.

If you set the * checkpointLabelFilter parameter in the request, the array contains * only the intents with the specified label.

*/ inline GetSessionResult& AddRecentIntentSummaryView(const IntentSummary& value) { m_recentIntentSummaryView.push_back(value); return *this; } /** *

An array of information about the intents used in the session. The array can * contain a maximum of three summaries. If more than three intents are used in the * session, the recentIntentSummaryView operation contains information * about the last three intents used.

If you set the * checkpointLabelFilter parameter in the request, the array contains * only the intents with the specified label.

*/ inline GetSessionResult& AddRecentIntentSummaryView(IntentSummary&& value) { m_recentIntentSummaryView.push_back(std::move(value)); return *this; } /** *

Map of key/value pairs representing the session-specific context information. * It contains application information passed between Amazon Lex and a client * application.

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

Map of key/value pairs representing the session-specific context information. * It contains application information passed between Amazon Lex and a client * application.

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

Map of key/value pairs representing the session-specific context information. * It contains application information passed between Amazon Lex and a client * application.

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

Map of key/value pairs representing the session-specific context information. * It contains application information passed between Amazon Lex and a client * application.

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

Map of key/value pairs representing the session-specific context information. * It contains application information passed between Amazon Lex and a client * application.

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

Map of key/value pairs representing the session-specific context information. * It contains application information passed between Amazon Lex and a client * application.

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

Map of key/value pairs representing the session-specific context information. * It contains application information passed between Amazon Lex and a client * application.

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

Map of key/value pairs representing the session-specific context information. * It contains application information passed between Amazon Lex and a client * application.

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

Map of key/value pairs representing the session-specific context information. * It contains application information passed between Amazon Lex and a client * application.

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

Map of key/value pairs representing the session-specific context information. * It contains application information passed between Amazon Lex and a client * application.

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

Map of key/value pairs representing the session-specific context information. * It contains application information passed between Amazon Lex and a client * application.

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

Map of key/value pairs representing the session-specific context information. * It contains application information passed between Amazon Lex and a client * application.

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

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 GetSessionResult& WithSessionId(const Aws::String& value) { SetSessionId(value); return *this;} /** *

A unique identifier for the session.

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

A unique identifier for the session.

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

Describes the current state of the bot.

*/ inline const DialogAction& GetDialogAction() const{ return m_dialogAction; } /** *

Describes the current state of the bot.

*/ inline void SetDialogAction(const DialogAction& value) { m_dialogAction = value; } /** *

Describes the current state of the bot.

*/ inline void SetDialogAction(DialogAction&& value) { m_dialogAction = std::move(value); } /** *

Describes the current state of the bot.

*/ inline GetSessionResult& WithDialogAction(const DialogAction& value) { SetDialogAction(value); return *this;} /** *

Describes the current state of the bot.

*/ inline GetSessionResult& WithDialogAction(DialogAction&& value) { SetDialogAction(std::move(value)); return *this;} /** *

A list of active contexts for the session. A context can be set when an * intent is fulfilled or by calling the PostContent, * PostText, or PutSession operation.

You can use * a context to control the intents that can follow up an intent, or to modify the * operation of your application.

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

A list of active contexts for the session. A context can be set when an * intent is fulfilled or by calling the PostContent, * PostText, or PutSession operation.

You can use * a context to control the intents that can follow up an intent, or to modify the * operation of your application.

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

A list of active contexts for the session. A context can be set when an * intent is fulfilled or by calling the PostContent, * PostText, or PutSession operation.

You can use * a context to control the intents that can follow up an intent, or to modify the * operation of your application.

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

A list of active contexts for the session. A context can be set when an * intent is fulfilled or by calling the PostContent, * PostText, or PutSession operation.

You can use * a context to control the intents that can follow up an intent, or to modify the * operation of your application.

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

A list of active contexts for the session. A context can be set when an * intent is fulfilled or by calling the PostContent, * PostText, or PutSession operation.

You can use * a context to control the intents that can follow up an intent, or to modify the * operation of your application.

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

A list of active contexts for the session. A context can be set when an * intent is fulfilled or by calling the PostContent, * PostText, or PutSession operation.

You can use * a context to control the intents that can follow up an intent, or to modify the * operation of your application.

*/ inline GetSessionResult& AddActiveContexts(const ActiveContext& value) { m_activeContexts.push_back(value); return *this; } /** *

A list of active contexts for the session. A context can be set when an * intent is fulfilled or by calling the PostContent, * PostText, or PutSession operation.

You can use * a context to control the intents that can follow up an intent, or to modify the * operation of your application.

*/ inline GetSessionResult& AddActiveContexts(ActiveContext&& value) { m_activeContexts.push_back(std::move(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 GetSessionResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} inline GetSessionResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} inline GetSessionResult& WithRequestId(const char* value) { SetRequestId(value); return *this;} private: Aws::Vector m_recentIntentSummaryView; Aws::Map m_sessionAttributes; Aws::String m_sessionId; DialogAction m_dialogAction; Aws::Vector m_activeContexts; Aws::String m_requestId; }; } // namespace Model } // namespace LexRuntimeService } // namespace Aws