listLogGroups method

Future<ListLogGroupsResponse> listLogGroups({
  1. List<String>? accountIdentifiers,
  2. List<DataSourceFilter>? dataSources,
  3. List<String>? fieldIndexNames,
  4. bool? includeLinkedAccounts,
  5. int? limit,
  6. LogGroupClass? logGroupClass,
  7. String? logGroupNamePattern,
  8. List<TagFilter>? logGroupTags,
  9. String? nextToken,
})

Returns a list of log groups in the Region in your account. If you are performing this action in a monitoring account, you can choose to also return log groups from source accounts that are linked to the monitoring account. For more information about using cross-account observability to set up monitoring accounts and source accounts, see CloudWatch cross-account observability.

You can optionally filter the results by log group class, log group name pattern, field indexes, data sources, field index names, or log group tags. If you specify more than one filter type, the results include log groups that satisfy all filters.

This operation is paginated. By default, your first use of this operation returns 50 results, and includes a token to use in a subsequent operation to return more results.

May throw InvalidParameterException. May throw ServiceUnavailableException.

Parameter accountIdentifiers : When includeLinkedAccounts is set to true, use this parameter to specify the list of accounts to search. You can specify as many as 20 account IDs in the array.

Parameter dataSources : An array of data source filters to filter log groups by their associated data sources. You can filter by data source name, type, or both. Multiple filters within the same dimension are combined with OR logic, while filters across different dimensions are combined with AND logic.

Parameter fieldIndexNames : An array of field index names to filter log groups that have specific field indexes. Only log groups containing all specified field indexes are returned. You can specify 1 to 20 field index names, each with 1 to 512 characters.

Parameter includeLinkedAccounts : If you are using a monitoring account, set this to true to have the operation return log groups in the accounts listed in accountIdentifiers.

If this parameter is set to true and accountIdentifiers contains a null value, the operation returns all log groups in the monitoring account and all log groups in all source accounts that are linked to the monitoring account.

The default for this parameter is false.

Parameter limit : The maximum number of log groups to return. If you omit this parameter, the default is up to 50 log groups.

Parameter logGroupClass : Use this parameter to limit the results to only those log groups in the specified log group class. If you omit this parameter, log groups of all classes can be returned.

Parameter logGroupNamePattern : Use this parameter to limit the returned log groups to only those with names that match the pattern that you specify. This parameter is a regular expression that can match prefixes and substrings, and supports wildcard matching and matching multiple patterns, as in the following examples.

  • Use ^ to match log group names by prefix.
  • For a substring match, specify the string to match. All matches are case sensitive
  • To match multiple patterns, separate them with a | as in the example ^/aws/lambda|discovery
You can specify as many as five different regular expression patterns in this field, each of which must be between 3 and 24 characters. You can include the ^ symbol as many as five times, and include the | symbol as many as four times.

Parameter logGroupTags : An array of tag filters to return only log groups that have specific tags. Multiple filters are combined with AND logic.

Implementation

Future<ListLogGroupsResponse> listLogGroups({
  List<String>? accountIdentifiers,
  List<DataSourceFilter>? dataSources,
  List<String>? fieldIndexNames,
  bool? includeLinkedAccounts,
  int? limit,
  LogGroupClass? logGroupClass,
  String? logGroupNamePattern,
  List<TagFilter>? logGroupTags,
  String? nextToken,
}) async {
  _s.validateNumRange(
    'limit',
    limit,
    1,
    1000,
  );
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'Logs_20140328.ListLogGroups'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      if (accountIdentifiers != null)
        'accountIdentifiers': accountIdentifiers,
      if (dataSources != null) 'dataSources': dataSources,
      if (fieldIndexNames != null) 'fieldIndexNames': fieldIndexNames,
      if (includeLinkedAccounts != null)
        'includeLinkedAccounts': includeLinkedAccounts,
      if (limit != null) 'limit': limit,
      if (logGroupClass != null) 'logGroupClass': logGroupClass.value,
      if (logGroupNamePattern != null)
        'logGroupNamePattern': logGroupNamePattern,
      if (logGroupTags != null) 'logGroupTags': logGroupTags,
      if (nextToken != null) 'nextToken': nextToken,
    },
  );

  return ListLogGroupsResponse.fromJson(jsonResponse.body);
}