/*
* 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
{
///
/// Container for the parameters to the UpdateDestination operation.
/// Updates the specified destination of the specified delivery stream.
///
///
///
/// Use this operation to change the destination type (for example, to replace the Amazon
/// S3 destination with Amazon Redshift) or change the parameters associated with a destination
/// (for example, to change the bucket name of the Amazon S3 destination). The update
/// might not occur immediately. The target delivery stream remains active while the configurations
/// are updated, so data writes to the delivery stream can continue during this process.
/// The updated configurations are usually effective within a few minutes.
///
///
///
/// Switching between Amazon ES and other services is not supported. For an Amazon ES
/// destination, you can only update to another Amazon ES destination.
///
///
///
/// If the destination type is the same, Kinesis Data Firehose merges the configuration
/// parameters specified with the destination configuration that already exists on the
/// delivery stream. If any of the parameters are not specified in the call, the existing
/// values are retained. For example, in the Amazon S3 destination, if EncryptionConfiguration
/// is not specified, then the existing EncryptionConfiguration
is maintained
/// on the destination.
///
///
///
/// If the destination type is not the same, for example, changing the destination from
/// Amazon S3 to Amazon Redshift, Kinesis Data Firehose does not merge any parameters.
/// In this case, all parameters must be specified.
///
///
///
/// Kinesis Data Firehose uses CurrentDeliveryStreamVersionId
to avoid race
/// conditions and conflicting merges. This is a required field, and the service updates
/// the configuration only if the existing configuration has a version ID that matches.
/// After the update is applied successfully, the version ID is updated, and can be retrieved
/// using DescribeDeliveryStream. Use the new version ID to set CurrentDeliveryStreamVersionId
/// in the next call.
///
///
public partial class UpdateDestinationRequest : AmazonKinesisFirehoseRequest
{
private string _currentDeliveryStreamVersionId;
private string _deliveryStreamName;
private string _destinationId;
private ElasticsearchDestinationUpdate _elasticsearchDestinationUpdate;
private ExtendedS3DestinationUpdate _extendedS3DestinationUpdate;
private RedshiftDestinationUpdate _redshiftDestinationUpdate;
private S3DestinationUpdate _s3DestinationUpdate;
private SplunkDestinationUpdate _splunkDestinationUpdate;
///
/// Gets and sets the property CurrentDeliveryStreamVersionId.
///
/// Obtain this value from the VersionId
result of DeliveryStreamDescription.
/// This value is required, and helps the service perform conditional operations. For
/// example, if there is an interleaving update and this value is null, then the update
/// destination fails. After the update is successful, the VersionId
value
/// is updated. The service then performs a merge of the old configuration with the new
/// configuration.
///
///
[AWSProperty(Required=true, Min=1, Max=50)]
public string CurrentDeliveryStreamVersionId
{
get { return this._currentDeliveryStreamVersionId; }
set { this._currentDeliveryStreamVersionId = value; }
}
// Check to see if CurrentDeliveryStreamVersionId property is set
internal bool IsSetCurrentDeliveryStreamVersionId()
{
return this._currentDeliveryStreamVersionId != null;
}
///
/// Gets and sets the property DeliveryStreamName.
///
/// The name of the delivery stream.
///
///
[AWSProperty(Required=true, Min=1, Max=64)]
public string DeliveryStreamName
{
get { return this._deliveryStreamName; }
set { this._deliveryStreamName = value; }
}
// Check to see if DeliveryStreamName property is set
internal bool IsSetDeliveryStreamName()
{
return this._deliveryStreamName != null;
}
///
/// Gets and sets the property DestinationId.
///
/// The ID of the destination.
///
///
[AWSProperty(Required=true, Min=1, Max=100)]
public string DestinationId
{
get { return this._destinationId; }
set { this._destinationId = value; }
}
// Check to see if DestinationId property is set
internal bool IsSetDestinationId()
{
return this._destinationId != null;
}
///
/// Gets and sets the property ElasticsearchDestinationUpdate.
///
/// Describes an update for a destination in Amazon ES.
///
///
public ElasticsearchDestinationUpdate ElasticsearchDestinationUpdate
{
get { return this._elasticsearchDestinationUpdate; }
set { this._elasticsearchDestinationUpdate = value; }
}
// Check to see if ElasticsearchDestinationUpdate property is set
internal bool IsSetElasticsearchDestinationUpdate()
{
return this._elasticsearchDestinationUpdate != null;
}
///
/// Gets and sets the property ExtendedS3DestinationUpdate.
///
/// Describes an update for a destination in Amazon S3.
///
///
public ExtendedS3DestinationUpdate ExtendedS3DestinationUpdate
{
get { return this._extendedS3DestinationUpdate; }
set { this._extendedS3DestinationUpdate = value; }
}
// Check to see if ExtendedS3DestinationUpdate property is set
internal bool IsSetExtendedS3DestinationUpdate()
{
return this._extendedS3DestinationUpdate != null;
}
///
/// Gets and sets the property RedshiftDestinationUpdate.
///
/// Describes an update for a destination in Amazon Redshift.
///
///
public RedshiftDestinationUpdate RedshiftDestinationUpdate
{
get { return this._redshiftDestinationUpdate; }
set { this._redshiftDestinationUpdate = value; }
}
// Check to see if RedshiftDestinationUpdate property is set
internal bool IsSetRedshiftDestinationUpdate()
{
return this._redshiftDestinationUpdate != null;
}
///
/// Gets and sets the property S3DestinationUpdate.
///
/// [Deprecated] Describes an update for a destination in Amazon S3.
///
///
[Obsolete("This property is deprecated. Use ExtendedS3DestinationUpdate instead.")]
public S3DestinationUpdate S3DestinationUpdate
{
get { return this._s3DestinationUpdate; }
set { this._s3DestinationUpdate = value; }
}
// Check to see if S3DestinationUpdate property is set
internal bool IsSetS3DestinationUpdate()
{
return this._s3DestinationUpdate != null;
}
///
/// Gets and sets the property SplunkDestinationUpdate.
///
/// Describes an update for a destination in Splunk.
///
///
public SplunkDestinationUpdate SplunkDestinationUpdate
{
get { return this._splunkDestinationUpdate; }
set { this._splunkDestinationUpdate = value; }
}
// Check to see if SplunkDestinationUpdate property is set
internal bool IsSetSplunkDestinationUpdate()
{
return this._splunkDestinationUpdate != null;
}
}
}