listShards method
Lists the shards in a stream and provides information about each shard. This operation has a limit of 100 transactions per second per data stream.
May throw ResourceNotFoundException. May throw InvalidArgumentException. May throw LimitExceededException. May throw ExpiredNextTokenException. May throw ResourceInUseException.
Parameter exclusiveStartShardId
:
Specify this parameter to indicate that you want to list the shards
starting with the shard whose ID immediately follows
ExclusiveStartShardId
.
If you don't specify this parameter, the default behavior is for
ListShards
to list the shards starting with the first one in
the stream.
You cannot specify this parameter if you specify NextToken
.
Parameter maxResults
:
The maximum number of shards to return in a single call to
ListShards
. The minimum value you can specify for this
parameter is 1, and the maximum is 10,000, which is also the default.
When the number of shards to be listed is greater than the value of
MaxResults
, the response contains a NextToken
value that you can use in a subsequent call to ListShards
to
list the next set of shards.
Parameter nextToken
:
When the number of shards in the data stream is greater than the default
value for the MaxResults
parameter, or if you explicitly
specify a value for MaxResults
that is less than the number
of shards in the data stream, the response includes a pagination token
named NextToken
. You can specify this NextToken
value in a subsequent call to ListShards
to list the next set
of shards.
Don't specify StreamName
or
StreamCreationTimestamp
if you specify NextToken
because the latter unambiguously identifies the stream.
You can optionally specify a value for the MaxResults
parameter when you specify NextToken
. If you specify a
MaxResults
value that is less than the number of shards that
the operation returns if you don't specify MaxResults
, the
response will contain a new NextToken
value. You can use the
new NextToken
value in a subsequent call to the
ListShards
operation.
Parameter streamCreationTimestamp
:
Specify this input parameter to distinguish data streams that have the
same name. For example, if you create a data stream and then delete it,
and you later create another data stream with the same name, you can use
this input parameter to specify which of the two streams you want to list
the shards for.
You cannot specify this parameter if you specify the
NextToken
parameter.
Parameter streamName
:
The name of the data stream whose shards you want to list.
You cannot specify this parameter if you specify the
NextToken
parameter.
Implementation
Future<ListShardsOutput> listShards({
String? exclusiveStartShardId,
int? maxResults,
String? nextToken,
ShardFilter? shardFilter,
DateTime? streamCreationTimestamp,
String? streamName,
}) async {
_s.validateStringLength(
'exclusiveStartShardId',
exclusiveStartShardId,
1,
128,
);
_s.validateNumRange(
'maxResults',
maxResults,
1,
10000,
);
_s.validateStringLength(
'nextToken',
nextToken,
1,
1048576,
);
_s.validateStringLength(
'streamName',
streamName,
1,
128,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'Kinesis_20131202.ListShards'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
if (exclusiveStartShardId != null)
'ExclusiveStartShardId': exclusiveStartShardId,
if (maxResults != null) 'MaxResults': maxResults,
if (nextToken != null) 'NextToken': nextToken,
if (shardFilter != null) 'ShardFilter': shardFilter,
if (streamCreationTimestamp != null)
'StreamCreationTimestamp':
unixTimestampToJson(streamCreationTimestamp),
if (streamName != null) 'StreamName': streamName,
},
);
return ListShardsOutput.fromJson(jsonResponse.body);
}