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/ResponseSpecification.h>
9 #include <utility>
10 
11 namespace Aws
12 {
13 namespace Utils
14 {
15 namespace Json
16 {
17   class JsonValue;
18   class JsonView;
19 } // namespace Json
20 } // namespace Utils
21 namespace LexModelsV2
22 {
23 namespace Model
24 {
25 
26   /**
27    * <p>Provides a setting that determines whether the post-fulfillment response is
28    * sent to the user. For more information, see <a
29    * href="https://docs.aws.amazon.com/lexv2/latest/dg/streaming-progress.html#progress-complete">https://docs.aws.amazon.com/lexv2/latest/dg/streaming-progress.html#progress-complete</a>
30    * </p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/PostFulfillmentStatusSpecification">AWS
32    * API Reference</a></p>
33    */
34   class AWS_LEXMODELSV2_API PostFulfillmentStatusSpecification
35   {
36   public:
37     PostFulfillmentStatusSpecification();
38     PostFulfillmentStatusSpecification(Aws::Utils::Json::JsonView jsonValue);
39     PostFulfillmentStatusSpecification& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43 
GetSuccessResponse()44     inline const ResponseSpecification& GetSuccessResponse() const{ return m_successResponse; }
45 
46 
SuccessResponseHasBeenSet()47     inline bool SuccessResponseHasBeenSet() const { return m_successResponseHasBeenSet; }
48 
49 
SetSuccessResponse(const ResponseSpecification & value)50     inline void SetSuccessResponse(const ResponseSpecification& value) { m_successResponseHasBeenSet = true; m_successResponse = value; }
51 
52 
SetSuccessResponse(ResponseSpecification && value)53     inline void SetSuccessResponse(ResponseSpecification&& value) { m_successResponseHasBeenSet = true; m_successResponse = std::move(value); }
54 
55 
WithSuccessResponse(const ResponseSpecification & value)56     inline PostFulfillmentStatusSpecification& WithSuccessResponse(const ResponseSpecification& value) { SetSuccessResponse(value); return *this;}
57 
58 
WithSuccessResponse(ResponseSpecification && value)59     inline PostFulfillmentStatusSpecification& WithSuccessResponse(ResponseSpecification&& value) { SetSuccessResponse(std::move(value)); return *this;}
60 
61 
62 
GetFailureResponse()63     inline const ResponseSpecification& GetFailureResponse() const{ return m_failureResponse; }
64 
65 
FailureResponseHasBeenSet()66     inline bool FailureResponseHasBeenSet() const { return m_failureResponseHasBeenSet; }
67 
68 
SetFailureResponse(const ResponseSpecification & value)69     inline void SetFailureResponse(const ResponseSpecification& value) { m_failureResponseHasBeenSet = true; m_failureResponse = value; }
70 
71 
SetFailureResponse(ResponseSpecification && value)72     inline void SetFailureResponse(ResponseSpecification&& value) { m_failureResponseHasBeenSet = true; m_failureResponse = std::move(value); }
73 
74 
WithFailureResponse(const ResponseSpecification & value)75     inline PostFulfillmentStatusSpecification& WithFailureResponse(const ResponseSpecification& value) { SetFailureResponse(value); return *this;}
76 
77 
WithFailureResponse(ResponseSpecification && value)78     inline PostFulfillmentStatusSpecification& WithFailureResponse(ResponseSpecification&& value) { SetFailureResponse(std::move(value)); return *this;}
79 
80 
81 
GetTimeoutResponse()82     inline const ResponseSpecification& GetTimeoutResponse() const{ return m_timeoutResponse; }
83 
84 
TimeoutResponseHasBeenSet()85     inline bool TimeoutResponseHasBeenSet() const { return m_timeoutResponseHasBeenSet; }
86 
87 
SetTimeoutResponse(const ResponseSpecification & value)88     inline void SetTimeoutResponse(const ResponseSpecification& value) { m_timeoutResponseHasBeenSet = true; m_timeoutResponse = value; }
89 
90 
SetTimeoutResponse(ResponseSpecification && value)91     inline void SetTimeoutResponse(ResponseSpecification&& value) { m_timeoutResponseHasBeenSet = true; m_timeoutResponse = std::move(value); }
92 
93 
WithTimeoutResponse(const ResponseSpecification & value)94     inline PostFulfillmentStatusSpecification& WithTimeoutResponse(const ResponseSpecification& value) { SetTimeoutResponse(value); return *this;}
95 
96 
WithTimeoutResponse(ResponseSpecification && value)97     inline PostFulfillmentStatusSpecification& WithTimeoutResponse(ResponseSpecification&& value) { SetTimeoutResponse(std::move(value)); return *this;}
98 
99   private:
100 
101     ResponseSpecification m_successResponse;
102     bool m_successResponseHasBeenSet;
103 
104     ResponseSpecification m_failureResponse;
105     bool m_failureResponseHasBeenSet;
106 
107     ResponseSpecification m_timeoutResponse;
108     bool m_timeoutResponseHasBeenSet;
109   };
110 
111 } // namespace Model
112 } // namespace LexModelsV2
113 } // namespace Aws
114