describeLogGroups method
Returns information about log groups, including data sources that ingest into each log group. You can return all your log groups or filter the results by prefix. The results are ASCII-sorted by log group name.
CloudWatch Logs doesn't support IAM policies that control access to the
DescribeLogGroups action by using the
aws:ResourceTag/key-name condition key. Other
CloudWatch Logs actions do support the use of the
aws:ResourceTag/key-name condition key to control
access. For more information about using tags to control access, see Controlling
access to Amazon Web Services resources using tags.
If you are using CloudWatch cross-account observability, you can use this operation in a monitoring account and view data from the linked source accounts. For more information, see CloudWatch cross-account observability.
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 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 items returned. If you don't specify a value, the
default is up to 50 items.
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.
Specifies the log group class for this log group. There are three classes:
-
The
Standardlog class supports all CloudWatch Logs features. -
The
Infrequent Accesslog class supports a subset of CloudWatch Logs features and incurs lower costs. -
Use the
Deliverylog class only for delivering Lambda logs to store in Amazon S3 or Amazon Data Firehose. Log events in log groups in the Delivery class are kept in CloudWatch Logs for only one day. This log class doesn't offer rich CloudWatch Logs capabilities such as CloudWatch Logs Insights queries.
Parameter logGroupIdentifiers :
Use this array to filter the list of log groups returned. If you specify
this parameter, the only other filter that you can choose to specify is
includeLinkedAccounts.
If you are using this operation in a monitoring account, you can specify the ARNs of log groups in source accounts and in the monitoring account itself. If you are using this operation in an account that is not a cross-account monitoring account, you can specify only log group names in the same account as the operation.
Parameter logGroupNamePattern :
If you specify a string for this parameter, the operation returns only log
groups that have names that match the string based on a case-sensitive
substring search. For example, if you specify DataLogs, log
groups named DataLogs, aws/DataLogs, and
GroupDataLogs would match, but datalogs,
Data/log/s and Groupdata would not match.
If you specify logGroupNamePattern in your request, then only
arn, creationTime, and logGroupName
are included in the response.
Parameter logGroupNamePrefix :
The prefix to match.
Parameter nextToken :
The token for the next set of items to return. (You received this token
from a previous call.)
Implementation
Future<DescribeLogGroupsResponse> describeLogGroups({
List<String>? accountIdentifiers,
bool? includeLinkedAccounts,
int? limit,
LogGroupClass? logGroupClass,
List<String>? logGroupIdentifiers,
String? logGroupNamePattern,
String? logGroupNamePrefix,
String? nextToken,
}) async {
_s.validateNumRange(
'limit',
limit,
1,
50,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'Logs_20140328.DescribeLogGroups'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
if (accountIdentifiers != null)
'accountIdentifiers': accountIdentifiers,
if (includeLinkedAccounts != null)
'includeLinkedAccounts': includeLinkedAccounts,
if (limit != null) 'limit': limit,
if (logGroupClass != null) 'logGroupClass': logGroupClass.value,
if (logGroupIdentifiers != null)
'logGroupIdentifiers': logGroupIdentifiers,
if (logGroupNamePattern != null)
'logGroupNamePattern': logGroupNamePattern,
if (logGroupNamePrefix != null)
'logGroupNamePrefix': logGroupNamePrefix,
if (nextToken != null) 'nextToken': nextToken,
},
);
return DescribeLogGroupsResponse.fromJson(jsonResponse.body);
}