/** * 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 #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace LexRuntimeV2 { namespace Model { /** *

The state of the user's session with Amazon Lex V2.

See Also:

* AWS * API Reference

*/ class SessionState { public: AWS_LEXRUNTIMEV2_API SessionState(); AWS_LEXRUNTIMEV2_API SessionState(Aws::Utils::Json::JsonView jsonValue); AWS_LEXRUNTIMEV2_API SessionState& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_LEXRUNTIMEV2_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The next step that Amazon Lex V2 should take in the conversation with a * user.

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

The next step that Amazon Lex V2 should take in the conversation with a * user.

*/ inline bool DialogActionHasBeenSet() const { return m_dialogActionHasBeenSet; } /** *

The next step that Amazon Lex V2 should take in the conversation with a * user.

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

The next step that Amazon Lex V2 should take in the conversation with a * user.

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

The next step that Amazon Lex V2 should take in the conversation with a * user.

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

The next step that Amazon Lex V2 should take in the conversation with a * user.

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

The active intent that Amazon Lex V2 is processing.

*/ inline const Intent& GetIntent() const{ return m_intent; } /** *

The active intent that Amazon Lex V2 is processing.

*/ inline bool IntentHasBeenSet() const { return m_intentHasBeenSet; } /** *

The active intent that Amazon Lex V2 is processing.

*/ inline void SetIntent(const Intent& value) { m_intentHasBeenSet = true; m_intent = value; } /** *

The active intent that Amazon Lex V2 is processing.

*/ inline void SetIntent(Intent&& value) { m_intentHasBeenSet = true; m_intent = std::move(value); } /** *

The active intent that Amazon Lex V2 is processing.

*/ inline SessionState& WithIntent(const Intent& value) { SetIntent(value); return *this;} /** *

The active intent that Amazon Lex V2 is processing.

*/ inline SessionState& WithIntent(Intent&& value) { SetIntent(std::move(value)); return *this;} /** *

One or more contexts that indicate to Amazon Lex V2 the context of a request. * When a context is active, Amazon Lex V2 considers intents with the matching * context as a trigger as the next intent in a session.

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

One or more contexts that indicate to Amazon Lex V2 the context of a request. * When a context is active, Amazon Lex V2 considers intents with the matching * context as a trigger as the next intent in a session.

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

One or more contexts that indicate to Amazon Lex V2 the context of a request. * When a context is active, Amazon Lex V2 considers intents with the matching * context as a trigger as the next intent in a session.

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

One or more contexts that indicate to Amazon Lex V2 the context of a request. * When a context is active, Amazon Lex V2 considers intents with the matching * context as a trigger as the next intent in a session.

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

One or more contexts that indicate to Amazon Lex V2 the context of a request. * When a context is active, Amazon Lex V2 considers intents with the matching * context as a trigger as the next intent in a session.

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

One or more contexts that indicate to Amazon Lex V2 the context of a request. * When a context is active, Amazon Lex V2 considers intents with the matching * context as a trigger as the next intent in a session.

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

One or more contexts that indicate to Amazon Lex V2 the context of a request. * When a context is active, Amazon Lex V2 considers intents with the matching * context as a trigger as the next intent in a session.

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

One or more contexts that indicate to Amazon Lex V2 the context of a request. * When a context is active, Amazon Lex V2 considers intents with the matching * context as a trigger as the next intent in a session.

*/ inline SessionState& AddActiveContexts(ActiveContext&& value) { m_activeContextsHasBeenSet = true; m_activeContexts.push_back(std::move(value)); return *this; } /** *

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

A unique identifier for a specific request.

*/ inline const Aws::String& GetOriginatingRequestId() const{ return m_originatingRequestId; } /** *

A unique identifier for a specific request.

*/ inline bool OriginatingRequestIdHasBeenSet() const { return m_originatingRequestIdHasBeenSet; } /** *

A unique identifier for a specific request.

*/ inline void SetOriginatingRequestId(const Aws::String& value) { m_originatingRequestIdHasBeenSet = true; m_originatingRequestId = value; } /** *

A unique identifier for a specific request.

*/ inline void SetOriginatingRequestId(Aws::String&& value) { m_originatingRequestIdHasBeenSet = true; m_originatingRequestId = std::move(value); } /** *

A unique identifier for a specific request.

*/ inline void SetOriginatingRequestId(const char* value) { m_originatingRequestIdHasBeenSet = true; m_originatingRequestId.assign(value); } /** *

A unique identifier for a specific request.

*/ inline SessionState& WithOriginatingRequestId(const Aws::String& value) { SetOriginatingRequestId(value); return *this;} /** *

A unique identifier for a specific request.

*/ inline SessionState& WithOriginatingRequestId(Aws::String&& value) { SetOriginatingRequestId(std::move(value)); return *this;} /** *

A unique identifier for a specific request.

*/ inline SessionState& WithOriginatingRequestId(const char* value) { SetOriginatingRequestId(value); return *this;} /** *

Hints for phrases that a customer is likely to use for a slot. Amazon Lex V2 * uses the hints to help determine the correct value of a slot.

*/ inline const RuntimeHints& GetRuntimeHints() const{ return m_runtimeHints; } /** *

Hints for phrases that a customer is likely to use for a slot. Amazon Lex V2 * uses the hints to help determine the correct value of a slot.

*/ inline bool RuntimeHintsHasBeenSet() const { return m_runtimeHintsHasBeenSet; } /** *

Hints for phrases that a customer is likely to use for a slot. Amazon Lex V2 * uses the hints to help determine the correct value of a slot.

*/ inline void SetRuntimeHints(const RuntimeHints& value) { m_runtimeHintsHasBeenSet = true; m_runtimeHints = value; } /** *

Hints for phrases that a customer is likely to use for a slot. Amazon Lex V2 * uses the hints to help determine the correct value of a slot.

*/ inline void SetRuntimeHints(RuntimeHints&& value) { m_runtimeHintsHasBeenSet = true; m_runtimeHints = std::move(value); } /** *

Hints for phrases that a customer is likely to use for a slot. Amazon Lex V2 * uses the hints to help determine the correct value of a slot.

*/ inline SessionState& WithRuntimeHints(const RuntimeHints& value) { SetRuntimeHints(value); return *this;} /** *

Hints for phrases that a customer is likely to use for a slot. Amazon Lex V2 * uses the hints to help determine the correct value of a slot.

*/ inline SessionState& WithRuntimeHints(RuntimeHints&& value) { SetRuntimeHints(std::move(value)); return *this;} private: DialogAction m_dialogAction; bool m_dialogActionHasBeenSet = false; Intent m_intent; bool m_intentHasBeenSet = false; Aws::Vector m_activeContexts; bool m_activeContextsHasBeenSet = false; Aws::Map m_sessionAttributes; bool m_sessionAttributesHasBeenSet = false; Aws::String m_originatingRequestId; bool m_originatingRequestIdHasBeenSet = false; RuntimeHints m_runtimeHints; bool m_runtimeHintsHasBeenSet = false; }; } // namespace Model } // namespace LexRuntimeV2 } // namespace Aws