Files
grafana/pkg/tsdb/cloudwatch/models/resources/log_groups_resource_request.go
Isabella Siu 13534a7d98 Cloudwatch: Revert aws sdk go v2 (#103644)
* Revert "CloudWatch: Import new grafana-aws-sdk with PDC fix (#103249)"

This reverts commit f2b5b4e0c0230b9cc8553b0c768582698610da00.

* Revert "CloudWatch: Migrate to aws-sdk-go-v2 (#103106)"

This reverts commit a65cc0df93c5568d0ba32f0171a3c2cd04997cf7.

* make update-workspace
2025-04-08 15:40:15 -04:00

56 lines
1.4 KiB
Go

package resources
import (
"fmt"
"net/url"
"strconv"
)
const defaultLogGroupLimit = int64(50)
type LogGroupsRequest struct {
ResourceRequest
Limit int64
LogGroupNamePrefix, LogGroupNamePattern *string
ListAllLogGroups bool
}
func (r LogGroupsRequest) IsTargetingAllAccounts() bool {
return *r.AccountId == "all"
}
func ParseLogGroupsRequest(parameters url.Values) (LogGroupsRequest, error) {
logGroupNamePrefix := setIfNotEmptyString(parameters.Get("logGroupNamePrefix"))
logGroupPattern := setIfNotEmptyString(parameters.Get("logGroupPattern"))
if logGroupNamePrefix != nil && logGroupPattern != nil {
return LogGroupsRequest{}, fmt.Errorf("cannot set both log group name prefix and pattern")
}
return LogGroupsRequest{
Limit: getLimit(parameters.Get("limit")),
ResourceRequest: ResourceRequest{
Region: parameters.Get("region"),
AccountId: setIfNotEmptyString(parameters.Get("accountId")),
},
LogGroupNamePrefix: logGroupNamePrefix,
LogGroupNamePattern: logGroupPattern,
ListAllLogGroups: parameters.Get("listAllLogGroups") == "true",
}, nil
}
func setIfNotEmptyString(paramValue string) *string {
if paramValue == "" {
return nil
}
return &paramValue
}
func getLimit(limit string) int64 {
logGroupLimit := defaultLogGroupLimit
intLimit, err := strconv.ParseInt(limit, 10, 64)
if err == nil && intLimit > 0 {
logGroupLimit = intLimit
}
return logGroupLimit
}