UpdateChannel
Updates the data freshness interval or the Amazon CloudWatch Logs configuration of an existing channel. You cannot change the destination, source stream, record format, schema, encryption configuration, or service execution role of an existing channel. To change any other setting, delete the channel and create a new one.
Updating a channel is an asynchronous operation. Upon receiving the request, Amazon Kinesis Data Streams sets the channel to the UPDATING state and returns immediately. After the change is applied, Amazon Kinesis Data Streams sets the channel back to the ACTIVE state.
This operation has a call limit of 5 transactions per second (TPS) for each AWS account. Exceeding 5 TPS results in a LimitExceededException.
Request Syntax
{
"ChannelARN": "string",
"LoggingConfiguration": {
"CloudWatchLogs": {
"Enabled": boolean,
"LogGroupName": "string",
"LogStreamName": "string"
}
},
"S3DestinationConfiguration": {
"DataFreshnessInSeconds": number
},
"S3TablesDestinationConfiguration": {
"DataFreshnessInSeconds": number
}
}
Request Parameters
The request accepts the following data in JSON format.
- ChannelARN
-
The Amazon Resource Name (ARN) of the channel to update.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 2048.
Pattern:
arn:aws.*:kinesis:.*:\d{12}:channel/\S+Required: Yes
- LoggingConfiguration
-
The updated Amazon CloudWatch Logs configuration for the channel.
Type: ChannelLoggingUpdateInput object
Required: No
- S3DestinationConfiguration
-
The updated configuration for a general purpose Amazon S3 destination. Specify this parameter when the channel delivers to a general purpose Amazon S3 bucket. Only
DataFreshnessInSecondscan be updated.Type: S3DestinationUpdateInput object
Required: No
- S3TablesDestinationConfiguration
-
The updated configuration for a streaming table destination. Specify this parameter when the channel delivers to streaming tables on Apache Iceberg in Amazon S3 Tables. Only
DataFreshnessInSecondscan be updated.Type: S3TablesDestinationUpdateInput object
Required: No
Response Syntax
{
"ChannelDescription": {
"ChannelARN": "string",
"ChannelCreationTimestamp": number,
"ChannelId": "string",
"ChannelName": "string",
"ChannelStatus": "string",
"ChannelStatusReason": "string",
"EncryptionConfiguration": {
"EncryptionType": "string",
"KeyId": "string"
},
"LoggingConfiguration": {
"CloudWatchLogs": {
"Enabled": boolean,
"LogGroupName": "string",
"LogStreamName": "string"
}
},
"S3DestinationConfiguration": {
"DataFreshnessInSeconds": number,
"DeadLetterQueueS3Configuration": {
"BucketARN": "string",
"ErrorOutputPrefix": "string",
"ExpectedBucketOwner": "string"
},
"StorageConfiguration": {
"BucketARN": "string",
"CompressionType": "string",
"ExpectedBucketOwner": "string",
"OutputKeyTemplate": "string",
"StorageClass": "string"
}
},
"S3TablesDestinationConfiguration": {
"DataFreshnessInSeconds": number,
"DeadLetterQueueS3Configuration": {
"BucketARN": "string",
"ErrorOutputPrefix": "string",
"ExpectedBucketOwner": "string"
},
"S3TablesConfigurationList": [
{
"CompressionType": "string",
"Namespace": "string",
"PartitionSpec": {
"PartitionFields": [
{
"SourceName": "string",
"Transform": "string"
}
]
},
"TableBucketARN": "string",
"TableName": "string"
}
]
},
"ServiceExecutionRoleARN": "string",
"StreamConfigurationList": [
{
"RecordConfiguration": {
"GSRSchemaARN": "string",
"RecordFormatType": "string"
},
"StreamARN": "string",
"StreamCreationTimestamp": number
}
]
}
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The following data is returned in JSON format by the service.
- ChannelDescription
-
The configuration and current status of the channel after the update, including its ARN, destination configuration, and lifecycle state. Immediately after the request, the state is
UPDATING.Type: ChannelDescription object
Errors
For information about the errors that are common to all actions, see Common Error Types.
- AccessDeniedException
-
Specifies that you do not have the permissions required to perform this operation.
HTTP Status Code: 400
- InvalidArgumentException
-
A specified parameter exceeds its restrictions, is not supported, or can't be used. For more information, see the returned message.
- message
-
A message that provides information about the error.
HTTP Status Code: 400
- LimitExceededException
-
The requested resource exceeds the maximum number allowed, or the number of concurrent stream requests exceeds the maximum number allowed.
- message
-
A message that provides information about the error.
HTTP Status Code: 400
- ResourceInUseException
-
The resource is not available for this operation. For successful operation, the resource must be in the
ACTIVEstate.- message
-
A message that provides information about the error.
HTTP Status Code: 400
- ResourceNotFoundException
-
The requested resource could not be found. The stream might not be specified correctly.
- message
-
A message that provides information about the error.
HTTP Status Code: 400
- ValidationException
-
Specifies that you tried to invoke this API for a data stream with the on-demand capacity mode. This API is only supported for data streams with the provisioned capacity mode.
HTTP Status Code: 400
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: