describeLogStreams method

Future<DescribeLogStreamsResponse> describeLogStreams({
  1. required String logGroupName,
  2. bool? descending,
  3. int? limit,
  4. String? logStreamNamePrefix,
  5. String? nextToken,
  6. OrderBy? orderBy,
})

Lists the log streams for the specified log group. You can list all the log streams or filter the results by prefix. You can also control how the results are ordered.

This operation has a limit of five transactions per second, after which transactions are throttled.

May throw InvalidParameterException. May throw ResourceNotFoundException. May throw ServiceUnavailableException.

Parameter logGroupName : The name of the log group.

Parameter descending : If the value is true, results are returned in descending order. If the value is to false, results are returned in ascending order. The default value is false.

Parameter limit : The maximum number of items returned. If you don't specify a value, the default is up to 50 items.

Parameter logStreamNamePrefix : The prefix to match.

If orderBy is LastEventTime, you cannot specify this parameter.

Parameter nextToken : The token for the next set of items to return. (You received this token from a previous call.)

Parameter orderBy : If the value is LogStreamName, the results are ordered by log stream name. If the value is LastEventTime, the results are ordered by the event time. The default value is LogStreamName.

If you order the results by event time, you cannot specify the logStreamNamePrefix parameter.

lastEventTimeStamp represents the time of the most recent log event in the log stream in CloudWatch Logs. This number is expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. lastEventTimeStamp updates on an eventual consistency basis. It typically updates in less than an hour from ingestion, but in rare situations might take longer.

Implementation

Future<DescribeLogStreamsResponse> describeLogStreams({
  required String logGroupName,
  bool? descending,
  int? limit,
  String? logStreamNamePrefix,
  String? nextToken,
  OrderBy? orderBy,
}) async {
  ArgumentError.checkNotNull(logGroupName, 'logGroupName');
  _s.validateStringLength(
    'logGroupName',
    logGroupName,
    1,
    512,
    isRequired: true,
  );
  _s.validateNumRange(
    'limit',
    limit,
    1,
    50,
  );
  _s.validateStringLength(
    'logStreamNamePrefix',
    logStreamNamePrefix,
    1,
    512,
  );
  _s.validateStringLength(
    'nextToken',
    nextToken,
    1,
    1152921504606846976,
  );
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'Logs_20140328.DescribeLogStreams'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'logGroupName': logGroupName,
      if (descending != null) 'descending': descending,
      if (limit != null) 'limit': limit,
      if (logStreamNamePrefix != null)
        'logStreamNamePrefix': logStreamNamePrefix,
      if (nextToken != null) 'nextToken': nextToken,
      if (orderBy != null) 'orderBy': orderBy.toValue(),
    },
  );

  return DescribeLogStreamsResponse.fromJson(jsonResponse.body);
}