# Path: google/monitoring/dashboard_v1/types/common.py
# class Aggregation(proto.Message):
#     class Aligner(proto.Enum):
#     class Reducer(proto.Enum):
# class PickTimeSeriesFilter(proto.Message):
#     class Method(proto.Enum):
#     class Direction(proto.Enum):
# class StatisticalTimeSeriesFilter(proto.Message):
#     class Method(proto.Enum):
#         ALIGN_NONE = 0
#         ALIGN_DELTA = 1
#         ALIGN_RATE = 2
#         ALIGN_INTERPOLATE = 3
#         ALIGN_NEXT_OLDER = 4
#         ALIGN_MIN = 10
#         ALIGN_MAX = 11
#         ALIGN_MEAN = 12
#         ALIGN_COUNT = 13
#         ALIGN_SUM = 14
#         ALIGN_STDDEV = 15
#         ALIGN_COUNT_TRUE = 16
#         ALIGN_COUNT_FALSE = 24
#         ALIGN_FRACTION_TRUE = 17
#         ALIGN_PERCENTILE_99 = 18
#         ALIGN_PERCENTILE_95 = 19
#         ALIGN_PERCENTILE_50 = 20
#         ALIGN_PERCENTILE_05 = 21
#         ALIGN_PERCENT_CHANGE = 23
#         REDUCE_NONE = 0
#         REDUCE_MEAN = 1
#         REDUCE_MIN = 2
#         REDUCE_MAX = 3
#         REDUCE_SUM = 4
#         REDUCE_STDDEV = 5
#         REDUCE_COUNT = 6
#         REDUCE_COUNT_TRUE = 7
#         REDUCE_COUNT_FALSE = 15
#         REDUCE_FRACTION_TRUE = 8
#         REDUCE_PERCENTILE_99 = 9
#         REDUCE_PERCENTILE_95 = 10
#         REDUCE_PERCENTILE_50 = 11
#         REDUCE_PERCENTILE_05 = 12
#         METHOD_UNSPECIFIED = 0
#         METHOD_MEAN = 1
#         METHOD_MAX = 2
#         METHOD_MIN = 3
#         METHOD_SUM = 4
#         METHOD_LATEST = 5
#         DIRECTION_UNSPECIFIED = 0
#         TOP = 1
#         BOTTOM = 2
#         METHOD_UNSPECIFIED = 0
#         METHOD_CLUSTER_OUTLIER = 1


import proto  # type: ignore
from google.monitoring.dashboard_v1.types import common
    r"""A filter that defines a subset of time series data that is displayed
    in a widget. Time series data is fetched using the
    ```ListTimeSeries`` <https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list>`__
    method.

    Attributes:
        filter (str):
            Required. The `monitoring
            filter <https://cloud.google.com/monitoring/api/v3/filters>`__
            that identifies the metric types, resources, and projects to
            query.
        aggregation (~.common.Aggregation):
            By default, the raw time series data is
            returned. Use this field to combine multiple
            time series for different views of the data.
        secondary_aggregation (~.common.Aggregation):
            Apply a second aggregation after ``aggregation`` is applied.
        pick_time_series_filter (~.common.PickTimeSeriesFilter):
            Ranking based time series filter.
        statistical_time_series_filter (~.common.StatisticalTimeSeriesFilter):
            Statistics based time series filter.
            Note: This field is deprecated and completely
            ignored by the API.
    """

    filter = proto.Field(proto.STRING, number=1)

    aggregation = proto.Field(proto.MESSAGE, number=2, message=common.Aggregation,)

    secondary_aggregation = proto.Field(

# Path: google/monitoring/dashboard_v1/types/common.py
# class Aggregation(proto.Message):
#     class Aligner(proto.Enum):
#     class Reducer(proto.Enum):
# class PickTimeSeriesFilter(proto.Message):
#     class Method(proto.Enum):
#     class Direction(proto.Enum):
# class StatisticalTimeSeriesFilter(proto.Message):
#     class Method(proto.Enum):
#         ALIGN_NONE = 0
#         ALIGN_DELTA = 1
#         ALIGN_RATE = 2
#         ALIGN_INTERPOLATE = 3
#         ALIGN_NEXT_OLDER = 4
#         ALIGN_MIN = 10
#         ALIGN_MAX = 11
#         ALIGN_MEAN = 12
#         ALIGN_COUNT = 13
#         ALIGN_SUM = 14
#         ALIGN_STDDEV = 15
#         ALIGN_COUNT_TRUE = 16
#         ALIGN_COUNT_FALSE = 24
#         ALIGN_FRACTION_TRUE = 17
#         ALIGN_PERCENTILE_99 = 18
#         ALIGN_PERCENTILE_95 = 19
#         ALIGN_PERCENTILE_50 = 20
#         ALIGN_PERCENTILE_05 = 21
#         ALIGN_PERCENT_CHANGE = 23
#         REDUCE_NONE = 0
#         REDUCE_MEAN = 1
#         REDUCE_MIN = 2
#         REDUCE_MAX = 3
#         REDUCE_SUM = 4
#         REDUCE_STDDEV = 5
#         REDUCE_COUNT = 6
#         REDUCE_COUNT_TRUE = 7
#         REDUCE_COUNT_FALSE = 15
#         REDUCE_FRACTION_TRUE = 8
#         REDUCE_PERCENTILE_99 = 9
#         REDUCE_PERCENTILE_95 = 10
#         REDUCE_PERCENTILE_50 = 11
#         REDUCE_PERCENTILE_05 = 12
#         METHOD_UNSPECIFIED = 0
#         METHOD_MEAN = 1
#         METHOD_MAX = 2
#         METHOD_MIN = 3
#         METHOD_SUM = 4
#         METHOD_LATEST = 5
#         DIRECTION_UNSPECIFIED = 0
#         TOP = 1
#         BOTTOM = 2
#         METHOD_UNSPECIFIED = 0
#         METHOD_CLUSTER_OUTLIER = 1


# Path: google/monitoring/dashboard_v1/types/metrics.py
import proto  # type: ignore
from google.monitoring.dashboard_v1.types import common

    r"""A filter that defines a subset of time series data that is displayed
    in a widget. Time series data is fetched using the
    ```ListTimeSeries`` <https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list>`__
    method.

    Attributes:
        filter (str):
            Required. The `monitoring
            filter <https://cloud.google.com/monitoring/api/v3/filters>`__
            that identifies the metric types, resources, and projects to
            query.
        aggregation (~.common.Aggregation):
            By default, the raw time series data is
            returned. Use this field to combine multiple
            time series for different views of the data.
        secondary_aggregation (~.common.Aggregation):
            Apply a second aggregation after ``aggregation`` is applied.
        pick_time_series_filter (~.common.PickTimeSeriesFilter):
            Ranking based time series filter.
        statistical_time_series_filter (~.common.StatisticalTimeSeriesFilter):
            Statistics based time series filter.
            Note: This field is deprecated and completely
            ignored by the API.
    """

    filter = proto.Field(proto.STRING, number=1)

    aggregation = proto.Field(proto.MESSAGE, number=2, message=common.Aggregation,)

    secondary_aggregation = proto.Field(

        proto.MESSAGE, number=3, message=common.Aggregation,