1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/lexv2-models/LexModelsV2_EXPORTS.h> 8 #include <aws/lexv2-models/model/PostFulfillmentStatusSpecification.h> 9 #include <aws/lexv2-models/model/FulfillmentUpdatesSpecification.h> 10 #include <utility> 11 12 namespace Aws 13 { 14 namespace Utils 15 { 16 namespace Json 17 { 18 class JsonValue; 19 class JsonView; 20 } // namespace Json 21 } // namespace Utils 22 namespace LexModelsV2 23 { 24 namespace Model 25 { 26 27 /** 28 * <p>Determines if a Lambda function should be invoked for a specific 29 * intent.</p><p><h3>See Also:</h3> <a 30 * href="http://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/FulfillmentCodeHookSettings">AWS 31 * API Reference</a></p> 32 */ 33 class AWS_LEXMODELSV2_API FulfillmentCodeHookSettings 34 { 35 public: 36 FulfillmentCodeHookSettings(); 37 FulfillmentCodeHookSettings(Aws::Utils::Json::JsonView jsonValue); 38 FulfillmentCodeHookSettings& operator=(Aws::Utils::Json::JsonView jsonValue); 39 Aws::Utils::Json::JsonValue Jsonize() const; 40 41 42 /** 43 * <p>Indicates whether a Lambda function should be invoked to fulfill a specific 44 * intent.</p> 45 */ GetEnabled()46 inline bool GetEnabled() const{ return m_enabled; } 47 48 /** 49 * <p>Indicates whether a Lambda function should be invoked to fulfill a specific 50 * intent.</p> 51 */ EnabledHasBeenSet()52 inline bool EnabledHasBeenSet() const { return m_enabledHasBeenSet; } 53 54 /** 55 * <p>Indicates whether a Lambda function should be invoked to fulfill a specific 56 * intent.</p> 57 */ SetEnabled(bool value)58 inline void SetEnabled(bool value) { m_enabledHasBeenSet = true; m_enabled = value; } 59 60 /** 61 * <p>Indicates whether a Lambda function should be invoked to fulfill a specific 62 * intent.</p> 63 */ WithEnabled(bool value)64 inline FulfillmentCodeHookSettings& WithEnabled(bool value) { SetEnabled(value); return *this;} 65 66 67 /** 68 * <p>Provides settings for messages sent to the user for after the Lambda 69 * fulfillment function completes. Post-fulfillment messages can be sent for both 70 * streaming and non-streaming conversations.</p> 71 */ GetPostFulfillmentStatusSpecification()72 inline const PostFulfillmentStatusSpecification& GetPostFulfillmentStatusSpecification() const{ return m_postFulfillmentStatusSpecification; } 73 74 /** 75 * <p>Provides settings for messages sent to the user for after the Lambda 76 * fulfillment function completes. Post-fulfillment messages can be sent for both 77 * streaming and non-streaming conversations.</p> 78 */ PostFulfillmentStatusSpecificationHasBeenSet()79 inline bool PostFulfillmentStatusSpecificationHasBeenSet() const { return m_postFulfillmentStatusSpecificationHasBeenSet; } 80 81 /** 82 * <p>Provides settings for messages sent to the user for after the Lambda 83 * fulfillment function completes. Post-fulfillment messages can be sent for both 84 * streaming and non-streaming conversations.</p> 85 */ SetPostFulfillmentStatusSpecification(const PostFulfillmentStatusSpecification & value)86 inline void SetPostFulfillmentStatusSpecification(const PostFulfillmentStatusSpecification& value) { m_postFulfillmentStatusSpecificationHasBeenSet = true; m_postFulfillmentStatusSpecification = value; } 87 88 /** 89 * <p>Provides settings for messages sent to the user for after the Lambda 90 * fulfillment function completes. Post-fulfillment messages can be sent for both 91 * streaming and non-streaming conversations.</p> 92 */ SetPostFulfillmentStatusSpecification(PostFulfillmentStatusSpecification && value)93 inline void SetPostFulfillmentStatusSpecification(PostFulfillmentStatusSpecification&& value) { m_postFulfillmentStatusSpecificationHasBeenSet = true; m_postFulfillmentStatusSpecification = std::move(value); } 94 95 /** 96 * <p>Provides settings for messages sent to the user for after the Lambda 97 * fulfillment function completes. Post-fulfillment messages can be sent for both 98 * streaming and non-streaming conversations.</p> 99 */ WithPostFulfillmentStatusSpecification(const PostFulfillmentStatusSpecification & value)100 inline FulfillmentCodeHookSettings& WithPostFulfillmentStatusSpecification(const PostFulfillmentStatusSpecification& value) { SetPostFulfillmentStatusSpecification(value); return *this;} 101 102 /** 103 * <p>Provides settings for messages sent to the user for after the Lambda 104 * fulfillment function completes. Post-fulfillment messages can be sent for both 105 * streaming and non-streaming conversations.</p> 106 */ WithPostFulfillmentStatusSpecification(PostFulfillmentStatusSpecification && value)107 inline FulfillmentCodeHookSettings& WithPostFulfillmentStatusSpecification(PostFulfillmentStatusSpecification&& value) { SetPostFulfillmentStatusSpecification(std::move(value)); return *this;} 108 109 110 /** 111 * <p>Provides settings for update messages sent to the user for long-running 112 * Lambda fulfillment functions. Fulfillment updates can be used only with 113 * streaming conversations.</p> 114 */ GetFulfillmentUpdatesSpecification()115 inline const FulfillmentUpdatesSpecification& GetFulfillmentUpdatesSpecification() const{ return m_fulfillmentUpdatesSpecification; } 116 117 /** 118 * <p>Provides settings for update messages sent to the user for long-running 119 * Lambda fulfillment functions. Fulfillment updates can be used only with 120 * streaming conversations.</p> 121 */ FulfillmentUpdatesSpecificationHasBeenSet()122 inline bool FulfillmentUpdatesSpecificationHasBeenSet() const { return m_fulfillmentUpdatesSpecificationHasBeenSet; } 123 124 /** 125 * <p>Provides settings for update messages sent to the user for long-running 126 * Lambda fulfillment functions. Fulfillment updates can be used only with 127 * streaming conversations.</p> 128 */ SetFulfillmentUpdatesSpecification(const FulfillmentUpdatesSpecification & value)129 inline void SetFulfillmentUpdatesSpecification(const FulfillmentUpdatesSpecification& value) { m_fulfillmentUpdatesSpecificationHasBeenSet = true; m_fulfillmentUpdatesSpecification = value; } 130 131 /** 132 * <p>Provides settings for update messages sent to the user for long-running 133 * Lambda fulfillment functions. Fulfillment updates can be used only with 134 * streaming conversations.</p> 135 */ SetFulfillmentUpdatesSpecification(FulfillmentUpdatesSpecification && value)136 inline void SetFulfillmentUpdatesSpecification(FulfillmentUpdatesSpecification&& value) { m_fulfillmentUpdatesSpecificationHasBeenSet = true; m_fulfillmentUpdatesSpecification = std::move(value); } 137 138 /** 139 * <p>Provides settings for update messages sent to the user for long-running 140 * Lambda fulfillment functions. Fulfillment updates can be used only with 141 * streaming conversations.</p> 142 */ WithFulfillmentUpdatesSpecification(const FulfillmentUpdatesSpecification & value)143 inline FulfillmentCodeHookSettings& WithFulfillmentUpdatesSpecification(const FulfillmentUpdatesSpecification& value) { SetFulfillmentUpdatesSpecification(value); return *this;} 144 145 /** 146 * <p>Provides settings for update messages sent to the user for long-running 147 * Lambda fulfillment functions. Fulfillment updates can be used only with 148 * streaming conversations.</p> 149 */ WithFulfillmentUpdatesSpecification(FulfillmentUpdatesSpecification && value)150 inline FulfillmentCodeHookSettings& WithFulfillmentUpdatesSpecification(FulfillmentUpdatesSpecification&& value) { SetFulfillmentUpdatesSpecification(std::move(value)); return *this;} 151 152 private: 153 154 bool m_enabled; 155 bool m_enabledHasBeenSet; 156 157 PostFulfillmentStatusSpecification m_postFulfillmentStatusSpecification; 158 bool m_postFulfillmentStatusSpecificationHasBeenSet; 159 160 FulfillmentUpdatesSpecification m_fulfillmentUpdatesSpecification; 161 bool m_fulfillmentUpdatesSpecificationHasBeenSet; 162 }; 163 164 } // namespace Model 165 } // namespace LexModelsV2 166 } // namespace Aws 167