deleteStream method

Future<void> deleteStream({
  1. bool? enforceConsumerDeletion,
  2. String? streamARN,
  3. String? streamId,
  4. String? streamName,
})

Deletes a Kinesis data stream and all its shards and data. You must shut down any applications that are operating on the stream before you delete the stream. If an application attempts to operate on a deleted stream, it receives the exception ResourceNotFoundException. If the stream is in the ACTIVE state, you can delete it. After a DeleteStream request, the specified stream is in the DELETING state until Kinesis Data Streams completes the deletion.

Note: Kinesis Data Streams might continue to accept data read and write operations, such as PutRecord, PutRecords, and GetRecords, on a stream in the DELETING state until the stream deletion is complete.

When you delete a stream, any shards in that stream are also deleted, and any tags are dissociated from the stream.

You can use the DescribeStreamSummary operation to check the state of the stream, which is returned in StreamStatus.

DeleteStream has a limit of five transactions per second per account.

May throw AccessDeniedException. May throw InvalidArgumentException. May throw LimitExceededException. May throw ResourceInUseException. May throw ResourceNotFoundException.

Parameter enforceConsumerDeletion : If this parameter is unset (null) or if you set it to false, and the stream has registered consumers, the call to DeleteStream fails with a ResourceInUseException.

Parameter streamARN : The ARN of the stream.

Parameter streamId : Not Implemented. Reserved for future use.

Parameter streamName : The name of the stream to delete.

Implementation

Future<void> deleteStream({
  bool? enforceConsumerDeletion,
  String? streamARN,
  String? streamId,
  String? streamName,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'Kinesis_20131202.DeleteStream'
  };
  await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      if (enforceConsumerDeletion != null)
        'EnforceConsumerDeletion': enforceConsumerDeletion,
      if (streamARN != null) 'StreamARN': streamARN,
      if (streamId != null) 'StreamId': streamId,
      if (streamName != null) 'StreamName': streamName,
    },
  );
}