grafana_bak/pkg/tsdb/cloudwatch/models/resources/metrics_resource_request.go
2025-04-01 10:38:02 +09:00

43 lines
789 B
Go

package resources
import (
"net/url"
)
type MetricsRequestType uint32
const (
MetricsByNamespaceRequestType MetricsRequestType = iota
AllMetricsRequestType
CustomNamespaceRequestType
)
type MetricsRequest struct {
*ResourceRequest
Namespace string
}
func GetMetricsRequest(parameters url.Values) (MetricsRequest, error) {
resourceRequest, err := getResourceRequest(parameters)
if err != nil {
return MetricsRequest{}, err
}
return MetricsRequest{
ResourceRequest: resourceRequest,
Namespace: parameters.Get("namespace"),
}, nil
}
func (r *MetricsRequest) Type() MetricsRequestType {
if r.Namespace == "" {
return AllMetricsRequestType
}
if isCustomNamespace(r.Namespace) {
return CustomNamespaceRequestType
}
return MetricsByNamespaceRequestType
}