/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace LexModelsV2 { namespace Model { /** *

Provides a statement the Amazon Lex conveys to the user when the intent is * successfully fulfilled.

See Also:

AWS * API Reference

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

The response that Amazon Lex sends to the user when the intent is * complete.

*/ inline const ResponseSpecification& GetClosingResponse() const{ return m_closingResponse; } /** *

The response that Amazon Lex sends to the user when the intent is * complete.

*/ inline bool ClosingResponseHasBeenSet() const { return m_closingResponseHasBeenSet; } /** *

The response that Amazon Lex sends to the user when the intent is * complete.

*/ inline void SetClosingResponse(const ResponseSpecification& value) { m_closingResponseHasBeenSet = true; m_closingResponse = value; } /** *

The response that Amazon Lex sends to the user when the intent is * complete.

*/ inline void SetClosingResponse(ResponseSpecification&& value) { m_closingResponseHasBeenSet = true; m_closingResponse = std::move(value); } /** *

The response that Amazon Lex sends to the user when the intent is * complete.

*/ inline IntentClosingSetting& WithClosingResponse(const ResponseSpecification& value) { SetClosingResponse(value); return *this;} /** *

The response that Amazon Lex sends to the user when the intent is * complete.

*/ inline IntentClosingSetting& WithClosingResponse(ResponseSpecification&& value) { SetClosingResponse(std::move(value)); return *this;} /** *

Specifies whether an intent's closing response is used. When this field is * false, the closing response isn't sent to the user. If the active * field isn't specified, the default is true.

*/ inline bool GetActive() const{ return m_active; } /** *

Specifies whether an intent's closing response is used. When this field is * false, the closing response isn't sent to the user. If the active * field isn't specified, the default is true.

*/ inline bool ActiveHasBeenSet() const { return m_activeHasBeenSet; } /** *

Specifies whether an intent's closing response is used. When this field is * false, the closing response isn't sent to the user. If the active * field isn't specified, the default is true.

*/ inline void SetActive(bool value) { m_activeHasBeenSet = true; m_active = value; } /** *

Specifies whether an intent's closing response is used. When this field is * false, the closing response isn't sent to the user. If the active * field isn't specified, the default is true.

*/ inline IntentClosingSetting& WithActive(bool value) { SetActive(value); return *this;} /** *

Specifies the next step that the bot executes after playing the intent's * closing response.

*/ inline const DialogState& GetNextStep() const{ return m_nextStep; } /** *

Specifies the next step that the bot executes after playing the intent's * closing response.

*/ inline bool NextStepHasBeenSet() const { return m_nextStepHasBeenSet; } /** *

Specifies the next step that the bot executes after playing the intent's * closing response.

*/ inline void SetNextStep(const DialogState& value) { m_nextStepHasBeenSet = true; m_nextStep = value; } /** *

Specifies the next step that the bot executes after playing the intent's * closing response.

*/ inline void SetNextStep(DialogState&& value) { m_nextStepHasBeenSet = true; m_nextStep = std::move(value); } /** *

Specifies the next step that the bot executes after playing the intent's * closing response.

*/ inline IntentClosingSetting& WithNextStep(const DialogState& value) { SetNextStep(value); return *this;} /** *

Specifies the next step that the bot executes after playing the intent's * closing response.

*/ inline IntentClosingSetting& WithNextStep(DialogState&& value) { SetNextStep(std::move(value)); return *this;} /** *

A list of conditional branches associated with the intent's closing response. * These branches are executed when the nextStep attribute is set to * EvalutateConditional.

*/ inline const ConditionalSpecification& GetConditional() const{ return m_conditional; } /** *

A list of conditional branches associated with the intent's closing response. * These branches are executed when the nextStep attribute is set to * EvalutateConditional.

*/ inline bool ConditionalHasBeenSet() const { return m_conditionalHasBeenSet; } /** *

A list of conditional branches associated with the intent's closing response. * These branches are executed when the nextStep attribute is set to * EvalutateConditional.

*/ inline void SetConditional(const ConditionalSpecification& value) { m_conditionalHasBeenSet = true; m_conditional = value; } /** *

A list of conditional branches associated with the intent's closing response. * These branches are executed when the nextStep attribute is set to * EvalutateConditional.

*/ inline void SetConditional(ConditionalSpecification&& value) { m_conditionalHasBeenSet = true; m_conditional = std::move(value); } /** *

A list of conditional branches associated with the intent's closing response. * These branches are executed when the nextStep attribute is set to * EvalutateConditional.

*/ inline IntentClosingSetting& WithConditional(const ConditionalSpecification& value) { SetConditional(value); return *this;} /** *

A list of conditional branches associated with the intent's closing response. * These branches are executed when the nextStep attribute is set to * EvalutateConditional.

*/ inline IntentClosingSetting& WithConditional(ConditionalSpecification&& value) { SetConditional(std::move(value)); return *this;} private: ResponseSpecification m_closingResponse; bool m_closingResponseHasBeenSet = false; bool m_active; bool m_activeHasBeenSet = false; DialogState m_nextStep; bool m_nextStepHasBeenSet = false; ConditionalSpecification m_conditional; bool m_conditionalHasBeenSet = false; }; } // namespace Model } // namespace LexModelsV2 } // namespace Aws