/** * 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 { /** *

Provides information for updating the user on the progress of fulfilling an * intent.

See Also:

AWS * API Reference

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

Determines whether fulfillment updates are sent to the user. When this field * is true, updates are sent.

If the active field is set to * true, the startResponse, updateResponse, and * timeoutInSeconds fields are required.

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

Determines whether fulfillment updates are sent to the user. When this field * is true, updates are sent.

If the active field is set to * true, the startResponse, updateResponse, and * timeoutInSeconds fields are required.

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

Determines whether fulfillment updates are sent to the user. When this field * is true, updates are sent.

If the active field is set to * true, the startResponse, updateResponse, and * timeoutInSeconds fields are required.

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

Determines whether fulfillment updates are sent to the user. When this field * is true, updates are sent.

If the active field is set to * true, the startResponse, updateResponse, and * timeoutInSeconds fields are required.

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

Provides configuration information for the message sent to users when the * fulfillment Lambda functions starts running.

*/ inline const FulfillmentStartResponseSpecification& GetStartResponse() const{ return m_startResponse; } /** *

Provides configuration information for the message sent to users when the * fulfillment Lambda functions starts running.

*/ inline bool StartResponseHasBeenSet() const { return m_startResponseHasBeenSet; } /** *

Provides configuration information for the message sent to users when the * fulfillment Lambda functions starts running.

*/ inline void SetStartResponse(const FulfillmentStartResponseSpecification& value) { m_startResponseHasBeenSet = true; m_startResponse = value; } /** *

Provides configuration information for the message sent to users when the * fulfillment Lambda functions starts running.

*/ inline void SetStartResponse(FulfillmentStartResponseSpecification&& value) { m_startResponseHasBeenSet = true; m_startResponse = std::move(value); } /** *

Provides configuration information for the message sent to users when the * fulfillment Lambda functions starts running.

*/ inline FulfillmentUpdatesSpecification& WithStartResponse(const FulfillmentStartResponseSpecification& value) { SetStartResponse(value); return *this;} /** *

Provides configuration information for the message sent to users when the * fulfillment Lambda functions starts running.

*/ inline FulfillmentUpdatesSpecification& WithStartResponse(FulfillmentStartResponseSpecification&& value) { SetStartResponse(std::move(value)); return *this;} /** *

Provides configuration information for messages sent periodically to the user * while the fulfillment Lambda function is running.

*/ inline const FulfillmentUpdateResponseSpecification& GetUpdateResponse() const{ return m_updateResponse; } /** *

Provides configuration information for messages sent periodically to the user * while the fulfillment Lambda function is running.

*/ inline bool UpdateResponseHasBeenSet() const { return m_updateResponseHasBeenSet; } /** *

Provides configuration information for messages sent periodically to the user * while the fulfillment Lambda function is running.

*/ inline void SetUpdateResponse(const FulfillmentUpdateResponseSpecification& value) { m_updateResponseHasBeenSet = true; m_updateResponse = value; } /** *

Provides configuration information for messages sent periodically to the user * while the fulfillment Lambda function is running.

*/ inline void SetUpdateResponse(FulfillmentUpdateResponseSpecification&& value) { m_updateResponseHasBeenSet = true; m_updateResponse = std::move(value); } /** *

Provides configuration information for messages sent periodically to the user * while the fulfillment Lambda function is running.

*/ inline FulfillmentUpdatesSpecification& WithUpdateResponse(const FulfillmentUpdateResponseSpecification& value) { SetUpdateResponse(value); return *this;} /** *

Provides configuration information for messages sent periodically to the user * while the fulfillment Lambda function is running.

*/ inline FulfillmentUpdatesSpecification& WithUpdateResponse(FulfillmentUpdateResponseSpecification&& value) { SetUpdateResponse(std::move(value)); return *this;} /** *

The length of time that the fulfillment Lambda function should run before it * times out.

*/ inline int GetTimeoutInSeconds() const{ return m_timeoutInSeconds; } /** *

The length of time that the fulfillment Lambda function should run before it * times out.

*/ inline bool TimeoutInSecondsHasBeenSet() const { return m_timeoutInSecondsHasBeenSet; } /** *

The length of time that the fulfillment Lambda function should run before it * times out.

*/ inline void SetTimeoutInSeconds(int value) { m_timeoutInSecondsHasBeenSet = true; m_timeoutInSeconds = value; } /** *

The length of time that the fulfillment Lambda function should run before it * times out.

*/ inline FulfillmentUpdatesSpecification& WithTimeoutInSeconds(int value) { SetTimeoutInSeconds(value); return *this;} private: bool m_active; bool m_activeHasBeenSet = false; FulfillmentStartResponseSpecification m_startResponse; bool m_startResponseHasBeenSet = false; FulfillmentUpdateResponseSpecification m_updateResponse; bool m_updateResponseHasBeenSet = false; int m_timeoutInSeconds; bool m_timeoutInSecondsHasBeenSet = false; }; } // namespace Model } // namespace LexModelsV2 } // namespace Aws