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

Determines if a Lambda function should be invoked for a specific * intent.

See Also:

AWS * API Reference

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

Indicates whether a Lambda function should be invoked to fulfill a specific * intent.

*/ inline bool GetEnabled() const{ return m_enabled; } /** *

Indicates whether a Lambda function should be invoked to fulfill a specific * intent.

*/ inline bool EnabledHasBeenSet() const { return m_enabledHasBeenSet; } /** *

Indicates whether a Lambda function should be invoked to fulfill a specific * intent.

*/ inline void SetEnabled(bool value) { m_enabledHasBeenSet = true; m_enabled = value; } /** *

Indicates whether a Lambda function should be invoked to fulfill a specific * intent.

*/ inline FulfillmentCodeHookSettings& WithEnabled(bool value) { SetEnabled(value); return *this;} /** *

Provides settings for messages sent to the user for after the Lambda * fulfillment function completes. Post-fulfillment messages can be sent for both * streaming and non-streaming conversations.

*/ inline const PostFulfillmentStatusSpecification& GetPostFulfillmentStatusSpecification() const{ return m_postFulfillmentStatusSpecification; } /** *

Provides settings for messages sent to the user for after the Lambda * fulfillment function completes. Post-fulfillment messages can be sent for both * streaming and non-streaming conversations.

*/ inline bool PostFulfillmentStatusSpecificationHasBeenSet() const { return m_postFulfillmentStatusSpecificationHasBeenSet; } /** *

Provides settings for messages sent to the user for after the Lambda * fulfillment function completes. Post-fulfillment messages can be sent for both * streaming and non-streaming conversations.

*/ inline void SetPostFulfillmentStatusSpecification(const PostFulfillmentStatusSpecification& value) { m_postFulfillmentStatusSpecificationHasBeenSet = true; m_postFulfillmentStatusSpecification = value; } /** *

Provides settings for messages sent to the user for after the Lambda * fulfillment function completes. Post-fulfillment messages can be sent for both * streaming and non-streaming conversations.

*/ inline void SetPostFulfillmentStatusSpecification(PostFulfillmentStatusSpecification&& value) { m_postFulfillmentStatusSpecificationHasBeenSet = true; m_postFulfillmentStatusSpecification = std::move(value); } /** *

Provides settings for messages sent to the user for after the Lambda * fulfillment function completes. Post-fulfillment messages can be sent for both * streaming and non-streaming conversations.

*/ inline FulfillmentCodeHookSettings& WithPostFulfillmentStatusSpecification(const PostFulfillmentStatusSpecification& value) { SetPostFulfillmentStatusSpecification(value); return *this;} /** *

Provides settings for messages sent to the user for after the Lambda * fulfillment function completes. Post-fulfillment messages can be sent for both * streaming and non-streaming conversations.

*/ inline FulfillmentCodeHookSettings& WithPostFulfillmentStatusSpecification(PostFulfillmentStatusSpecification&& value) { SetPostFulfillmentStatusSpecification(std::move(value)); return *this;} /** *

Provides settings for update messages sent to the user for long-running * Lambda fulfillment functions. Fulfillment updates can be used only with * streaming conversations.

*/ inline const FulfillmentUpdatesSpecification& GetFulfillmentUpdatesSpecification() const{ return m_fulfillmentUpdatesSpecification; } /** *

Provides settings for update messages sent to the user for long-running * Lambda fulfillment functions. Fulfillment updates can be used only with * streaming conversations.

*/ inline bool FulfillmentUpdatesSpecificationHasBeenSet() const { return m_fulfillmentUpdatesSpecificationHasBeenSet; } /** *

Provides settings for update messages sent to the user for long-running * Lambda fulfillment functions. Fulfillment updates can be used only with * streaming conversations.

*/ inline void SetFulfillmentUpdatesSpecification(const FulfillmentUpdatesSpecification& value) { m_fulfillmentUpdatesSpecificationHasBeenSet = true; m_fulfillmentUpdatesSpecification = value; } /** *

Provides settings for update messages sent to the user for long-running * Lambda fulfillment functions. Fulfillment updates can be used only with * streaming conversations.

*/ inline void SetFulfillmentUpdatesSpecification(FulfillmentUpdatesSpecification&& value) { m_fulfillmentUpdatesSpecificationHasBeenSet = true; m_fulfillmentUpdatesSpecification = std::move(value); } /** *

Provides settings for update messages sent to the user for long-running * Lambda fulfillment functions. Fulfillment updates can be used only with * streaming conversations.

*/ inline FulfillmentCodeHookSettings& WithFulfillmentUpdatesSpecification(const FulfillmentUpdatesSpecification& value) { SetFulfillmentUpdatesSpecification(value); return *this;} /** *

Provides settings for update messages sent to the user for long-running * Lambda fulfillment functions. Fulfillment updates can be used only with * streaming conversations.

*/ inline FulfillmentCodeHookSettings& WithFulfillmentUpdatesSpecification(FulfillmentUpdatesSpecification&& value) { SetFulfillmentUpdatesSpecification(std::move(value)); return *this;} /** *

Determines whether the fulfillment code hook is used. When * active is false, the code hook doesn't run.

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

Determines whether the fulfillment code hook is used. When * active is false, the code hook doesn't run.

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

Determines whether the fulfillment code hook is used. When * active is false, the code hook doesn't run.

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

Determines whether the fulfillment code hook is used. When * active is false, the code hook doesn't run.

*/ inline FulfillmentCodeHookSettings& WithActive(bool value) { SetActive(value); return *this;} private: bool m_enabled; bool m_enabledHasBeenSet = false; PostFulfillmentStatusSpecification m_postFulfillmentStatusSpecification; bool m_postFulfillmentStatusSpecificationHasBeenSet = false; FulfillmentUpdatesSpecification m_fulfillmentUpdatesSpecification; bool m_fulfillmentUpdatesSpecificationHasBeenSet = false; bool m_active; bool m_activeHasBeenSet = false; }; } // namespace Model } // namespace LexModelsV2 } // namespace Aws