1
0
Fork 0
telegraf/plugins/inputs/opensearch_query/aggregation.bucket.go
Daniel Baumann 4978089aab
Adding upstream version 1.34.4.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2025-05-24 07:26:29 +02:00

45 lines
907 B
Go

package opensearch_query
import (
"errors"
"fmt"
)
type bucketAggregationRequest map[string]*aggregationFunction
func (b bucketAggregationRequest) addAggregation(name, aggType, field string) error {
switch aggType {
case "terms":
default:
return fmt.Errorf("aggregation function %q not supported", aggType)
}
b[name] = &aggregationFunction{
aggType: aggType,
field: field,
}
return nil
}
func (b bucketAggregationRequest) addNestedAggregation(name string, a aggregationRequest) {
b[name].nested = a
}
func (b bucketAggregationRequest) bucketSize(name string, size int) error {
if size <= 0 {
return errors.New("invalid size; must be integer value > 0")
}
if _, ok := b[name]; !ok {
return fmt.Errorf("aggregation %q not found", name)
}
b[name].setSize(size)
return nil
}
func (b bucketAggregationRequest) missing(name, missing string) {
b[name].setMissing(missing)
}