"""Pipeline aggregations:
https://www.elastic.co/guide/en/elasticsearch/reference/2.3/search-aggregations-pipeline.html
"""
from typing import List
from pandagg.node.aggs.abstract import Pipeline, ScriptPipeline
[docs]class AvgBucket(Pipeline):
KEY = "avg_bucket"
VALUE_ATTRS = ["value"]
[docs]class Derivative(Pipeline):
KEY = "derivative"
VALUE_ATTRS = ["value"]
[docs]class MaxBucket(Pipeline):
KEY = "max_bucket"
VALUE_ATTRS = ["value"]
[docs]class MinBucket(Pipeline):
KEY = "min_bucket"
VALUE_ATTRS = ["value"]
[docs]class SumBucket(Pipeline):
KEY = "sum_bucket"
VALUE_ATTRS = ["value"]
[docs]class StatsBucket(Pipeline):
KEY = "stats_bucket"
VALUE_ATTRS = ["count", "min", "max", "avg", "sum"]
[docs]class ExtendedStatsBucket(Pipeline):
KEY = "extended_stats_bucket"
VALUE_ATTRS = [
"count",
"min",
"max",
"avg",
"sum",
"sum_of_squares",
"variance",
"std_deviation",
"std_deviation_bounds",
]
[docs]class PercentilesBucket(Pipeline):
KEY = "percentiles_bucket"
VALUE_ATTRS = ["values"]
[docs]class MovingAvg(Pipeline):
KEY = "moving_avg"
VALUE_ATTRS = ["value"]
[docs]class CumulativeSum(Pipeline):
KEY = "cumulative_sum"
VALUE_ATTRS = ["value"]
[docs]class BucketScript(ScriptPipeline):
KEY = "bucket_script"
VALUE_ATTRS = ["value"]
[docs]class BucketSelector(ScriptPipeline):
KEY = "bucket_selector"
VALUE_ATTRS: List[str] = []
[docs]class BucketSort(ScriptPipeline):
KEY = "bucket_sort"
VALUE_ATTRS: List[str] = []
[docs]class SerialDiff(Pipeline):
KEY = "serial_diff"
VALUE_ATTRS = ["value"]