# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/cloud/monitoring_v3/proto/alert.proto

import sys

_b = sys.version_info[0] < 3 and (lambda x: x) or (lambda x: x.encode("latin1"))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database

# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
from google.cloud.monitoring_v3.proto import (
    common_pb2 as google_dot_cloud_dot_monitoring__v3_dot_proto_dot_common__pb2,
)
from google.cloud.monitoring_v3.proto import (
    mutation_record_pb2 as google_dot_cloud_dot_monitoring__v3_dot_proto_dot_mutation__record__pb2,
)
from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2
from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
    name="google/cloud/monitoring_v3/proto/alert.proto",
    package="google.monitoring.v3",
    syntax="proto3",
    serialized_options=_b(
        "\n\030com.google.monitoring.v3B\nAlertProtoP\001Z>google.golang.org/genproto/googleapis/monitoring/v3;monitoring\252\002\032Google.Cloud.Monitoring.V3\312\002\032Google\\Cloud\\Monitoring\\V3"
    ),
    serialized_pb=_b(
        '\n,google/cloud/monitoring_v3/proto/alert.proto\x12\x14google.monitoring.v3\x1a\x1cgoogle/api/annotations.proto\x1a-google/cloud/monitoring_v3/proto/common.proto\x1a\x36google/cloud/monitoring_v3/proto/mutation_record.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1egoogle/protobuf/wrappers.proto"\xdd\x0c\n\x0b\x41lertPolicy\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x02 \x01(\t\x12\x46\n\rdocumentation\x18\r \x01(\x0b\x32/.google.monitoring.v3.AlertPolicy.Documentation\x12\x46\n\x0buser_labels\x18\x10 \x03(\x0b\x32\x31.google.monitoring.v3.AlertPolicy.UserLabelsEntry\x12?\n\nconditions\x18\x0c \x03(\x0b\x32+.google.monitoring.v3.AlertPolicy.Condition\x12I\n\x08\x63ombiner\x18\x06 \x01(\x0e\x32\x37.google.monitoring.v3.AlertPolicy.ConditionCombinerType\x12+\n\x07\x65nabled\x18\x11 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x1d\n\x15notification_channels\x18\x0e \x03(\t\x12=\n\x0f\x63reation_record\x18\n \x01(\x0b\x32$.google.monitoring.v3.MutationRecord\x12=\n\x0fmutation_record\x18\x0b \x01(\x0b\x32$.google.monitoring.v3.MutationRecord\x1a\x33\n\rDocumentation\x12\x0f\n\x07\x63ontent\x18\x01 \x01(\t\x12\x11\n\tmime_type\x18\x02 \x01(\t\x1a\xf8\x06\n\tCondition\x12\x0c\n\x04name\x18\x0c \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x06 \x01(\t\x12Z\n\x13\x63ondition_threshold\x18\x01 \x01(\x0b\x32;.google.monitoring.v3.AlertPolicy.Condition.MetricThresholdH\x00\x12U\n\x10\x63ondition_absent\x18\x02 \x01(\x0b\x32\x39.google.monitoring.v3.AlertPolicy.Condition.MetricAbsenceH\x00\x1a\x35\n\x07Trigger\x12\x0f\n\x05\x63ount\x18\x01 \x01(\x05H\x00\x12\x11\n\x07percent\x18\x02 \x01(\x01H\x00\x42\x06\n\x04type\x1a\x81\x03\n\x0fMetricThreshold\x12\x0e\n\x06\x66ilter\x18\x02 \x01(\t\x12\x37\n\x0c\x61ggregations\x18\x08 \x03(\x0b\x32!.google.monitoring.v3.Aggregation\x12\x1a\n\x12\x64\x65nominator_filter\x18\t \x01(\t\x12\x43\n\x18\x64\x65nominator_aggregations\x18\n \x03(\x0b\x32!.google.monitoring.v3.Aggregation\x12\x38\n\ncomparison\x18\x04 \x01(\x0e\x32$.google.monitoring.v3.ComparisonType\x12\x17\n\x0fthreshold_value\x18\x05 \x01(\x01\x12+\n\x08\x64uration\x18\x06 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x44\n\x07trigger\x18\x07 \x01(\x0b\x32\x33.google.monitoring.v3.AlertPolicy.Condition.Trigger\x1a\xcb\x01\n\rMetricAbsence\x12\x0e\n\x06\x66ilter\x18\x01 \x01(\t\x12\x37\n\x0c\x61ggregations\x18\x05 \x03(\x0b\x32!.google.monitoring.v3.Aggregation\x12+\n\x08\x64uration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x44\n\x07trigger\x18\x03 \x01(\x0b\x32\x33.google.monitoring.v3.AlertPolicy.Condition.TriggerB\x0b\n\tcondition\x1a\x31\n\x0fUserLabelsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01"a\n\x15\x43onditionCombinerType\x12\x17\n\x13\x43OMBINE_UNSPECIFIED\x10\x00\x12\x07\n\x03\x41ND\x10\x01\x12\x06\n\x02OR\x10\x02\x12\x1e\n\x1a\x41ND_WITH_MATCHING_RESOURCE\x10\x03\x42\xa2\x01\n\x18\x63om.google.monitoring.v3B\nAlertProtoP\x01Z>google.golang.org/genproto/googleapis/monitoring/v3;monitoring\xaa\x02\x1aGoogle.Cloud.Monitoring.V3\xca\x02\x1aGoogle\\Cloud\\Monitoring\\V3b\x06proto3'
    ),
    dependencies=[
        google_dot_api_dot_annotations__pb2.DESCRIPTOR,
        google_dot_cloud_dot_monitoring__v3_dot_proto_dot_common__pb2.DESCRIPTOR,
        google_dot_cloud_dot_monitoring__v3_dot_proto_dot_mutation__record__pb2.DESCRIPTOR,
        google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,
        google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,
    ],
)


_ALERTPOLICY_CONDITIONCOMBINERTYPE = _descriptor.EnumDescriptor(
    name="ConditionCombinerType",
    full_name="google.monitoring.v3.AlertPolicy.ConditionCombinerType",
    filename=None,
    file=DESCRIPTOR,
    values=[
        _descriptor.EnumValueDescriptor(
            name="COMBINE_UNSPECIFIED",
            index=0,
            number=0,
            serialized_options=None,
            type=None,
        ),
        _descriptor.EnumValueDescriptor(
            name="AND", index=1, number=1, serialized_options=None, type=None
        ),
        _descriptor.EnumValueDescriptor(
            name="OR", index=2, number=2, serialized_options=None, type=None
        ),
        _descriptor.EnumValueDescriptor(
            name="AND_WITH_MATCHING_RESOURCE",
            index=3,
            number=3,
            serialized_options=None,
            type=None,
        ),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=1800,
    serialized_end=1897,
)
_sym_db.RegisterEnumDescriptor(_ALERTPOLICY_CONDITIONCOMBINERTYPE)


_ALERTPOLICY_DOCUMENTATION = _descriptor.Descriptor(
    name="Documentation",
    full_name="google.monitoring.v3.AlertPolicy.Documentation",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="content",
            full_name="google.monitoring.v3.AlertPolicy.Documentation.content",
            index=0,
            number=1,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="mime_type",
            full_name="google.monitoring.v3.AlertPolicy.Documentation.mime_type",
            index=1,
            number=2,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=805,
    serialized_end=856,
)

_ALERTPOLICY_CONDITION_TRIGGER = _descriptor.Descriptor(
    name="Trigger",
    full_name="google.monitoring.v3.AlertPolicy.Condition.Trigger",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="count",
            full_name="google.monitoring.v3.AlertPolicy.Condition.Trigger.count",
            index=0,
            number=1,
            type=5,
            cpp_type=1,
            label=1,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="percent",
            full_name="google.monitoring.v3.AlertPolicy.Condition.Trigger.percent",
            index=1,
            number=2,
            type=1,
            cpp_type=5,
            label=1,
            has_default_value=False,
            default_value=float(0),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[
        _descriptor.OneofDescriptor(
            name="type",
            full_name="google.monitoring.v3.AlertPolicy.Condition.Trigger.type",
            index=0,
            containing_type=None,
            fields=[],
        )
    ],
    serialized_start=1087,
    serialized_end=1140,
)

_ALERTPOLICY_CONDITION_METRICTHRESHOLD = _descriptor.Descriptor(
    name="MetricThreshold",
    full_name="google.monitoring.v3.AlertPolicy.Condition.MetricThreshold",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="filter",
            full_name="google.monitoring.v3.AlertPolicy.Condition.MetricThreshold.filter",
            index=0,
            number=2,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="aggregations",
            full_name="google.monitoring.v3.AlertPolicy.Condition.MetricThreshold.aggregations",
            index=1,
            number=8,
            type=11,
            cpp_type=10,
            label=3,
            has_default_value=False,
            default_value=[],
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="denominator_filter",
            full_name="google.monitoring.v3.AlertPolicy.Condition.MetricThreshold.denominator_filter",
            index=2,
            number=9,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="denominator_aggregations",
            full_name="google.monitoring.v3.AlertPolicy.Condition.MetricThreshold.denominator_aggregations",
            index=3,
            number=10,
            type=11,
            cpp_type=10,
            label=3,
            has_default_value=False,
            default_value=[],
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="comparison",
            full_name="google.monitoring.v3.AlertPolicy.Condition.MetricThreshold.comparison",
            index=4,
            number=4,
            type=14,
            cpp_type=8,
            label=1,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="threshold_value",
            full_name="google.monitoring.v3.AlertPolicy.Condition.MetricThreshold.threshold_value",
            index=5,
            number=5,
            type=1,
            cpp_type=5,
            label=1,
            has_default_value=False,
            default_value=float(0),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="duration",
            full_name="google.monitoring.v3.AlertPolicy.Condition.MetricThreshold.duration",
            index=6,
            number=6,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="trigger",
            full_name="google.monitoring.v3.AlertPolicy.Condition.MetricThreshold.trigger",
            index=7,
            number=7,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=1143,
    serialized_end=1528,
)

_ALERTPOLICY_CONDITION_METRICABSENCE = _descriptor.Descriptor(
    name="MetricAbsence",
    full_name="google.monitoring.v3.AlertPolicy.Condition.MetricAbsence",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="filter",
            full_name="google.monitoring.v3.AlertPolicy.Condition.MetricAbsence.filter",
            index=0,
            number=1,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="aggregations",
            full_name="google.monitoring.v3.AlertPolicy.Condition.MetricAbsence.aggregations",
            index=1,
            number=5,
            type=11,
            cpp_type=10,
            label=3,
            has_default_value=False,
            default_value=[],
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="duration",
            full_name="google.monitoring.v3.AlertPolicy.Condition.MetricAbsence.duration",
            index=2,
            number=2,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="trigger",
            full_name="google.monitoring.v3.AlertPolicy.Condition.MetricAbsence.trigger",
            index=3,
            number=3,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=1531,
    serialized_end=1734,
)

_ALERTPOLICY_CONDITION = _descriptor.Descriptor(
    name="Condition",
    full_name="google.monitoring.v3.AlertPolicy.Condition",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="name",
            full_name="google.monitoring.v3.AlertPolicy.Condition.name",
            index=0,
            number=12,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="display_name",
            full_name="google.monitoring.v3.AlertPolicy.Condition.display_name",
            index=1,
            number=6,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="condition_threshold",
            full_name="google.monitoring.v3.AlertPolicy.Condition.condition_threshold",
            index=2,
            number=1,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="condition_absent",
            full_name="google.monitoring.v3.AlertPolicy.Condition.condition_absent",
            index=3,
            number=2,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[
        _ALERTPOLICY_CONDITION_TRIGGER,
        _ALERTPOLICY_CONDITION_METRICTHRESHOLD,
        _ALERTPOLICY_CONDITION_METRICABSENCE,
    ],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[
        _descriptor.OneofDescriptor(
            name="condition",
            full_name="google.monitoring.v3.AlertPolicy.Condition.condition",
            index=0,
            containing_type=None,
            fields=[],
        )
    ],
    serialized_start=859,
    serialized_end=1747,
)

_ALERTPOLICY_USERLABELSENTRY = _descriptor.Descriptor(
    name="UserLabelsEntry",
    full_name="google.monitoring.v3.AlertPolicy.UserLabelsEntry",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="key",
            full_name="google.monitoring.v3.AlertPolicy.UserLabelsEntry.key",
            index=0,
            number=1,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="value",
            full_name="google.monitoring.v3.AlertPolicy.UserLabelsEntry.value",
            index=1,
            number=2,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=_b("8\001"),
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=1749,
    serialized_end=1798,
)

_ALERTPOLICY = _descriptor.Descriptor(
    name="AlertPolicy",
    full_name="google.monitoring.v3.AlertPolicy",
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name="name",
            full_name="google.monitoring.v3.AlertPolicy.name",
            index=0,
            number=1,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="display_name",
            full_name="google.monitoring.v3.AlertPolicy.display_name",
            index=1,
            number=2,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode("utf-8"),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="documentation",
            full_name="google.monitoring.v3.AlertPolicy.documentation",
            index=2,
            number=13,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="user_labels",
            full_name="google.monitoring.v3.AlertPolicy.user_labels",
            index=3,
            number=16,
            type=11,
            cpp_type=10,
            label=3,
            has_default_value=False,
            default_value=[],
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="conditions",
            full_name="google.monitoring.v3.AlertPolicy.conditions",
            index=4,
            number=12,
            type=11,
            cpp_type=10,
            label=3,
            has_default_value=False,
            default_value=[],
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="combiner",
            full_name="google.monitoring.v3.AlertPolicy.combiner",
            index=5,
            number=6,
            type=14,
            cpp_type=8,
            label=1,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="enabled",
            full_name="google.monitoring.v3.AlertPolicy.enabled",
            index=6,
            number=17,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="notification_channels",
            full_name="google.monitoring.v3.AlertPolicy.notification_channels",
            index=7,
            number=14,
            type=9,
            cpp_type=9,
            label=3,
            has_default_value=False,
            default_value=[],
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="creation_record",
            full_name="google.monitoring.v3.AlertPolicy.creation_record",
            index=8,
            number=10,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
        _descriptor.FieldDescriptor(
            name="mutation_record",
            full_name="google.monitoring.v3.AlertPolicy.mutation_record",
            index=9,
            number=11,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR,
        ),
    ],
    extensions=[],
    nested_types=[
        _ALERTPOLICY_DOCUMENTATION,
        _ALERTPOLICY_CONDITION,
        _ALERTPOLICY_USERLABELSENTRY,
    ],
    enum_types=[_ALERTPOLICY_CONDITIONCOMBINERTYPE],
    serialized_options=None,
    is_extendable=False,
    syntax="proto3",
    extension_ranges=[],
    oneofs=[],
    serialized_start=268,
    serialized_end=1897,
)

_ALERTPOLICY_DOCUMENTATION.containing_type = _ALERTPOLICY
_ALERTPOLICY_CONDITION_TRIGGER.containing_type = _ALERTPOLICY_CONDITION
_ALERTPOLICY_CONDITION_TRIGGER.oneofs_by_name["type"].fields.append(
    _ALERTPOLICY_CONDITION_TRIGGER.fields_by_name["count"]
)
_ALERTPOLICY_CONDITION_TRIGGER.fields_by_name[
    "count"
].containing_oneof = _ALERTPOLICY_CONDITION_TRIGGER.oneofs_by_name["type"]
_ALERTPOLICY_CONDITION_TRIGGER.oneofs_by_name["type"].fields.append(
    _ALERTPOLICY_CONDITION_TRIGGER.fields_by_name["percent"]
)
_ALERTPOLICY_CONDITION_TRIGGER.fields_by_name[
    "percent"
].containing_oneof = _ALERTPOLICY_CONDITION_TRIGGER.oneofs_by_name["type"]
_ALERTPOLICY_CONDITION_METRICTHRESHOLD.fields_by_name[
    "aggregations"
].message_type = (
    google_dot_cloud_dot_monitoring__v3_dot_proto_dot_common__pb2._AGGREGATION
)
_ALERTPOLICY_CONDITION_METRICTHRESHOLD.fields_by_name[
    "denominator_aggregations"
].message_type = (
    google_dot_cloud_dot_monitoring__v3_dot_proto_dot_common__pb2._AGGREGATION
)
_ALERTPOLICY_CONDITION_METRICTHRESHOLD.fields_by_name[
    "comparison"
].enum_type = (
    google_dot_cloud_dot_monitoring__v3_dot_proto_dot_common__pb2._COMPARISONTYPE
)
_ALERTPOLICY_CONDITION_METRICTHRESHOLD.fields_by_name[
    "duration"
].message_type = google_dot_protobuf_dot_duration__pb2._DURATION
_ALERTPOLICY_CONDITION_METRICTHRESHOLD.fields_by_name[
    "trigger"
].message_type = _ALERTPOLICY_CONDITION_TRIGGER
_ALERTPOLICY_CONDITION_METRICTHRESHOLD.containing_type = _ALERTPOLICY_CONDITION
_ALERTPOLICY_CONDITION_METRICABSENCE.fields_by_name[
    "aggregations"
].message_type = (
    google_dot_cloud_dot_monitoring__v3_dot_proto_dot_common__pb2._AGGREGATION
)
_ALERTPOLICY_CONDITION_METRICABSENCE.fields_by_name[
    "duration"
].message_type = google_dot_protobuf_dot_duration__pb2._DURATION
_ALERTPOLICY_CONDITION_METRICABSENCE.fields_by_name[
    "trigger"
].message_type = _ALERTPOLICY_CONDITION_TRIGGER
_ALERTPOLICY_CONDITION_METRICABSENCE.containing_type = _ALERTPOLICY_CONDITION
_ALERTPOLICY_CONDITION.fields_by_name[
    "condition_threshold"
].message_type = _ALERTPOLICY_CONDITION_METRICTHRESHOLD
_ALERTPOLICY_CONDITION.fields_by_name[
    "condition_absent"
].message_type = _ALERTPOLICY_CONDITION_METRICABSENCE
_ALERTPOLICY_CONDITION.containing_type = _ALERTPOLICY
_ALERTPOLICY_CONDITION.oneofs_by_name["condition"].fields.append(
    _ALERTPOLICY_CONDITION.fields_by_name["condition_threshold"]
)
_ALERTPOLICY_CONDITION.fields_by_name[
    "condition_threshold"
].containing_oneof = _ALERTPOLICY_CONDITION.oneofs_by_name["condition"]
_ALERTPOLICY_CONDITION.oneofs_by_name["condition"].fields.append(
    _ALERTPOLICY_CONDITION.fields_by_name["condition_absent"]
)
_ALERTPOLICY_CONDITION.fields_by_name[
    "condition_absent"
].containing_oneof = _ALERTPOLICY_CONDITION.oneofs_by_name["condition"]
_ALERTPOLICY_USERLABELSENTRY.containing_type = _ALERTPOLICY
_ALERTPOLICY.fields_by_name["documentation"].message_type = _ALERTPOLICY_DOCUMENTATION
_ALERTPOLICY.fields_by_name["user_labels"].message_type = _ALERTPOLICY_USERLABELSENTRY
_ALERTPOLICY.fields_by_name["conditions"].message_type = _ALERTPOLICY_CONDITION
_ALERTPOLICY.fields_by_name["combiner"].enum_type = _ALERTPOLICY_CONDITIONCOMBINERTYPE
_ALERTPOLICY.fields_by_name[
    "enabled"
].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE
_ALERTPOLICY.fields_by_name[
    "creation_record"
].message_type = (
    google_dot_cloud_dot_monitoring__v3_dot_proto_dot_mutation__record__pb2._MUTATIONRECORD
)
_ALERTPOLICY.fields_by_name[
    "mutation_record"
].message_type = (
    google_dot_cloud_dot_monitoring__v3_dot_proto_dot_mutation__record__pb2._MUTATIONRECORD
)
_ALERTPOLICY_CONDITIONCOMBINERTYPE.containing_type = _ALERTPOLICY
DESCRIPTOR.message_types_by_name["AlertPolicy"] = _ALERTPOLICY
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

AlertPolicy = _reflection.GeneratedProtocolMessageType(
    "AlertPolicy",
    (_message.Message,),
    dict(
        Documentation=_reflection.GeneratedProtocolMessageType(
            "Documentation",
            (_message.Message,),
            dict(
                DESCRIPTOR=_ALERTPOLICY_DOCUMENTATION,
                __module__="google.cloud.monitoring_v3.proto.alert_pb2",
                __doc__="""A content string and a MIME type that describes the content string's
    format.
    
    
    Attributes:
        content:
            The text of the documentation, interpreted according to
            ``mime_type``. The content may not exceed 8,192 Unicode
            characters and may not exceed more than 10,240 bytes when
            encoded in UTF-8 format, whichever is smaller.
        mime_type:
            The format of the ``content`` field. Presently, only the value
            ``"text/markdown"`` is supported. See `Markdown
            <https://en.wikipedia.org/wiki/Markdown>`__ for more
            information.
    """,
                # @@protoc_insertion_point(class_scope:google.monitoring.v3.AlertPolicy.Documentation)
            ),
        ),
        Condition=_reflection.GeneratedProtocolMessageType(
            "Condition",
            (_message.Message,),
            dict(
                Trigger=_reflection.GeneratedProtocolMessageType(
                    "Trigger",
                    (_message.Message,),
                    dict(
                        DESCRIPTOR=_ALERTPOLICY_CONDITION_TRIGGER,
                        __module__="google.cloud.monitoring_v3.proto.alert_pb2",
                        __doc__="""Specifies how many time series must fail a predicate to trigger a
      condition. If not specified, then a ``{count: 1}`` trigger is used.
      
      
      Attributes:
          type:
              A type of trigger.
          count:
              The absolute number of time series that must fail the
              predicate for the condition to be triggered.
          percent:
              The percentage of time series that must fail the predicate for
              the condition to be triggered.
      """,
                        # @@protoc_insertion_point(class_scope:google.monitoring.v3.AlertPolicy.Condition.Trigger)
                    ),
                ),
                MetricThreshold=_reflection.GeneratedProtocolMessageType(
                    "MetricThreshold",
                    (_message.Message,),
                    dict(
                        DESCRIPTOR=_ALERTPOLICY_CONDITION_METRICTHRESHOLD,
                        __module__="google.cloud.monitoring_v3.proto.alert_pb2",
                        __doc__="""A condition type that compares a collection of time series against a
      threshold.
      
      
      Attributes:
          filter:
              A `filter </monitoring/api/v3/filters>`__ that identifies
              which time series should be compared with the threshold.  The
              filter is similar to the one that is specified in the
              ```MetricService.ListTimeSeries`` request
              </monitoring/api/ref_v3/rest/v3/projects.timeSeries/list>`__
              (that call is useful to verify the time series that will be
              retrieved / processed) and must specify the metric type and
              optionally may contain restrictions on resource type, resource
              labels, and metric labels. This field may not exceed 2048
              Unicode characters in length.
          aggregations:
              Specifies the alignment of data points in individual time
              series as well as how to combine the retrieved time series
              together (such as when aggregating multiple streams on each
              resource to a single stream for each resource or when
              aggregating streams across all members of a group of
              resrouces). Multiple aggregations are applied in the order
              specified.  This field is similar to the one in the
              ```MetricService.ListTimeSeries`` request
              </monitoring/api/ref_v3/rest/v3/projects.timeSeries/list>`__.
              It is advisable to use the ``ListTimeSeries`` method when
              debugging this field.
          denominator_filter:
              A `filter </monitoring/api/v3/filters>`__ that identifies a
              time series that should be used as the denominator of a ratio
              that will be compared with the threshold. If a
              ``denominator_filter`` is specified, the time series specified
              by the ``filter`` field will be used as the numerator.  The
              filter is similar to the one that is specified in the
              ```MetricService.ListTimeSeries`` request
              </monitoring/api/ref_v3/rest/v3/projects.timeSeries/list>`__
              (that call is useful to verify the time series that will be
              retrieved / processed) and must specify the metric type and
              optionally may contain restrictions on resource type, resource
              labels, and metric labels. This field may not exceed 2048
              Unicode characters in length.
          denominator_aggregations:
              Specifies the alignment of data points in individual time
              series selected by ``denominatorFilter`` as well as how to
              combine the retrieved time series together (such as when
              aggregating multiple streams on each resource to a single
              stream for each resource or when aggregating streams across
              all members of a group of resources).  When computing ratios,
              the ``aggregations`` and ``denominator_aggregations`` fields
              must use the same alignment period and produce time series
              that have the same periodicity and labels.  This field is
              similar to the one in the ```MetricService.ListTimeSeries``
              request
              </monitoring/api/ref_v3/rest/v3/projects.timeSeries/list>`__.
              It is advisable to use the ``ListTimeSeries`` method when
              debugging this field.
          comparison:
              The comparison to apply between the time series (indicated by
              ``filter`` and ``aggregation``) and the threshold (indicated
              by ``threshold_value``). The comparison is applied on each
              time series, with the time series on the left-hand side and
              the threshold on the right-hand side.  Only ``COMPARISON_LT``
              and ``COMPARISON_GT`` are supported currently.
          threshold_value:
              A value against which to compare the time series.
          duration:
              The amount of time that a time series must violate the
              threshold to be considered failing. Currently, only values
              that are a multiple of a minute--e.g., 0, 60, 120, or 300
              seconds--are supported. If an invalid value is given, an error
              will be returned. When choosing a duration, it is useful to
              keep in mind the frequency of the underlying time series data
              (which may also be affected by any alignments specified in the
              ``aggregations`` field); a good duration is long enough so
              that a single outlier does not generate spurious alerts, but
              short enough that unhealthy states are detected and alerted on
              quickly.
          trigger:
              The number/percent of time series for which the comparison
              must hold in order for the condition to trigger. If
              unspecified, then the condition will trigger if the comparison
              is true for any of the time series that have been identified
              by ``filter`` and ``aggregations``, or by the ratio, if
              ``denominator_filter`` and ``denominator_aggregations`` are
              specified.
      """,
                        # @@protoc_insertion_point(class_scope:google.monitoring.v3.AlertPolicy.Condition.MetricThreshold)
                    ),
                ),
                MetricAbsence=_reflection.GeneratedProtocolMessageType(
                    "MetricAbsence",
                    (_message.Message,),
                    dict(
                        DESCRIPTOR=_ALERTPOLICY_CONDITION_METRICABSENCE,
                        __module__="google.cloud.monitoring_v3.proto.alert_pb2",
                        __doc__="""A condition type that checks that monitored resources are reporting
      data. The configuration defines a metric and a set of monitored
      resources. The predicate is considered in violation when a time series
      for the specified metric of a monitored resource does not include any
      data in the specified ``duration``.
      
      
      Attributes:
          filter:
              A `filter </monitoring/api/v3/filters>`__ that identifies
              which time series should be compared with the threshold.  The
              filter is similar to the one that is specified in the
              ```MetricService.ListTimeSeries`` request
              </monitoring/api/ref_v3/rest/v3/projects.timeSeries/list>`__
              (that call is useful to verify the time series that will be
              retrieved / processed) and must specify the metric type and
              optionally may contain restrictions on resource type, resource
              labels, and metric labels. This field may not exceed 2048
              Unicode characters in length.
          aggregations:
              Specifies the alignment of data points in individual time
              series as well as how to combine the retrieved time series
              together (such as when aggregating multiple streams on each
              resource to a single stream for each resource or when
              aggregating streams across all members of a group of
              resrouces). Multiple aggregations are applied in the order
              specified.  This field is similar to the one in the
              ```MetricService.ListTimeSeries`` request
              </monitoring/api/ref_v3/rest/v3/projects.timeSeries/list>`__.
              It is advisable to use the ``ListTimeSeries`` method when
              debugging this field.
          duration:
              The amount of time that a time series must fail to report new
              data to be considered failing. Currently, only values that are
              a multiple of a minute--e.g. 60, 120, or 300 seconds--are
              supported. If an invalid value is given, an error will be
              returned. The ``Duration.nanos`` field is ignored.
          trigger:
              The number/percent of time series for which the comparison
              must hold in order for the condition to trigger. If
              unspecified, then the condition will trigger if the comparison
              is true for any of the time series that have been identified
              by ``filter`` and ``aggregations``.
      """,
                        # @@protoc_insertion_point(class_scope:google.monitoring.v3.AlertPolicy.Condition.MetricAbsence)
                    ),
                ),
                DESCRIPTOR=_ALERTPOLICY_CONDITION,
                __module__="google.cloud.monitoring_v3.proto.alert_pb2",
                __doc__="""A condition is a true/false test that determines when an alerting policy
    should open an incident. If a condition evaluates to true, it signifies
    that something is wrong.
    
    
    Attributes:
        name:
            Required if the condition exists. The unique resource name for
            this condition. Its syntax is:  ::      projects/[PROJECT_ID]/
            alertPolicies/[POLICY_ID]/conditions/[CONDITION_ID]
            ``[CONDITION_ID]`` is assigned by Stackdriver Monitoring when
            the condition is created as part of a new or updated alerting
            policy.  When calling the [alertPolicies.create][google.monito
            ring.v3.AlertPolicyService.CreateAlertPolicy] method, do not
            include the ``name`` field in the conditions of the requested
            alerting policy. Stackdriver Monitoring creates the condition
            identifiers and includes them in the new policy.  When calling
            the [alertPolicies.update][google.monitoring.v3.AlertPolicySer
            vice.UpdateAlertPolicy] method to update a policy, including a
            condition ``name`` causes the existing condition to be
            updated. Conditions without names are added to the updated
            policy. Existing conditions are deleted if they are not
            updated.  Best practice is to preserve ``[CONDITION_ID]`` if
            you make only small changes, such as those to condition
            thresholds, durations, or trigger values. Otherwise, treat the
            change as a new condition and let the existing condition be
            deleted.
        display_name:
            A short name or phrase used to identify the condition in
            dashboards, notifications, and incidents. To avoid confusion,
            don't use the same display name for multiple conditions in the
            same policy.
        condition:
            Only one of the following condition types will be specified.
        condition_threshold:
            A condition that compares a time series against a threshold.
        condition_absent:
            A condition that checks that a time series continues to
            receive new data points.
    """,
                # @@protoc_insertion_point(class_scope:google.monitoring.v3.AlertPolicy.Condition)
            ),
        ),
        UserLabelsEntry=_reflection.GeneratedProtocolMessageType(
            "UserLabelsEntry",
            (_message.Message,),
            dict(
                DESCRIPTOR=_ALERTPOLICY_USERLABELSENTRY,
                __module__="google.cloud.monitoring_v3.proto.alert_pb2"
                # @@protoc_insertion_point(class_scope:google.monitoring.v3.AlertPolicy.UserLabelsEntry)
            ),
        ),
        DESCRIPTOR=_ALERTPOLICY,
        __module__="google.cloud.monitoring_v3.proto.alert_pb2",
        __doc__="""A description of the conditions under which some aspect of your system
  is considered to be "unhealthy" and the ways to notify people or
  services about this state. For an overview of alert policies, see
  `Introduction to Alerting </monitoring/alerts/>`__.
  
  
  Attributes:
      name:
          Required if the policy exists. The resource name for this
          policy. The syntax is:  ::
          projects/[PROJECT_ID]/alertPolicies/[ALERT_POLICY_ID]
          ``[ALERT_POLICY_ID]`` is assigned by Stackdriver Monitoring
          when the policy is created. When calling the [alertPolicies.cr
          eate][google.monitoring.v3.AlertPolicyService.CreateAlertPolic
          y] method, do not include the ``name`` field in the alerting
          policy passed as part of the request.
      display_name:
          A short name or phrase used to identify the policy in
          dashboards, notifications, and incidents. To avoid confusion,
          don't use the same display name for multiple policies in the
          same project. The name is limited to 512 Unicode characters.
      documentation:
          Documentation that is included with notifications and
          incidents related to this policy. Best practice is for the
          documentation to include information to help responders
          understand, mitigate, escalate, and correct the underlying
          problems detected by the alerting policy. Notification
          channels that have limited capacity might not show this
          documentation.
      user_labels:
          User-supplied key/value data to be used for organizing and
          identifying the ``AlertPolicy`` objects.  The field can
          contain up to 64 entries. Each key and value is limited to 63
          Unicode characters or 128 bytes, whichever is smaller. Labels
          and values can contain only lowercase letters, numerals,
          underscores, and dashes. Keys must begin with a letter.
      conditions:
          A list of conditions for the policy. The conditions are
          combined by AND or OR according to the ``combiner`` field. If
          the combined conditions evaluate to true, then an incident is
          created. A policy can have from one to six conditions.
      combiner:
          How to combine the results of multiple conditions to determine
          if an incident should be opened.
      enabled:
          Whether or not the policy is enabled. On write, the default
          interpretation if unset is that the policy is enabled. On
          read, clients should not make any assumption about the state
          if it has not been populated. The field should always be
          populated on List and Get operations, unless a field
          projection has been specified that strips it out.
      notification_channels:
          Identifies the notification channels to which notifications
          should be sent when incidents are opened or closed or when new
          violations occur on an already opened incident. Each element
          of this array corresponds to the ``name`` field in each of the
          [``NotificationChannel``][google.monitoring.v3.NotificationCha
          nnel] objects that are returned from the [``ListNotificationCh
          annels``][google.monitoring.v3.NotificationChannelService.List
          NotificationChannels] method. The syntax of the entries in
          this field is:  ::
          projects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID]
      creation_record:
          A read-only record of the creation of the alerting policy. If
          provided in a call to create or update, this field will be
          ignored.
      mutation_record:
          A read-only record of the most recent change to the alerting
          policy. If provided in a call to create or update, this field
          will be ignored.
  """,
        # @@protoc_insertion_point(class_scope:google.monitoring.v3.AlertPolicy)
    ),
)
_sym_db.RegisterMessage(AlertPolicy)
_sym_db.RegisterMessage(AlertPolicy.Documentation)
_sym_db.RegisterMessage(AlertPolicy.Condition)
_sym_db.RegisterMessage(AlertPolicy.Condition.Trigger)
_sym_db.RegisterMessage(AlertPolicy.Condition.MetricThreshold)
_sym_db.RegisterMessage(AlertPolicy.Condition.MetricAbsence)
_sym_db.RegisterMessage(AlertPolicy.UserLabelsEntry)


DESCRIPTOR._options = None
_ALERTPOLICY_USERLABELSENTRY._options = None
# @@protoc_insertion_point(module_scope)
