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 <aws/lexv2-models/model/StillWaitingResponseSpecification.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>Specifies the prompts that Amazon Lex uses while a bot is waiting for
29    * customer input. </p><p><h3>See Also:</h3>   <a
30    * href="http://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/WaitAndContinueSpecification">AWS
31    * API Reference</a></p>
32    */
33   class AWS_LEXMODELSV2_API WaitAndContinueSpecification
34   {
35   public:
36     WaitAndContinueSpecification();
37     WaitAndContinueSpecification(Aws::Utils::Json::JsonView jsonValue);
38     WaitAndContinueSpecification& operator=(Aws::Utils::Json::JsonView jsonValue);
39     Aws::Utils::Json::JsonValue Jsonize() const;
40 
41 
42     /**
43      * <p>The response that Amazon Lex sends to indicate that the bot is waiting for
44      * the conversation to continue.</p>
45      */
GetWaitingResponse()46     inline const ResponseSpecification& GetWaitingResponse() const{ return m_waitingResponse; }
47 
48     /**
49      * <p>The response that Amazon Lex sends to indicate that the bot is waiting for
50      * the conversation to continue.</p>
51      */
WaitingResponseHasBeenSet()52     inline bool WaitingResponseHasBeenSet() const { return m_waitingResponseHasBeenSet; }
53 
54     /**
55      * <p>The response that Amazon Lex sends to indicate that the bot is waiting for
56      * the conversation to continue.</p>
57      */
SetWaitingResponse(const ResponseSpecification & value)58     inline void SetWaitingResponse(const ResponseSpecification& value) { m_waitingResponseHasBeenSet = true; m_waitingResponse = value; }
59 
60     /**
61      * <p>The response that Amazon Lex sends to indicate that the bot is waiting for
62      * the conversation to continue.</p>
63      */
SetWaitingResponse(ResponseSpecification && value)64     inline void SetWaitingResponse(ResponseSpecification&& value) { m_waitingResponseHasBeenSet = true; m_waitingResponse = std::move(value); }
65 
66     /**
67      * <p>The response that Amazon Lex sends to indicate that the bot is waiting for
68      * the conversation to continue.</p>
69      */
WithWaitingResponse(const ResponseSpecification & value)70     inline WaitAndContinueSpecification& WithWaitingResponse(const ResponseSpecification& value) { SetWaitingResponse(value); return *this;}
71 
72     /**
73      * <p>The response that Amazon Lex sends to indicate that the bot is waiting for
74      * the conversation to continue.</p>
75      */
WithWaitingResponse(ResponseSpecification && value)76     inline WaitAndContinueSpecification& WithWaitingResponse(ResponseSpecification&& value) { SetWaitingResponse(std::move(value)); return *this;}
77 
78 
79     /**
80      * <p>The response that Amazon Lex sends to indicate that the bot is ready to
81      * continue the conversation.</p>
82      */
GetContinueResponse()83     inline const ResponseSpecification& GetContinueResponse() const{ return m_continueResponse; }
84 
85     /**
86      * <p>The response that Amazon Lex sends to indicate that the bot is ready to
87      * continue the conversation.</p>
88      */
ContinueResponseHasBeenSet()89     inline bool ContinueResponseHasBeenSet() const { return m_continueResponseHasBeenSet; }
90 
91     /**
92      * <p>The response that Amazon Lex sends to indicate that the bot is ready to
93      * continue the conversation.</p>
94      */
SetContinueResponse(const ResponseSpecification & value)95     inline void SetContinueResponse(const ResponseSpecification& value) { m_continueResponseHasBeenSet = true; m_continueResponse = value; }
96 
97     /**
98      * <p>The response that Amazon Lex sends to indicate that the bot is ready to
99      * continue the conversation.</p>
100      */
SetContinueResponse(ResponseSpecification && value)101     inline void SetContinueResponse(ResponseSpecification&& value) { m_continueResponseHasBeenSet = true; m_continueResponse = std::move(value); }
102 
103     /**
104      * <p>The response that Amazon Lex sends to indicate that the bot is ready to
105      * continue the conversation.</p>
106      */
WithContinueResponse(const ResponseSpecification & value)107     inline WaitAndContinueSpecification& WithContinueResponse(const ResponseSpecification& value) { SetContinueResponse(value); return *this;}
108 
109     /**
110      * <p>The response that Amazon Lex sends to indicate that the bot is ready to
111      * continue the conversation.</p>
112      */
WithContinueResponse(ResponseSpecification && value)113     inline WaitAndContinueSpecification& WithContinueResponse(ResponseSpecification&& value) { SetContinueResponse(std::move(value)); return *this;}
114 
115 
116     /**
117      * <p>A response that Amazon Lex sends periodically to the user to indicate that
118      * the bot is still waiting for input from the user.</p>
119      */
GetStillWaitingResponse()120     inline const StillWaitingResponseSpecification& GetStillWaitingResponse() const{ return m_stillWaitingResponse; }
121 
122     /**
123      * <p>A response that Amazon Lex sends periodically to the user to indicate that
124      * the bot is still waiting for input from the user.</p>
125      */
StillWaitingResponseHasBeenSet()126     inline bool StillWaitingResponseHasBeenSet() const { return m_stillWaitingResponseHasBeenSet; }
127 
128     /**
129      * <p>A response that Amazon Lex sends periodically to the user to indicate that
130      * the bot is still waiting for input from the user.</p>
131      */
SetStillWaitingResponse(const StillWaitingResponseSpecification & value)132     inline void SetStillWaitingResponse(const StillWaitingResponseSpecification& value) { m_stillWaitingResponseHasBeenSet = true; m_stillWaitingResponse = value; }
133 
134     /**
135      * <p>A response that Amazon Lex sends periodically to the user to indicate that
136      * the bot is still waiting for input from the user.</p>
137      */
SetStillWaitingResponse(StillWaitingResponseSpecification && value)138     inline void SetStillWaitingResponse(StillWaitingResponseSpecification&& value) { m_stillWaitingResponseHasBeenSet = true; m_stillWaitingResponse = std::move(value); }
139 
140     /**
141      * <p>A response that Amazon Lex sends periodically to the user to indicate that
142      * the bot is still waiting for input from the user.</p>
143      */
WithStillWaitingResponse(const StillWaitingResponseSpecification & value)144     inline WaitAndContinueSpecification& WithStillWaitingResponse(const StillWaitingResponseSpecification& value) { SetStillWaitingResponse(value); return *this;}
145 
146     /**
147      * <p>A response that Amazon Lex sends periodically to the user to indicate that
148      * the bot is still waiting for input from the user.</p>
149      */
WithStillWaitingResponse(StillWaitingResponseSpecification && value)150     inline WaitAndContinueSpecification& WithStillWaitingResponse(StillWaitingResponseSpecification&& value) { SetStillWaitingResponse(std::move(value)); return *this;}
151 
152 
153     /**
154      * <p>Specifies whether the bot will wait for a user to respond. When this field is
155      * false, wait and continue responses for a slot aren't used. If the
156      * <code>active</code> field isn't specified, the default is true.</p>
157      */
GetActive()158     inline bool GetActive() const{ return m_active; }
159 
160     /**
161      * <p>Specifies whether the bot will wait for a user to respond. When this field is
162      * false, wait and continue responses for a slot aren't used. If the
163      * <code>active</code> field isn't specified, the default is true.</p>
164      */
ActiveHasBeenSet()165     inline bool ActiveHasBeenSet() const { return m_activeHasBeenSet; }
166 
167     /**
168      * <p>Specifies whether the bot will wait for a user to respond. When this field is
169      * false, wait and continue responses for a slot aren't used. If the
170      * <code>active</code> field isn't specified, the default is true.</p>
171      */
SetActive(bool value)172     inline void SetActive(bool value) { m_activeHasBeenSet = true; m_active = value; }
173 
174     /**
175      * <p>Specifies whether the bot will wait for a user to respond. When this field is
176      * false, wait and continue responses for a slot aren't used. If the
177      * <code>active</code> field isn't specified, the default is true.</p>
178      */
WithActive(bool value)179     inline WaitAndContinueSpecification& WithActive(bool value) { SetActive(value); return *this;}
180 
181   private:
182 
183     ResponseSpecification m_waitingResponse;
184     bool m_waitingResponseHasBeenSet;
185 
186     ResponseSpecification m_continueResponse;
187     bool m_continueResponseHasBeenSet;
188 
189     StillWaitingResponseSpecification m_stillWaitingResponse;
190     bool m_stillWaitingResponseHasBeenSet;
191 
192     bool m_active;
193     bool m_activeHasBeenSet;
194   };
195 
196 } // namespace Model
197 } // namespace LexModelsV2
198 } // namespace Aws
199