in internal/resources/providers/awslib/cloudwatch/provider.go [37:63]
func (p *Provider) DescribeAlarms(ctx context.Context, region *string, filters []string) ([]types.MetricAlarm, error) {
var all []types.MetricAlarm
input := cloudwatch.DescribeAlarmsInput{}
client, err := awslib.GetClient(region, p.clients)
if err != nil {
return nil, err
}
for {
output, err := client.DescribeAlarms(ctx, &input)
if err != nil {
return nil, err
}
for _, metric := range output.MetricAlarms {
for _, filter := range filters {
if metric.MetricName != nil && filter == *metric.MetricName {
all = append(all, metric)
break
}
}
}
if output.NextToken == nil {
break
}
input.NextToken = output.NextToken
}
return all, nil
}