text: # -*- coding: utf-8 -*-
  # Generated by the protocol buffer compiler.  DO NOT EDIT!
  # source: google/cloud/logging_v2/proto/logging_config.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
  from google.protobuf import descriptor_pb2
  
  # @@protoc_insertion_point(imports)
  
  _sym_db = _symbol_database.Default()
  
  
  from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
  from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
  from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2
  from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
  
  
  DESCRIPTOR = _descriptor.FileDescriptor(
      name="google/cloud/logging_v2/proto/logging_config.proto",
      package="google.logging.v2",
      syntax="proto3",
      serialized_pb=_b(
          '\n2google/cloud/logging_v2/proto/logging_config.proto\x12\x11google.logging.v2\x1a\x1cgoogle/api/annotations.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto"\xe3\x02\n\x07LogSink\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65stination\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x05 \x01(\t\x12K\n\x15output_version_format\x18\x06 \x01(\x0e\x32(.google.logging.v2.LogSink.VersionFormatB\x02\x18\x01\x12\x17\n\x0fwriter_identity\x18\x08 \x01(\t\x12\x18\n\x10include_children\x18\t \x01(\x08\x12\x32\n\nstart_time\x18\n \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x02\x18\x01\x12\x30\n\x08\x65nd_time\x18\x0b \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x02\x18\x01"?\n\rVersionFormat\x12\x1e\n\x1aVERSION_FORMAT_UNSPECIFIED\x10\x00\x12\x06\n\x02V2\x10\x01\x12\x06\n\x02V1\x10\x02"I\n\x10ListSinksRequest\x12\x0e\n\x06parent\x18\x01 \x01(\t\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05"W\n\x11ListSinksResponse\x12)\n\x05sinks\x18\x01 \x03(\x0b\x32\x1a.google.logging.v2.LogSink\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"#\n\x0eGetSinkRequest\x12\x11\n\tsink_name\x18\x01 \x01(\t"m\n\x11\x43reateSinkRequest\x12\x0e\n\x06parent\x18\x01 \x01(\t\x12(\n\x04sink\x18\x02 \x01(\x0b\x32\x1a.google.logging.v2.LogSink\x12\x1e\n\x16unique_writer_identity\x18\x03 \x01(\x08"\xa1\x01\n\x11UpdateSinkRequest\x12\x11\n\tsink_name\x18\x01 \x01(\t\x12(\n\x04sink\x18\x02 \x01(\x0b\x32\x1a.google.logging.v2.LogSink\x12\x1e\n\x16unique_writer_identity\x18\x03 \x01(\x08\x12/\n\x0bupdate_mask\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"&\n\x11\x44\x65leteSinkRequest\x12\x11\n\tsink_name\x18\x01 \x01(\t"S\n\x0cLogExclusion\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x03 \x01(\t\x12\x10\n\x08\x64isabled\x18\x04 \x01(\x08"N\n\x15ListExclusionsRequest\x12\x0e\n\x06parent\x18\x01 \x01(\t\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05"f\n\x16ListExclusionsResponse\x12\x33\n\nexclusions\x18\x01 \x03(\x0b\x32\x1f.google.logging.v2.LogExclusion\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t"#\n\x13GetExclusionRequest\x12\x0c\n\x04name\x18\x01 \x01(\t"\\\n\x16\x43reateExclusionRequest\x12\x0e\n\x06parent\x18\x01 \x01(\t\x12\x32\n\texclusion\x18\x02 \x01(\x0b\x32\x1f.google.logging.v2.LogExclusion"\x8b\x01\n\x16UpdateExclusionRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x32\n\texclusion\x18\x02 \x01(\x0b\x32\x1f.google.logging.v2.LogExclusion\x12/\n\x0bupdate_mask\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.FieldMask"&\n\x16\x44\x65leteExclusionRequest\x12\x0c\n\x04name\x18\x01 \x01(\t2\x94\x19\n\x0f\x43onfigServiceV2\x12\x87\x02\n\tListSinks\x12#.google.logging.v2.ListSinksRequest\x1a$.google.logging.v2.ListSinksResponse"\xae\x01\x82\xd3\xe4\x93\x02\xa7\x01\x12\x16/v2/{parent=*/*}/sinksZ\x1f\x12\x1d/v2/{parent=projects/*}/sinksZ$\x12"/v2/{parent=organizations/*}/sinksZ\x1e\x12\x1c/v2/{parent=folders/*}/sinksZ&\x12$/v2/{parent=billingAccounts/*}/sinks\x12\x92\x02\n\x07GetSink\x12!.google.logging.v2.GetSinkRequest\x1a\x1a.google.logging.v2.LogSink"\xc7\x01\x82\xd3\xe4\x93\x02\xc0\x01\x12\x1b/v2/{sink_name=*/*/sinks/*}Z$\x12"/v2/{sink_name=projects/*/sinks/*}Z)\x12\'/v2/{sink_name=organizations/*/sinks/*}Z#\x12!/v2/{sink_name=folders/*/sinks/*}Z+\x12)/v2/{sink_name=billingAccounts/*/sinks/*}\x12\x9d\x02\n\nCreateSink\x12$.google.logging.v2.CreateSinkRequest\x1a\x1a.google.logging.v2.LogSink"\xcc\x01\x82\xd3\xe4\x93\x02\xc5\x01"\x16/v2/{parent=*/*}/sinks:\x04sinkZ%"\x1d/v2/{parent=projects/*}/sinks:\x04sinkZ*""/v2/{parent=organizations/*}/sinks:\x04sinkZ$"\x1c/v2/{parent=folders/*}/sinks:\x04sinkZ,"$/v2/{parent=billingAccounts/*}/sinks:\x04sink\x12\xf1\x03\n\nUpdateSink\x12$.google.logging.v2.UpdateSinkRequest\x1a\x1a.google.logging.v2.LogSink"\xa0\x03\x82\xd3\xe4\x93\x02\x99\x03\x1a\x1b/v2/{sink_name=*/*/sinks/*}:\x04sinkZ*\x1a"/v2/{sink_name=projects/*/sinks/*}:\x04sinkZ/\x1a\'/v2/{sink_name=organizations/*/sinks/*}:\x04sinkZ)\x1a!/v2/{sink_name=folders/*/sinks/*}:\x04sinkZ1\x1a)/v2/{sink_name=billingAccounts/*/sinks/*}:\x04sinkZ*2"/v2/{sink_name=projects/*/sinks/*}:\x04sinkZ/2\'/v2/{sink_name=organizations/*/sinks/*}:\x04sinkZ)2!/v2/{sink_name=folders/*/sinks/*}:\x04sinkZ12)/v2/{sink_name=billingAccounts/*/sinks/*}:\x04sink\x12\x94\x02\n\nDeleteSink\x12$.google.logging.v2.DeleteSinkRequest\x1a\x16.google.protobuf.Empty"\xc7\x01\x82\xd3\xe4\x93\x02\xc0\x01*\x1b/v2/{sink_name=*/*/sinks/*}Z$*"/v2/{sink_name=projects/*/sinks/*}Z)*\'/v2/{sink_name=organizations/*/sinks/*}Z#*!/v2/{sink_name=folders/*/sinks/*}Z+*)/v2/{sink_name=billingAccounts/*/sinks/*}\x12\xaf\x02\n\x0eListExclusions\x12(.google.logging.v2.ListExclusionsRequest\x1a).google.logging.v2.ListExclusionsResponse"\xc7\x01\x82\xd3\xe4\x93\x02\xc0\x01\x12\x1b/v2/{parent=*/*}/exclusionsZ$\x12"/v2/{parent=projects/*}/exclusionsZ)\x12\'/v2/{parent=organizations/*}/exclusionsZ#\x12!/v2/{parent=folders/*}/exclusionsZ+\x12)/v2/{parent=billingAccounts/*}/exclusions\x12\xa1\x02\n\x0cGetExclusion\x12&.google.logging.v2.GetExclusionRequest\x1a\x1f.google.logging.v2.LogExclusion"\xc7\x01\x82\xd3\xe4\x93\x02\xc0\x01\x12\x1b/v2/{name=*/*/exclusions/*}Z$\x12"/v2/{name=projects/*/exclusions/*}Z)\x12\'/v2/{name=organizations/*/exclusions/*}Z#\x12!/v2/{name=folders/*/exclusions/*}Z+\x12)/v2/{name=billingAccounts/*/exclusions/*}\x12\xde\x02\n\x0f\x43reateExclusion\x12).google.logging.v2.CreateExclusionRequest\x1a\x1f.google.logging.v2.LogExclusion"\xfe\x01\x82\xd3\xe4\x93\x02\xf7\x01"\x1b/v2/{parent=*/*}/exclusions:\texclusionZ/""/v2/{parent=projects/*}/exclusions:\texclusionZ4"\'/v2/{parent=organizations/*}/exclusions:\texclusionZ."!/v2/{parent=folders/*}/exclusions:\texclusionZ6")/v2/{parent=billingAccounts/*}/exclusions:\texclusion\x12\xde\x02\n\x0fUpdateExclusion\x12).google.logging.v2.UpdateExclusionRequest\x1a\x1f.google.logging.v2.LogExclusion"\xfe\x01\x82\xd3\xe4\x93\x02\xf7\x01\x32\x1b/v2/{name=*/*/exclusions/*}:\texclusionZ/2"/v2/{name=projects/*/exclusions/*}:\texclusionZ42\'/v2/{name=organizations/*/exclusions/*}:\texclusionZ.2!/v2/{name=folders/*/exclusions/*}:\texclusionZ62)/v2/{name=billingAccounts/*/exclusions/*}:\texclusion\x12\x9e\x02\n\x0f\x44\x65leteExclusion\x12).google.logging.v2.DeleteExclusionRequest\x1a\x16.google.protobuf.Empty"\xc7\x01\x82\xd3\xe4\x93\x02\xc0\x01*\x1b/v2/{name=*/*/exclusions/*}Z$*"/v2/{name=projects/*/exclusions/*}Z)*\'/v2/{name=organizations/*/exclusions/*}Z#*!/v2/{name=folders/*/exclusions/*}Z+*)/v2/{name=billingAccounts/*/exclusions/*}B\x9e\x01\n\x15\x63om.google.logging.v2B\x12LoggingConfigProtoP\x01Z8google.golang.org/genproto/googleapis/logging/v2;logging\xf8\x01\x01\xaa\x02\x17Google.Cloud.Logging.V2\xca\x02\x17Google\\Cloud\\Logging\\V2b\x06proto3'
      ),
      dependencies=[
          google_dot_api_dot_annotations__pb2.DESCRIPTOR,
          google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,
          google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,
          google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,
      ],
  )
  
  
  _LOGSINK_VERSIONFORMAT = _descriptor.EnumDescriptor(
      name="VersionFormat",
      full_name="google.logging.v2.LogSink.VersionFormat",
      filename=None,
      file=DESCRIPTOR,
      values=[
          _descriptor.EnumValueDescriptor(
              name="VERSION_FORMAT_UNSPECIFIED",
              index=0,
              number=0,
              options=None,
              type=None,
          ),
          _descriptor.EnumValueDescriptor(
              name="V2", index=1, number=1, options=None, type=None
          ),
          _descriptor.EnumValueDescriptor(
              name="V1", index=2, number=2, options=None, type=None
          ),
      ],
      containing_type=None,
      options=None,
      serialized_start=492,
      serialized_end=555,
  )
  _sym_db.RegisterEnumDescriptor(_LOGSINK_VERSIONFORMAT)
  
  
  _LOGSINK = _descriptor.Descriptor(
      name="LogSink",
      full_name="google.logging.v2.LogSink",
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
          _descriptor.FieldDescriptor(
              name="name",
              full_name="google.logging.v2.LogSink.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,
              options=None,
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="destination",
              full_name="google.logging.v2.LogSink.destination",
              index=1,
              number=3,
              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,
              options=None,
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="filter",
              full_name="google.logging.v2.LogSink.filter",
              index=2,
              number=5,
              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,
              options=None,
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="output_version_format",
              full_name="google.logging.v2.LogSink.output_version_format",
              index=3,
              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,
              options=_descriptor._ParseOptions(
                  descriptor_pb2.FieldOptions(), _b("\030\001")
              ),
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="writer_identity",
              full_name="google.logging.v2.LogSink.writer_identity",
              index=4,
              number=8,
              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,
              options=None,
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="include_children",
              full_name="google.logging.v2.LogSink.include_children",
              index=5,
              number=9,
              type=8,
              cpp_type=7,
              label=1,
              has_default_value=False,
              default_value=False,
              message_type=None,
              enum_type=None,
              containing_type=None,
              is_extension=False,
              extension_scope=None,
              options=None,
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="start_time",
              full_name="google.logging.v2.LogSink.start_time",
              index=6,
              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,
              options=_descriptor._ParseOptions(
                  descriptor_pb2.FieldOptions(), _b("\030\001")
              ),
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="end_time",
              full_name="google.logging.v2.LogSink.end_time",
              index=7,
              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,
              options=_descriptor._ParseOptions(
                  descriptor_pb2.FieldOptions(), _b("\030\001")
              ),
              file=DESCRIPTOR,
          ),
      ],
      extensions=[],
      nested_types=[],
      enum_types=[_LOGSINK_VERSIONFORMAT],
      options=None,
      is_extendable=False,
      syntax="proto3",
      extension_ranges=[],
      oneofs=[],
      serialized_start=200,
      serialized_end=555,
  )
  
  
  _LISTSINKSREQUEST = _descriptor.Descriptor(
      name="ListSinksRequest",
      full_name="google.logging.v2.ListSinksRequest",
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
          _descriptor.FieldDescriptor(
              name="parent",
              full_name="google.logging.v2.ListSinksRequest.parent",
              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,
              options=None,
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="page_token",
              full_name="google.logging.v2.ListSinksRequest.page_token",
              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,
              options=None,
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="page_size",
              full_name="google.logging.v2.ListSinksRequest.page_size",
              index=2,
              number=3,
              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,
              options=None,
              file=DESCRIPTOR,
          ),
      ],
      extensions=[],
      nested_types=[],
      enum_types=[],
      options=None,
      is_extendable=False,
      syntax="proto3",
      extension_ranges=[],
      oneofs=[],
      serialized_start=557,
      serialized_end=630,
  )
  
  
  _LISTSINKSRESPONSE = _descriptor.Descriptor(
      name="ListSinksResponse",
      full_name="google.logging.v2.ListSinksResponse",
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
          _descriptor.FieldDescriptor(
              name="sinks",
              full_name="google.logging.v2.ListSinksResponse.sinks",
              index=0,
              number=1,
              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,
              options=None,
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="next_page_token",
              full_name="google.logging.v2.ListSinksResponse.next_page_token",
              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,
              options=None,
              file=DESCRIPTOR,
          ),
      ],
      extensions=[],
      nested_types=[],
      enum_types=[],
      options=None,
      is_extendable=False,
      syntax="proto3",
      extension_ranges=[],
      oneofs=[],
      serialized_start=632,
      serialized_end=719,
  )
  
  
  _GETSINKREQUEST = _descriptor.Descriptor(
      name="GetSinkRequest",
      full_name="google.logging.v2.GetSinkRequest",
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
          _descriptor.FieldDescriptor(
              name="sink_name",
              full_name="google.logging.v2.GetSinkRequest.sink_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,
              options=None,
              file=DESCRIPTOR,
          )
      ],
      extensions=[],
      nested_types=[],
      enum_types=[],
      options=None,
      is_extendable=False,
      syntax="proto3",
      extension_ranges=[],
      oneofs=[],
      serialized_start=721,
      serialized_end=756,
  )
  
  
  _CREATESINKREQUEST = _descriptor.Descriptor(
      name="CreateSinkRequest",
      full_name="google.logging.v2.CreateSinkRequest",
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
          _descriptor.FieldDescriptor(
              name="parent",
              full_name="google.logging.v2.CreateSinkRequest.parent",
              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,
              options=None,
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="sink",
              full_name="google.logging.v2.CreateSinkRequest.sink",
              index=1,
              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,
              options=None,
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="unique_writer_identity",
              full_name="google.logging.v2.CreateSinkRequest.unique_writer_identity",
              index=2,
              number=3,
              type=8,
              cpp_type=7,
              label=1,
              has_default_value=False,
              default_value=False,
              message_type=None,
              enum_type=None,
              containing_type=None,
              is_extension=False,
              extension_scope=None,
              options=None,
              file=DESCRIPTOR,
          ),
      ],
      extensions=[],
      nested_types=[],
      enum_types=[],
      options=None,
      is_extendable=False,
      syntax="proto3",
      extension_ranges=[],
      oneofs=[],
      serialized_start=758,
      serialized_end=867,
  )
  
  
  _UPDATESINKREQUEST = _descriptor.Descriptor(
      name="UpdateSinkRequest",
      full_name="google.logging.v2.UpdateSinkRequest",
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
          _descriptor.FieldDescriptor(
              name="sink_name",
              full_name="google.logging.v2.UpdateSinkRequest.sink_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,
              options=None,
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="sink",
              full_name="google.logging.v2.UpdateSinkRequest.sink",
              index=1,
              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,
              options=None,
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="unique_writer_identity",
              full_name="google.logging.v2.UpdateSinkRequest.unique_writer_identity",
              index=2,
              number=3,
              type=8,
              cpp_type=7,
              label=1,
              has_default_value=False,
              default_value=False,
              message_type=None,
              enum_type=None,
              containing_type=None,
              is_extension=False,
              extension_scope=None,
              options=None,
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="update_mask",
              full_name="google.logging.v2.UpdateSinkRequest.update_mask",
              index=3,
              number=4,
              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,
              options=None,
              file=DESCRIPTOR,
          ),
      ],
      extensions=[],
      nested_types=[],
      enum_types=[],
      options=None,
      is_extendable=False,
      syntax="proto3",
      extension_ranges=[],
      oneofs=[],
      serialized_start=870,
      serialized_end=1031,
  )
  
  
  _DELETESINKREQUEST = _descriptor.Descriptor(
      name="DeleteSinkRequest",
      full_name="google.logging.v2.DeleteSinkRequest",
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
          _descriptor.FieldDescriptor(
              name="sink_name",
              full_name="google.logging.v2.DeleteSinkRequest.sink_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,
              options=None,
              file=DESCRIPTOR,
          )
      ],
      extensions=[],
      nested_types=[],
      enum_types=[],
      options=None,
      is_extendable=False,
      syntax="proto3",
      extension_ranges=[],
      oneofs=[],
      serialized_start=1033,
      serialized_end=1071,
  )
  
  
  _LOGEXCLUSION = _descriptor.Descriptor(
      name="LogExclusion",
      full_name="google.logging.v2.LogExclusion",
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
          _descriptor.FieldDescriptor(
              name="name",
              full_name="google.logging.v2.LogExclusion.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,
              options=None,
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="description",
              full_name="google.logging.v2.LogExclusion.description",
              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,
              options=None,
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="filter",
              full_name="google.logging.v2.LogExclusion.filter",
              index=2,
              number=3,
              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,
              options=None,
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="disabled",
              full_name="google.logging.v2.LogExclusion.disabled",
              index=3,
              number=4,
              type=8,
              cpp_type=7,
              label=1,
              has_default_value=False,
              default_value=False,
              message_type=None,
              enum_type=None,
              containing_type=None,
              is_extension=False,
              extension_scope=None,
              options=None,
              file=DESCRIPTOR,
          ),
      ],
      extensions=[],
      nested_types=[],
      enum_types=[],
      options=None,
      is_extendable=False,
      syntax="proto3",
      extension_ranges=[],
      oneofs=[],
      serialized_start=1073,
      serialized_end=1156,
  )
  
  
  _LISTEXCLUSIONSREQUEST = _descriptor.Descriptor(
      name="ListExclusionsRequest",
      full_name="google.logging.v2.ListExclusionsRequest",
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
          _descriptor.FieldDescriptor(
              name="parent",
              full_name="google.logging.v2.ListExclusionsRequest.parent",
              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,
              options=None,
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="page_token",
              full_name="google.logging.v2.ListExclusionsRequest.page_token",
              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,
              options=None,
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="page_size",
              full_name="google.logging.v2.ListExclusionsRequest.page_size",
              index=2,
              number=3,
              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,
              options=None,
              file=DESCRIPTOR,
          ),
      ],
      extensions=[],
      nested_types=[],
      enum_types=[],
      options=None,
      is_extendable=False,
      syntax="proto3",
      extension_ranges=[],
      oneofs=[],
      serialized_start=1158,
      serialized_end=1236,
  )
  
  
  _LISTEXCLUSIONSRESPONSE = _descriptor.Descriptor(
      name="ListExclusionsResponse",
      full_name="google.logging.v2.ListExclusionsResponse",
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
          _descriptor.FieldDescriptor(
              name="exclusions",
              full_name="google.logging.v2.ListExclusionsResponse.exclusions",
              index=0,
              number=1,
              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,
              options=None,
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="next_page_token",
              full_name="google.logging.v2.ListExclusionsResponse.next_page_token",
              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,
              options=None,
              file=DESCRIPTOR,
          ),
      ],
      extensions=[],
      nested_types=[],
      enum_types=[],
      options=None,
      is_extendable=False,
      syntax="proto3",
      extension_ranges=[],
      oneofs=[],
      serialized_start=1238,
      serialized_end=1340,
  )
  
  
  _GETEXCLUSIONREQUEST = _descriptor.Descriptor(
      name="GetExclusionRequest",
      full_name="google.logging.v2.GetExclusionRequest",
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
          _descriptor.FieldDescriptor(
              name="name",
              full_name="google.logging.v2.GetExclusionRequest.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,
              options=None,
              file=DESCRIPTOR,
          )
      ],
      extensions=[],
      nested_types=[],
      enum_types=[],
      options=None,
      is_extendable=False,
      syntax="proto3",
      extension_ranges=[],
      oneofs=[],
      serialized_start=1342,
      serialized_end=1377,
  )
  
  
  _CREATEEXCLUSIONREQUEST = _descriptor.Descriptor(
      name="CreateExclusionRequest",
      full_name="google.logging.v2.CreateExclusionRequest",
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
          _descriptor.FieldDescriptor(
              name="parent",
              full_name="google.logging.v2.CreateExclusionRequest.parent",
              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,
              options=None,
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="exclusion",
              full_name="google.logging.v2.CreateExclusionRequest.exclusion",
              index=1,
              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,
              options=None,
              file=DESCRIPTOR,
          ),
      ],
      extensions=[],
      nested_types=[],
      enum_types=[],
      options=None,
      is_extendable=False,
      syntax="proto3",
      extension_ranges=[],
      oneofs=[],
      serialized_start=1379,
      serialized_end=1471,
  )
  
  
  _UPDATEEXCLUSIONREQUEST = _descriptor.Descriptor(
      name="UpdateExclusionRequest",
      full_name="google.logging.v2.UpdateExclusionRequest",
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
          _descriptor.FieldDescriptor(
              name="name",
              full_name="google.logging.v2.UpdateExclusionRequest.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,
              options=None,
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="exclusion",
              full_name="google.logging.v2.UpdateExclusionRequest.exclusion",
              index=1,
              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,
              options=None,
              file=DESCRIPTOR,
          ),
          _descriptor.FieldDescriptor(
              name="update_mask",
              full_name="google.logging.v2.UpdateExclusionRequest.update_mask",
              index=2,
              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,
              options=None,
              file=DESCRIPTOR,
          ),
      ],
      extensions=[],
      nested_types=[],
      enum_types=[],
      options=None,
      is_extendable=False,
      syntax="proto3",
      extension_ranges=[],
      oneofs=[],
      serialized_start=1474,
      serialized_end=1613,
  )
  
  
  _DELETEEXCLUSIONREQUEST = _descriptor.Descriptor(
      name="DeleteExclusionRequest",
      full_name="google.logging.v2.DeleteExclusionRequest",
      filename=None,
      file=DESCRIPTOR,
      containing_type=None,
      fields=[
          _descriptor.FieldDescriptor(
              name="name",
              full_name="google.logging.v2.DeleteExclusionRequest.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,
              options=None,
              file=DESCRIPTOR,
          )
      ],
      extensions=[],
      nested_types=[],
      enum_types=[],
      options=None,
      is_extendable=False,
      syntax="proto3",
      extension_ranges=[],
      oneofs=[],
      serialized_start=1615,
      serialized_end=1653,
  )
  
  _LOGSINK.fields_by_name["output_version_format"].enum_type = _LOGSINK_VERSIONFORMAT
  _LOGSINK.fields_by_name[
      "start_time"
  ].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
  _LOGSINK.fields_by_name[
      "end_time"
  ].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
  _LOGSINK_VERSIONFORMAT.containing_type = _LOGSINK
  _LISTSINKSRESPONSE.fields_by_name["sinks"].message_type = _LOGSINK
  _CREATESINKREQUEST.fields_by_name["sink"].message_type = _LOGSINK
  _UPDATESINKREQUEST.fields_by_name["sink"].message_type = _LOGSINK
  _UPDATESINKREQUEST.fields_by_name[
      "update_mask"
  ].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK
  _LISTEXCLUSIONSRESPONSE.fields_by_name["exclusions"].message_type = _LOGEXCLUSION
  _CREATEEXCLUSIONREQUEST.fields_by_name["exclusion"].message_type = _LOGEXCLUSION
  _UPDATEEXCLUSIONREQUEST.fields_by_name["exclusion"].message_type = _LOGEXCLUSION
  _UPDATEEXCLUSIONREQUEST.fields_by_name[
      "update_mask"
  ].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK
  DESCRIPTOR.message_types_by_name["LogSink"] = _LOGSINK
  DESCRIPTOR.message_types_by_name["ListSinksRequest"] = _LISTSINKSREQUEST
  DESCRIPTOR.message_types_by_name["ListSinksResponse"] = _LISTSINKSRESPONSE
  DESCRIPTOR.message_types_by_name["GetSinkRequest"] = _GETSINKREQUEST
  DESCRIPTOR.message_types_by_name["CreateSinkRequest"] = _CREATESINKREQUEST
  DESCRIPTOR.message_types_by_name["UpdateSinkRequest"] = _UPDATESINKREQUEST
  DESCRIPTOR.message_types_by_name["DeleteSinkRequest"] = _DELETESINKREQUEST
  DESCRIPTOR.message_types_by_name["LogExclusion"] = _LOGEXCLUSION
  DESCRIPTOR.message_types_by_name["ListExclusionsRequest"] = _LISTEXCLUSIONSREQUEST
  DESCRIPTOR.message_types_by_name["ListExclusionsResponse"] = _LISTEXCLUSIONSRESPONSE
  DESCRIPTOR.message_types_by_name["GetExclusionRequest"] = _GETEXCLUSIONREQUEST
  DESCRIPTOR.message_types_by_name["CreateExclusionRequest"] = _CREATEEXCLUSIONREQUEST
  DESCRIPTOR.message_types_by_name["UpdateExclusionRequest"] = _UPDATEEXCLUSIONREQUEST
  DESCRIPTOR.message_types_by_name["DeleteExclusionRequest"] = _DELETEEXCLUSIONREQUEST
  _sym_db.RegisterFileDescriptor(DESCRIPTOR)
  
  LogSink = _reflection.GeneratedProtocolMessageType(
      "LogSink",
      (_message.Message,),
      dict(
          DESCRIPTOR=_LOGSINK,
          __module__="google.cloud.logging_v2.proto.logging_config_pb2",
          __doc__="""Describes a sink used to export log entries to one of the following
    destinations in any project: a Cloud Storage bucket, a BigQuery dataset,
    or a Cloud Pub/Sub topic. A logs filter controls which log entries are
    exported. The sink must be created within a project, organization,
    billing account, or folder.
    
    
    Attributes:
        name:
            Required. The client-assigned sink identifier, unique within
            the project. Example: ``"my-syslog-errors-to-pubsub"``. Sink
            identifiers are limited to 100 characters and can include only
            the following characters: upper and lower-case alphanumeric
            characters, underscores, hyphens, and periods.
        destination:
            Required. The export destination:  ::
            "storage.googleapis.com/[GCS_BUCKET]"     "bigquery.googleapis
            .com/projects/[PROJECT_ID]/datasets/[DATASET]"     "pubsub.goo
            gleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]"  The
            sink's ``writer_identity``, set when the sink is created, must
            have permission to write to the destination or else the log
            entries are not exported. For more information, see `Exporting
            Logs With Sinks </logging/docs/api/tasks/exporting-logs>`__.
        filter:
            Optional. An `advanced logs filter
            </logging/docs/view/advanced_filters>`__. The only exported
            log entries are those that are in the resource owning the sink
            and that match the filter. For example:  ::
            logName="projects/[PROJECT_ID]/logs/[LOG_ID]" AND
            severity>=ERROR
        output_version_format:
            Deprecated. The log entry format to use for this sink's
            exported log entries. The v2 format is used by default and
            cannot be changed.
        writer_identity:
            Output only. An IAM identity—a service account or group—under
            which Logging writes the exported log entries to the sink's
            destination. This field is set by `sinks.create
            </logging/docs/api/reference/rest/v2/projects.sinks/create>`__
            and `sinks.update </logging/docs/api/reference/rest/v2/project
            s.sinks/update>`__, based on the setting of
            ``unique_writer_identity`` in those methods.  Until you grant
            this identity write-access to the destination, log entry
            exports from this sink will fail. For more information, see
            `Granting access for a resource </iam/docs/granting-roles-to-
            service-accounts#granting_access_to_a_service_account_for_a_re
            source>`__. Consult the destination service's documentation to
            determine the appropriate IAM roles to assign to the identity.
        include_children:
            Optional. This field applies only to sinks owned by
            organizations and folders. If the field is false, the default,
            only the logs owned by the sink's parent resource are
            available for export. If the field is true, then logs from all
            the projects, folders, and billing accounts contained in the
            sink's parent resource are also available for export. Whether
            a particular log entry from the children is exported depends
            on the sink's filter expression. For example, if this field is
            true, then the filter ``resource.type=gce_instance`` would
            export all Compute Engine VM instance log entries from all
            projects in the sink's parent. To only export entries from
            certain child projects, filter on the project part of the log
            name:  ::      logName:("projects/test-project1/" OR
            "projects/test-project2/") AND     resource.type=gce_instance
        start_time:
            Deprecated. This field is ignored when creating or updating
            sinks.
        end_time:
            Deprecated. This field is ignored when creating or updating
            sinks.
    """,
          # @@protoc_insertion_point(class_scope:google.logging.v2.LogSink)
      ),
  )
  _sym_db.RegisterMessage(LogSink)
  
  ListSinksRequest = _reflection.GeneratedProtocolMessageType(
      "ListSinksRequest",
      (_message.Message,),
      dict(
          DESCRIPTOR=_LISTSINKSREQUEST,
          __module__="google.cloud.logging_v2.proto.logging_config_pb2",
          __doc__="""The parameters to ``ListSinks``.
    
    
    Attributes:
        parent:
            Required. The parent resource whose sinks are to be listed:
            ::      "projects/[PROJECT_ID]"
            "organizations/[ORGANIZATION_ID]"
            "billingAccounts/[BILLING_ACCOUNT_ID]"
            "folders/[FOLDER_ID]"
        page_token:
            Optional. If present, then retrieve the next batch of results
            from the preceding call to this method. ``pageToken`` must be
            the value of ``nextPageToken`` from the previous response. The
            values of other method parameters should be identical to those
            in the previous call.
        page_size:
            Optional. The maximum number of results to return from this
            request. Non-positive values are ignored. The presence of
            ``nextPageToken`` in the response indicates that more results
            might be available.
    """,
          # @@protoc_insertion_point(class_scope:google.logging.v2.ListSinksRequest)
      ),
  )
  _sym_db.RegisterMessage(ListSinksRequest)
  
  ListSinksResponse = _reflection.GeneratedProtocolMessageType(
      "ListSinksResponse",
      (_message.Message,),
      dict(
          DESCRIPTOR=_LISTSINKSRESPONSE,
          __module__="google.cloud.logging_v2.proto.logging_config_pb2",
          __doc__="""Result returned from ``ListSinks``.
    
    
    Attributes:
        sinks:
            A list of sinks.
        next_page_token:
            If there might be more results than appear in this response,
            then ``nextPageToken`` is included. To get the next set of
            results, call the same method again using the value of
            ``nextPageToken`` as ``pageToken``.
    """,
          # @@protoc_insertion_point(class_scope:google.logging.v2.ListSinksResponse)
      ),
  )
  _sym_db.RegisterMessage(ListSinksResponse)
  
  GetSinkRequest = _reflection.GeneratedProtocolMessageType(
      "GetSinkRequest",
      (_message.Message,),
      dict(
          DESCRIPTOR=_GETSINKREQUEST,
          __module__="google.cloud.logging_v2.proto.logging_config_pb2",
          __doc__="""The parameters to ``GetSink``.
    
    
    Attributes:
        sink_name:
            Required. The resource name of the sink:  ::
            "projects/[PROJECT_ID]/sinks/[SINK_ID]"
            "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
            "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
            "folders/[FOLDER_ID]/sinks/[SINK_ID]"  Example:
            ``"projects/my-project-id/sinks/my-sink-id"``.
    """,
          # @@protoc_insertion_point(class_scope:google.logging.v2.GetSinkRequest)
      ),
  )
  _sym_db.RegisterMessage(GetSinkRequest)
  
  CreateSinkRequest = _reflection.GeneratedProtocolMessageType(
      "CreateSinkRequest",
      (_message.Message,),
      dict(
          DESCRIPTOR=_CREATESINKREQUEST,
          __module__="google.cloud.logging_v2.proto.logging_config_pb2",
          __doc__="""The parameters to ``CreateSink``.
    
    
    Attributes:
        parent:
            Required. The resource in which to create the sink:  ::
            "projects/[PROJECT_ID]"     "organizations/[ORGANIZATION_ID]"
            "billingAccounts/[BILLING_ACCOUNT_ID]"
            "folders/[FOLDER_ID]"  Examples: ``"projects/my-logging-
            project"``, ``"organizations/123456789"``.
        sink:
            Required. The new sink, whose ``name`` parameter is a sink
            identifier that is not already in use.
        unique_writer_identity:
            Optional. Determines the kind of IAM identity returned as
            ``writer_identity`` in the new sink. If this value is omitted
            or set to false, and if the sink's parent is a project, then
            the value returned as ``writer_identity`` is the same group or
            service account used by Logging before the addition of writer
            identities to this API. The sink's destination must be in the
            same project as the sink itself.  If this field is set to
            true, or if the sink is owned by a non-project resource such
            as an organization, then the value of ``writer_identity`` will
            be a unique service account used only for exports from the new
            sink. For more information, see ``writer_identity`` in
            [LogSink][google.logging.v2.LogSink].
    """,
          # @@protoc_insertion_point(class_scope:google.logging.v2.CreateSinkRequest)
      ),
  )
  _sym_db.RegisterMessage(CreateSinkRequest)
  
  UpdateSinkRequest = _reflection.GeneratedProtocolMessageType(
      "UpdateSinkRequest",
      (_message.Message,),
      dict(
          DESCRIPTOR=_UPDATESINKREQUEST,
          __module__="google.cloud.logging_v2.proto.logging_config_pb2",
          __doc__="""The parameters to ``UpdateSink``.
    
    
    Attributes:
        sink_name:
            Required. The full resource name of the sink to update,
            including the parent resource and the sink identifier:  ::
            "projects/[PROJECT_ID]/sinks/[SINK_ID]"
            "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
            "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
            "folders/[FOLDER_ID]/sinks/[SINK_ID]"  Example:
            ``"projects/my-project-id/sinks/my-sink-id"``.
        sink:
            Required. The updated sink, whose name is the same identifier
            that appears as part of ``sink_name``.
        unique_writer_identity:
            Optional. See `sinks.create
            </logging/docs/api/reference/rest/v2/projects.sinks/create>`__
            for a description of this field. When updating a sink, the
            effect of this field on the value of ``writer_identity`` in
            the updated sink depends on both the old and new values of
            this field:  -  If the old and new values of this field are
            both false or both true,    then there is no change to the
            sink's ``writer_identity``. -  If the old value is false and
            the new value is true, then    ``writer_identity`` is changed
            to a unique service account. -  It is an error if the old
            value is true and the new value is set to    false or
            defaulted to false.
        update_mask:
            Optional. Field mask that specifies the fields in ``sink``
            that need an update. A sink field will be overwritten if, and
            only if, it is in the update mask. ``name`` and output only
            fields cannot be updated.  An empty updateMask is temporarily
            treated as using the following mask for backwards
            compatibility purposes: destination,filter,includeChildren At
            some point in the future, behavior will be removed and
            specifying an empty updateMask will be an error.  For a
            detailed ``FieldMask`` definition, see
            https://developers.google.com/protocol-buffers/docs/reference/
            google.protobuf#google.protobuf.FieldMask  Example:
            ``updateMask=filter``.
    """,
          # @@protoc_insertion_point(class_scope:google.logging.v2.UpdateSinkRequest)
      ),
  )
  _sym_db.RegisterMessage(UpdateSinkRequest)
  
  DeleteSinkRequest = _reflection.GeneratedProtocolMessageType(
      "DeleteSinkRequest",
      (_message.Message,),
      dict(
          DESCRIPTOR=_DELETESINKREQUEST,
          __module__="google.cloud.logging_v2.proto.logging_config_pb2",
          __doc__="""The parameters to ``DeleteSink``.
    
    
    Attributes:
        sink_name:
            Required. The full resource name of the sink to delete,
            including the parent resource and the sink identifier:  ::
            "projects/[PROJECT_ID]/sinks/[SINK_ID]"
            "organizations/[ORGANIZATION_ID]/sinks/[SINK_ID]"
            "billingAccounts/[BILLING_ACCOUNT_ID]/sinks/[SINK_ID]"
            "folders/[FOLDER_ID]/sinks/[SINK_ID]"  Example:
            ``"projects/my-project-id/sinks/my-sink-id"``.
    """,
          # @@protoc_insertion_point(class_scope:google.logging.v2.DeleteSinkRequest)
      ),
  )
  _sym_db.RegisterMessage(DeleteSinkRequest)
  
  LogExclusion = _reflection.GeneratedProtocolMessageType(
      "LogExclusion",
      (_message.Message,),
      dict(
          DESCRIPTOR=_LOGEXCLUSION,
          __module__="google.cloud.logging_v2.proto.logging_config_pb2",
          __doc__="""Specifies a set of log entries that are not to be stored in Logging. If
    your project receives a large volume of logs, you might be able to use
    exclusions to reduce your chargeable logs. Exclusions are processed
    after log sinks, so you can export log entries before they are excluded.
    Audit log entries and log entries from Amazon Web Services are never
    excluded.
    
    
    Attributes:
        name:
            Required. A client-assigned identifier, such as ``"load-
            balancer-exclusion"``. Identifiers are limited to 100
            characters and can include only letters, digits, underscores,
            hyphens, and periods.
        description:
            Optional. A description of this exclusion.
        filter:
            Required. An `advanced logs filter
            </logging/docs/view/advanced_filters>`__ that matches the log
            entries to be excluded. By using the `sample function
            </logging/docs/view/advanced_filters#sample>`__, you can
            exclude less than 100% of the matching log entries. For
            example, the following filter matches 99% of low-severity log
            entries from load balancers:
            ``"resource.type=http_load_balancer severity<ERROR
            sample(insertId, 0.99)"``
        disabled:
            Optional. If set to True, then this exclusion is disabled and
            it does not exclude any log entries. You can use
            `exclusions.patch </logging/docs/reference/v2/rest/v2/projects
            .exclusions/patch>`__ to change the value of this field.
    """,
          # @@protoc_insertion_point(class_scope:google.logging.v2.LogExclusion)
      ),
  )
  _sym_db.RegisterMessage(LogExclusion)
  
  ListExclusionsRequest = _reflection.GeneratedProtocolMessageType(
      "ListExclusionsRequest",
      (_message.Message,),
      dict(
          DESCRIPTOR=_LISTEXCLUSIONSREQUEST,
          __module__="google.cloud.logging_v2.proto.logging_config_pb2",
          __doc__="""The parameters to ``ListExclusions``.
    
    
    Attributes:
        parent:
            Required. The parent resource whose exclusions are to be
            listed.  ::      "projects/[PROJECT_ID]"
            "organizations/[ORGANIZATION_ID]"
            "billingAccounts/[BILLING_ACCOUNT_ID]"
            "folders/[FOLDER_ID]"
        page_token:
            Optional. If present, then retrieve the next batch of results
            from the preceding call to this method. ``pageToken`` must be
            the value of ``nextPageToken`` from the previous response. The
            values of other method parameters should be identical to those
            in the previous call.
        page_size:
            Optional. The maximum number of results to return from this
            request. Non-positive values are ignored. The presence of
            ``nextPageToken`` in the response indicates that more results
            might be available.
    """,
          # @@protoc_insertion_point(class_scope:google.logging.v2.ListExclusionsRequest)
      ),
  )
  _sym_db.RegisterMessage(ListExclusionsRequest)
  
  ListExclusionsResponse = _reflection.GeneratedProtocolMessageType(
      "ListExclusionsResponse",
      (_message.Message,),
      dict(
          DESCRIPTOR=_LISTEXCLUSIONSRESPONSE,
          __module__="google.cloud.logging_v2.proto.logging_config_pb2",
          __doc__="""Result returned from ``ListExclusions``.
    
    
    Attributes:
        exclusions:
            A list of exclusions.
        next_page_token:
            If there might be more results than appear in this response,
            then ``nextPageToken`` is included. To get the next set of
            results, call the same method again using the value of
            ``nextPageToken`` as ``pageToken``.
    """,
          # @@protoc_insertion_point(class_scope:google.logging.v2.ListExclusionsResponse)
      ),
  )
  _sym_db.RegisterMessage(ListExclusionsResponse)
  
  GetExclusionRequest = _reflection.GeneratedProtocolMessageType(
      "GetExclusionRequest",
      (_message.Message,),
      dict(
          DESCRIPTOR=_GETEXCLUSIONREQUEST,
          __module__="google.cloud.logging_v2.proto.logging_config_pb2",
          __doc__="""The parameters to ``GetExclusion``.
    
    
    Attributes:
        name:
            Required. The resource name of an existing exclusion:  ::
            "projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]"
            "organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]"
            "billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID
            ]"     "folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]"
            Example: ``"projects/my-project-id/exclusions/my-exclusion-
            id"``.
    """,
          # @@protoc_insertion_point(class_scope:google.logging.v2.GetExclusionRequest)
      ),
  )
  _sym_db.RegisterMessage(GetExclusionRequest)
  
  CreateExclusionRequest = _reflection.GeneratedProtocolMessageType(
      "CreateExclusionRequest",
      (_message.Message,),
      dict(
          DESCRIPTOR=_CREATEEXCLUSIONREQUEST,
          __module__="google.cloud.logging_v2.proto.logging_config_pb2",
          __doc__="""The parameters to ``CreateExclusion``.
    
    
    Attributes:
        parent:
            Required. The parent resource in which to create the
            exclusion:  ::      "projects/[PROJECT_ID]"
            "organizations/[ORGANIZATION_ID]"
            "billingAccounts/[BILLING_ACCOUNT_ID]"
            "folders/[FOLDER_ID]"  Examples: ``"projects/my-logging-
            project"``, ``"organizations/123456789"``.
        exclusion:
            Required. The new exclusion, whose ``name`` parameter is an
            exclusion name that is not already used in the parent
            resource.
    """,
          # @@protoc_insertion_point(class_scope:google.logging.v2.CreateExclusionRequest)
      ),
  )
  _sym_db.RegisterMessage(CreateExclusionRequest)
  
  UpdateExclusionRequest = _reflection.GeneratedProtocolMessageType(
      "UpdateExclusionRequest",
      (_message.Message,),
      dict(
          DESCRIPTOR=_UPDATEEXCLUSIONREQUEST,
          __module__="google.cloud.logging_v2.proto.logging_config_pb2",
          __doc__="""The parameters to ``UpdateExclusion``.
    
    
    Attributes:
        name:
            Required. The resource name of the exclusion to update:  ::
            "projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]"
            "organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]"
            "billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID
            ]"     "folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]"
            Example: ``"projects/my-project-id/exclusions/my-exclusion-
            id"``.
        exclusion:
            Required. New values for the existing exclusion. Only the
            fields specified in ``update_mask`` are relevant.
        update_mask:
            Required. A nonempty list of fields to change in the existing
            exclusion. New values for the fields are taken from the
            corresponding fields in the
            [LogExclusion][google.logging.v2.LogExclusion] included in
            this request. Fields not mentioned in ``update_mask`` are not
            changed and are ignored in the request.  For example, to
            change the filter and description of an exclusion, specify an
            ``update_mask`` of ``"filter,description"``.
    """,
          # @@protoc_insertion_point(class_scope:google.logging.v2.UpdateExclusionRequest)
      ),
  )
  _sym_db.RegisterMessage(UpdateExclusionRequest)
  
  DeleteExclusionRequest = _reflection.GeneratedProtocolMessageType(
      "DeleteExclusionRequest",
      (_message.Message,),
      dict(
          DESCRIPTOR=_DELETEEXCLUSIONREQUEST,
          __module__="google.cloud.logging_v2.proto.logging_config_pb2",
          __doc__="""The parameters to ``DeleteExclusion``.
    
    
    Attributes:
        name:
            Required. The resource name of an existing exclusion to
            delete:  ::
            "projects/[PROJECT_ID]/exclusions/[EXCLUSION_ID]"
            "organizations/[ORGANIZATION_ID]/exclusions/[EXCLUSION_ID]"
            "billingAccounts/[BILLING_ACCOUNT_ID]/exclusions/[EXCLUSION_ID
            ]"     "folders/[FOLDER_ID]/exclusions/[EXCLUSION_ID]"
            Example: ``"projects/my-project-id/exclusions/my-exclusion-
            id"``.
    """,
          # @@protoc_insertion_point(class_scope:google.logging.v2.DeleteExclusionRequest)
      ),
  )
  _sym_db.RegisterMessage(DeleteExclusionRequest)
  
  
  DESCRIPTOR.has_options = True
  DESCRIPTOR._options = _descriptor._ParseOptions(
      descriptor_pb2.FileOptions(),
      _b(
          "\n\025com.google.logging.v2B\022LoggingConfigProtoP\001Z8google.golang.org/genproto/googleapis/logging/v2;logging\370\001\001\252\002\027Google.Cloud.Logging.V2\312\002\027Google\\Cloud\\Logging\\V2"
      ),
  )
  _LOGSINK.fields_by_name["output_version_format"].has_options = True
  _LOGSINK.fields_by_name["output_version_format"]._options = _descriptor._ParseOptions(
      descriptor_pb2.FieldOptions(), _b("\030\001")
  )
  _LOGSINK.fields_by_name["start_time"].has_options = True
  _LOGSINK.fields_by_name["start_time"]._options = _descriptor._ParseOptions(
      descriptor_pb2.FieldOptions(), _b("\030\001")
  )
  _LOGSINK.fields_by_name["end_time"].has_options = True
  _LOGSINK.fields_by_name["end_time"]._options = _descriptor._ParseOptions(
      descriptor_pb2.FieldOptions(), _b("\030\001")
  )
  
  _CONFIGSERVICEV2 = _descriptor.ServiceDescriptor(
      name="ConfigServiceV2",
      full_name="google.logging.v2.ConfigServiceV2",
      file=DESCRIPTOR,
      index=0,
      options=None,
      serialized_start=1656,
      serialized_end=4876,
      methods=[
          _descriptor.MethodDescriptor(
              name="ListSinks",
              full_name="google.logging.v2.ConfigServiceV2.ListSinks",
              index=0,
              containing_service=None,
              input_type=_LISTSINKSREQUEST,
              output_type=_LISTSINKSRESPONSE,
              options=_descriptor._ParseOptions(
                  descriptor_pb2.MethodOptions(),
                  _b(
                      '\202\323\344\223\002\247\001\022\026/v2/{parent=*/*}/sinksZ\037\022\035/v2/{parent=projects/*}/sinksZ$\022"/v2/{parent=organizations/*}/sinksZ\036\022\034/v2/{parent=folders/*}/sinksZ&\022$/v2/{parent=billingAccounts/*}/sinks'
                  ),
              ),
          ),
          _descriptor.MethodDescriptor(
              name="GetSink",
              full_name="google.logging.v2.ConfigServiceV2.GetSink",
              index=1,
              containing_service=None,
              input_type=_GETSINKREQUEST,
              output_type=_LOGSINK,
              options=_descriptor._ParseOptions(
                  descriptor_pb2.MethodOptions(),
                  _b(
                      "\202\323\344\223\002\300\001\022\033/v2/{sink_name=*/*/sinks/*}Z$\022\"/v2/{sink_name=projects/*/sinks/*}Z)\022'/v2/{sink_name=organizations/*/sinks/*}Z#\022!/v2/{sink_name=folders/*/sinks/*}Z+\022)/v2/{sink_name=billingAccounts/*/sinks/*}"
                  ),
              ),
          ),
          _descriptor.MethodDescriptor(
              name="CreateSink",
              full_name="google.logging.v2.ConfigServiceV2.CreateSink",
              index=2,
              containing_service=None,
              input_type=_CREATESINKREQUEST,
              output_type=_LOGSINK,
              options=_descriptor._ParseOptions(
                  descriptor_pb2.MethodOptions(),
                  _b(
                      '\202\323\344\223\002\305\001"\026/v2/{parent=*/*}/sinks:\004sinkZ%"\035/v2/{parent=projects/*}/sinks:\004sinkZ*""/v2/{parent=organizations/*}/sinks:\004sinkZ$"\034/v2/{parent=folders/*}/sinks:\004sinkZ,"$/v2/{parent=billingAccounts/*}/sinks:\004sink'
                  ),
              ),
          ),
          _descriptor.MethodDescriptor(
              name="UpdateSink",
              full_name="google.logging.v2.ConfigServiceV2.UpdateSink",
              index=3,
              containing_service=None,
              input_type=_UPDATESINKREQUEST,
              output_type=_LOGSINK,
              options=_descriptor._ParseOptions(
                  descriptor_pb2.MethodOptions(),
                  _b(
                      "\202\323\344\223\002\231\003\032\033/v2/{sink_name=*/*/sinks/*}:\004sinkZ*\032\"/v2/{sink_name=projects/*/sinks/*}:\004sinkZ/\032'/v2/{sink_name=organizations/*/sinks/*}:\004sinkZ)\032!/v2/{sink_name=folders/*/sinks/*}:\004sinkZ1\032)/v2/{sink_name=billingAccounts/*/sinks/*}:\004sinkZ*2\"/v2/{sink_name=projects/*/sinks/*}:\004sinkZ/2'/v2/{sink_name=organizations/*/sinks/*}:\004sinkZ)2!/v2/{sink_name=folders/*/sinks/*}:\004sinkZ12)/v2/{sink_name=billingAccounts/*/sinks/*}:\004sink"
                  ),
              ),
          ),
          _descriptor.MethodDescriptor(
              name="DeleteSink",
              full_name="google.logging.v2.ConfigServiceV2.DeleteSink",
              index=4,
              containing_service=None,
              input_type=_DELETESINKREQUEST,
              output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
              options=_descriptor._ParseOptions(
                  descriptor_pb2.MethodOptions(),
                  _b(
                      "\202\323\344\223\002\300\001*\033/v2/{sink_name=*/*/sinks/*}Z$*\"/v2/{sink_name=projects/*/sinks/*}Z)*'/v2/{sink_name=organizations/*/sinks/*}Z#*!/v2/{sink_name=folders/*/sinks/*}Z+*)/v2/{sink_name=billingAccounts/*/sinks/*}"
                  ),
              ),
          ),
          _descriptor.MethodDescriptor(
              name="ListExclusions",
              full_name="google.logging.v2.ConfigServiceV2.ListExclusions",
              index=5,
              containing_service=None,
              input_type=_LISTEXCLUSIONSREQUEST,
              output_type=_LISTEXCLUSIONSRESPONSE,
              options=_descriptor._ParseOptions(
                  descriptor_pb2.MethodOptions(),
                  _b(
                      "\202\323\344\223\002\300\001\022\033/v2/{parent=*/*}/exclusionsZ$\022\"/v2/{parent=projects/*}/exclusionsZ)\022'/v2/{parent=organizations/*}/exclusionsZ#\022!/v2/{parent=folders/*}/exclusionsZ+\022)/v2/{parent=billingAccounts/*}/exclusions"
                  ),
              ),
          ),
          _descriptor.MethodDescriptor(
              name="GetExclusion",
              full_name="google.logging.v2.ConfigServiceV2.GetExclusion",
              index=6,
              containing_service=None,
              input_type=_GETEXCLUSIONREQUEST,
              output_type=_LOGEXCLUSION,
              options=_descriptor._ParseOptions(
                  descriptor_pb2.MethodOptions(),
                  _b(
                      "\202\323\344\223\002\300\001\022\033/v2/{name=*/*/exclusions/*}Z$\022\"/v2/{name=projects/*/exclusions/*}Z)\022'/v2/{name=organizations/*/exclusions/*}Z#\022!/v2/{name=folders/*/exclusions/*}Z+\022)/v2/{name=billingAccounts/*/exclusions/*}"
                  ),
              ),
          ),
          _descriptor.MethodDescriptor(
              name="CreateExclusion",
              full_name="google.logging.v2.ConfigServiceV2.CreateExclusion",
              index=7,
              containing_service=None,
              input_type=_CREATEEXCLUSIONREQUEST,
              output_type=_LOGEXCLUSION,
              options=_descriptor._ParseOptions(
                  descriptor_pb2.MethodOptions(),
                  _b(
                      '\202\323\344\223\002\367\001"\033/v2/{parent=*/*}/exclusions:\texclusionZ/""/v2/{parent=projects/*}/exclusions:\texclusionZ4"\'/v2/{parent=organizations/*}/exclusions:\texclusionZ."!/v2/{parent=folders/*}/exclusions:\texclusionZ6")/v2/{parent=billingAccounts/*}/exclusions:\texclusion'
                  ),
              ),
          ),
          _descriptor.MethodDescriptor(
              name="UpdateExclusion",
              full_name="google.logging.v2.ConfigServiceV2.UpdateExclusion",
              index=8,
              containing_service=None,
              input_type=_UPDATEEXCLUSIONREQUEST,
              output_type=_LOGEXCLUSION,
              options=_descriptor._ParseOptions(
                  descriptor_pb2.MethodOptions(),
                  _b(
                      "\202\323\344\223\002\367\0012\033/v2/{name=*/*/exclusions/*}:\texclusionZ/2\"/v2/{name=projects/*/exclusions/*}:\texclusionZ42'/v2/{name=organizations/*/exclusions/*}:\texclusionZ.2!/v2/{name=folders/*/exclusions/*}:\texclusionZ62)/v2/{name=billingAccounts/*/exclusions/*}:\texclusion"
                  ),
              ),
          ),
          _descriptor.MethodDescriptor(
              name="DeleteExclusion",
              full_name="google.logging.v2.ConfigServiceV2.DeleteExclusion",
              index=9,
              containing_service=None,
              input_type=_DELETEEXCLUSIONREQUEST,
              output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
              options=_descriptor._ParseOptions(
                  descriptor_pb2.MethodOptions(),
                  _b(
                      "\202\323\344\223\002\300\001*\033/v2/{name=*/*/exclusions/*}Z$*\"/v2/{name=projects/*/exclusions/*}Z)*'/v2/{name=organizations/*/exclusions/*}Z#*!/v2/{name=folders/*/exclusions/*}Z+*)/v2/{name=billingAccounts/*/exclusions/*}"
                  ),
              ),
          ),
      ],
  )
  _sym_db.RegisterServiceDescriptor(_CONFIGSERVICEV2)
  
  DESCRIPTOR.services_by_name["ConfigServiceV2"] = _CONFIGSERVICEV2
  
  # @@protoc_insertion_point(module_scope)
  