- Navigation GuideYou are on a Command (operation) page with structural examples. Use the navigation breadcrumb if you would like to return to the Client landing page.
UpdateDestinationCommand
Updates the specified destination of the specified Firehose 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 Firehose stream remains active while the configurations are updated, so data writes to the Firehose stream can continue during this process. The updated configurations are usually effective within a few minutes.
Switching between Amazon OpenSearch Service and other services is not supported. For an Amazon OpenSearch Service destination, you can only update to another Amazon OpenSearch Service destination.
If the destination type is the same, 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, Firehose does not merge any parameters. In this case, all parameters must be specified.
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.
Example Syntax
Use a bare-bones client and the command you need to make an API call.
import { FirehoseClient, UpdateDestinationCommand } from "@aws-sdk/client-firehose"; // ES Modules import
// const { FirehoseClient, UpdateDestinationCommand } = require("@aws-sdk/client-firehose"); // CommonJS import
const client = new FirehoseClient(config);
const input = { // UpdateDestinationInput
DeliveryStreamName: "STRING_VALUE", // required
CurrentDeliveryStreamVersionId: "STRING_VALUE", // required
DestinationId: "STRING_VALUE", // required
S3DestinationUpdate: { // S3DestinationUpdate
RoleARN: "STRING_VALUE",
BucketARN: "STRING_VALUE",
Prefix: "STRING_VALUE",
ErrorOutputPrefix: "STRING_VALUE",
BufferingHints: { // BufferingHints
SizeInMBs: Number("int"),
IntervalInSeconds: Number("int"),
},
CompressionFormat: "UNCOMPRESSED" || "GZIP" || "ZIP" || "Snappy" || "HADOOP_SNAPPY",
EncryptionConfiguration: { // EncryptionConfiguration
NoEncryptionConfig: "NoEncryption",
KMSEncryptionConfig: { // KMSEncryptionConfig
AWSKMSKeyARN: "STRING_VALUE", // required
},
},
CloudWatchLoggingOptions: { // CloudWatchLoggingOptions
Enabled: true || false,
LogGroupName: "STRING_VALUE",
LogStreamName: "STRING_VALUE",
},
},
ExtendedS3DestinationUpdate: { // ExtendedS3DestinationUpdate
RoleARN: "STRING_VALUE",
BucketARN: "STRING_VALUE",
Prefix: "STRING_VALUE",
ErrorOutputPrefix: "STRING_VALUE",
BufferingHints: {
SizeInMBs: Number("int"),
IntervalInSeconds: Number("int"),
},
CompressionFormat: "UNCOMPRESSED" || "GZIP" || "ZIP" || "Snappy" || "HADOOP_SNAPPY",
EncryptionConfiguration: {
NoEncryptionConfig: "NoEncryption",
KMSEncryptionConfig: {
AWSKMSKeyARN: "STRING_VALUE", // required
},
},
CloudWatchLoggingOptions: {
Enabled: true || false,
LogGroupName: "STRING_VALUE",
LogStreamName: "STRING_VALUE",
},
ProcessingConfiguration: { // ProcessingConfiguration
Enabled: true || false,
Processors: [ // ProcessorList
{ // Processor
Type: "RecordDeAggregation" || "Decompression" || "CloudWatchLogProcessing" || "Lambda" || "MetadataExtraction" || "AppendDelimiterToRecord", // required
Parameters: [ // ProcessorParameterList
{ // ProcessorParameter
ParameterName: "LambdaArn" || "NumberOfRetries" || "MetadataExtractionQuery" || "JsonParsingEngine" || "RoleArn" || "BufferSizeInMBs" || "BufferIntervalInSeconds" || "SubRecordType" || "Delimiter" || "CompressionFormat" || "DataMessageExtraction", // required
ParameterValue: "STRING_VALUE", // required
},
],
},
],
},
S3BackupMode: "Disabled" || "Enabled",
S3BackupUpdate: {
RoleARN: "STRING_VALUE",
BucketARN: "STRING_VALUE",
Prefix: "STRING_VALUE",
ErrorOutputPrefix: "STRING_VALUE",
BufferingHints: {
SizeInMBs: Number("int"),
IntervalInSeconds: Number("int"),
},
CompressionFormat: "UNCOMPRESSED" || "GZIP" || "ZIP" || "Snappy" || "HADOOP_SNAPPY",
EncryptionConfiguration: {
NoEncryptionConfig: "NoEncryption",
KMSEncryptionConfig: {
AWSKMSKeyARN: "STRING_VALUE", // required
},
},
CloudWatchLoggingOptions: {
Enabled: true || false,
LogGroupName: "STRING_VALUE",
LogStreamName: "STRING_VALUE",
},
},
DataFormatConversionConfiguration: { // DataFormatConversionConfiguration
SchemaConfiguration: { // SchemaConfiguration
RoleARN: "STRING_VALUE",
CatalogId: "STRING_VALUE",
DatabaseName: "STRING_VALUE",
TableName: "STRING_VALUE",
Region: "STRING_VALUE",
VersionId: "STRING_VALUE",
},
InputFormatConfiguration: { // InputFormatConfiguration
Deserializer: { // Deserializer
OpenXJsonSerDe: { // OpenXJsonSerDe
ConvertDotsInJsonKeysToUnderscores: true || false,
CaseInsensitive: true || false,
ColumnToJsonKeyMappings: { // ColumnToJsonKeyMappings
"<keys>": "STRING_VALUE",
},
},
HiveJsonSerDe: { // HiveJsonSerDe
TimestampFormats: [ // ListOfNonEmptyStrings
"STRING_VALUE",
],
},
},
},
OutputFormatConfiguration: { // OutputFormatConfiguration
Serializer: { // Serializer
ParquetSerDe: { // ParquetSerDe
BlockSizeBytes: Number("int"),
PageSizeBytes: Number("int"),
Compression: "UNCOMPRESSED" || "GZIP" || "SNAPPY",
EnableDictionaryCompression: true || false,
MaxPaddingBytes: Number("int"),
WriterVersion: "V1" || "V2",
},
OrcSerDe: { // OrcSerDe
StripeSizeBytes: Number("int"),
BlockSizeBytes: Number("int"),
RowIndexStride: Number("int"),
EnablePadding: true || false,
PaddingTolerance: Number("double"),
Compression: "NONE" || "ZLIB" || "SNAPPY",
BloomFilterColumns: [ // ListOfNonEmptyStringsWithoutWhitespace
"STRING_VALUE",
],
BloomFilterFalsePositiveProbability: Number("double"),
DictionaryKeyThreshold: Number("double"),
FormatVersion: "V0_11" || "V0_12",
},
},
},
Enabled: true || false,
},
DynamicPartitioningConfiguration: { // DynamicPartitioningConfiguration
RetryOptions: { // RetryOptions
DurationInSeconds: Number("int"),
},
Enabled: true || false,
},
FileExtension: "STRING_VALUE",
CustomTimeZone: "STRING_VALUE",
},
RedshiftDestinationUpdate: { // RedshiftDestinationUpdate
RoleARN: "STRING_VALUE",
ClusterJDBCURL: "STRING_VALUE",
CopyCommand: { // CopyCommand
DataTableName: "STRING_VALUE", // required
DataTableColumns: "STRING_VALUE",
CopyOptions: "STRING_VALUE",
},
Username: "STRING_VALUE",
Password: "STRING_VALUE",
RetryOptions: { // RedshiftRetryOptions
DurationInSeconds: Number("int"),
},
S3Update: {
RoleARN: "STRING_VALUE",
BucketARN: "STRING_VALUE",
Prefix: "STRING_VALUE",
ErrorOutputPrefix: "STRING_VALUE",
BufferingHints: {
SizeInMBs: Number("int"),
IntervalInSeconds: Number("int"),
},
CompressionFormat: "UNCOMPRESSED" || "GZIP" || "ZIP" || "Snappy" || "HADOOP_SNAPPY",
EncryptionConfiguration: {
NoEncryptionConfig: "NoEncryption",
KMSEncryptionConfig: {
AWSKMSKeyARN: "STRING_VALUE", // required
},
},
CloudWatchLoggingOptions: {
Enabled: true || false,
LogGroupName: "STRING_VALUE",
LogStreamName: "STRING_VALUE",
},
},
ProcessingConfiguration: {
Enabled: true || false,
Processors: [
{
Type: "RecordDeAggregation" || "Decompression" || "CloudWatchLogProcessing" || "Lambda" || "MetadataExtraction" || "AppendDelimiterToRecord", // required
Parameters: [
{
ParameterName: "LambdaArn" || "NumberOfRetries" || "MetadataExtractionQuery" || "JsonParsingEngine" || "RoleArn" || "BufferSizeInMBs" || "BufferIntervalInSeconds" || "SubRecordType" || "Delimiter" || "CompressionFormat" || "DataMessageExtraction", // required
ParameterValue: "STRING_VALUE", // required
},
],
},
],
},
S3BackupMode: "Disabled" || "Enabled",
S3BackupUpdate: {
RoleARN: "STRING_VALUE",
BucketARN: "STRING_VALUE",
Prefix: "STRING_VALUE",
ErrorOutputPrefix: "STRING_VALUE",
BufferingHints: {
SizeInMBs: Number("int"),
IntervalInSeconds: Number("int"),
},
CompressionFormat: "UNCOMPRESSED" || "GZIP" || "ZIP" || "Snappy" || "HADOOP_SNAPPY",
EncryptionConfiguration: {
NoEncryptionConfig: "NoEncryption",
KMSEncryptionConfig: {
AWSKMSKeyARN: "STRING_VALUE", // required
},
},
CloudWatchLoggingOptions: {
Enabled: true || false,
LogGroupName: "STRING_VALUE",
LogStreamName: "STRING_VALUE",
},
},
CloudWatchLoggingOptions: "<CloudWatchLoggingOptions>",
SecretsManagerConfiguration: { // SecretsManagerConfiguration
SecretARN: "STRING_VALUE",
RoleARN: "STRING_VALUE",
Enabled: true || false, // required
},
},
ElasticsearchDestinationUpdate: { // ElasticsearchDestinationUpdate
RoleARN: "STRING_VALUE",
DomainARN: "STRING_VALUE",
ClusterEndpoint: "STRING_VALUE",
IndexName: "STRING_VALUE",
TypeName: "STRING_VALUE",
IndexRotationPeriod: "NoRotation" || "OneHour" || "OneDay" || "OneWeek" || "OneMonth",
BufferingHints: { // ElasticsearchBufferingHints
IntervalInSeconds: Number("int"),
SizeInMBs: Number("int"),
},
RetryOptions: { // ElasticsearchRetryOptions
DurationInSeconds: Number("int"),
},
S3Update: {
RoleARN: "STRING_VALUE",
BucketARN: "STRING_VALUE",
Prefix: "STRING_VALUE",
ErrorOutputPrefix: "STRING_VALUE",
BufferingHints: "<BufferingHints>",
CompressionFormat: "UNCOMPRESSED" || "GZIP" || "ZIP" || "Snappy" || "HADOOP_SNAPPY",
EncryptionConfiguration: "<EncryptionConfiguration>",
CloudWatchLoggingOptions: "<CloudWatchLoggingOptions>",
},
ProcessingConfiguration: {
Enabled: true || false,
Processors: [
{
Type: "RecordDeAggregation" || "Decompression" || "CloudWatchLogProcessing" || "Lambda" || "MetadataExtraction" || "AppendDelimiterToRecord", // required
Parameters: [
{
ParameterName: "LambdaArn" || "NumberOfRetries" || "MetadataExtractionQuery" || "JsonParsingEngine" || "RoleArn" || "BufferSizeInMBs" || "BufferIntervalInSeconds" || "SubRecordType" || "Delimiter" || "CompressionFormat" || "DataMessageExtraction", // required
ParameterValue: "STRING_VALUE", // required
},
],
},
],
},
CloudWatchLoggingOptions: "<CloudWatchLoggingOptions>",
DocumentIdOptions: { // DocumentIdOptions
DefaultDocumentIdFormat: "FIREHOSE_DEFAULT" || "NO_DOCUMENT_ID", // required
},
},
AmazonopensearchserviceDestinationUpdate: { // AmazonopensearchserviceDestinationUpdate
RoleARN: "STRING_VALUE",
DomainARN: "STRING_VALUE",
ClusterEndpoint: "STRING_VALUE",
IndexName: "STRING_VALUE",
TypeName: "STRING_VALUE",
IndexRotationPeriod: "NoRotation" || "OneHour" || "OneDay" || "OneWeek" || "OneMonth",
BufferingHints: { // AmazonopensearchserviceBufferingHints
IntervalInSeconds: Number("int"),
SizeInMBs: Number("int"),
},
RetryOptions: { // AmazonopensearchserviceRetryOptions
DurationInSeconds: Number("int"),
},
S3Update: "<S3DestinationUpdate>",
ProcessingConfiguration: {
Enabled: true || false,
Processors: [
{
Type: "RecordDeAggregation" || "Decompression" || "CloudWatchLogProcessing" || "Lambda" || "MetadataExtraction" || "AppendDelimiterToRecord", // required
Parameters: [
{
ParameterName: "LambdaArn" || "NumberOfRetries" || "MetadataExtractionQuery" || "JsonParsingEngine" || "RoleArn" || "BufferSizeInMBs" || "BufferIntervalInSeconds" || "SubRecordType" || "Delimiter" || "CompressionFormat" || "DataMessageExtraction", // required
ParameterValue: "STRING_VALUE", // required
},
],
},
],
},
CloudWatchLoggingOptions: "<CloudWatchLoggingOptions>",
DocumentIdOptions: {
DefaultDocumentIdFormat: "FIREHOSE_DEFAULT" || "NO_DOCUMENT_ID", // required
},
},
SplunkDestinationUpdate: { // SplunkDestinationUpdate
HECEndpoint: "STRING_VALUE",
HECEndpointType: "Raw" || "Event",
HECToken: "STRING_VALUE",
HECAcknowledgmentTimeoutInSeconds: Number("int"),
RetryOptions: { // SplunkRetryOptions
DurationInSeconds: Number("int"),
},
S3BackupMode: "FailedEventsOnly" || "AllEvents",
S3Update: "<S3DestinationUpdate>",
ProcessingConfiguration: {
Enabled: true || false,
Processors: [
{
Type: "RecordDeAggregation" || "Decompression" || "CloudWatchLogProcessing" || "Lambda" || "MetadataExtraction" || "AppendDelimiterToRecord", // required
Parameters: [
{
ParameterName: "LambdaArn" || "NumberOfRetries" || "MetadataExtractionQuery" || "JsonParsingEngine" || "RoleArn" || "BufferSizeInMBs" || "BufferIntervalInSeconds" || "SubRecordType" || "Delimiter" || "CompressionFormat" || "DataMessageExtraction", // required
ParameterValue: "STRING_VALUE", // required
},
],
},
],
},
CloudWatchLoggingOptions: "<CloudWatchLoggingOptions>",
BufferingHints: { // SplunkBufferingHints
IntervalInSeconds: Number("int"),
SizeInMBs: Number("int"),
},
SecretsManagerConfiguration: {
SecretARN: "STRING_VALUE",
RoleARN: "STRING_VALUE",
Enabled: true || false, // required
},
},
HttpEndpointDestinationUpdate: { // HttpEndpointDestinationUpdate
EndpointConfiguration: { // HttpEndpointConfiguration
Url: "STRING_VALUE", // required
Name: "STRING_VALUE",
AccessKey: "STRING_VALUE",
},
BufferingHints: { // HttpEndpointBufferingHints
SizeInMBs: Number("int"),
IntervalInSeconds: Number("int"),
},
CloudWatchLoggingOptions: "<CloudWatchLoggingOptions>",
RequestConfiguration: { // HttpEndpointRequestConfiguration
ContentEncoding: "NONE" || "GZIP",
CommonAttributes: [ // HttpEndpointCommonAttributesList
{ // HttpEndpointCommonAttribute
AttributeName: "STRING_VALUE", // required
AttributeValue: "STRING_VALUE", // required
},
],
},
ProcessingConfiguration: "<ProcessingConfiguration>",
RoleARN: "STRING_VALUE",
RetryOptions: { // HttpEndpointRetryOptions
DurationInSeconds: Number("int"),
},
S3BackupMode: "FailedDataOnly" || "AllData",
S3Update: "<S3DestinationUpdate>",
SecretsManagerConfiguration: {
SecretARN: "STRING_VALUE",
RoleARN: "STRING_VALUE",
Enabled: true || false, // required
},
},
AmazonOpenSearchServerlessDestinationUpdate: { // AmazonOpenSearchServerlessDestinationUpdate
RoleARN: "STRING_VALUE",
CollectionEndpoint: "STRING_VALUE",
IndexName: "STRING_VALUE",
BufferingHints: { // AmazonOpenSearchServerlessBufferingHints
IntervalInSeconds: Number("int"),
SizeInMBs: Number("int"),
},
RetryOptions: { // AmazonOpenSearchServerlessRetryOptions
DurationInSeconds: Number("int"),
},
S3Update: "<S3DestinationUpdate>",
ProcessingConfiguration: "<ProcessingConfiguration>",
CloudWatchLoggingOptions: "<CloudWatchLoggingOptions>",
},
SnowflakeDestinationUpdate: { // SnowflakeDestinationUpdate
AccountUrl: "STRING_VALUE",
PrivateKey: "STRING_VALUE",
KeyPassphrase: "STRING_VALUE",
User: "STRING_VALUE",
Database: "STRING_VALUE",
Schema: "STRING_VALUE",
Table: "STRING_VALUE",
SnowflakeRoleConfiguration: { // SnowflakeRoleConfiguration
Enabled: true || false,
SnowflakeRole: "STRING_VALUE",
},
DataLoadingOption: "JSON_MAPPING" || "VARIANT_CONTENT_MAPPING" || "VARIANT_CONTENT_AND_METADATA_MAPPING",
MetaDataColumnName: "STRING_VALUE",
ContentColumnName: "STRING_VALUE",
CloudWatchLoggingOptions: "<CloudWatchLoggingOptions>",
ProcessingConfiguration: "<ProcessingConfiguration>",
RoleARN: "STRING_VALUE",
RetryOptions: { // SnowflakeRetryOptions
DurationInSeconds: Number("int"),
},
S3BackupMode: "FailedDataOnly" || "AllData",
S3Update: "<S3DestinationUpdate>",
SecretsManagerConfiguration: {
SecretARN: "STRING_VALUE",
RoleARN: "STRING_VALUE",
Enabled: true || false, // required
},
BufferingHints: { // SnowflakeBufferingHints
SizeInMBs: Number("int"),
IntervalInSeconds: Number("int"),
},
},
IcebergDestinationUpdate: { // IcebergDestinationUpdate
DestinationTableConfigurationList: [ // DestinationTableConfigurationList
{ // DestinationTableConfiguration
DestinationTableName: "STRING_VALUE", // required
DestinationDatabaseName: "STRING_VALUE", // required
UniqueKeys: [
"STRING_VALUE",
],
PartitionSpec: { // PartitionSpec
Identity: [ // PartitionFields
{ // PartitionField
SourceName: "STRING_VALUE", // required
},
],
},
S3ErrorOutputPrefix: "STRING_VALUE",
},
],
SchemaEvolutionConfiguration: { // SchemaEvolutionConfiguration
Enabled: true || false, // required
},
TableCreationConfiguration: { // TableCreationConfiguration
Enabled: true || false, // required
},
BufferingHints: "<BufferingHints>",
CloudWatchLoggingOptions: "<CloudWatchLoggingOptions>",
ProcessingConfiguration: "<ProcessingConfiguration>",
S3BackupMode: "FailedDataOnly" || "AllData",
RetryOptions: {
DurationInSeconds: Number("int"),
},
RoleARN: "STRING_VALUE",
AppendOnly: true || false,
CatalogConfiguration: { // CatalogConfiguration
CatalogARN: "STRING_VALUE",
WarehouseLocation: "STRING_VALUE",
},
S3Configuration: { // S3DestinationConfiguration
RoleARN: "STRING_VALUE", // required
BucketARN: "STRING_VALUE", // required
Prefix: "STRING_VALUE",
ErrorOutputPrefix: "STRING_VALUE",
BufferingHints: "<BufferingHints>",
CompressionFormat: "UNCOMPRESSED" || "GZIP" || "ZIP" || "Snappy" || "HADOOP_SNAPPY",
EncryptionConfiguration: "<EncryptionConfiguration>",
CloudWatchLoggingOptions: "<CloudWatchLoggingOptions>",
},
},
};
const command = new UpdateDestinationCommand(input);
const response = await client.send(command);
// {};
UpdateDestinationCommand Input
Parameter | Type | Description |
---|
Parameter | Type | Description |
---|---|---|
CurrentDeliveryStreamVersionId Required | string | undefined | Obtain this value from the |
DeliveryStreamName Required | string | undefined | The name of the Firehose stream. |
DestinationId Required | string | undefined | The ID of the destination. |
AmazonOpenSearchServerlessDestinationUpdate | AmazonOpenSearchServerlessDestinationUpdate | undefined | Describes an update for a destination in the Serverless offering for Amazon OpenSearch Service. |
AmazonopensearchserviceDestinationUpdate | AmazonopensearchserviceDestinationUpdate | undefined | Describes an update for a destination in Amazon OpenSearch Service. |
ElasticsearchDestinationUpdate | ElasticsearchDestinationUpdate | undefined | Describes an update for a destination in Amazon OpenSearch Service. |
ExtendedS3DestinationUpdate | ExtendedS3DestinationUpdate | undefined | Describes an update for a destination in Amazon S3. |
HttpEndpointDestinationUpdate | HttpEndpointDestinationUpdate | undefined | Describes an update to the specified HTTP endpoint destination. |
IcebergDestinationUpdate | IcebergDestinationUpdate | undefined | Describes an update for a destination in Apache Iceberg Tables. |
RedshiftDestinationUpdate | RedshiftDestinationUpdate | undefined | Describes an update for a destination in Amazon Redshift. |
S3DestinationUpdate | S3DestinationUpdate | undefined | [Deprecated] Describes an update for a destination in Amazon S3. |
SnowflakeDestinationUpdate | SnowflakeDestinationUpdate | undefined | Update to the Snowflake destination configuration settings. |
SplunkDestinationUpdate | SplunkDestinationUpdate | undefined | Describes an update for a destination in Splunk. |
UpdateDestinationCommand Output
Parameter | Type | Description |
---|
Parameter | Type | Description |
---|---|---|
$metadata Required | ResponseMetadata | Metadata pertaining to this request. |
Throws
Name | Fault | Details |
---|
Name | Fault | Details |
---|---|---|
ConcurrentModificationException | client | Another modification has already happened. Fetch |
InvalidArgumentException | client | The specified input parameter has a value that is not valid. |
ResourceInUseException | client | The resource is already in use and not available for this operation. |
ResourceNotFoundException | client | The specified resource could not be found. |
FirehoseServiceException | Base exception class for all service exceptions from Firehose service. |