/*
* Copyright 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.Runtime.ExceptionServices;
using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;
using System.Net;
using Amazon.KinesisFirehose.Model;
using Amazon.KinesisFirehose.Model.Internal.MarshallTransformations;
using Amazon.KinesisFirehose.Internal;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
using Amazon.Runtime.Internal.Auth;
using Amazon.Runtime.Internal.Transform;
namespace Amazon.KinesisFirehose
{
///
/// Implementation for accessing KinesisFirehose
///
/// Amazon Kinesis Data Firehose API Reference
///
/// Amazon Kinesis Data Firehose is a fully managed service that delivers real-time streaming
/// data to destinations such as Amazon Simple Storage Service (Amazon S3), Amazon OpenSearch
/// Service, Amazon Redshift, Splunk, and various other supportd destinations.
///
///
public partial class AmazonKinesisFirehoseClient : AmazonServiceClient, IAmazonKinesisFirehose
{
private static IServiceMetadata serviceMetadata = new AmazonKinesisFirehoseMetadata();
#region Constructors
///
/// Constructs AmazonKinesisFirehoseClient with the credentials loaded from the application's
/// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance.
///
/// Example App.config with credentials set.
///
/// <?xml version="1.0" encoding="utf-8" ?>
/// <configuration>
/// <appSettings>
/// <add key="AWSProfileName" value="AWS Default"/>
/// </appSettings>
/// </configuration>
///
///
///
public AmazonKinesisFirehoseClient()
: base(FallbackCredentialsFactory.GetCredentials(), new AmazonKinesisFirehoseConfig()) { }
///
/// Constructs AmazonKinesisFirehoseClient with the credentials loaded from the application's
/// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance.
///
/// Example App.config with credentials set.
///
/// <?xml version="1.0" encoding="utf-8" ?>
/// <configuration>
/// <appSettings>
/// <add key="AWSProfileName" value="AWS Default"/>
/// </appSettings>
/// </configuration>
///
///
///
/// The region to connect.
public AmazonKinesisFirehoseClient(RegionEndpoint region)
: base(FallbackCredentialsFactory.GetCredentials(), new AmazonKinesisFirehoseConfig{RegionEndpoint = region}) { }
///
/// Constructs AmazonKinesisFirehoseClient with the credentials loaded from the application's
/// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance.
///
/// Example App.config with credentials set.
///
/// <?xml version="1.0" encoding="utf-8" ?>
/// <configuration>
/// <appSettings>
/// <add key="AWSProfileName" value="AWS Default"/>
/// </appSettings>
/// </configuration>
///
///
///
/// The AmazonKinesisFirehoseClient Configuration Object
public AmazonKinesisFirehoseClient(AmazonKinesisFirehoseConfig config)
: base(FallbackCredentialsFactory.GetCredentials(config), config){}
///
/// Constructs AmazonKinesisFirehoseClient with AWS Credentials
///
/// AWS Credentials
public AmazonKinesisFirehoseClient(AWSCredentials credentials)
: this(credentials, new AmazonKinesisFirehoseConfig())
{
}
///
/// Constructs AmazonKinesisFirehoseClient with AWS Credentials
///
/// AWS Credentials
/// The region to connect.
public AmazonKinesisFirehoseClient(AWSCredentials credentials, RegionEndpoint region)
: this(credentials, new AmazonKinesisFirehoseConfig{RegionEndpoint = region})
{
}
///
/// Constructs AmazonKinesisFirehoseClient with AWS Credentials and an
/// AmazonKinesisFirehoseClient Configuration object.
///
/// AWS Credentials
/// The AmazonKinesisFirehoseClient Configuration Object
public AmazonKinesisFirehoseClient(AWSCredentials credentials, AmazonKinesisFirehoseConfig clientConfig)
: base(credentials, clientConfig)
{
}
///
/// Constructs AmazonKinesisFirehoseClient with AWS Access Key ID and AWS Secret Key
///
/// AWS Access Key ID
/// AWS Secret Access Key
public AmazonKinesisFirehoseClient(string awsAccessKeyId, string awsSecretAccessKey)
: this(awsAccessKeyId, awsSecretAccessKey, new AmazonKinesisFirehoseConfig())
{
}
///
/// Constructs AmazonKinesisFirehoseClient with AWS Access Key ID and AWS Secret Key
///
/// AWS Access Key ID
/// AWS Secret Access Key
/// The region to connect.
public AmazonKinesisFirehoseClient(string awsAccessKeyId, string awsSecretAccessKey, RegionEndpoint region)
: this(awsAccessKeyId, awsSecretAccessKey, new AmazonKinesisFirehoseConfig() {RegionEndpoint=region})
{
}
///
/// Constructs AmazonKinesisFirehoseClient with AWS Access Key ID, AWS Secret Key and an
/// AmazonKinesisFirehoseClient Configuration object.
///
/// AWS Access Key ID
/// AWS Secret Access Key
/// The AmazonKinesisFirehoseClient Configuration Object
public AmazonKinesisFirehoseClient(string awsAccessKeyId, string awsSecretAccessKey, AmazonKinesisFirehoseConfig clientConfig)
: base(awsAccessKeyId, awsSecretAccessKey, clientConfig)
{
}
///
/// Constructs AmazonKinesisFirehoseClient with AWS Access Key ID and AWS Secret Key
///
/// AWS Access Key ID
/// AWS Secret Access Key
/// AWS Session Token
public AmazonKinesisFirehoseClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken)
: this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonKinesisFirehoseConfig())
{
}
///
/// Constructs AmazonKinesisFirehoseClient with AWS Access Key ID and AWS Secret Key
///
/// AWS Access Key ID
/// AWS Secret Access Key
/// AWS Session Token
/// The region to connect.
public AmazonKinesisFirehoseClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, RegionEndpoint region)
: this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonKinesisFirehoseConfig{RegionEndpoint = region})
{
}
///
/// Constructs AmazonKinesisFirehoseClient with AWS Access Key ID, AWS Secret Key and an
/// AmazonKinesisFirehoseClient Configuration object.
///
/// AWS Access Key ID
/// AWS Secret Access Key
/// AWS Session Token
/// The AmazonKinesisFirehoseClient Configuration Object
public AmazonKinesisFirehoseClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, AmazonKinesisFirehoseConfig clientConfig)
: base(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, clientConfig)
{
}
#endregion
#region Overrides
///
/// Creates the signer for the service.
///
protected override AbstractAWSSigner CreateSigner()
{
return new AWS4Signer();
}
///
/// Customizes the runtime pipeline.
///
/// Runtime pipeline for the current client.
protected override void CustomizeRuntimePipeline(RuntimePipeline pipeline)
{
pipeline.RemoveHandler();
pipeline.AddHandlerAfter(new AmazonKinesisFirehoseEndpointResolver());
}
///
/// Capture metadata for the service.
///
protected override IServiceMetadata ServiceMetadata
{
get
{
return serviceMetadata;
}
}
#endregion
#region Dispose
///
/// Disposes the service client.
///
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
}
#endregion
#region CreateDeliveryStream
internal virtual CreateDeliveryStreamResponse CreateDeliveryStream(CreateDeliveryStreamRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = CreateDeliveryStreamRequestMarshaller.Instance;
options.ResponseUnmarshaller = CreateDeliveryStreamResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Creates a Kinesis Data Firehose delivery stream.
///
///
///
/// By default, you can create up to 50 delivery streams per Amazon Web Services Region.
///
///
///
/// This is an asynchronous operation that immediately returns. The initial status of
/// the delivery stream is CREATING. After the delivery stream is created,
/// its status is ACTIVE and it now accepts data. If the delivery stream
/// creation fails, the status transitions to CREATING_FAILED. Attempts to
/// send data to a delivery stream that is not in the ACTIVE state cause
/// an exception. To check the state of a delivery stream, use DescribeDeliveryStream.
///
///
///
/// If the status of a delivery stream is CREATING_FAILED, this status doesn't
/// change, and you can't invoke CreateDeliveryStream again on it. However,
/// you can invoke the DeleteDeliveryStream operation to delete it.
///
///
///
/// A Kinesis Data Firehose delivery stream can be configured to receive records directly
/// from providers using PutRecord or PutRecordBatch, or it can be configured
/// to use an existing Kinesis stream as its source. To specify a Kinesis data stream
/// as input, set the DeliveryStreamType parameter to KinesisStreamAsSource,
/// and provide the Kinesis stream Amazon Resource Name (ARN) and role ARN in the KinesisStreamSourceConfiguration
/// parameter.
///
///
///
/// To create a delivery stream with server-side encryption (SSE) enabled, include DeliveryStreamEncryptionConfigurationInput
/// in your request. This is optional. You can also invoke StartDeliveryStreamEncryption
/// to turn on SSE for an existing delivery stream that doesn't have SSE enabled.
///
///
///
/// A delivery stream is configured with a single destination: Amazon S3, Amazon ES, Amazon
/// Redshift, or Splunk. You must specify only one of the following destination configuration
/// parameters: ExtendedS3DestinationConfiguration, S3DestinationConfiguration,
/// ElasticsearchDestinationConfiguration, RedshiftDestinationConfiguration,
/// or SplunkDestinationConfiguration.
///
///
///
/// When you specify S3DestinationConfiguration, you can also provide the
/// following optional values: BufferingHints, EncryptionConfiguration, and
/// CompressionFormat. By default, if no BufferingHints value
/// is provided, Kinesis Data Firehose buffers data up to 5 MB or for 5 minutes, whichever
/// condition is satisfied first. BufferingHints is a hint, so there are
/// some cases where the service cannot adhere to these conditions strictly. For example,
/// record boundaries might be such that the size is a little over or under the configured
/// buffering size. By default, no encryption is performed. We strongly recommend that
/// you enable encryption to ensure secure data storage in Amazon S3.
///
///
///
/// A few notes about Amazon Redshift as a destination:
///
/// -
///
/// An Amazon Redshift destination requires an S3 bucket as intermediate location. Kinesis
/// Data Firehose first delivers data to Amazon S3 and then uses
COPY syntax
/// to load data into an Amazon Redshift table. This is specified in the RedshiftDestinationConfiguration.S3Configuration
/// parameter.
///
/// -
///
/// The compression formats
SNAPPY or ZIP cannot be specified
/// in RedshiftDestinationConfiguration.S3Configuration because the Amazon
/// Redshift COPY operation that reads from the S3 bucket doesn't support
/// these compression formats.
///
/// -
///
/// We strongly recommend that you use the user name and password you provide exclusively
/// with Kinesis Data Firehose, and that the permissions for the account are restricted
/// for Amazon Redshift
INSERT permissions.
///
///
///
/// Kinesis Data Firehose assumes the IAM role that is configured as part of the destination.
/// The role should allow the Kinesis Data Firehose principal to assume the role, and
/// the role should have permissions that allow the service to deliver the data. For more
/// information, see Grant
/// Kinesis Data Firehose Access to an Amazon S3 Destination in the Amazon Kinesis
/// Data Firehose Developer Guide.
///
///
/// Container for the necessary parameters to execute the CreateDeliveryStream service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the CreateDeliveryStream service method, as returned by KinesisFirehose.
///
/// The specified input parameter has a value that is not valid.
///
///
/// Kinesis Data Firehose throws this exception when an attempt to put records or to start
/// or stop delivery stream encryption fails. This happens when the KMS service throws
/// one of the following exception types: AccessDeniedException, InvalidStateException,
/// DisabledException, or NotFoundException.
///
///
/// You have already reached the limit for a requested resource.
///
///
/// The resource is already in use and not available for this operation.
///
/// REST API Reference for CreateDeliveryStream Operation
public virtual Task CreateDeliveryStreamAsync(CreateDeliveryStreamRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
var options = new InvokeOptions();
options.RequestMarshaller = CreateDeliveryStreamRequestMarshaller.Instance;
options.ResponseUnmarshaller = CreateDeliveryStreamResponseUnmarshaller.Instance;
return InvokeAsync(request, options, cancellationToken);
}
#endregion
#region DeleteDeliveryStream
internal virtual DeleteDeliveryStreamResponse DeleteDeliveryStream(DeleteDeliveryStreamRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = DeleteDeliveryStreamRequestMarshaller.Instance;
options.ResponseUnmarshaller = DeleteDeliveryStreamResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Deletes a delivery stream and its data.
///
///
///
/// To check the state of a delivery stream, use DescribeDeliveryStream. You can
/// delete a delivery stream only if it is in one of the following states: ACTIVE,
/// DELETING, CREATING_FAILED, or DELETING_FAILED.
/// You can't delete a delivery stream that is in the CREATING state. While
/// the deletion request is in process, the delivery stream is in the DELETING
/// state.
///
///
///
/// While the delivery stream is in the DELETING state, the service might
/// continue to accept records, but it doesn't make any guarantees with respect to delivering
/// the data. Therefore, as a best practice, first stop any applications that are sending
/// records before you delete a delivery stream.
///
///
/// The name of the delivery stream.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the DeleteDeliveryStream service method, as returned by KinesisFirehose.
///
/// The resource is already in use and not available for this operation.
///
///
/// The specified resource could not be found.
///
/// REST API Reference for DeleteDeliveryStream Operation
public virtual Task DeleteDeliveryStreamAsync(string deliveryStreamName, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
var request = new DeleteDeliveryStreamRequest();
request.DeliveryStreamName = deliveryStreamName;
return DeleteDeliveryStreamAsync(request, cancellationToken);
}
///
/// Deletes a delivery stream and its data.
///
///
///
/// To check the state of a delivery stream, use DescribeDeliveryStream. You can
/// delete a delivery stream only if it is in one of the following states: ACTIVE,
/// DELETING, CREATING_FAILED, or DELETING_FAILED.
/// You can't delete a delivery stream that is in the CREATING state. While
/// the deletion request is in process, the delivery stream is in the DELETING
/// state.
///
///
///
/// While the delivery stream is in the DELETING state, the service might
/// continue to accept records, but it doesn't make any guarantees with respect to delivering
/// the data. Therefore, as a best practice, first stop any applications that are sending
/// records before you delete a delivery stream.
///
///
/// Container for the necessary parameters to execute the DeleteDeliveryStream service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the DeleteDeliveryStream service method, as returned by KinesisFirehose.
///
/// The resource is already in use and not available for this operation.
///
///
/// The specified resource could not be found.
///
/// REST API Reference for DeleteDeliveryStream Operation
public virtual Task DeleteDeliveryStreamAsync(DeleteDeliveryStreamRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
var options = new InvokeOptions();
options.RequestMarshaller = DeleteDeliveryStreamRequestMarshaller.Instance;
options.ResponseUnmarshaller = DeleteDeliveryStreamResponseUnmarshaller.Instance;
return InvokeAsync(request, options, cancellationToken);
}
#endregion
#region DescribeDeliveryStream
internal virtual DescribeDeliveryStreamResponse DescribeDeliveryStream(DescribeDeliveryStreamRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = DescribeDeliveryStreamRequestMarshaller.Instance;
options.ResponseUnmarshaller = DescribeDeliveryStreamResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Describes the specified delivery stream and its status. For example, after your delivery
/// stream is created, call DescribeDeliveryStream to see whether the delivery
/// stream is ACTIVE and therefore ready for data to be sent to it.
///
///
///
/// If the status of a delivery stream is CREATING_FAILED, this status doesn't
/// change, and you can't invoke CreateDeliveryStream again on it. However, you
/// can invoke the DeleteDeliveryStream operation to delete it. If the status is
/// DELETING_FAILED, you can force deletion by invoking DeleteDeliveryStream
/// again but with DeleteDeliveryStreamInput$AllowForceDelete set to true.
///
///
/// Container for the necessary parameters to execute the DescribeDeliveryStream service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the DescribeDeliveryStream service method, as returned by KinesisFirehose.
///
/// The specified resource could not be found.
///
/// REST API Reference for DescribeDeliveryStream Operation
public virtual Task DescribeDeliveryStreamAsync(DescribeDeliveryStreamRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
var options = new InvokeOptions();
options.RequestMarshaller = DescribeDeliveryStreamRequestMarshaller.Instance;
options.ResponseUnmarshaller = DescribeDeliveryStreamResponseUnmarshaller.Instance;
return InvokeAsync(request, options, cancellationToken);
}
#endregion
#region ListDeliveryStreams
internal virtual ListDeliveryStreamsResponse ListDeliveryStreams()
{
return ListDeliveryStreams(new ListDeliveryStreamsRequest());
}
internal virtual ListDeliveryStreamsResponse ListDeliveryStreams(ListDeliveryStreamsRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = ListDeliveryStreamsRequestMarshaller.Instance;
options.ResponseUnmarshaller = ListDeliveryStreamsResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Lists your delivery streams in alphabetical order of their names.
///
///
///
/// The number of delivery streams might be too large to return using a single call to
/// ListDeliveryStreams. You can limit the number of delivery streams returned,
/// using the Limit parameter. To determine whether there are more delivery
/// streams to list, check the value of HasMoreDeliveryStreams in the output.
/// If there are more delivery streams to list, you can request them by calling this operation
/// again and setting the ExclusiveStartDeliveryStreamName parameter to the
/// name of the last delivery stream returned in the last call.
///
///
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the ListDeliveryStreams service method, as returned by KinesisFirehose.
/// REST API Reference for ListDeliveryStreams Operation
public virtual Task ListDeliveryStreamsAsync(System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
return ListDeliveryStreamsAsync(new ListDeliveryStreamsRequest(), cancellationToken);
}
///
/// Lists your delivery streams in alphabetical order of their names.
///
///
///
/// The number of delivery streams might be too large to return using a single call to
/// ListDeliveryStreams. You can limit the number of delivery streams returned,
/// using the Limit parameter. To determine whether there are more delivery
/// streams to list, check the value of HasMoreDeliveryStreams in the output.
/// If there are more delivery streams to list, you can request them by calling this operation
/// again and setting the ExclusiveStartDeliveryStreamName parameter to the
/// name of the last delivery stream returned in the last call.
///
///
/// Container for the necessary parameters to execute the ListDeliveryStreams service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the ListDeliveryStreams service method, as returned by KinesisFirehose.
/// REST API Reference for ListDeliveryStreams Operation
public virtual Task ListDeliveryStreamsAsync(ListDeliveryStreamsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
var options = new InvokeOptions();
options.RequestMarshaller = ListDeliveryStreamsRequestMarshaller.Instance;
options.ResponseUnmarshaller = ListDeliveryStreamsResponseUnmarshaller.Instance;
return InvokeAsync(request, options, cancellationToken);
}
#endregion
#region ListTagsForDeliveryStream
internal virtual ListTagsForDeliveryStreamResponse ListTagsForDeliveryStream(ListTagsForDeliveryStreamRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = ListTagsForDeliveryStreamRequestMarshaller.Instance;
options.ResponseUnmarshaller = ListTagsForDeliveryStreamResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Lists the tags for the specified delivery stream. This operation has a limit of five
/// transactions per second per account.
///
/// Container for the necessary parameters to execute the ListTagsForDeliveryStream service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the ListTagsForDeliveryStream service method, as returned by KinesisFirehose.
///
/// The specified input parameter has a value that is not valid.
///
///
/// You have already reached the limit for a requested resource.
///
///
/// The specified resource could not be found.
///
/// REST API Reference for ListTagsForDeliveryStream Operation
public virtual Task ListTagsForDeliveryStreamAsync(ListTagsForDeliveryStreamRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
var options = new InvokeOptions();
options.RequestMarshaller = ListTagsForDeliveryStreamRequestMarshaller.Instance;
options.ResponseUnmarshaller = ListTagsForDeliveryStreamResponseUnmarshaller.Instance;
return InvokeAsync(request, options, cancellationToken);
}
#endregion
#region PutRecord
internal virtual PutRecordResponse PutRecord(PutRecordRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = PutRecordRequestMarshaller.Instance;
options.ResponseUnmarshaller = PutRecordResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Writes a single data record into an Amazon Kinesis Data Firehose delivery stream.
/// To write multiple data records into a delivery stream, use PutRecordBatch.
/// Applications using these operations are referred to as producers.
///
///
///
/// By default, each delivery stream can take in up to 2,000 transactions per second,
/// 5,000 records per second, or 5 MB per second. If you use PutRecord and PutRecordBatch,
/// the limits are an aggregate across these two operations for each delivery stream.
/// For more information about limits and how to request an increase, see Amazon
/// Kinesis Data Firehose Limits.
///
///
///
/// You must specify the name of the delivery stream and the data record when using PutRecord.
/// The data record consists of a data blob that can be up to 1,000 KiB in size, and any
/// kind of data. For example, it can be a segment from a log file, geographic location
/// data, website clickstream data, and so on.
///
///
///
/// Kinesis Data Firehose buffers records before delivering them to the destination. To
/// disambiguate the data blobs at the destination, a common solution is to use delimiters
/// in the data, such as a newline (\n) or some other character unique within
/// the data. This allows the consumer application to parse individual data items when
/// reading the data from the destination.
///
///
///
/// The PutRecord operation returns a RecordId, which is a unique
/// string assigned to each record. Producer applications can use this ID for purposes
/// such as auditability and investigation.
///
///
///
/// If the PutRecord operation throws a ServiceUnavailableException,
/// back off and retry. If the exception persists, it is possible that the throughput
/// limits have been exceeded for the delivery stream.
///
///
///
/// Data records sent to Kinesis Data Firehose are stored for 24 hours from the time they
/// are added to a delivery stream as it tries to send the records to the destination.
/// If the destination is unreachable for more than 24 hours, the data is no longer available.
///
///
///
/// Don't concatenate two or more base64 strings to form the data fields of your records.
/// Instead, concatenate the raw data, then perform base64 encoding.
///
///
///
/// The name of the delivery stream.
/// The record.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the PutRecord service method, as returned by KinesisFirehose.
///
/// The specified input parameter has a value that is not valid.
///
///
/// Kinesis Data Firehose throws this exception when an attempt to put records or to start
/// or stop delivery stream encryption fails. This happens when the KMS service throws
/// one of the following exception types: AccessDeniedException, InvalidStateException,
/// DisabledException, or NotFoundException.
///
///
/// The specified resource could not be found.
///
///
/// The service is unavailable. Back off and retry the operation. If you continue to see
/// the exception, throughput limits for the delivery stream may have been exceeded. For
/// more information about limits and how to request an increase, see Amazon
/// Kinesis Data Firehose Limits.
///
/// REST API Reference for PutRecord Operation
public virtual Task PutRecordAsync(string deliveryStreamName, Record record, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
var request = new PutRecordRequest();
request.DeliveryStreamName = deliveryStreamName;
request.Record = record;
return PutRecordAsync(request, cancellationToken);
}
///
/// Writes a single data record into an Amazon Kinesis Data Firehose delivery stream.
/// To write multiple data records into a delivery stream, use PutRecordBatch.
/// Applications using these operations are referred to as producers.
///
///
///
/// By default, each delivery stream can take in up to 2,000 transactions per second,
/// 5,000 records per second, or 5 MB per second. If you use PutRecord and PutRecordBatch,
/// the limits are an aggregate across these two operations for each delivery stream.
/// For more information about limits and how to request an increase, see Amazon
/// Kinesis Data Firehose Limits.
///
///
///
/// You must specify the name of the delivery stream and the data record when using PutRecord.
/// The data record consists of a data blob that can be up to 1,000 KiB in size, and any
/// kind of data. For example, it can be a segment from a log file, geographic location
/// data, website clickstream data, and so on.
///
///
///
/// Kinesis Data Firehose buffers records before delivering them to the destination. To
/// disambiguate the data blobs at the destination, a common solution is to use delimiters
/// in the data, such as a newline (\n) or some other character unique within
/// the data. This allows the consumer application to parse individual data items when
/// reading the data from the destination.
///
///
///
/// The PutRecord operation returns a RecordId, which is a unique
/// string assigned to each record. Producer applications can use this ID for purposes
/// such as auditability and investigation.
///
///
///
/// If the PutRecord operation throws a ServiceUnavailableException,
/// back off and retry. If the exception persists, it is possible that the throughput
/// limits have been exceeded for the delivery stream.
///
///
///
/// Data records sent to Kinesis Data Firehose are stored for 24 hours from the time they
/// are added to a delivery stream as it tries to send the records to the destination.
/// If the destination is unreachable for more than 24 hours, the data is no longer available.
///
///
///
/// Don't concatenate two or more base64 strings to form the data fields of your records.
/// Instead, concatenate the raw data, then perform base64 encoding.
///
///
///
/// Container for the necessary parameters to execute the PutRecord service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the PutRecord service method, as returned by KinesisFirehose.
///
/// The specified input parameter has a value that is not valid.
///
///
/// Kinesis Data Firehose throws this exception when an attempt to put records or to start
/// or stop delivery stream encryption fails. This happens when the KMS service throws
/// one of the following exception types: AccessDeniedException, InvalidStateException,
/// DisabledException, or NotFoundException.
///
///
/// The specified resource could not be found.
///
///
/// The service is unavailable. Back off and retry the operation. If you continue to see
/// the exception, throughput limits for the delivery stream may have been exceeded. For
/// more information about limits and how to request an increase, see Amazon
/// Kinesis Data Firehose Limits.
///
/// REST API Reference for PutRecord Operation
public virtual Task PutRecordAsync(PutRecordRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
var options = new InvokeOptions();
options.RequestMarshaller = PutRecordRequestMarshaller.Instance;
options.ResponseUnmarshaller = PutRecordResponseUnmarshaller.Instance;
return InvokeAsync(request, options, cancellationToken);
}
#endregion
#region PutRecordBatch
internal virtual PutRecordBatchResponse PutRecordBatch(PutRecordBatchRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = PutRecordBatchRequestMarshaller.Instance;
options.ResponseUnmarshaller = PutRecordBatchResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Writes multiple data records into a delivery stream in a single call, which can achieve
/// higher throughput per producer than when writing single records. To write single data
/// records into a delivery stream, use PutRecord. Applications using these operations
/// are referred to as producers.
///
///
///
/// For information about service quota, see Amazon
/// Kinesis Data Firehose Quota.
///
///
///
/// Each PutRecordBatch request supports up to 500 records. Each record in the
/// request can be as large as 1,000 KB (before base64 encoding), up to a limit of 4 MB
/// for the entire request. These limits cannot be changed.
///
///
///
/// You must specify the name of the delivery stream and the data record when using PutRecord.
/// The data record consists of a data blob that can be up to 1,000 KB in size, and any
/// kind of data. For example, it could be a segment from a log file, geographic location
/// data, website clickstream data, and so on.
///
///
///
/// Kinesis Data Firehose buffers records before delivering them to the destination. To
/// disambiguate the data blobs at the destination, a common solution is to use delimiters
/// in the data, such as a newline (\n) or some other character unique within
/// the data. This allows the consumer application to parse individual data items when
/// reading the data from the destination.
///
///
///
/// The PutRecordBatch response includes a count of failed records, FailedPutCount,
/// and an array of responses, RequestResponses. Even if the PutRecordBatch
/// call succeeds, the value of FailedPutCount may be greater than 0, indicating
/// that there are records for which the operation didn't succeed. Each entry in the RequestResponses
/// array provides additional information about the processed record. It directly correlates
/// with a record in the request array using the same ordering, from the top to the bottom.
/// The response array always includes the same number of records as the request array.
/// RequestResponses includes both successfully and unsuccessfully processed
/// records. Kinesis Data Firehose tries to process all records in each PutRecordBatch
/// request. A single record failure does not stop the processing of subsequent records.
///
///
///
///
/// A successfully processed record includes a RecordId value, which is unique
/// for the record. An unsuccessfully processed record includes ErrorCode
/// and ErrorMessage values. ErrorCode reflects the type of
/// error, and is one of the following values: ServiceUnavailableException
/// or InternalFailure. ErrorMessage provides more detailed
/// information about the error.
///
///
///
/// If there is an internal server error or a timeout, the write might have completed
/// or it might have failed. If FailedPutCount is greater than 0, retry the
/// request, resending only those records that might have failed processing. This minimizes
/// the possible duplicate records and also reduces the total bytes sent (and corresponding
/// charges). We recommend that you handle any duplicates at the destination.
///
///
///
/// If PutRecordBatch throws ServiceUnavailableException, back off
/// and retry. If the exception persists, it is possible that the throughput limits have
/// been exceeded for the delivery stream.
///
///
///
/// Data records sent to Kinesis Data Firehose are stored for 24 hours from the time they
/// are added to a delivery stream as it attempts to send the records to the destination.
/// If the destination is unreachable for more than 24 hours, the data is no longer available.
///
///
///
/// Don't concatenate two or more base64 strings to form the data fields of your records.
/// Instead, concatenate the raw data, then perform base64 encoding.
///
///
///
/// The name of the delivery stream.
/// One or more records.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the PutRecordBatch service method, as returned by KinesisFirehose.
///
/// The specified input parameter has a value that is not valid.
///
///
/// Kinesis Data Firehose throws this exception when an attempt to put records or to start
/// or stop delivery stream encryption fails. This happens when the KMS service throws
/// one of the following exception types: AccessDeniedException, InvalidStateException,
/// DisabledException, or NotFoundException.
///
///
/// The specified resource could not be found.
///
///
/// The service is unavailable. Back off and retry the operation. If you continue to see
/// the exception, throughput limits for the delivery stream may have been exceeded. For
/// more information about limits and how to request an increase, see Amazon
/// Kinesis Data Firehose Limits.
///
/// REST API Reference for PutRecordBatch Operation
public virtual Task PutRecordBatchAsync(string deliveryStreamName, List records, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
var request = new PutRecordBatchRequest();
request.DeliveryStreamName = deliveryStreamName;
request.Records = records;
return PutRecordBatchAsync(request, cancellationToken);
}
///
/// Writes multiple data records into a delivery stream in a single call, which can achieve
/// higher throughput per producer than when writing single records. To write single data
/// records into a delivery stream, use PutRecord. Applications using these operations
/// are referred to as producers.
///
///
///
/// For information about service quota, see Amazon
/// Kinesis Data Firehose Quota.
///
///
///
/// Each PutRecordBatch request supports up to 500 records. Each record in the
/// request can be as large as 1,000 KB (before base64 encoding), up to a limit of 4 MB
/// for the entire request. These limits cannot be changed.
///
///
///
/// You must specify the name of the delivery stream and the data record when using PutRecord.
/// The data record consists of a data blob that can be up to 1,000 KB in size, and any
/// kind of data. For example, it could be a segment from a log file, geographic location
/// data, website clickstream data, and so on.
///
///
///
/// Kinesis Data Firehose buffers records before delivering them to the destination. To
/// disambiguate the data blobs at the destination, a common solution is to use delimiters
/// in the data, such as a newline (\n) or some other character unique within
/// the data. This allows the consumer application to parse individual data items when
/// reading the data from the destination.
///
///
///
/// The PutRecordBatch response includes a count of failed records, FailedPutCount,
/// and an array of responses, RequestResponses. Even if the PutRecordBatch
/// call succeeds, the value of FailedPutCount may be greater than 0, indicating
/// that there are records for which the operation didn't succeed. Each entry in the RequestResponses
/// array provides additional information about the processed record. It directly correlates
/// with a record in the request array using the same ordering, from the top to the bottom.
/// The response array always includes the same number of records as the request array.
/// RequestResponses includes both successfully and unsuccessfully processed
/// records. Kinesis Data Firehose tries to process all records in each PutRecordBatch
/// request. A single record failure does not stop the processing of subsequent records.
///
///
///
///
/// A successfully processed record includes a RecordId value, which is unique
/// for the record. An unsuccessfully processed record includes ErrorCode
/// and ErrorMessage values. ErrorCode reflects the type of
/// error, and is one of the following values: ServiceUnavailableException
/// or InternalFailure. ErrorMessage provides more detailed
/// information about the error.
///
///
///
/// If there is an internal server error or a timeout, the write might have completed
/// or it might have failed. If FailedPutCount is greater than 0, retry the
/// request, resending only those records that might have failed processing. This minimizes
/// the possible duplicate records and also reduces the total bytes sent (and corresponding
/// charges). We recommend that you handle any duplicates at the destination.
///
///
///
/// If PutRecordBatch throws ServiceUnavailableException, back off
/// and retry. If the exception persists, it is possible that the throughput limits have
/// been exceeded for the delivery stream.
///
///
///
/// Data records sent to Kinesis Data Firehose are stored for 24 hours from the time they
/// are added to a delivery stream as it attempts to send the records to the destination.
/// If the destination is unreachable for more than 24 hours, the data is no longer available.
///
///
///
/// Don't concatenate two or more base64 strings to form the data fields of your records.
/// Instead, concatenate the raw data, then perform base64 encoding.
///
///
///
/// Container for the necessary parameters to execute the PutRecordBatch service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the PutRecordBatch service method, as returned by KinesisFirehose.
///
/// The specified input parameter has a value that is not valid.
///
///
/// Kinesis Data Firehose throws this exception when an attempt to put records or to start
/// or stop delivery stream encryption fails. This happens when the KMS service throws
/// one of the following exception types: AccessDeniedException, InvalidStateException,
/// DisabledException, or NotFoundException.
///
///
/// The specified resource could not be found.
///
///
/// The service is unavailable. Back off and retry the operation. If you continue to see
/// the exception, throughput limits for the delivery stream may have been exceeded. For
/// more information about limits and how to request an increase, see Amazon
/// Kinesis Data Firehose Limits.
///
/// REST API Reference for PutRecordBatch Operation
public virtual Task PutRecordBatchAsync(PutRecordBatchRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
var options = new InvokeOptions();
options.RequestMarshaller = PutRecordBatchRequestMarshaller.Instance;
options.ResponseUnmarshaller = PutRecordBatchResponseUnmarshaller.Instance;
return InvokeAsync(request, options, cancellationToken);
}
#endregion
#region StartDeliveryStreamEncryption
internal virtual StartDeliveryStreamEncryptionResponse StartDeliveryStreamEncryption(StartDeliveryStreamEncryptionRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = StartDeliveryStreamEncryptionRequestMarshaller.Instance;
options.ResponseUnmarshaller = StartDeliveryStreamEncryptionResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Enables server-side encryption (SSE) for the delivery stream.
///
///
///
/// This operation is asynchronous. It returns immediately. When you invoke it, Kinesis
/// Data Firehose first sets the encryption status of the stream to ENABLING,
/// and then to ENABLED. The encryption status of a delivery stream is the
/// Status property in DeliveryStreamEncryptionConfiguration. If the
/// operation fails, the encryption status changes to ENABLING_FAILED. You
/// can continue to read and write data to your delivery stream while the encryption status
/// is ENABLING, but the data is not encrypted. It can take up to 5 seconds
/// after the encryption status changes to ENABLED before all records written
/// to the delivery stream are encrypted. To find out whether a record or a batch of records
/// was encrypted, check the response elements PutRecordOutput$Encrypted and PutRecordBatchOutput$Encrypted,
/// respectively.
///
///
///
/// To check the encryption status of a delivery stream, use DescribeDeliveryStream.
///
///
///
/// Even if encryption is currently enabled for a delivery stream, you can still invoke
/// this operation on it to change the ARN of the CMK or both its type and ARN. If you
/// invoke this method to change the CMK, and the old CMK is of type CUSTOMER_MANAGED_CMK,
/// Kinesis Data Firehose schedules the grant it had on the old CMK for retirement. If
/// the new CMK is of type CUSTOMER_MANAGED_CMK, Kinesis Data Firehose creates
/// a grant that enables it to use the new CMK to encrypt and decrypt data and to manage
/// the grant.
///
///
///
/// If a delivery stream already has encryption enabled and then you invoke this operation
/// to change the ARN of the CMK or both its type and ARN and you get ENABLING_FAILED,
/// this only means that the attempt to change the CMK failed. In this case, encryption
/// remains enabled with the old CMK.
///
///
///
/// If the encryption status of your delivery stream is ENABLING_FAILED,
/// you can invoke this operation again with a valid CMK. The CMK must be enabled and
/// the key policy mustn't explicitly deny the permission for Kinesis Data Firehose to
/// invoke KMS encrypt and decrypt operations.
///
///
///
/// You can enable SSE for a delivery stream only if it's a delivery stream that uses
/// DirectPut as its source.
///
///
///
/// The StartDeliveryStreamEncryption and StopDeliveryStreamEncryption
/// operations have a combined limit of 25 calls per delivery stream per 24 hours. For
/// example, you reach the limit if you call StartDeliveryStreamEncryption
/// 13 times and StopDeliveryStreamEncryption 12 times for the same delivery
/// stream in a 24-hour period.
///
///
/// Container for the necessary parameters to execute the StartDeliveryStreamEncryption service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the StartDeliveryStreamEncryption service method, as returned by KinesisFirehose.
///
/// The specified input parameter has a value that is not valid.
///
///
/// Kinesis Data Firehose throws this exception when an attempt to put records or to start
/// or stop delivery stream encryption fails. This happens when the KMS service throws
/// one of the following exception types: AccessDeniedException, InvalidStateException,
/// DisabledException, or NotFoundException.
///
///
/// You have already reached the limit for a requested resource.
///
///
/// The resource is already in use and not available for this operation.
///
///
/// The specified resource could not be found.
///
/// REST API Reference for StartDeliveryStreamEncryption Operation
public virtual Task StartDeliveryStreamEncryptionAsync(StartDeliveryStreamEncryptionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
var options = new InvokeOptions();
options.RequestMarshaller = StartDeliveryStreamEncryptionRequestMarshaller.Instance;
options.ResponseUnmarshaller = StartDeliveryStreamEncryptionResponseUnmarshaller.Instance;
return InvokeAsync(request, options, cancellationToken);
}
#endregion
#region StopDeliveryStreamEncryption
internal virtual StopDeliveryStreamEncryptionResponse StopDeliveryStreamEncryption(StopDeliveryStreamEncryptionRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = StopDeliveryStreamEncryptionRequestMarshaller.Instance;
options.ResponseUnmarshaller = StopDeliveryStreamEncryptionResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Disables server-side encryption (SSE) for the delivery stream.
///
///
///
/// This operation is asynchronous. It returns immediately. When you invoke it, Kinesis
/// Data Firehose first sets the encryption status of the stream to DISABLING,
/// and then to DISABLED. You can continue to read and write data to your
/// stream while its status is DISABLING. It can take up to 5 seconds after
/// the encryption status changes to DISABLED before all records written
/// to the delivery stream are no longer subject to encryption. To find out whether a
/// record or a batch of records was encrypted, check the response elements PutRecordOutput$Encrypted
/// and PutRecordBatchOutput$Encrypted, respectively.
///
///
///
/// To check the encryption state of a delivery stream, use DescribeDeliveryStream.
///
///
///
///
/// If SSE is enabled using a customer managed CMK and then you invoke StopDeliveryStreamEncryption,
/// Kinesis Data Firehose schedules the related KMS grant for retirement and then retires
/// it after it ensures that it is finished delivering records to the destination.
///
///
///
/// The StartDeliveryStreamEncryption and StopDeliveryStreamEncryption
/// operations have a combined limit of 25 calls per delivery stream per 24 hours. For
/// example, you reach the limit if you call StartDeliveryStreamEncryption
/// 13 times and StopDeliveryStreamEncryption 12 times for the same delivery
/// stream in a 24-hour period.
///
///
/// Container for the necessary parameters to execute the StopDeliveryStreamEncryption service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the StopDeliveryStreamEncryption service method, as returned by KinesisFirehose.
///
/// The specified input parameter has a value that is not valid.
///
///
/// You have already reached the limit for a requested resource.
///
///
/// The resource is already in use and not available for this operation.
///
///
/// The specified resource could not be found.
///
/// REST API Reference for StopDeliveryStreamEncryption Operation
public virtual Task StopDeliveryStreamEncryptionAsync(StopDeliveryStreamEncryptionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
var options = new InvokeOptions();
options.RequestMarshaller = StopDeliveryStreamEncryptionRequestMarshaller.Instance;
options.ResponseUnmarshaller = StopDeliveryStreamEncryptionResponseUnmarshaller.Instance;
return InvokeAsync(request, options, cancellationToken);
}
#endregion
#region TagDeliveryStream
internal virtual TagDeliveryStreamResponse TagDeliveryStream(TagDeliveryStreamRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = TagDeliveryStreamRequestMarshaller.Instance;
options.ResponseUnmarshaller = TagDeliveryStreamResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Adds or updates tags for the specified delivery stream. A tag is a key-value pair
/// that you can define and assign to Amazon Web Services resources. If you specify a
/// tag that already exists, the tag value is replaced with the value that you specify
/// in the request. Tags are metadata. For example, you can add friendly names and descriptions
/// or other types of information that can help you distinguish the delivery stream. For
/// more information about tags, see Using
/// Cost Allocation Tags in the Amazon Web Services Billing and Cost Management
/// User Guide.
///
///
///
/// Each delivery stream can have up to 50 tags.
///
///
///
/// This operation has a limit of five transactions per second per account.
///
///
/// Container for the necessary parameters to execute the TagDeliveryStream service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the TagDeliveryStream service method, as returned by KinesisFirehose.
///
/// The specified input parameter has a value that is not valid.
///
///
/// You have already reached the limit for a requested resource.
///
///
/// The resource is already in use and not available for this operation.
///
///
/// The specified resource could not be found.
///
/// REST API Reference for TagDeliveryStream Operation
public virtual Task TagDeliveryStreamAsync(TagDeliveryStreamRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
var options = new InvokeOptions();
options.RequestMarshaller = TagDeliveryStreamRequestMarshaller.Instance;
options.ResponseUnmarshaller = TagDeliveryStreamResponseUnmarshaller.Instance;
return InvokeAsync(request, options, cancellationToken);
}
#endregion
#region UntagDeliveryStream
internal virtual UntagDeliveryStreamResponse UntagDeliveryStream(UntagDeliveryStreamRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = UntagDeliveryStreamRequestMarshaller.Instance;
options.ResponseUnmarshaller = UntagDeliveryStreamResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// Removes tags from the specified delivery stream. Removed tags are deleted, and you
/// can't recover them after this operation successfully completes.
///
///
///
/// If you specify a tag that doesn't exist, the operation ignores it.
///
///
///
/// This operation has a limit of five transactions per second per account.
///
///
/// Container for the necessary parameters to execute the UntagDeliveryStream service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the UntagDeliveryStream service method, as returned by KinesisFirehose.
///
/// The specified input parameter has a value that is not valid.
///
///
/// You have already reached the limit for a requested resource.
///
///
/// The resource is already in use and not available for this operation.
///
///
/// The specified resource could not be found.
///
/// REST API Reference for UntagDeliveryStream Operation
public virtual Task UntagDeliveryStreamAsync(UntagDeliveryStreamRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
var options = new InvokeOptions();
options.RequestMarshaller = UntagDeliveryStreamRequestMarshaller.Instance;
options.ResponseUnmarshaller = UntagDeliveryStreamResponseUnmarshaller.Instance;
return InvokeAsync(request, options, cancellationToken);
}
#endregion
#region UpdateDestination
internal virtual UpdateDestinationResponse UpdateDestination(UpdateDestinationRequest request)
{
var options = new InvokeOptions();
options.RequestMarshaller = UpdateDestinationRequestMarshaller.Instance;
options.ResponseUnmarshaller = UpdateDestinationResponseUnmarshaller.Instance;
return Invoke(request, options);
}
///
/// 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.
///
///
/// Container for the necessary parameters to execute the UpdateDestination service method.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
///
/// The response from the UpdateDestination service method, as returned by KinesisFirehose.
///
/// Another modification has already happened. Fetch VersionId again and
/// use it to update the destination.
///
///
/// The specified input parameter has a value that is not valid.
///
///
/// The resource is already in use and not available for this operation.
///
///
/// The specified resource could not be found.
///
/// REST API Reference for UpdateDestination Operation
public virtual Task UpdateDestinationAsync(UpdateDestinationRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken))
{
var options = new InvokeOptions();
options.RequestMarshaller = UpdateDestinationRequestMarshaller.Instance;
options.ResponseUnmarshaller = UpdateDestinationResponseUnmarshaller.Instance;
return InvokeAsync(request, options, cancellationToken);
}
#endregion
}
}