deleteStream method
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 DescribeStream 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 ResourceNotFoundException. May throw LimitExceededException. May throw ResourceInUseException.
Parameter streamName
:
The name of the stream to delete.
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
.
Implementation
Future<void> deleteStream({
required String streamName,
bool? enforceConsumerDeletion,
}) async {
ArgumentError.checkNotNull(streamName, 'streamName');
_s.validateStringLength(
'streamName',
streamName,
1,
128,
isRequired: true,
);
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: {
'StreamName': streamName,
if (enforceConsumerDeletion != null)
'EnforceConsumerDeletion': enforceConsumerDeletion,
},
);
}