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/core/utils/memory/stl/AWSString.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 configuration information for the AMAZON.KendraSearchIntent intent.
28    * When you use this intent, Amazon Lex searches the specified Amazon Kendra index
29    * and returns documents from the index that match the user's
30    * utterance.</p><p><h3>See Also:</h3>   <a
31    * href="http://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/KendraConfiguration">AWS
32    * API Reference</a></p>
33    */
34   class AWS_LEXMODELSV2_API KendraConfiguration
35   {
36   public:
37     KendraConfiguration();
38     KendraConfiguration(Aws::Utils::Json::JsonView jsonValue);
39     KendraConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue);
40     Aws::Utils::Json::JsonValue Jsonize() const;
41 
42 
43     /**
44      * <p>The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the
45      * AMAZON.KendraSearchIntent intent to search. The index must be in the same
46      * account and Region as the Amazon Lex bot.</p>
47      */
GetKendraIndex()48     inline const Aws::String& GetKendraIndex() const{ return m_kendraIndex; }
49 
50     /**
51      * <p>The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the
52      * AMAZON.KendraSearchIntent intent to search. The index must be in the same
53      * account and Region as the Amazon Lex bot.</p>
54      */
KendraIndexHasBeenSet()55     inline bool KendraIndexHasBeenSet() const { return m_kendraIndexHasBeenSet; }
56 
57     /**
58      * <p>The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the
59      * AMAZON.KendraSearchIntent intent to search. The index must be in the same
60      * account and Region as the Amazon Lex bot.</p>
61      */
SetKendraIndex(const Aws::String & value)62     inline void SetKendraIndex(const Aws::String& value) { m_kendraIndexHasBeenSet = true; m_kendraIndex = value; }
63 
64     /**
65      * <p>The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the
66      * AMAZON.KendraSearchIntent intent to search. The index must be in the same
67      * account and Region as the Amazon Lex bot.</p>
68      */
SetKendraIndex(Aws::String && value)69     inline void SetKendraIndex(Aws::String&& value) { m_kendraIndexHasBeenSet = true; m_kendraIndex = std::move(value); }
70 
71     /**
72      * <p>The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the
73      * AMAZON.KendraSearchIntent intent to search. The index must be in the same
74      * account and Region as the Amazon Lex bot.</p>
75      */
SetKendraIndex(const char * value)76     inline void SetKendraIndex(const char* value) { m_kendraIndexHasBeenSet = true; m_kendraIndex.assign(value); }
77 
78     /**
79      * <p>The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the
80      * AMAZON.KendraSearchIntent intent to search. The index must be in the same
81      * account and Region as the Amazon Lex bot.</p>
82      */
WithKendraIndex(const Aws::String & value)83     inline KendraConfiguration& WithKendraIndex(const Aws::String& value) { SetKendraIndex(value); return *this;}
84 
85     /**
86      * <p>The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the
87      * AMAZON.KendraSearchIntent intent to search. The index must be in the same
88      * account and Region as the Amazon Lex bot.</p>
89      */
WithKendraIndex(Aws::String && value)90     inline KendraConfiguration& WithKendraIndex(Aws::String&& value) { SetKendraIndex(std::move(value)); return *this;}
91 
92     /**
93      * <p>The Amazon Resource Name (ARN) of the Amazon Kendra index that you want the
94      * AMAZON.KendraSearchIntent intent to search. The index must be in the same
95      * account and Region as the Amazon Lex bot.</p>
96      */
WithKendraIndex(const char * value)97     inline KendraConfiguration& WithKendraIndex(const char* value) { SetKendraIndex(value); return *this;}
98 
99 
100     /**
101      * <p>Determines whether the AMAZON.KendraSearchIntent intent uses a custom query
102      * string to query the Amazon Kendra index.</p>
103      */
GetQueryFilterStringEnabled()104     inline bool GetQueryFilterStringEnabled() const{ return m_queryFilterStringEnabled; }
105 
106     /**
107      * <p>Determines whether the AMAZON.KendraSearchIntent intent uses a custom query
108      * string to query the Amazon Kendra index.</p>
109      */
QueryFilterStringEnabledHasBeenSet()110     inline bool QueryFilterStringEnabledHasBeenSet() const { return m_queryFilterStringEnabledHasBeenSet; }
111 
112     /**
113      * <p>Determines whether the AMAZON.KendraSearchIntent intent uses a custom query
114      * string to query the Amazon Kendra index.</p>
115      */
SetQueryFilterStringEnabled(bool value)116     inline void SetQueryFilterStringEnabled(bool value) { m_queryFilterStringEnabledHasBeenSet = true; m_queryFilterStringEnabled = value; }
117 
118     /**
119      * <p>Determines whether the AMAZON.KendraSearchIntent intent uses a custom query
120      * string to query the Amazon Kendra index.</p>
121      */
WithQueryFilterStringEnabled(bool value)122     inline KendraConfiguration& WithQueryFilterStringEnabled(bool value) { SetQueryFilterStringEnabled(value); return *this;}
123 
124 
125     /**
126      * <p>A query filter that Amazon Lex sends to Amazon Kendra to filter the response
127      * from a query. The filter is in the format defined by Amazon Kendra. For more
128      * information, see <a
129      * href="https://docs.aws.amazon.com/kendra/latest/dg/filtering.html">Filtering
130      * queries</a>.</p>
131      */
GetQueryFilterString()132     inline const Aws::String& GetQueryFilterString() const{ return m_queryFilterString; }
133 
134     /**
135      * <p>A query filter that Amazon Lex sends to Amazon Kendra to filter the response
136      * from a query. The filter is in the format defined by Amazon Kendra. For more
137      * information, see <a
138      * href="https://docs.aws.amazon.com/kendra/latest/dg/filtering.html">Filtering
139      * queries</a>.</p>
140      */
QueryFilterStringHasBeenSet()141     inline bool QueryFilterStringHasBeenSet() const { return m_queryFilterStringHasBeenSet; }
142 
143     /**
144      * <p>A query filter that Amazon Lex sends to Amazon Kendra to filter the response
145      * from a query. The filter is in the format defined by Amazon Kendra. For more
146      * information, see <a
147      * href="https://docs.aws.amazon.com/kendra/latest/dg/filtering.html">Filtering
148      * queries</a>.</p>
149      */
SetQueryFilterString(const Aws::String & value)150     inline void SetQueryFilterString(const Aws::String& value) { m_queryFilterStringHasBeenSet = true; m_queryFilterString = value; }
151 
152     /**
153      * <p>A query filter that Amazon Lex sends to Amazon Kendra to filter the response
154      * from a query. The filter is in the format defined by Amazon Kendra. For more
155      * information, see <a
156      * href="https://docs.aws.amazon.com/kendra/latest/dg/filtering.html">Filtering
157      * queries</a>.</p>
158      */
SetQueryFilterString(Aws::String && value)159     inline void SetQueryFilterString(Aws::String&& value) { m_queryFilterStringHasBeenSet = true; m_queryFilterString = std::move(value); }
160 
161     /**
162      * <p>A query filter that Amazon Lex sends to Amazon Kendra to filter the response
163      * from a query. The filter is in the format defined by Amazon Kendra. For more
164      * information, see <a
165      * href="https://docs.aws.amazon.com/kendra/latest/dg/filtering.html">Filtering
166      * queries</a>.</p>
167      */
SetQueryFilterString(const char * value)168     inline void SetQueryFilterString(const char* value) { m_queryFilterStringHasBeenSet = true; m_queryFilterString.assign(value); }
169 
170     /**
171      * <p>A query filter that Amazon Lex sends to Amazon Kendra to filter the response
172      * from a query. The filter is in the format defined by Amazon Kendra. For more
173      * information, see <a
174      * href="https://docs.aws.amazon.com/kendra/latest/dg/filtering.html">Filtering
175      * queries</a>.</p>
176      */
WithQueryFilterString(const Aws::String & value)177     inline KendraConfiguration& WithQueryFilterString(const Aws::String& value) { SetQueryFilterString(value); return *this;}
178 
179     /**
180      * <p>A query filter that Amazon Lex sends to Amazon Kendra to filter the response
181      * from a query. The filter is in the format defined by Amazon Kendra. For more
182      * information, see <a
183      * href="https://docs.aws.amazon.com/kendra/latest/dg/filtering.html">Filtering
184      * queries</a>.</p>
185      */
WithQueryFilterString(Aws::String && value)186     inline KendraConfiguration& WithQueryFilterString(Aws::String&& value) { SetQueryFilterString(std::move(value)); return *this;}
187 
188     /**
189      * <p>A query filter that Amazon Lex sends to Amazon Kendra to filter the response
190      * from a query. The filter is in the format defined by Amazon Kendra. For more
191      * information, see <a
192      * href="https://docs.aws.amazon.com/kendra/latest/dg/filtering.html">Filtering
193      * queries</a>.</p>
194      */
WithQueryFilterString(const char * value)195     inline KendraConfiguration& WithQueryFilterString(const char* value) { SetQueryFilterString(value); return *this;}
196 
197   private:
198 
199     Aws::String m_kendraIndex;
200     bool m_kendraIndexHasBeenSet;
201 
202     bool m_queryFilterStringEnabled;
203     bool m_queryFilterStringEnabledHasBeenSet;
204 
205     Aws::String m_queryFilterString;
206     bool m_queryFilterStringHasBeenSet;
207   };
208 
209 } // namespace Model
210 } // namespace LexModelsV2
211 } // namespace Aws
212