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/kendra/Kendra_EXPORTS.h>
8 #include <aws/kendra/KendraRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/kendra/model/S3Path.h>
12 #include <aws/kendra/model/Tag.h>
13 #include <utility>
14 #include <aws/core/utils/UUID.h>
15 
16 namespace Aws
17 {
18 namespace kendra
19 {
20 namespace Model
21 {
22 
23   /**
24    */
25   class AWS_KENDRA_API CreateThesaurusRequest : public KendraRequest
26   {
27   public:
28     CreateThesaurusRequest();
29 
30     // Service request name is the Operation name which will send this request out,
31     // each operation should has unique request name, so that we can get operation's name from this request.
32     // Note: this is not true for response, multiple operations may have the same response name,
33     // so we can not get operation's name from response.
GetServiceRequestName()34     inline virtual const char* GetServiceRequestName() const override { return "CreateThesaurus"; }
35 
36     Aws::String SerializePayload() const override;
37 
38     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
39 
40 
41     /**
42      * <p>The unique identifier of the index for the new thesaurus. </p>
43      */
GetIndexId()44     inline const Aws::String& GetIndexId() const{ return m_indexId; }
45 
46     /**
47      * <p>The unique identifier of the index for the new thesaurus. </p>
48      */
IndexIdHasBeenSet()49     inline bool IndexIdHasBeenSet() const { return m_indexIdHasBeenSet; }
50 
51     /**
52      * <p>The unique identifier of the index for the new thesaurus. </p>
53      */
SetIndexId(const Aws::String & value)54     inline void SetIndexId(const Aws::String& value) { m_indexIdHasBeenSet = true; m_indexId = value; }
55 
56     /**
57      * <p>The unique identifier of the index for the new thesaurus. </p>
58      */
SetIndexId(Aws::String && value)59     inline void SetIndexId(Aws::String&& value) { m_indexIdHasBeenSet = true; m_indexId = std::move(value); }
60 
61     /**
62      * <p>The unique identifier of the index for the new thesaurus. </p>
63      */
SetIndexId(const char * value)64     inline void SetIndexId(const char* value) { m_indexIdHasBeenSet = true; m_indexId.assign(value); }
65 
66     /**
67      * <p>The unique identifier of the index for the new thesaurus. </p>
68      */
WithIndexId(const Aws::String & value)69     inline CreateThesaurusRequest& WithIndexId(const Aws::String& value) { SetIndexId(value); return *this;}
70 
71     /**
72      * <p>The unique identifier of the index for the new thesaurus. </p>
73      */
WithIndexId(Aws::String && value)74     inline CreateThesaurusRequest& WithIndexId(Aws::String&& value) { SetIndexId(std::move(value)); return *this;}
75 
76     /**
77      * <p>The unique identifier of the index for the new thesaurus. </p>
78      */
WithIndexId(const char * value)79     inline CreateThesaurusRequest& WithIndexId(const char* value) { SetIndexId(value); return *this;}
80 
81 
82     /**
83      * <p>The name for the new thesaurus.</p>
84      */
GetName()85     inline const Aws::String& GetName() const{ return m_name; }
86 
87     /**
88      * <p>The name for the new thesaurus.</p>
89      */
NameHasBeenSet()90     inline bool NameHasBeenSet() const { return m_nameHasBeenSet; }
91 
92     /**
93      * <p>The name for the new thesaurus.</p>
94      */
SetName(const Aws::String & value)95     inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; }
96 
97     /**
98      * <p>The name for the new thesaurus.</p>
99      */
SetName(Aws::String && value)100     inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); }
101 
102     /**
103      * <p>The name for the new thesaurus.</p>
104      */
SetName(const char * value)105     inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); }
106 
107     /**
108      * <p>The name for the new thesaurus.</p>
109      */
WithName(const Aws::String & value)110     inline CreateThesaurusRequest& WithName(const Aws::String& value) { SetName(value); return *this;}
111 
112     /**
113      * <p>The name for the new thesaurus.</p>
114      */
WithName(Aws::String && value)115     inline CreateThesaurusRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;}
116 
117     /**
118      * <p>The name for the new thesaurus.</p>
119      */
WithName(const char * value)120     inline CreateThesaurusRequest& WithName(const char* value) { SetName(value); return *this;}
121 
122 
123     /**
124      * <p>The description for the new thesaurus.</p>
125      */
GetDescription()126     inline const Aws::String& GetDescription() const{ return m_description; }
127 
128     /**
129      * <p>The description for the new thesaurus.</p>
130      */
DescriptionHasBeenSet()131     inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; }
132 
133     /**
134      * <p>The description for the new thesaurus.</p>
135      */
SetDescription(const Aws::String & value)136     inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; }
137 
138     /**
139      * <p>The description for the new thesaurus.</p>
140      */
SetDescription(Aws::String && value)141     inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); }
142 
143     /**
144      * <p>The description for the new thesaurus.</p>
145      */
SetDescription(const char * value)146     inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); }
147 
148     /**
149      * <p>The description for the new thesaurus.</p>
150      */
WithDescription(const Aws::String & value)151     inline CreateThesaurusRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;}
152 
153     /**
154      * <p>The description for the new thesaurus.</p>
155      */
WithDescription(Aws::String && value)156     inline CreateThesaurusRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;}
157 
158     /**
159      * <p>The description for the new thesaurus.</p>
160      */
WithDescription(const char * value)161     inline CreateThesaurusRequest& WithDescription(const char* value) { SetDescription(value); return *this;}
162 
163 
164     /**
165      * <p>An AWS Identity and Access Management (IAM) role that gives Amazon Kendra
166      * permissions to access thesaurus file specified in <code>SourceS3Path</code>.
167      * </p>
168      */
GetRoleArn()169     inline const Aws::String& GetRoleArn() const{ return m_roleArn; }
170 
171     /**
172      * <p>An AWS Identity and Access Management (IAM) role that gives Amazon Kendra
173      * permissions to access thesaurus file specified in <code>SourceS3Path</code>.
174      * </p>
175      */
RoleArnHasBeenSet()176     inline bool RoleArnHasBeenSet() const { return m_roleArnHasBeenSet; }
177 
178     /**
179      * <p>An AWS Identity and Access Management (IAM) role that gives Amazon Kendra
180      * permissions to access thesaurus file specified in <code>SourceS3Path</code>.
181      * </p>
182      */
SetRoleArn(const Aws::String & value)183     inline void SetRoleArn(const Aws::String& value) { m_roleArnHasBeenSet = true; m_roleArn = value; }
184 
185     /**
186      * <p>An AWS Identity and Access Management (IAM) role that gives Amazon Kendra
187      * permissions to access thesaurus file specified in <code>SourceS3Path</code>.
188      * </p>
189      */
SetRoleArn(Aws::String && value)190     inline void SetRoleArn(Aws::String&& value) { m_roleArnHasBeenSet = true; m_roleArn = std::move(value); }
191 
192     /**
193      * <p>An AWS Identity and Access Management (IAM) role that gives Amazon Kendra
194      * permissions to access thesaurus file specified in <code>SourceS3Path</code>.
195      * </p>
196      */
SetRoleArn(const char * value)197     inline void SetRoleArn(const char* value) { m_roleArnHasBeenSet = true; m_roleArn.assign(value); }
198 
199     /**
200      * <p>An AWS Identity and Access Management (IAM) role that gives Amazon Kendra
201      * permissions to access thesaurus file specified in <code>SourceS3Path</code>.
202      * </p>
203      */
WithRoleArn(const Aws::String & value)204     inline CreateThesaurusRequest& WithRoleArn(const Aws::String& value) { SetRoleArn(value); return *this;}
205 
206     /**
207      * <p>An AWS Identity and Access Management (IAM) role that gives Amazon Kendra
208      * permissions to access thesaurus file specified in <code>SourceS3Path</code>.
209      * </p>
210      */
WithRoleArn(Aws::String && value)211     inline CreateThesaurusRequest& WithRoleArn(Aws::String&& value) { SetRoleArn(std::move(value)); return *this;}
212 
213     /**
214      * <p>An AWS Identity and Access Management (IAM) role that gives Amazon Kendra
215      * permissions to access thesaurus file specified in <code>SourceS3Path</code>.
216      * </p>
217      */
WithRoleArn(const char * value)218     inline CreateThesaurusRequest& WithRoleArn(const char* value) { SetRoleArn(value); return *this;}
219 
220 
221     /**
222      * <p>A list of key-value pairs that identify the thesaurus. You can use the tags
223      * to identify and organize your resources and to control access to resources. </p>
224      */
GetTags()225     inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; }
226 
227     /**
228      * <p>A list of key-value pairs that identify the thesaurus. You can use the tags
229      * to identify and organize your resources and to control access to resources. </p>
230      */
TagsHasBeenSet()231     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
232 
233     /**
234      * <p>A list of key-value pairs that identify the thesaurus. You can use the tags
235      * to identify and organize your resources and to control access to resources. </p>
236      */
SetTags(const Aws::Vector<Tag> & value)237     inline void SetTags(const Aws::Vector<Tag>& value) { m_tagsHasBeenSet = true; m_tags = value; }
238 
239     /**
240      * <p>A list of key-value pairs that identify the thesaurus. You can use the tags
241      * to identify and organize your resources and to control access to resources. </p>
242      */
SetTags(Aws::Vector<Tag> && value)243     inline void SetTags(Aws::Vector<Tag>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
244 
245     /**
246      * <p>A list of key-value pairs that identify the thesaurus. You can use the tags
247      * to identify and organize your resources and to control access to resources. </p>
248      */
WithTags(const Aws::Vector<Tag> & value)249     inline CreateThesaurusRequest& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;}
250 
251     /**
252      * <p>A list of key-value pairs that identify the thesaurus. You can use the tags
253      * to identify and organize your resources and to control access to resources. </p>
254      */
WithTags(Aws::Vector<Tag> && value)255     inline CreateThesaurusRequest& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;}
256 
257     /**
258      * <p>A list of key-value pairs that identify the thesaurus. You can use the tags
259      * to identify and organize your resources and to control access to resources. </p>
260      */
AddTags(const Tag & value)261     inline CreateThesaurusRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; }
262 
263     /**
264      * <p>A list of key-value pairs that identify the thesaurus. You can use the tags
265      * to identify and organize your resources and to control access to resources. </p>
266      */
AddTags(Tag && value)267     inline CreateThesaurusRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; }
268 
269 
270     /**
271      * <p>The thesaurus file Amazon S3 source path. </p>
272      */
GetSourceS3Path()273     inline const S3Path& GetSourceS3Path() const{ return m_sourceS3Path; }
274 
275     /**
276      * <p>The thesaurus file Amazon S3 source path. </p>
277      */
SourceS3PathHasBeenSet()278     inline bool SourceS3PathHasBeenSet() const { return m_sourceS3PathHasBeenSet; }
279 
280     /**
281      * <p>The thesaurus file Amazon S3 source path. </p>
282      */
SetSourceS3Path(const S3Path & value)283     inline void SetSourceS3Path(const S3Path& value) { m_sourceS3PathHasBeenSet = true; m_sourceS3Path = value; }
284 
285     /**
286      * <p>The thesaurus file Amazon S3 source path. </p>
287      */
SetSourceS3Path(S3Path && value)288     inline void SetSourceS3Path(S3Path&& value) { m_sourceS3PathHasBeenSet = true; m_sourceS3Path = std::move(value); }
289 
290     /**
291      * <p>The thesaurus file Amazon S3 source path. </p>
292      */
WithSourceS3Path(const S3Path & value)293     inline CreateThesaurusRequest& WithSourceS3Path(const S3Path& value) { SetSourceS3Path(value); return *this;}
294 
295     /**
296      * <p>The thesaurus file Amazon S3 source path. </p>
297      */
WithSourceS3Path(S3Path && value)298     inline CreateThesaurusRequest& WithSourceS3Path(S3Path&& value) { SetSourceS3Path(std::move(value)); return *this;}
299 
300 
301     /**
302      * <p>A token that you provide to identify the request to create a thesaurus.
303      * Multiple calls to the <code>CreateThesaurus</code> operation with the same
304      * client token will create only one thesaurus. </p>
305      */
GetClientToken()306     inline const Aws::String& GetClientToken() const{ return m_clientToken; }
307 
308     /**
309      * <p>A token that you provide to identify the request to create a thesaurus.
310      * Multiple calls to the <code>CreateThesaurus</code> operation with the same
311      * client token will create only one thesaurus. </p>
312      */
ClientTokenHasBeenSet()313     inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; }
314 
315     /**
316      * <p>A token that you provide to identify the request to create a thesaurus.
317      * Multiple calls to the <code>CreateThesaurus</code> operation with the same
318      * client token will create only one thesaurus. </p>
319      */
SetClientToken(const Aws::String & value)320     inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; }
321 
322     /**
323      * <p>A token that you provide to identify the request to create a thesaurus.
324      * Multiple calls to the <code>CreateThesaurus</code> operation with the same
325      * client token will create only one thesaurus. </p>
326      */
SetClientToken(Aws::String && value)327     inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); }
328 
329     /**
330      * <p>A token that you provide to identify the request to create a thesaurus.
331      * Multiple calls to the <code>CreateThesaurus</code> operation with the same
332      * client token will create only one thesaurus. </p>
333      */
SetClientToken(const char * value)334     inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); }
335 
336     /**
337      * <p>A token that you provide to identify the request to create a thesaurus.
338      * Multiple calls to the <code>CreateThesaurus</code> operation with the same
339      * client token will create only one thesaurus. </p>
340      */
WithClientToken(const Aws::String & value)341     inline CreateThesaurusRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;}
342 
343     /**
344      * <p>A token that you provide to identify the request to create a thesaurus.
345      * Multiple calls to the <code>CreateThesaurus</code> operation with the same
346      * client token will create only one thesaurus. </p>
347      */
WithClientToken(Aws::String && value)348     inline CreateThesaurusRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;}
349 
350     /**
351      * <p>A token that you provide to identify the request to create a thesaurus.
352      * Multiple calls to the <code>CreateThesaurus</code> operation with the same
353      * client token will create only one thesaurus. </p>
354      */
WithClientToken(const char * value)355     inline CreateThesaurusRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;}
356 
357   private:
358 
359     Aws::String m_indexId;
360     bool m_indexIdHasBeenSet;
361 
362     Aws::String m_name;
363     bool m_nameHasBeenSet;
364 
365     Aws::String m_description;
366     bool m_descriptionHasBeenSet;
367 
368     Aws::String m_roleArn;
369     bool m_roleArnHasBeenSet;
370 
371     Aws::Vector<Tag> m_tags;
372     bool m_tagsHasBeenSet;
373 
374     S3Path m_sourceS3Path;
375     bool m_sourceS3PathHasBeenSet;
376 
377     Aws::String m_clientToken;
378     bool m_clientTokenHasBeenSet;
379   };
380 
381 } // namespace Model
382 } // namespace kendra
383 } // namespace Aws
384