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/firehose/Firehose_EXPORTS.h>
8 #include <aws/core/utils/memory/stl/AWSString.h>
9 #include <aws/firehose/model/ElasticsearchIndexRotationPeriod.h>
10 #include <aws/firehose/model/ElasticsearchBufferingHints.h>
11 #include <aws/firehose/model/ElasticsearchRetryOptions.h>
12 #include <aws/firehose/model/ElasticsearchS3BackupMode.h>
13 #include <aws/firehose/model/S3DestinationConfiguration.h>
14 #include <aws/firehose/model/ProcessingConfiguration.h>
15 #include <aws/firehose/model/CloudWatchLoggingOptions.h>
16 #include <aws/firehose/model/VpcConfiguration.h>
17 #include <utility>
18 
19 namespace Aws
20 {
21 namespace Utils
22 {
23 namespace Json
24 {
25   class JsonValue;
26   class JsonView;
27 } // namespace Json
28 } // namespace Utils
29 namespace Firehose
30 {
31 namespace Model
32 {
33 
34   /**
35    * <p>Describes the configuration of a destination in Amazon ES.</p><p><h3>See
36    * Also:</h3>   <a
37    * href="http://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/ElasticsearchDestinationConfiguration">AWS
38    * API Reference</a></p>
39    */
40   class AWS_FIREHOSE_API ElasticsearchDestinationConfiguration
41   {
42   public:
43     ElasticsearchDestinationConfiguration();
44     ElasticsearchDestinationConfiguration(Aws::Utils::Json::JsonView jsonValue);
45     ElasticsearchDestinationConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue);
46     Aws::Utils::Json::JsonValue Jsonize() const;
47 
48 
49     /**
50      * <p>The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data
51      * Firehose for calling the Amazon ES Configuration API and for indexing documents.
52      * For more information, see <a
53      * href="https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3">Grant
54      * Kinesis Data Firehose Access to an Amazon S3 Destination</a> and <a
55      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
56      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
57      */
GetRoleARN()58     inline const Aws::String& GetRoleARN() const{ return m_roleARN; }
59 
60     /**
61      * <p>The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data
62      * Firehose for calling the Amazon ES Configuration API and for indexing documents.
63      * For more information, see <a
64      * href="https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3">Grant
65      * Kinesis Data Firehose Access to an Amazon S3 Destination</a> and <a
66      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
67      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
68      */
RoleARNHasBeenSet()69     inline bool RoleARNHasBeenSet() const { return m_roleARNHasBeenSet; }
70 
71     /**
72      * <p>The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data
73      * Firehose for calling the Amazon ES Configuration API and for indexing documents.
74      * For more information, see <a
75      * href="https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3">Grant
76      * Kinesis Data Firehose Access to an Amazon S3 Destination</a> and <a
77      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
78      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
79      */
SetRoleARN(const Aws::String & value)80     inline void SetRoleARN(const Aws::String& value) { m_roleARNHasBeenSet = true; m_roleARN = value; }
81 
82     /**
83      * <p>The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data
84      * Firehose for calling the Amazon ES Configuration API and for indexing documents.
85      * For more information, see <a
86      * href="https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3">Grant
87      * Kinesis Data Firehose Access to an Amazon S3 Destination</a> and <a
88      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
89      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
90      */
SetRoleARN(Aws::String && value)91     inline void SetRoleARN(Aws::String&& value) { m_roleARNHasBeenSet = true; m_roleARN = std::move(value); }
92 
93     /**
94      * <p>The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data
95      * Firehose for calling the Amazon ES Configuration API and for indexing documents.
96      * For more information, see <a
97      * href="https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3">Grant
98      * Kinesis Data Firehose Access to an Amazon S3 Destination</a> and <a
99      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
100      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
101      */
SetRoleARN(const char * value)102     inline void SetRoleARN(const char* value) { m_roleARNHasBeenSet = true; m_roleARN.assign(value); }
103 
104     /**
105      * <p>The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data
106      * Firehose for calling the Amazon ES Configuration API and for indexing documents.
107      * For more information, see <a
108      * href="https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3">Grant
109      * Kinesis Data Firehose Access to an Amazon S3 Destination</a> and <a
110      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
111      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
112      */
WithRoleARN(const Aws::String & value)113     inline ElasticsearchDestinationConfiguration& WithRoleARN(const Aws::String& value) { SetRoleARN(value); return *this;}
114 
115     /**
116      * <p>The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data
117      * Firehose for calling the Amazon ES Configuration API and for indexing documents.
118      * For more information, see <a
119      * href="https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3">Grant
120      * Kinesis Data Firehose Access to an Amazon S3 Destination</a> and <a
121      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
122      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
123      */
WithRoleARN(Aws::String && value)124     inline ElasticsearchDestinationConfiguration& WithRoleARN(Aws::String&& value) { SetRoleARN(std::move(value)); return *this;}
125 
126     /**
127      * <p>The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data
128      * Firehose for calling the Amazon ES Configuration API and for indexing documents.
129      * For more information, see <a
130      * href="https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3">Grant
131      * Kinesis Data Firehose Access to an Amazon S3 Destination</a> and <a
132      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
133      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p>
134      */
WithRoleARN(const char * value)135     inline ElasticsearchDestinationConfiguration& WithRoleARN(const char* value) { SetRoleARN(value); return *this;}
136 
137 
138     /**
139      * <p>The ARN of the Amazon ES domain. The IAM role must have permissions
140      * for <code>DescribeElasticsearchDomain</code>,
141      * <code>DescribeElasticsearchDomains</code>, and
142      * <code>DescribeElasticsearchDomainConfig</code> after assuming the role specified
143      * in <b>RoleARN</b>. For more information, see <a
144      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
145      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p> <p>Specify either
146      * <code>ClusterEndpoint</code> or <code>DomainARN</code>.</p>
147      */
GetDomainARN()148     inline const Aws::String& GetDomainARN() const{ return m_domainARN; }
149 
150     /**
151      * <p>The ARN of the Amazon ES domain. The IAM role must have permissions
152      * for <code>DescribeElasticsearchDomain</code>,
153      * <code>DescribeElasticsearchDomains</code>, and
154      * <code>DescribeElasticsearchDomainConfig</code> after assuming the role specified
155      * in <b>RoleARN</b>. For more information, see <a
156      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
157      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p> <p>Specify either
158      * <code>ClusterEndpoint</code> or <code>DomainARN</code>.</p>
159      */
DomainARNHasBeenSet()160     inline bool DomainARNHasBeenSet() const { return m_domainARNHasBeenSet; }
161 
162     /**
163      * <p>The ARN of the Amazon ES domain. The IAM role must have permissions
164      * for <code>DescribeElasticsearchDomain</code>,
165      * <code>DescribeElasticsearchDomains</code>, and
166      * <code>DescribeElasticsearchDomainConfig</code> after assuming the role specified
167      * in <b>RoleARN</b>. For more information, see <a
168      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
169      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p> <p>Specify either
170      * <code>ClusterEndpoint</code> or <code>DomainARN</code>.</p>
171      */
SetDomainARN(const Aws::String & value)172     inline void SetDomainARN(const Aws::String& value) { m_domainARNHasBeenSet = true; m_domainARN = value; }
173 
174     /**
175      * <p>The ARN of the Amazon ES domain. The IAM role must have permissions
176      * for <code>DescribeElasticsearchDomain</code>,
177      * <code>DescribeElasticsearchDomains</code>, and
178      * <code>DescribeElasticsearchDomainConfig</code> after assuming the role specified
179      * in <b>RoleARN</b>. For more information, see <a
180      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
181      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p> <p>Specify either
182      * <code>ClusterEndpoint</code> or <code>DomainARN</code>.</p>
183      */
SetDomainARN(Aws::String && value)184     inline void SetDomainARN(Aws::String&& value) { m_domainARNHasBeenSet = true; m_domainARN = std::move(value); }
185 
186     /**
187      * <p>The ARN of the Amazon ES domain. The IAM role must have permissions
188      * for <code>DescribeElasticsearchDomain</code>,
189      * <code>DescribeElasticsearchDomains</code>, and
190      * <code>DescribeElasticsearchDomainConfig</code> after assuming the role specified
191      * in <b>RoleARN</b>. For more information, see <a
192      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
193      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p> <p>Specify either
194      * <code>ClusterEndpoint</code> or <code>DomainARN</code>.</p>
195      */
SetDomainARN(const char * value)196     inline void SetDomainARN(const char* value) { m_domainARNHasBeenSet = true; m_domainARN.assign(value); }
197 
198     /**
199      * <p>The ARN of the Amazon ES domain. The IAM role must have permissions
200      * for <code>DescribeElasticsearchDomain</code>,
201      * <code>DescribeElasticsearchDomains</code>, and
202      * <code>DescribeElasticsearchDomainConfig</code> after assuming the role specified
203      * in <b>RoleARN</b>. For more information, see <a
204      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
205      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p> <p>Specify either
206      * <code>ClusterEndpoint</code> or <code>DomainARN</code>.</p>
207      */
WithDomainARN(const Aws::String & value)208     inline ElasticsearchDestinationConfiguration& WithDomainARN(const Aws::String& value) { SetDomainARN(value); return *this;}
209 
210     /**
211      * <p>The ARN of the Amazon ES domain. The IAM role must have permissions
212      * for <code>DescribeElasticsearchDomain</code>,
213      * <code>DescribeElasticsearchDomains</code>, and
214      * <code>DescribeElasticsearchDomainConfig</code> after assuming the role specified
215      * in <b>RoleARN</b>. For more information, see <a
216      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
217      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p> <p>Specify either
218      * <code>ClusterEndpoint</code> or <code>DomainARN</code>.</p>
219      */
WithDomainARN(Aws::String && value)220     inline ElasticsearchDestinationConfiguration& WithDomainARN(Aws::String&& value) { SetDomainARN(std::move(value)); return *this;}
221 
222     /**
223      * <p>The ARN of the Amazon ES domain. The IAM role must have permissions
224      * for <code>DescribeElasticsearchDomain</code>,
225      * <code>DescribeElasticsearchDomains</code>, and
226      * <code>DescribeElasticsearchDomainConfig</code> after assuming the role specified
227      * in <b>RoleARN</b>. For more information, see <a
228      * href="https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html">Amazon
229      * Resource Names (ARNs) and AWS Service Namespaces</a>.</p> <p>Specify either
230      * <code>ClusterEndpoint</code> or <code>DomainARN</code>.</p>
231      */
WithDomainARN(const char * value)232     inline ElasticsearchDestinationConfiguration& WithDomainARN(const char* value) { SetDomainARN(value); return *this;}
233 
234 
235     /**
236      * <p>The endpoint to use when communicating with the cluster. Specify either this
237      * <code>ClusterEndpoint</code> or the <code>DomainARN</code> field.</p>
238      */
GetClusterEndpoint()239     inline const Aws::String& GetClusterEndpoint() const{ return m_clusterEndpoint; }
240 
241     /**
242      * <p>The endpoint to use when communicating with the cluster. Specify either this
243      * <code>ClusterEndpoint</code> or the <code>DomainARN</code> field.</p>
244      */
ClusterEndpointHasBeenSet()245     inline bool ClusterEndpointHasBeenSet() const { return m_clusterEndpointHasBeenSet; }
246 
247     /**
248      * <p>The endpoint to use when communicating with the cluster. Specify either this
249      * <code>ClusterEndpoint</code> or the <code>DomainARN</code> field.</p>
250      */
SetClusterEndpoint(const Aws::String & value)251     inline void SetClusterEndpoint(const Aws::String& value) { m_clusterEndpointHasBeenSet = true; m_clusterEndpoint = value; }
252 
253     /**
254      * <p>The endpoint to use when communicating with the cluster. Specify either this
255      * <code>ClusterEndpoint</code> or the <code>DomainARN</code> field.</p>
256      */
SetClusterEndpoint(Aws::String && value)257     inline void SetClusterEndpoint(Aws::String&& value) { m_clusterEndpointHasBeenSet = true; m_clusterEndpoint = std::move(value); }
258 
259     /**
260      * <p>The endpoint to use when communicating with the cluster. Specify either this
261      * <code>ClusterEndpoint</code> or the <code>DomainARN</code> field.</p>
262      */
SetClusterEndpoint(const char * value)263     inline void SetClusterEndpoint(const char* value) { m_clusterEndpointHasBeenSet = true; m_clusterEndpoint.assign(value); }
264 
265     /**
266      * <p>The endpoint to use when communicating with the cluster. Specify either this
267      * <code>ClusterEndpoint</code> or the <code>DomainARN</code> field.</p>
268      */
WithClusterEndpoint(const Aws::String & value)269     inline ElasticsearchDestinationConfiguration& WithClusterEndpoint(const Aws::String& value) { SetClusterEndpoint(value); return *this;}
270 
271     /**
272      * <p>The endpoint to use when communicating with the cluster. Specify either this
273      * <code>ClusterEndpoint</code> or the <code>DomainARN</code> field.</p>
274      */
WithClusterEndpoint(Aws::String && value)275     inline ElasticsearchDestinationConfiguration& WithClusterEndpoint(Aws::String&& value) { SetClusterEndpoint(std::move(value)); return *this;}
276 
277     /**
278      * <p>The endpoint to use when communicating with the cluster. Specify either this
279      * <code>ClusterEndpoint</code> or the <code>DomainARN</code> field.</p>
280      */
WithClusterEndpoint(const char * value)281     inline ElasticsearchDestinationConfiguration& WithClusterEndpoint(const char* value) { SetClusterEndpoint(value); return *this;}
282 
283 
284     /**
285      * <p>The Elasticsearch index name.</p>
286      */
GetIndexName()287     inline const Aws::String& GetIndexName() const{ return m_indexName; }
288 
289     /**
290      * <p>The Elasticsearch index name.</p>
291      */
IndexNameHasBeenSet()292     inline bool IndexNameHasBeenSet() const { return m_indexNameHasBeenSet; }
293 
294     /**
295      * <p>The Elasticsearch index name.</p>
296      */
SetIndexName(const Aws::String & value)297     inline void SetIndexName(const Aws::String& value) { m_indexNameHasBeenSet = true; m_indexName = value; }
298 
299     /**
300      * <p>The Elasticsearch index name.</p>
301      */
SetIndexName(Aws::String && value)302     inline void SetIndexName(Aws::String&& value) { m_indexNameHasBeenSet = true; m_indexName = std::move(value); }
303 
304     /**
305      * <p>The Elasticsearch index name.</p>
306      */
SetIndexName(const char * value)307     inline void SetIndexName(const char* value) { m_indexNameHasBeenSet = true; m_indexName.assign(value); }
308 
309     /**
310      * <p>The Elasticsearch index name.</p>
311      */
WithIndexName(const Aws::String & value)312     inline ElasticsearchDestinationConfiguration& WithIndexName(const Aws::String& value) { SetIndexName(value); return *this;}
313 
314     /**
315      * <p>The Elasticsearch index name.</p>
316      */
WithIndexName(Aws::String && value)317     inline ElasticsearchDestinationConfiguration& WithIndexName(Aws::String&& value) { SetIndexName(std::move(value)); return *this;}
318 
319     /**
320      * <p>The Elasticsearch index name.</p>
321      */
WithIndexName(const char * value)322     inline ElasticsearchDestinationConfiguration& WithIndexName(const char* value) { SetIndexName(value); return *this;}
323 
324 
325     /**
326      * <p>The Elasticsearch type name. For Elasticsearch 6.x, there can be only one
327      * type per index. If you try to specify a new type for an existing index that
328      * already has another type, Kinesis Data Firehose returns an error during run
329      * time.</p> <p>For Elasticsearch 7.x, don't specify a <code>TypeName</code>.</p>
330      */
GetTypeName()331     inline const Aws::String& GetTypeName() const{ return m_typeName; }
332 
333     /**
334      * <p>The Elasticsearch type name. For Elasticsearch 6.x, there can be only one
335      * type per index. If you try to specify a new type for an existing index that
336      * already has another type, Kinesis Data Firehose returns an error during run
337      * time.</p> <p>For Elasticsearch 7.x, don't specify a <code>TypeName</code>.</p>
338      */
TypeNameHasBeenSet()339     inline bool TypeNameHasBeenSet() const { return m_typeNameHasBeenSet; }
340 
341     /**
342      * <p>The Elasticsearch type name. For Elasticsearch 6.x, there can be only one
343      * type per index. If you try to specify a new type for an existing index that
344      * already has another type, Kinesis Data Firehose returns an error during run
345      * time.</p> <p>For Elasticsearch 7.x, don't specify a <code>TypeName</code>.</p>
346      */
SetTypeName(const Aws::String & value)347     inline void SetTypeName(const Aws::String& value) { m_typeNameHasBeenSet = true; m_typeName = value; }
348 
349     /**
350      * <p>The Elasticsearch type name. For Elasticsearch 6.x, there can be only one
351      * type per index. If you try to specify a new type for an existing index that
352      * already has another type, Kinesis Data Firehose returns an error during run
353      * time.</p> <p>For Elasticsearch 7.x, don't specify a <code>TypeName</code>.</p>
354      */
SetTypeName(Aws::String && value)355     inline void SetTypeName(Aws::String&& value) { m_typeNameHasBeenSet = true; m_typeName = std::move(value); }
356 
357     /**
358      * <p>The Elasticsearch type name. For Elasticsearch 6.x, there can be only one
359      * type per index. If you try to specify a new type for an existing index that
360      * already has another type, Kinesis Data Firehose returns an error during run
361      * time.</p> <p>For Elasticsearch 7.x, don't specify a <code>TypeName</code>.</p>
362      */
SetTypeName(const char * value)363     inline void SetTypeName(const char* value) { m_typeNameHasBeenSet = true; m_typeName.assign(value); }
364 
365     /**
366      * <p>The Elasticsearch type name. For Elasticsearch 6.x, there can be only one
367      * type per index. If you try to specify a new type for an existing index that
368      * already has another type, Kinesis Data Firehose returns an error during run
369      * time.</p> <p>For Elasticsearch 7.x, don't specify a <code>TypeName</code>.</p>
370      */
WithTypeName(const Aws::String & value)371     inline ElasticsearchDestinationConfiguration& WithTypeName(const Aws::String& value) { SetTypeName(value); return *this;}
372 
373     /**
374      * <p>The Elasticsearch type name. For Elasticsearch 6.x, there can be only one
375      * type per index. If you try to specify a new type for an existing index that
376      * already has another type, Kinesis Data Firehose returns an error during run
377      * time.</p> <p>For Elasticsearch 7.x, don't specify a <code>TypeName</code>.</p>
378      */
WithTypeName(Aws::String && value)379     inline ElasticsearchDestinationConfiguration& WithTypeName(Aws::String&& value) { SetTypeName(std::move(value)); return *this;}
380 
381     /**
382      * <p>The Elasticsearch type name. For Elasticsearch 6.x, there can be only one
383      * type per index. If you try to specify a new type for an existing index that
384      * already has another type, Kinesis Data Firehose returns an error during run
385      * time.</p> <p>For Elasticsearch 7.x, don't specify a <code>TypeName</code>.</p>
386      */
WithTypeName(const char * value)387     inline ElasticsearchDestinationConfiguration& WithTypeName(const char* value) { SetTypeName(value); return *this;}
388 
389 
390     /**
391      * <p>The Elasticsearch index rotation period. Index rotation appends a timestamp
392      * to the <code>IndexName</code> to facilitate the expiration of old data. For more
393      * information, see <a
394      * href="https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation">Index
395      * Rotation for the Amazon ES Destination</a>. The default value
396      * is <code>OneDay</code>.</p>
397      */
GetIndexRotationPeriod()398     inline const ElasticsearchIndexRotationPeriod& GetIndexRotationPeriod() const{ return m_indexRotationPeriod; }
399 
400     /**
401      * <p>The Elasticsearch index rotation period. Index rotation appends a timestamp
402      * to the <code>IndexName</code> to facilitate the expiration of old data. For more
403      * information, see <a
404      * href="https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation">Index
405      * Rotation for the Amazon ES Destination</a>. The default value
406      * is <code>OneDay</code>.</p>
407      */
IndexRotationPeriodHasBeenSet()408     inline bool IndexRotationPeriodHasBeenSet() const { return m_indexRotationPeriodHasBeenSet; }
409 
410     /**
411      * <p>The Elasticsearch index rotation period. Index rotation appends a timestamp
412      * to the <code>IndexName</code> to facilitate the expiration of old data. For more
413      * information, see <a
414      * href="https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation">Index
415      * Rotation for the Amazon ES Destination</a>. The default value
416      * is <code>OneDay</code>.</p>
417      */
SetIndexRotationPeriod(const ElasticsearchIndexRotationPeriod & value)418     inline void SetIndexRotationPeriod(const ElasticsearchIndexRotationPeriod& value) { m_indexRotationPeriodHasBeenSet = true; m_indexRotationPeriod = value; }
419 
420     /**
421      * <p>The Elasticsearch index rotation period. Index rotation appends a timestamp
422      * to the <code>IndexName</code> to facilitate the expiration of old data. For more
423      * information, see <a
424      * href="https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation">Index
425      * Rotation for the Amazon ES Destination</a>. The default value
426      * is <code>OneDay</code>.</p>
427      */
SetIndexRotationPeriod(ElasticsearchIndexRotationPeriod && value)428     inline void SetIndexRotationPeriod(ElasticsearchIndexRotationPeriod&& value) { m_indexRotationPeriodHasBeenSet = true; m_indexRotationPeriod = std::move(value); }
429 
430     /**
431      * <p>The Elasticsearch index rotation period. Index rotation appends a timestamp
432      * to the <code>IndexName</code> to facilitate the expiration of old data. For more
433      * information, see <a
434      * href="https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation">Index
435      * Rotation for the Amazon ES Destination</a>. The default value
436      * is <code>OneDay</code>.</p>
437      */
WithIndexRotationPeriod(const ElasticsearchIndexRotationPeriod & value)438     inline ElasticsearchDestinationConfiguration& WithIndexRotationPeriod(const ElasticsearchIndexRotationPeriod& value) { SetIndexRotationPeriod(value); return *this;}
439 
440     /**
441      * <p>The Elasticsearch index rotation period. Index rotation appends a timestamp
442      * to the <code>IndexName</code> to facilitate the expiration of old data. For more
443      * information, see <a
444      * href="https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-index-rotation">Index
445      * Rotation for the Amazon ES Destination</a>. The default value
446      * is <code>OneDay</code>.</p>
447      */
WithIndexRotationPeriod(ElasticsearchIndexRotationPeriod && value)448     inline ElasticsearchDestinationConfiguration& WithIndexRotationPeriod(ElasticsearchIndexRotationPeriod&& value) { SetIndexRotationPeriod(std::move(value)); return *this;}
449 
450 
451     /**
452      * <p>The buffering options. If no value is specified, the default values for
453      * <code>ElasticsearchBufferingHints</code> are used.</p>
454      */
GetBufferingHints()455     inline const ElasticsearchBufferingHints& GetBufferingHints() const{ return m_bufferingHints; }
456 
457     /**
458      * <p>The buffering options. If no value is specified, the default values for
459      * <code>ElasticsearchBufferingHints</code> are used.</p>
460      */
BufferingHintsHasBeenSet()461     inline bool BufferingHintsHasBeenSet() const { return m_bufferingHintsHasBeenSet; }
462 
463     /**
464      * <p>The buffering options. If no value is specified, the default values for
465      * <code>ElasticsearchBufferingHints</code> are used.</p>
466      */
SetBufferingHints(const ElasticsearchBufferingHints & value)467     inline void SetBufferingHints(const ElasticsearchBufferingHints& value) { m_bufferingHintsHasBeenSet = true; m_bufferingHints = value; }
468 
469     /**
470      * <p>The buffering options. If no value is specified, the default values for
471      * <code>ElasticsearchBufferingHints</code> are used.</p>
472      */
SetBufferingHints(ElasticsearchBufferingHints && value)473     inline void SetBufferingHints(ElasticsearchBufferingHints&& value) { m_bufferingHintsHasBeenSet = true; m_bufferingHints = std::move(value); }
474 
475     /**
476      * <p>The buffering options. If no value is specified, the default values for
477      * <code>ElasticsearchBufferingHints</code> are used.</p>
478      */
WithBufferingHints(const ElasticsearchBufferingHints & value)479     inline ElasticsearchDestinationConfiguration& WithBufferingHints(const ElasticsearchBufferingHints& value) { SetBufferingHints(value); return *this;}
480 
481     /**
482      * <p>The buffering options. If no value is specified, the default values for
483      * <code>ElasticsearchBufferingHints</code> are used.</p>
484      */
WithBufferingHints(ElasticsearchBufferingHints && value)485     inline ElasticsearchDestinationConfiguration& WithBufferingHints(ElasticsearchBufferingHints&& value) { SetBufferingHints(std::move(value)); return *this;}
486 
487 
488     /**
489      * <p>The retry behavior in case Kinesis Data Firehose is unable to deliver
490      * documents to Amazon ES. The default value is 300 (5 minutes).</p>
491      */
GetRetryOptions()492     inline const ElasticsearchRetryOptions& GetRetryOptions() const{ return m_retryOptions; }
493 
494     /**
495      * <p>The retry behavior in case Kinesis Data Firehose is unable to deliver
496      * documents to Amazon ES. The default value is 300 (5 minutes).</p>
497      */
RetryOptionsHasBeenSet()498     inline bool RetryOptionsHasBeenSet() const { return m_retryOptionsHasBeenSet; }
499 
500     /**
501      * <p>The retry behavior in case Kinesis Data Firehose is unable to deliver
502      * documents to Amazon ES. The default value is 300 (5 minutes).</p>
503      */
SetRetryOptions(const ElasticsearchRetryOptions & value)504     inline void SetRetryOptions(const ElasticsearchRetryOptions& value) { m_retryOptionsHasBeenSet = true; m_retryOptions = value; }
505 
506     /**
507      * <p>The retry behavior in case Kinesis Data Firehose is unable to deliver
508      * documents to Amazon ES. The default value is 300 (5 minutes).</p>
509      */
SetRetryOptions(ElasticsearchRetryOptions && value)510     inline void SetRetryOptions(ElasticsearchRetryOptions&& value) { m_retryOptionsHasBeenSet = true; m_retryOptions = std::move(value); }
511 
512     /**
513      * <p>The retry behavior in case Kinesis Data Firehose is unable to deliver
514      * documents to Amazon ES. The default value is 300 (5 minutes).</p>
515      */
WithRetryOptions(const ElasticsearchRetryOptions & value)516     inline ElasticsearchDestinationConfiguration& WithRetryOptions(const ElasticsearchRetryOptions& value) { SetRetryOptions(value); return *this;}
517 
518     /**
519      * <p>The retry behavior in case Kinesis Data Firehose is unable to deliver
520      * documents to Amazon ES. The default value is 300 (5 minutes).</p>
521      */
WithRetryOptions(ElasticsearchRetryOptions && value)522     inline ElasticsearchDestinationConfiguration& WithRetryOptions(ElasticsearchRetryOptions&& value) { SetRetryOptions(std::move(value)); return *this;}
523 
524 
525     /**
526      * <p>Defines how documents should be delivered to Amazon S3. When it is set to
527      * <code>FailedDocumentsOnly</code>, Kinesis Data Firehose writes any documents
528      * that could not be indexed to the configured Amazon S3 destination, with
529      * <code>elasticsearch-failed/</code> appended to the key prefix. When set to
530      * <code>AllDocuments</code>, Kinesis Data Firehose delivers all incoming records
531      * to Amazon S3, and also writes failed documents with
532      * <code>elasticsearch-failed/</code> appended to the prefix. For more information,
533      * see <a
534      * href="https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-s3-backup">Amazon
535      * S3 Backup for the Amazon ES Destination</a>. Default value is
536      * <code>FailedDocumentsOnly</code>.</p> <p>You can't change this backup mode after
537      * you create the delivery stream. </p>
538      */
GetS3BackupMode()539     inline const ElasticsearchS3BackupMode& GetS3BackupMode() const{ return m_s3BackupMode; }
540 
541     /**
542      * <p>Defines how documents should be delivered to Amazon S3. When it is set to
543      * <code>FailedDocumentsOnly</code>, Kinesis Data Firehose writes any documents
544      * that could not be indexed to the configured Amazon S3 destination, with
545      * <code>elasticsearch-failed/</code> appended to the key prefix. When set to
546      * <code>AllDocuments</code>, Kinesis Data Firehose delivers all incoming records
547      * to Amazon S3, and also writes failed documents with
548      * <code>elasticsearch-failed/</code> appended to the prefix. For more information,
549      * see <a
550      * href="https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-s3-backup">Amazon
551      * S3 Backup for the Amazon ES Destination</a>. Default value is
552      * <code>FailedDocumentsOnly</code>.</p> <p>You can't change this backup mode after
553      * you create the delivery stream. </p>
554      */
S3BackupModeHasBeenSet()555     inline bool S3BackupModeHasBeenSet() const { return m_s3BackupModeHasBeenSet; }
556 
557     /**
558      * <p>Defines how documents should be delivered to Amazon S3. When it is set to
559      * <code>FailedDocumentsOnly</code>, Kinesis Data Firehose writes any documents
560      * that could not be indexed to the configured Amazon S3 destination, with
561      * <code>elasticsearch-failed/</code> appended to the key prefix. When set to
562      * <code>AllDocuments</code>, Kinesis Data Firehose delivers all incoming records
563      * to Amazon S3, and also writes failed documents with
564      * <code>elasticsearch-failed/</code> appended to the prefix. For more information,
565      * see <a
566      * href="https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-s3-backup">Amazon
567      * S3 Backup for the Amazon ES Destination</a>. Default value is
568      * <code>FailedDocumentsOnly</code>.</p> <p>You can't change this backup mode after
569      * you create the delivery stream. </p>
570      */
SetS3BackupMode(const ElasticsearchS3BackupMode & value)571     inline void SetS3BackupMode(const ElasticsearchS3BackupMode& value) { m_s3BackupModeHasBeenSet = true; m_s3BackupMode = value; }
572 
573     /**
574      * <p>Defines how documents should be delivered to Amazon S3. When it is set to
575      * <code>FailedDocumentsOnly</code>, Kinesis Data Firehose writes any documents
576      * that could not be indexed to the configured Amazon S3 destination, with
577      * <code>elasticsearch-failed/</code> appended to the key prefix. When set to
578      * <code>AllDocuments</code>, Kinesis Data Firehose delivers all incoming records
579      * to Amazon S3, and also writes failed documents with
580      * <code>elasticsearch-failed/</code> appended to the prefix. For more information,
581      * see <a
582      * href="https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-s3-backup">Amazon
583      * S3 Backup for the Amazon ES Destination</a>. Default value is
584      * <code>FailedDocumentsOnly</code>.</p> <p>You can't change this backup mode after
585      * you create the delivery stream. </p>
586      */
SetS3BackupMode(ElasticsearchS3BackupMode && value)587     inline void SetS3BackupMode(ElasticsearchS3BackupMode&& value) { m_s3BackupModeHasBeenSet = true; m_s3BackupMode = std::move(value); }
588 
589     /**
590      * <p>Defines how documents should be delivered to Amazon S3. When it is set to
591      * <code>FailedDocumentsOnly</code>, Kinesis Data Firehose writes any documents
592      * that could not be indexed to the configured Amazon S3 destination, with
593      * <code>elasticsearch-failed/</code> appended to the key prefix. When set to
594      * <code>AllDocuments</code>, Kinesis Data Firehose delivers all incoming records
595      * to Amazon S3, and also writes failed documents with
596      * <code>elasticsearch-failed/</code> appended to the prefix. For more information,
597      * see <a
598      * href="https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-s3-backup">Amazon
599      * S3 Backup for the Amazon ES Destination</a>. Default value is
600      * <code>FailedDocumentsOnly</code>.</p> <p>You can't change this backup mode after
601      * you create the delivery stream. </p>
602      */
WithS3BackupMode(const ElasticsearchS3BackupMode & value)603     inline ElasticsearchDestinationConfiguration& WithS3BackupMode(const ElasticsearchS3BackupMode& value) { SetS3BackupMode(value); return *this;}
604 
605     /**
606      * <p>Defines how documents should be delivered to Amazon S3. When it is set to
607      * <code>FailedDocumentsOnly</code>, Kinesis Data Firehose writes any documents
608      * that could not be indexed to the configured Amazon S3 destination, with
609      * <code>elasticsearch-failed/</code> appended to the key prefix. When set to
610      * <code>AllDocuments</code>, Kinesis Data Firehose delivers all incoming records
611      * to Amazon S3, and also writes failed documents with
612      * <code>elasticsearch-failed/</code> appended to the prefix. For more information,
613      * see <a
614      * href="https://docs.aws.amazon.com/firehose/latest/dev/basic-deliver.html#es-s3-backup">Amazon
615      * S3 Backup for the Amazon ES Destination</a>. Default value is
616      * <code>FailedDocumentsOnly</code>.</p> <p>You can't change this backup mode after
617      * you create the delivery stream. </p>
618      */
WithS3BackupMode(ElasticsearchS3BackupMode && value)619     inline ElasticsearchDestinationConfiguration& WithS3BackupMode(ElasticsearchS3BackupMode&& value) { SetS3BackupMode(std::move(value)); return *this;}
620 
621 
622     /**
623      * <p>The configuration for the backup Amazon S3 location.</p>
624      */
GetS3Configuration()625     inline const S3DestinationConfiguration& GetS3Configuration() const{ return m_s3Configuration; }
626 
627     /**
628      * <p>The configuration for the backup Amazon S3 location.</p>
629      */
S3ConfigurationHasBeenSet()630     inline bool S3ConfigurationHasBeenSet() const { return m_s3ConfigurationHasBeenSet; }
631 
632     /**
633      * <p>The configuration for the backup Amazon S3 location.</p>
634      */
SetS3Configuration(const S3DestinationConfiguration & value)635     inline void SetS3Configuration(const S3DestinationConfiguration& value) { m_s3ConfigurationHasBeenSet = true; m_s3Configuration = value; }
636 
637     /**
638      * <p>The configuration for the backup Amazon S3 location.</p>
639      */
SetS3Configuration(S3DestinationConfiguration && value)640     inline void SetS3Configuration(S3DestinationConfiguration&& value) { m_s3ConfigurationHasBeenSet = true; m_s3Configuration = std::move(value); }
641 
642     /**
643      * <p>The configuration for the backup Amazon S3 location.</p>
644      */
WithS3Configuration(const S3DestinationConfiguration & value)645     inline ElasticsearchDestinationConfiguration& WithS3Configuration(const S3DestinationConfiguration& value) { SetS3Configuration(value); return *this;}
646 
647     /**
648      * <p>The configuration for the backup Amazon S3 location.</p>
649      */
WithS3Configuration(S3DestinationConfiguration && value)650     inline ElasticsearchDestinationConfiguration& WithS3Configuration(S3DestinationConfiguration&& value) { SetS3Configuration(std::move(value)); return *this;}
651 
652 
653     /**
654      * <p>The data processing configuration.</p>
655      */
GetProcessingConfiguration()656     inline const ProcessingConfiguration& GetProcessingConfiguration() const{ return m_processingConfiguration; }
657 
658     /**
659      * <p>The data processing configuration.</p>
660      */
ProcessingConfigurationHasBeenSet()661     inline bool ProcessingConfigurationHasBeenSet() const { return m_processingConfigurationHasBeenSet; }
662 
663     /**
664      * <p>The data processing configuration.</p>
665      */
SetProcessingConfiguration(const ProcessingConfiguration & value)666     inline void SetProcessingConfiguration(const ProcessingConfiguration& value) { m_processingConfigurationHasBeenSet = true; m_processingConfiguration = value; }
667 
668     /**
669      * <p>The data processing configuration.</p>
670      */
SetProcessingConfiguration(ProcessingConfiguration && value)671     inline void SetProcessingConfiguration(ProcessingConfiguration&& value) { m_processingConfigurationHasBeenSet = true; m_processingConfiguration = std::move(value); }
672 
673     /**
674      * <p>The data processing configuration.</p>
675      */
WithProcessingConfiguration(const ProcessingConfiguration & value)676     inline ElasticsearchDestinationConfiguration& WithProcessingConfiguration(const ProcessingConfiguration& value) { SetProcessingConfiguration(value); return *this;}
677 
678     /**
679      * <p>The data processing configuration.</p>
680      */
WithProcessingConfiguration(ProcessingConfiguration && value)681     inline ElasticsearchDestinationConfiguration& WithProcessingConfiguration(ProcessingConfiguration&& value) { SetProcessingConfiguration(std::move(value)); return *this;}
682 
683 
684     /**
685      * <p>The Amazon CloudWatch logging options for your delivery stream.</p>
686      */
GetCloudWatchLoggingOptions()687     inline const CloudWatchLoggingOptions& GetCloudWatchLoggingOptions() const{ return m_cloudWatchLoggingOptions; }
688 
689     /**
690      * <p>The Amazon CloudWatch logging options for your delivery stream.</p>
691      */
CloudWatchLoggingOptionsHasBeenSet()692     inline bool CloudWatchLoggingOptionsHasBeenSet() const { return m_cloudWatchLoggingOptionsHasBeenSet; }
693 
694     /**
695      * <p>The Amazon CloudWatch logging options for your delivery stream.</p>
696      */
SetCloudWatchLoggingOptions(const CloudWatchLoggingOptions & value)697     inline void SetCloudWatchLoggingOptions(const CloudWatchLoggingOptions& value) { m_cloudWatchLoggingOptionsHasBeenSet = true; m_cloudWatchLoggingOptions = value; }
698 
699     /**
700      * <p>The Amazon CloudWatch logging options for your delivery stream.</p>
701      */
SetCloudWatchLoggingOptions(CloudWatchLoggingOptions && value)702     inline void SetCloudWatchLoggingOptions(CloudWatchLoggingOptions&& value) { m_cloudWatchLoggingOptionsHasBeenSet = true; m_cloudWatchLoggingOptions = std::move(value); }
703 
704     /**
705      * <p>The Amazon CloudWatch logging options for your delivery stream.</p>
706      */
WithCloudWatchLoggingOptions(const CloudWatchLoggingOptions & value)707     inline ElasticsearchDestinationConfiguration& WithCloudWatchLoggingOptions(const CloudWatchLoggingOptions& value) { SetCloudWatchLoggingOptions(value); return *this;}
708 
709     /**
710      * <p>The Amazon CloudWatch logging options for your delivery stream.</p>
711      */
WithCloudWatchLoggingOptions(CloudWatchLoggingOptions && value)712     inline ElasticsearchDestinationConfiguration& WithCloudWatchLoggingOptions(CloudWatchLoggingOptions&& value) { SetCloudWatchLoggingOptions(std::move(value)); return *this;}
713 
714 
715     /**
716      * <p>The details of the VPC of the Amazon ES destination.</p>
717      */
GetVpcConfiguration()718     inline const VpcConfiguration& GetVpcConfiguration() const{ return m_vpcConfiguration; }
719 
720     /**
721      * <p>The details of the VPC of the Amazon ES destination.</p>
722      */
VpcConfigurationHasBeenSet()723     inline bool VpcConfigurationHasBeenSet() const { return m_vpcConfigurationHasBeenSet; }
724 
725     /**
726      * <p>The details of the VPC of the Amazon ES destination.</p>
727      */
SetVpcConfiguration(const VpcConfiguration & value)728     inline void SetVpcConfiguration(const VpcConfiguration& value) { m_vpcConfigurationHasBeenSet = true; m_vpcConfiguration = value; }
729 
730     /**
731      * <p>The details of the VPC of the Amazon ES destination.</p>
732      */
SetVpcConfiguration(VpcConfiguration && value)733     inline void SetVpcConfiguration(VpcConfiguration&& value) { m_vpcConfigurationHasBeenSet = true; m_vpcConfiguration = std::move(value); }
734 
735     /**
736      * <p>The details of the VPC of the Amazon ES destination.</p>
737      */
WithVpcConfiguration(const VpcConfiguration & value)738     inline ElasticsearchDestinationConfiguration& WithVpcConfiguration(const VpcConfiguration& value) { SetVpcConfiguration(value); return *this;}
739 
740     /**
741      * <p>The details of the VPC of the Amazon ES destination.</p>
742      */
WithVpcConfiguration(VpcConfiguration && value)743     inline ElasticsearchDestinationConfiguration& WithVpcConfiguration(VpcConfiguration&& value) { SetVpcConfiguration(std::move(value)); return *this;}
744 
745   private:
746 
747     Aws::String m_roleARN;
748     bool m_roleARNHasBeenSet;
749 
750     Aws::String m_domainARN;
751     bool m_domainARNHasBeenSet;
752 
753     Aws::String m_clusterEndpoint;
754     bool m_clusterEndpointHasBeenSet;
755 
756     Aws::String m_indexName;
757     bool m_indexNameHasBeenSet;
758 
759     Aws::String m_typeName;
760     bool m_typeNameHasBeenSet;
761 
762     ElasticsearchIndexRotationPeriod m_indexRotationPeriod;
763     bool m_indexRotationPeriodHasBeenSet;
764 
765     ElasticsearchBufferingHints m_bufferingHints;
766     bool m_bufferingHintsHasBeenSet;
767 
768     ElasticsearchRetryOptions m_retryOptions;
769     bool m_retryOptionsHasBeenSet;
770 
771     ElasticsearchS3BackupMode m_s3BackupMode;
772     bool m_s3BackupModeHasBeenSet;
773 
774     S3DestinationConfiguration m_s3Configuration;
775     bool m_s3ConfigurationHasBeenSet;
776 
777     ProcessingConfiguration m_processingConfiguration;
778     bool m_processingConfigurationHasBeenSet;
779 
780     CloudWatchLoggingOptions m_cloudWatchLoggingOptions;
781     bool m_cloudWatchLoggingOptionsHasBeenSet;
782 
783     VpcConfiguration m_vpcConfiguration;
784     bool m_vpcConfigurationHasBeenSet;
785   };
786 
787 } // namespace Model
788 } // namespace Firehose
789 } // namespace Aws
790