listLogGroups method
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
^ 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);
}