/*
* Copyright 2010-2014 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the firehose-2015-08-04.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.KinesisFirehose.Model
{
///
/// Describes an update for a destination in Amazon ES.
///
public partial class ElasticsearchDestinationUpdate
{
private ElasticsearchBufferingHints _bufferingHints;
private CloudWatchLoggingOptions _cloudWatchLoggingOptions;
private string _clusterEndpoint;
private string _domainARN;
private string _indexName;
private ElasticsearchIndexRotationPeriod _indexRotationPeriod;
private ProcessingConfiguration _processingConfiguration;
private ElasticsearchRetryOptions _retryOptions;
private string _roleARN;
private S3DestinationUpdate _s3Update;
private string _typeName;
///
/// Gets and sets the property BufferingHints.
///
/// The buffering options. If no value is specified, ElasticsearchBufferingHints
/// object default values are used.
///
///
public ElasticsearchBufferingHints BufferingHints
{
get { return this._bufferingHints; }
set { this._bufferingHints = value; }
}
// Check to see if BufferingHints property is set
internal bool IsSetBufferingHints()
{
return this._bufferingHints != null;
}
///
/// Gets and sets the property CloudWatchLoggingOptions.
///
/// The CloudWatch logging options for your delivery stream.
///
///
public CloudWatchLoggingOptions CloudWatchLoggingOptions
{
get { return this._cloudWatchLoggingOptions; }
set { this._cloudWatchLoggingOptions = value; }
}
// Check to see if CloudWatchLoggingOptions property is set
internal bool IsSetCloudWatchLoggingOptions()
{
return this._cloudWatchLoggingOptions != null;
}
///
/// Gets and sets the property ClusterEndpoint.
///
/// The endpoint to use when communicating with the cluster. Specify either this ClusterEndpoint
/// or the DomainARN
field.
///
///
[AWSProperty(Min=1, Max=512)]
public string ClusterEndpoint
{
get { return this._clusterEndpoint; }
set { this._clusterEndpoint = value; }
}
// Check to see if ClusterEndpoint property is set
internal bool IsSetClusterEndpoint()
{
return this._clusterEndpoint != null;
}
///
/// Gets and sets the property DomainARN.
///
/// The ARN of the Amazon ES domain. The IAM role must have permissions for DescribeElasticsearchDomain
,
/// DescribeElasticsearchDomains
, and DescribeElasticsearchDomainConfig
after
/// assuming the IAM role specified in RoleARN
. For more information, see
/// Amazon
/// Resource Names (ARNs) and AWS Service Namespaces.
///
///
///
/// Specify either ClusterEndpoint
or DomainARN
.
///
///
[AWSProperty(Min=1, Max=512)]
public string DomainARN
{
get { return this._domainARN; }
set { this._domainARN = value; }
}
// Check to see if DomainARN property is set
internal bool IsSetDomainARN()
{
return this._domainARN != null;
}
///
/// Gets and sets the property IndexName.
///
/// The Elasticsearch index name.
///
///
[AWSProperty(Min=1, Max=80)]
public string IndexName
{
get { return this._indexName; }
set { this._indexName = value; }
}
// Check to see if IndexName property is set
internal bool IsSetIndexName()
{
return this._indexName != null;
}
///
/// Gets and sets the property IndexRotationPeriod.
///
/// The Elasticsearch index rotation period. Index rotation appends a timestamp to IndexName
/// to facilitate the expiration of old data. For more information, see Index
/// Rotation for the Amazon ES Destination. Default value is OneDay
.
///
///
public ElasticsearchIndexRotationPeriod IndexRotationPeriod
{
get { return this._indexRotationPeriod; }
set { this._indexRotationPeriod = value; }
}
// Check to see if IndexRotationPeriod property is set
internal bool IsSetIndexRotationPeriod()
{
return this._indexRotationPeriod != null;
}
///
/// Gets and sets the property ProcessingConfiguration.
///
/// The data processing configuration.
///
///
public ProcessingConfiguration ProcessingConfiguration
{
get { return this._processingConfiguration; }
set { this._processingConfiguration = value; }
}
// Check to see if ProcessingConfiguration property is set
internal bool IsSetProcessingConfiguration()
{
return this._processingConfiguration != null;
}
///
/// Gets and sets the property RetryOptions.
///
/// The retry behavior in case Kinesis Data Firehose is unable to deliver documents to
/// Amazon ES. The default value is 300 (5 minutes).
///
///
public ElasticsearchRetryOptions RetryOptions
{
get { return this._retryOptions; }
set { this._retryOptions = value; }
}
// Check to see if RetryOptions property is set
internal bool IsSetRetryOptions()
{
return this._retryOptions != null;
}
///
/// Gets and sets the property RoleARN.
///
/// The Amazon Resource Name (ARN) of the IAM role to be assumed by Kinesis Data Firehose
/// for calling the Amazon ES Configuration API and for indexing documents. For more information,
/// see Grant
/// Kinesis Data Firehose Access to an Amazon S3 Destination and Amazon
/// Resource Names (ARNs) and AWS Service Namespaces.
///
///
[AWSProperty(Min=1, Max=512)]
public string RoleARN
{
get { return this._roleARN; }
set { this._roleARN = value; }
}
// Check to see if RoleARN property is set
internal bool IsSetRoleARN()
{
return this._roleARN != null;
}
///
/// Gets and sets the property S3Update.
///
/// The Amazon S3 destination.
///
///
public S3DestinationUpdate S3Update
{
get { return this._s3Update; }
set { this._s3Update = value; }
}
// Check to see if S3Update property is set
internal bool IsSetS3Update()
{
return this._s3Update != null;
}
///
/// Gets and sets the property TypeName.
///
/// The Elasticsearch type name. For Elasticsearch 6.x, there can be only one type per
/// index. If you try to specify a new type for an existing index that already has another
/// type, Kinesis Data Firehose returns an error during runtime.
///
///
///
/// If you upgrade Elasticsearch from 6.x to 7.x and don’t update your delivery stream,
/// Kinesis Data Firehose still delivers data to Elasticsearch with the old index name
/// and type name. If you want to update your delivery stream with a new index name, provide
/// an empty string for TypeName
.
///
///
[AWSProperty(Min=0, Max=100)]
public string TypeName
{
get { return this._typeName; }
set { this._typeName = value; }
}
// Check to see if TypeName property is set
internal bool IsSetTypeName()
{
return this._typeName != null;
}
}
}