Merge branch 'main' into avm99963-monorail

Merged commit 34d8229ae2b51fb1a15bd208e6fe6185c94f6266

GitOrigin-RevId: 7ee0917f93a577e475f8e09526dd144d245593f4
diff --git a/api/v3/api_proto/issues_pb2.py b/api/v3/api_proto/issues_pb2.py
index f868538..b1eb051 100644
--- a/api/v3/api_proto/issues_pb2.py
+++ b/api/v3/api_proto/issues_pb2.py
@@ -2,10 +2,9 @@
 # Generated by the protocol buffer compiler.  DO NOT EDIT!
 # source: api/v3/api_proto/issues.proto
 """Generated protocol buffer code."""
-from google.protobuf.internal import enum_type_wrapper
+from google.protobuf.internal import builder as _builder
 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 descriptor_pool as _descriptor_pool
 from google.protobuf import symbol_database as _symbol_database
 # @@protoc_insertion_point(imports)
 
@@ -18,1252 +17,90 @@
 from api.v3.api_proto import issue_objects_pb2 as api_dot_v3_dot_api__proto_dot_issue__objects__pb2
 
 
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='api/v3/api_proto/issues.proto',
-  package='monorail.v3',
-  syntax='proto3',
-  serialized_options=b'Z!infra/monorailv2/api/v3/api_proto',
-  create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\x1d\x61pi/v3/api_proto/issues.proto\x12\x0bmonorail.v3\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a$api/v3/api_proto/issue_objects.proto\"<\n\x0fGetIssueRequest\x12)\n\x04name\x18\x01 \x01(\tB\x1b\xfa\x41\x15\n\x13\x61pi.crbug.com/Issue\xe0\x41\x02\"l\n\x15\x42\x61tchGetIssuesRequest\x12*\n\x06parent\x18\x01 \x01(\tB\x1a\xfa\x41\x17\n\x15\x61pi.crbug.com/Project\x12\'\n\x05names\x18\x02 \x03(\tB\x18\xfa\x41\x15\n\x13\x61pi.crbug.com/Issue\"<\n\x16\x42\x61tchGetIssuesResponse\x12\"\n\x06issues\x18\x01 \x03(\x0b\x32\x12.monorail.v3.Issue\"\x8e\x01\n\x13SearchIssuesRequest\x12/\n\x08projects\x18\x01 \x03(\tB\x1d\xfa\x41\x17\n\x15\x61pi.crbug.com/Project\xe0\x41\x02\x12\r\n\x05query\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x12\n\npage_token\x18\x04 \x01(\t\x12\x10\n\x08order_by\x18\x05 \x01(\t\"S\n\x14SearchIssuesResponse\x12\"\n\x06issues\x18\x01 \x03(\x0b\x32\x12.monorail.v3.Issue\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"y\n\x13ListCommentsRequest\x12+\n\x06parent\x18\x01 \x01(\tB\x1b\xfa\x41\x15\n\x13\x61pi.crbug.com/Issue\xe0\x41\x02\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\"W\n\x14ListCommentsResponse\x12&\n\x08\x63omments\x18\x01 \x03(\x0b\x32\x14.monorail.v3.Comment\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"?\n\x10\x41ttachmentUpload\x12\x15\n\x08\x66ilename\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x07\x63ontent\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\"\x8e\x03\n\nIssueDelta\x12&\n\x05issue\x18\x01 \x01(\x0b\x32\x12.monorail.v3.IssueB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12+\n\nccs_remove\x18\x03 \x03(\tB\x17\xfa\x41\x14\n\x12\x61pi.crbug.com/User\x12\x37\n\x18\x62locked_on_issues_remove\x18\x04 \x03(\x0b\x32\x15.monorail.v3.IssueRef\x12\x35\n\x16\x62locking_issues_remove\x18\x05 \x03(\x0b\x32\x15.monorail.v3.IssueRef\x12:\n\x11\x63omponents_remove\x18\x06 \x03(\tB\x1f\xfa\x41\x1c\n\x1a\x61pi.crbug.com/ComponentDef\x12\x15\n\rlabels_remove\x18\x07 \x03(\t\x12\x32\n\x11\x66ield_vals_remove\x18\x08 \x03(\x0b\x32\x17.monorail.v3.FieldValue\"\xe0\x01\n\rApprovalDelta\x12\x32\n\x0e\x61pproval_value\x18\x01 \x01(\x0b\x32\x1a.monorail.v3.ApprovalValue\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x31\n\x10\x61pprovers_remove\x18\x03 \x03(\tB\x17\xfa\x41\x14\n\x12\x61pi.crbug.com/User\x12\x32\n\x11\x66ield_vals_remove\x18\x05 \x03(\x0b\x32\x17.monorail.v3.FieldValue\"\xb5\x01\n\x13ModifyIssuesRequest\x12\'\n\x06\x64\x65ltas\x18\x01 \x03(\x0b\x32\x17.monorail.v3.IssueDelta\x12,\n\x0bnotify_type\x18\x02 \x01(\x0e\x32\x17.monorail.v3.NotifyType\x12\x17\n\x0f\x63omment_content\x18\x03 \x01(\t\x12.\n\x07uploads\x18\x04 \x03(\x0b\x32\x1d.monorail.v3.AttachmentUpload\":\n\x14ModifyIssuesResponse\x12\"\n\x06issues\x18\x01 \x03(\x0b\x32\x12.monorail.v3.Issue\"\x95\x01\n ModifyIssueApprovalValuesRequest\x12*\n\x06\x64\x65ltas\x18\x01 \x03(\x0b\x32\x1a.monorail.v3.ApprovalDelta\x12,\n\x0bnotify_type\x18\x02 \x01(\x0e\x32\x17.monorail.v3.NotifyType\x12\x17\n\x0f\x63omment_content\x18\x03 \x01(\t\"X\n!ModifyIssueApprovalValuesResponse\x12\x33\n\x0f\x61pproval_values\x18\x01 \x03(\x0b\x32\x1a.monorail.v3.ApprovalValue\"H\n\x19ListApprovalValuesRequest\x12+\n\x06parent\x18\x01 \x01(\tB\x1b\xfa\x41\x15\n\x13\x61pi.crbug.com/Issue\xe0\x41\x02\"Q\n\x1aListApprovalValuesResponse\x12\x33\n\x0f\x61pproval_values\x18\x01 \x03(\x0b\x32\x1a.monorail.v3.ApprovalValue\"w\n\x19ModifyCommentStateRequest\x12+\n\x04name\x18\x01 \x01(\tB\x1d\xfa\x41\x17\n\x15\x61pi.crbug.com/Comment\xe0\x41\x02\x12-\n\x05state\x18\x02 \x01(\x0e\x32\x1e.monorail.v3.IssueContentState\"C\n\x1aModifyCommentStateResponse\x12%\n\x07\x63omment\x18\x01 \x01(\x0b\x32\x14.monorail.v3.Comment\"\xd7\x01\n\x1cMakeIssueFromTemplateRequest\x12-\n\x08template\x18\x01 \x01(\tB\x1b\xfa\x41\x18\n\x16\x61pi.crbug.com/Template\x12\x35\n\x14template_issue_delta\x18\x02 \x01(\x0b\x32\x17.monorail.v3.IssueDelta\x12<\n\x18template_approval_deltas\x18\x03 \x03(\x0b\x32\x1a.monorail.v3.ApprovalDelta\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\"\xd7\x01\n\x10MakeIssueRequest\x12-\n\x06parent\x18\x01 \x01(\tB\x1d\xfa\x41\x17\n\x15\x61pi.crbug.com/Project\xe0\x41\x02\x12!\n\x05issue\x18\x02 \x01(\x0b\x32\x12.monorail.v3.Issue\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12,\n\x0bnotify_type\x18\x04 \x01(\x0e\x32\x17.monorail.v3.NotifyType\x12.\n\x07uploads\x18\x05 \x03(\x0b\x32\x1d.monorail.v3.AttachmentUpload*I\n\nNotifyType\x12\x1b\n\x17NOTIFY_TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05\x45MAIL\x10\x01\x12\x13\n\x0fNO_NOTIFICATION\x10\x02\x32\x96\x07\n\x06Issues\x12>\n\x08GetIssue\x12\x1c.monorail.v3.GetIssueRequest\x1a\x12.monorail.v3.Issue\"\x00\x12[\n\x0e\x42\x61tchGetIssues\x12\".monorail.v3.BatchGetIssuesRequest\x1a#.monorail.v3.BatchGetIssuesResponse\"\x00\x12U\n\x0cSearchIssues\x12 .monorail.v3.SearchIssuesRequest\x1a!.monorail.v3.SearchIssuesResponse\"\x00\x12U\n\x0cListComments\x12 .monorail.v3.ListCommentsRequest\x1a!.monorail.v3.ListCommentsResponse\"\x00\x12U\n\x0cModifyIssues\x12 .monorail.v3.ModifyIssuesRequest\x1a!.monorail.v3.ModifyIssuesResponse\"\x00\x12|\n\x19ModifyIssueApprovalValues\x12-.monorail.v3.ModifyIssueApprovalValuesRequest\x1a..monorail.v3.ModifyIssueApprovalValuesResponse\"\x00\x12g\n\x12ListApprovalValues\x12&.monorail.v3.ListApprovalValuesRequest\x1a\'.monorail.v3.ListApprovalValuesResponse\"\x00\x12g\n\x12ModifyCommentState\x12&.monorail.v3.ModifyCommentStateRequest\x1a\'.monorail.v3.ModifyCommentStateResponse\"\x00\x12X\n\x15MakeIssueFromTemplate\x12).monorail.v3.MakeIssueFromTemplateRequest\x1a\x12.monorail.v3.Issue\"\x00\x12@\n\tMakeIssue\x12\x1d.monorail.v3.MakeIssueRequest\x1a\x12.monorail.v3.Issue\"\x00\x42#Z!infra/monorailv2/api/v3/api_protob\x06proto3'
-  ,
-  dependencies=[google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,api_dot_v3_dot_api__proto_dot_issue__objects__pb2.DESCRIPTOR,])
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1d\x61pi/v3/api_proto/issues.proto\x12\x0bmonorail.v3\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a$api/v3/api_proto/issue_objects.proto\"<\n\x0fGetIssueRequest\x12)\n\x04name\x18\x01 \x01(\tB\x1b\xfa\x41\x15\n\x13\x61pi.crbug.com/Issue\xe0\x41\x02\"l\n\x15\x42\x61tchGetIssuesRequest\x12*\n\x06parent\x18\x01 \x01(\tB\x1a\xfa\x41\x17\n\x15\x61pi.crbug.com/Project\x12\'\n\x05names\x18\x02 \x03(\tB\x18\xfa\x41\x15\n\x13\x61pi.crbug.com/Issue\"<\n\x16\x42\x61tchGetIssuesResponse\x12\"\n\x06issues\x18\x01 \x03(\x0b\x32\x12.monorail.v3.Issue\"\x8e\x01\n\x13SearchIssuesRequest\x12/\n\x08projects\x18\x01 \x03(\tB\x1d\xfa\x41\x17\n\x15\x61pi.crbug.com/Project\xe0\x41\x02\x12\r\n\x05query\x18\x02 \x01(\t\x12\x11\n\tpage_size\x18\x03 \x01(\x05\x12\x12\n\npage_token\x18\x04 \x01(\t\x12\x10\n\x08order_by\x18\x05 \x01(\t\"S\n\x14SearchIssuesResponse\x12\"\n\x06issues\x18\x01 \x03(\x0b\x32\x12.monorail.v3.Issue\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"y\n\x13ListCommentsRequest\x12+\n\x06parent\x18\x01 \x01(\tB\x1b\xfa\x41\x15\n\x13\x61pi.crbug.com/Issue\xe0\x41\x02\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\x12\x0e\n\x06\x66ilter\x18\x04 \x01(\t\"W\n\x14ListCommentsResponse\x12&\n\x08\x63omments\x18\x01 \x03(\x0b\x32\x14.monorail.v3.Comment\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"?\n\x10\x41ttachmentUpload\x12\x15\n\x08\x66ilename\x18\x01 \x01(\tB\x03\xe0\x41\x02\x12\x14\n\x07\x63ontent\x18\x02 \x01(\x0c\x42\x03\xe0\x41\x02\"\x8e\x03\n\nIssueDelta\x12&\n\x05issue\x18\x01 \x01(\x0b\x32\x12.monorail.v3.IssueB\x03\xe0\x41\x02\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12+\n\nccs_remove\x18\x03 \x03(\tB\x17\xfa\x41\x14\n\x12\x61pi.crbug.com/User\x12\x37\n\x18\x62locked_on_issues_remove\x18\x04 \x03(\x0b\x32\x15.monorail.v3.IssueRef\x12\x35\n\x16\x62locking_issues_remove\x18\x05 \x03(\x0b\x32\x15.monorail.v3.IssueRef\x12:\n\x11\x63omponents_remove\x18\x06 \x03(\tB\x1f\xfa\x41\x1c\n\x1a\x61pi.crbug.com/ComponentDef\x12\x15\n\rlabels_remove\x18\x07 \x03(\t\x12\x32\n\x11\x66ield_vals_remove\x18\x08 \x03(\x0b\x32\x17.monorail.v3.FieldValue\"\xe0\x01\n\rApprovalDelta\x12\x32\n\x0e\x61pproval_value\x18\x01 \x01(\x0b\x32\x1a.monorail.v3.ApprovalValue\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\x12\x31\n\x10\x61pprovers_remove\x18\x03 \x03(\tB\x17\xfa\x41\x14\n\x12\x61pi.crbug.com/User\x12\x32\n\x11\x66ield_vals_remove\x18\x05 \x03(\x0b\x32\x17.monorail.v3.FieldValue\"\xb5\x01\n\x13ModifyIssuesRequest\x12\'\n\x06\x64\x65ltas\x18\x01 \x03(\x0b\x32\x17.monorail.v3.IssueDelta\x12,\n\x0bnotify_type\x18\x02 \x01(\x0e\x32\x17.monorail.v3.NotifyType\x12\x17\n\x0f\x63omment_content\x18\x03 \x01(\t\x12.\n\x07uploads\x18\x04 \x03(\x0b\x32\x1d.monorail.v3.AttachmentUpload\":\n\x14ModifyIssuesResponse\x12\"\n\x06issues\x18\x01 \x03(\x0b\x32\x12.monorail.v3.Issue\"\x95\x01\n ModifyIssueApprovalValuesRequest\x12*\n\x06\x64\x65ltas\x18\x01 \x03(\x0b\x32\x1a.monorail.v3.ApprovalDelta\x12,\n\x0bnotify_type\x18\x02 \x01(\x0e\x32\x17.monorail.v3.NotifyType\x12\x17\n\x0f\x63omment_content\x18\x03 \x01(\t\"X\n!ModifyIssueApprovalValuesResponse\x12\x33\n\x0f\x61pproval_values\x18\x01 \x03(\x0b\x32\x1a.monorail.v3.ApprovalValue\"H\n\x19ListApprovalValuesRequest\x12+\n\x06parent\x18\x01 \x01(\tB\x1b\xfa\x41\x15\n\x13\x61pi.crbug.com/Issue\xe0\x41\x02\"Q\n\x1aListApprovalValuesResponse\x12\x33\n\x0f\x61pproval_values\x18\x01 \x03(\x0b\x32\x1a.monorail.v3.ApprovalValue\"w\n\x19ModifyCommentStateRequest\x12+\n\x04name\x18\x01 \x01(\tB\x1d\xfa\x41\x17\n\x15\x61pi.crbug.com/Comment\xe0\x41\x02\x12-\n\x05state\x18\x02 \x01(\x0e\x32\x1e.monorail.v3.IssueContentState\"C\n\x1aModifyCommentStateResponse\x12%\n\x07\x63omment\x18\x01 \x01(\x0b\x32\x14.monorail.v3.Comment\"\xd7\x01\n\x1cMakeIssueFromTemplateRequest\x12-\n\x08template\x18\x01 \x01(\tB\x1b\xfa\x41\x18\n\x16\x61pi.crbug.com/Template\x12\x35\n\x14template_issue_delta\x18\x02 \x01(\x0b\x32\x17.monorail.v3.IssueDelta\x12<\n\x18template_approval_deltas\x18\x03 \x03(\x0b\x32\x1a.monorail.v3.ApprovalDelta\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\"\xd7\x01\n\x10MakeIssueRequest\x12-\n\x06parent\x18\x01 \x01(\tB\x1d\xfa\x41\x17\n\x15\x61pi.crbug.com/Project\xe0\x41\x02\x12!\n\x05issue\x18\x02 \x01(\x0b\x32\x12.monorail.v3.Issue\x12\x13\n\x0b\x64\x65scription\x18\x03 \x01(\t\x12,\n\x0bnotify_type\x18\x04 \x01(\x0e\x32\x17.monorail.v3.NotifyType\x12.\n\x07uploads\x18\x05 \x03(\x0b\x32\x1d.monorail.v3.AttachmentUpload*I\n\nNotifyType\x12\x1b\n\x17NOTIFY_TYPE_UNSPECIFIED\x10\x00\x12\t\n\x05\x45MAIL\x10\x01\x12\x13\n\x0fNO_NOTIFICATION\x10\x02\x32\x96\x07\n\x06Issues\x12>\n\x08GetIssue\x12\x1c.monorail.v3.GetIssueRequest\x1a\x12.monorail.v3.Issue\"\x00\x12[\n\x0e\x42\x61tchGetIssues\x12\".monorail.v3.BatchGetIssuesRequest\x1a#.monorail.v3.BatchGetIssuesResponse\"\x00\x12U\n\x0cSearchIssues\x12 .monorail.v3.SearchIssuesRequest\x1a!.monorail.v3.SearchIssuesResponse\"\x00\x12U\n\x0cListComments\x12 .monorail.v3.ListCommentsRequest\x1a!.monorail.v3.ListCommentsResponse\"\x00\x12U\n\x0cModifyIssues\x12 .monorail.v3.ModifyIssuesRequest\x1a!.monorail.v3.ModifyIssuesResponse\"\x00\x12|\n\x19ModifyIssueApprovalValues\x12-.monorail.v3.ModifyIssueApprovalValuesRequest\x1a..monorail.v3.ModifyIssueApprovalValuesResponse\"\x00\x12g\n\x12ListApprovalValues\x12&.monorail.v3.ListApprovalValuesRequest\x1a\'.monorail.v3.ListApprovalValuesResponse\"\x00\x12g\n\x12ModifyCommentState\x12&.monorail.v3.ModifyCommentStateRequest\x1a\'.monorail.v3.ModifyCommentStateResponse\"\x00\x12X\n\x15MakeIssueFromTemplate\x12).monorail.v3.MakeIssueFromTemplateRequest\x1a\x12.monorail.v3.Issue\"\x00\x12@\n\tMakeIssue\x12\x1d.monorail.v3.MakeIssueRequest\x1a\x12.monorail.v3.Issue\"\x00\x42#Z!infra/monorailv2/api/v3/api_protob\x06proto3')
 
-_NOTIFYTYPE = _descriptor.EnumDescriptor(
-  name='NotifyType',
-  full_name='monorail.v3.NotifyType',
-  filename=None,
-  file=DESCRIPTOR,
-  create_key=_descriptor._internal_create_key,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='NOTIFY_TYPE_UNSPECIFIED', index=0, number=0,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='EMAIL', index=1, number=1,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-    _descriptor.EnumValueDescriptor(
-      name='NO_NOTIFICATION', index=2, number=2,
-      serialized_options=None,
-      type=None,
-      create_key=_descriptor._internal_create_key),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=2816,
-  serialized_end=2889,
-)
-_sym_db.RegisterEnumDescriptor(_NOTIFYTYPE)
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'api.v3.api_proto.issues_pb2', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
 
-NotifyType = enum_type_wrapper.EnumTypeWrapper(_NOTIFYTYPE)
-NOTIFY_TYPE_UNSPECIFIED = 0
-EMAIL = 1
-NO_NOTIFICATION = 2
-
-
-
-_GETISSUEREQUEST = _descriptor.Descriptor(
-  name='GetIssueRequest',
-  full_name='monorail.v3.GetIssueRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='name', full_name='monorail.v3.GetIssueRequest.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=b'\372A\025\n\023api.crbug.com/Issue\340A\002', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=178,
-  serialized_end=238,
-)
-
-
-_BATCHGETISSUESREQUEST = _descriptor.Descriptor(
-  name='BatchGetIssuesRequest',
-  full_name='monorail.v3.BatchGetIssuesRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='parent', full_name='monorail.v3.BatchGetIssuesRequest.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,
-      serialized_options=b'\372A\027\n\025api.crbug.com/Project', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='names', full_name='monorail.v3.BatchGetIssuesRequest.names', index=1,
-      number=2, 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=b'\372A\025\n\023api.crbug.com/Issue', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=240,
-  serialized_end=348,
-)
-
-
-_BATCHGETISSUESRESPONSE = _descriptor.Descriptor(
-  name='BatchGetIssuesResponse',
-  full_name='monorail.v3.BatchGetIssuesResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='issues', full_name='monorail.v3.BatchGetIssuesResponse.issues', 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,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=350,
-  serialized_end=410,
-)
-
-
-_SEARCHISSUESREQUEST = _descriptor.Descriptor(
-  name='SearchIssuesRequest',
-  full_name='monorail.v3.SearchIssuesRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='projects', full_name='monorail.v3.SearchIssuesRequest.projects', index=0,
-      number=1, 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=b'\372A\027\n\025api.crbug.com/Project\340A\002', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='query', full_name='monorail.v3.SearchIssuesRequest.query', 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='page_size', full_name='monorail.v3.SearchIssuesRequest.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,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='page_token', full_name='monorail.v3.SearchIssuesRequest.page_token', index=3,
-      number=4, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='order_by', full_name='monorail.v3.SearchIssuesRequest.order_by', index=4,
-      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,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=413,
-  serialized_end=555,
-)
-
-
-_SEARCHISSUESRESPONSE = _descriptor.Descriptor(
-  name='SearchIssuesResponse',
-  full_name='monorail.v3.SearchIssuesResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='issues', full_name='monorail.v3.SearchIssuesResponse.issues', 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,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='next_page_token', full_name='monorail.v3.SearchIssuesResponse.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,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=557,
-  serialized_end=640,
-)
-
-
-_LISTCOMMENTSREQUEST = _descriptor.Descriptor(
-  name='ListCommentsRequest',
-  full_name='monorail.v3.ListCommentsRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='parent', full_name='monorail.v3.ListCommentsRequest.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,
-      serialized_options=b'\372A\025\n\023api.crbug.com/Issue\340A\002', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='page_size', full_name='monorail.v3.ListCommentsRequest.page_size', index=1,
-      number=2, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='page_token', full_name='monorail.v3.ListCommentsRequest.page_token', 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,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='filter', full_name='monorail.v3.ListCommentsRequest.filter', index=3,
-      number=4, 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=642,
-  serialized_end=763,
-)
-
-
-_LISTCOMMENTSRESPONSE = _descriptor.Descriptor(
-  name='ListCommentsResponse',
-  full_name='monorail.v3.ListCommentsResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='comments', full_name='monorail.v3.ListCommentsResponse.comments', 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,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='next_page_token', full_name='monorail.v3.ListCommentsResponse.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,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=765,
-  serialized_end=852,
-)
-
-
-_ATTACHMENTUPLOAD = _descriptor.Descriptor(
-  name='AttachmentUpload',
-  full_name='monorail.v3.AttachmentUpload',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='filename', full_name='monorail.v3.AttachmentUpload.filename', 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=b'\340A\002', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='content', full_name='monorail.v3.AttachmentUpload.content', index=1,
-      number=2, type=12, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"",
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=b'\340A\002', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=854,
-  serialized_end=917,
-)
-
-
-_ISSUEDELTA = _descriptor.Descriptor(
-  name='IssueDelta',
-  full_name='monorail.v3.IssueDelta',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='issue', full_name='monorail.v3.IssueDelta.issue', index=0,
-      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=b'\340A\002', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='update_mask', full_name='monorail.v3.IssueDelta.update_mask', 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,
-      serialized_options=b'\340A\002', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='ccs_remove', full_name='monorail.v3.IssueDelta.ccs_remove', index=2,
-      number=3, 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=b'\372A\024\n\022api.crbug.com/User', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='blocked_on_issues_remove', full_name='monorail.v3.IssueDelta.blocked_on_issues_remove', index=3,
-      number=4, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='blocking_issues_remove', full_name='monorail.v3.IssueDelta.blocking_issues_remove', index=4,
-      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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='components_remove', full_name='monorail.v3.IssueDelta.components_remove', index=5,
-      number=6, 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=b'\372A\034\n\032api.crbug.com/ComponentDef', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='labels_remove', full_name='monorail.v3.IssueDelta.labels_remove', index=6,
-      number=7, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='field_vals_remove', full_name='monorail.v3.IssueDelta.field_vals_remove', index=7,
-      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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=920,
-  serialized_end=1318,
-)
-
-
-_APPROVALDELTA = _descriptor.Descriptor(
-  name='ApprovalDelta',
-  full_name='monorail.v3.ApprovalDelta',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='approval_value', full_name='monorail.v3.ApprovalDelta.approval_value', index=0,
-      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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='update_mask', full_name='monorail.v3.ApprovalDelta.update_mask', 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,
-      serialized_options=b'\340A\002', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='approvers_remove', full_name='monorail.v3.ApprovalDelta.approvers_remove', index=2,
-      number=3, 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=b'\372A\024\n\022api.crbug.com/User', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='field_vals_remove', full_name='monorail.v3.ApprovalDelta.field_vals_remove', index=3,
-      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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1321,
-  serialized_end=1545,
-)
-
-
-_MODIFYISSUESREQUEST = _descriptor.Descriptor(
-  name='ModifyIssuesRequest',
-  full_name='monorail.v3.ModifyIssuesRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='deltas', full_name='monorail.v3.ModifyIssuesRequest.deltas', 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,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='notify_type', full_name='monorail.v3.ModifyIssuesRequest.notify_type', index=1,
-      number=2, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='comment_content', full_name='monorail.v3.ModifyIssuesRequest.comment_content', 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,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='uploads', full_name='monorail.v3.ModifyIssuesRequest.uploads', index=3,
-      number=4, 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1548,
-  serialized_end=1729,
-)
-
-
-_MODIFYISSUESRESPONSE = _descriptor.Descriptor(
-  name='ModifyIssuesResponse',
-  full_name='monorail.v3.ModifyIssuesResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='issues', full_name='monorail.v3.ModifyIssuesResponse.issues', 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,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1731,
-  serialized_end=1789,
-)
-
-
-_MODIFYISSUEAPPROVALVALUESREQUEST = _descriptor.Descriptor(
-  name='ModifyIssueApprovalValuesRequest',
-  full_name='monorail.v3.ModifyIssueApprovalValuesRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='deltas', full_name='monorail.v3.ModifyIssueApprovalValuesRequest.deltas', 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,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='notify_type', full_name='monorail.v3.ModifyIssueApprovalValuesRequest.notify_type', index=1,
-      number=2, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='comment_content', full_name='monorail.v3.ModifyIssueApprovalValuesRequest.comment_content', 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,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1792,
-  serialized_end=1941,
-)
-
-
-_MODIFYISSUEAPPROVALVALUESRESPONSE = _descriptor.Descriptor(
-  name='ModifyIssueApprovalValuesResponse',
-  full_name='monorail.v3.ModifyIssueApprovalValuesResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='approval_values', full_name='monorail.v3.ModifyIssueApprovalValuesResponse.approval_values', 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,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1943,
-  serialized_end=2031,
-)
-
-
-_LISTAPPROVALVALUESREQUEST = _descriptor.Descriptor(
-  name='ListApprovalValuesRequest',
-  full_name='monorail.v3.ListApprovalValuesRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='parent', full_name='monorail.v3.ListApprovalValuesRequest.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,
-      serialized_options=b'\372A\025\n\023api.crbug.com/Issue\340A\002', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2033,
-  serialized_end=2105,
-)
-
-
-_LISTAPPROVALVALUESRESPONSE = _descriptor.Descriptor(
-  name='ListApprovalValuesResponse',
-  full_name='monorail.v3.ListApprovalValuesResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='approval_values', full_name='monorail.v3.ListApprovalValuesResponse.approval_values', 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,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2107,
-  serialized_end=2188,
-)
-
-
-_MODIFYCOMMENTSTATEREQUEST = _descriptor.Descriptor(
-  name='ModifyCommentStateRequest',
-  full_name='monorail.v3.ModifyCommentStateRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='name', full_name='monorail.v3.ModifyCommentStateRequest.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=b'\372A\027\n\025api.crbug.com/Comment\340A\002', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='state', full_name='monorail.v3.ModifyCommentStateRequest.state', index=1,
-      number=2, 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2190,
-  serialized_end=2309,
-)
-
-
-_MODIFYCOMMENTSTATERESPONSE = _descriptor.Descriptor(
-  name='ModifyCommentStateResponse',
-  full_name='monorail.v3.ModifyCommentStateResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='comment', full_name='monorail.v3.ModifyCommentStateResponse.comment', index=0,
-      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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2311,
-  serialized_end=2378,
-)
-
-
-_MAKEISSUEFROMTEMPLATEREQUEST = _descriptor.Descriptor(
-  name='MakeIssueFromTemplateRequest',
-  full_name='monorail.v3.MakeIssueFromTemplateRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='template', full_name='monorail.v3.MakeIssueFromTemplateRequest.template', 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=b'\372A\030\n\026api.crbug.com/Template', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='template_issue_delta', full_name='monorail.v3.MakeIssueFromTemplateRequest.template_issue_delta', 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,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='template_approval_deltas', full_name='monorail.v3.MakeIssueFromTemplateRequest.template_approval_deltas', index=2,
-      number=3, 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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='description', full_name='monorail.v3.MakeIssueFromTemplateRequest.description', index=3,
-      number=4, 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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2381,
-  serialized_end=2596,
-)
-
-
-_MAKEISSUEREQUEST = _descriptor.Descriptor(
-  name='MakeIssueRequest',
-  full_name='monorail.v3.MakeIssueRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='parent', full_name='monorail.v3.MakeIssueRequest.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,
-      serialized_options=b'\372A\027\n\025api.crbug.com/Project\340A\002', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='issue', full_name='monorail.v3.MakeIssueRequest.issue', 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,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='description', full_name='monorail.v3.MakeIssueRequest.description', 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,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='notify_type', full_name='monorail.v3.MakeIssueRequest.notify_type', index=3,
-      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,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='uploads', full_name='monorail.v3.MakeIssueRequest.uploads', index=4,
-      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,  create_key=_descriptor._internal_create_key),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2599,
-  serialized_end=2814,
-)
-
-_BATCHGETISSUESRESPONSE.fields_by_name['issues'].message_type = api_dot_v3_dot_api__proto_dot_issue__objects__pb2._ISSUE
-_SEARCHISSUESRESPONSE.fields_by_name['issues'].message_type = api_dot_v3_dot_api__proto_dot_issue__objects__pb2._ISSUE
-_LISTCOMMENTSRESPONSE.fields_by_name['comments'].message_type = api_dot_v3_dot_api__proto_dot_issue__objects__pb2._COMMENT
-_ISSUEDELTA.fields_by_name['issue'].message_type = api_dot_v3_dot_api__proto_dot_issue__objects__pb2._ISSUE
-_ISSUEDELTA.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK
-_ISSUEDELTA.fields_by_name['blocked_on_issues_remove'].message_type = api_dot_v3_dot_api__proto_dot_issue__objects__pb2._ISSUEREF
-_ISSUEDELTA.fields_by_name['blocking_issues_remove'].message_type = api_dot_v3_dot_api__proto_dot_issue__objects__pb2._ISSUEREF
-_ISSUEDELTA.fields_by_name['field_vals_remove'].message_type = api_dot_v3_dot_api__proto_dot_issue__objects__pb2._FIELDVALUE
-_APPROVALDELTA.fields_by_name['approval_value'].message_type = api_dot_v3_dot_api__proto_dot_issue__objects__pb2._APPROVALVALUE
-_APPROVALDELTA.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK
-_APPROVALDELTA.fields_by_name['field_vals_remove'].message_type = api_dot_v3_dot_api__proto_dot_issue__objects__pb2._FIELDVALUE
-_MODIFYISSUESREQUEST.fields_by_name['deltas'].message_type = _ISSUEDELTA
-_MODIFYISSUESREQUEST.fields_by_name['notify_type'].enum_type = _NOTIFYTYPE
-_MODIFYISSUESREQUEST.fields_by_name['uploads'].message_type = _ATTACHMENTUPLOAD
-_MODIFYISSUESRESPONSE.fields_by_name['issues'].message_type = api_dot_v3_dot_api__proto_dot_issue__objects__pb2._ISSUE
-_MODIFYISSUEAPPROVALVALUESREQUEST.fields_by_name['deltas'].message_type = _APPROVALDELTA
-_MODIFYISSUEAPPROVALVALUESREQUEST.fields_by_name['notify_type'].enum_type = _NOTIFYTYPE
-_MODIFYISSUEAPPROVALVALUESRESPONSE.fields_by_name['approval_values'].message_type = api_dot_v3_dot_api__proto_dot_issue__objects__pb2._APPROVALVALUE
-_LISTAPPROVALVALUESRESPONSE.fields_by_name['approval_values'].message_type = api_dot_v3_dot_api__proto_dot_issue__objects__pb2._APPROVALVALUE
-_MODIFYCOMMENTSTATEREQUEST.fields_by_name['state'].enum_type = api_dot_v3_dot_api__proto_dot_issue__objects__pb2._ISSUECONTENTSTATE
-_MODIFYCOMMENTSTATERESPONSE.fields_by_name['comment'].message_type = api_dot_v3_dot_api__proto_dot_issue__objects__pb2._COMMENT
-_MAKEISSUEFROMTEMPLATEREQUEST.fields_by_name['template_issue_delta'].message_type = _ISSUEDELTA
-_MAKEISSUEFROMTEMPLATEREQUEST.fields_by_name['template_approval_deltas'].message_type = _APPROVALDELTA
-_MAKEISSUEREQUEST.fields_by_name['issue'].message_type = api_dot_v3_dot_api__proto_dot_issue__objects__pb2._ISSUE
-_MAKEISSUEREQUEST.fields_by_name['notify_type'].enum_type = _NOTIFYTYPE
-_MAKEISSUEREQUEST.fields_by_name['uploads'].message_type = _ATTACHMENTUPLOAD
-DESCRIPTOR.message_types_by_name['GetIssueRequest'] = _GETISSUEREQUEST
-DESCRIPTOR.message_types_by_name['BatchGetIssuesRequest'] = _BATCHGETISSUESREQUEST
-DESCRIPTOR.message_types_by_name['BatchGetIssuesResponse'] = _BATCHGETISSUESRESPONSE
-DESCRIPTOR.message_types_by_name['SearchIssuesRequest'] = _SEARCHISSUESREQUEST
-DESCRIPTOR.message_types_by_name['SearchIssuesResponse'] = _SEARCHISSUESRESPONSE
-DESCRIPTOR.message_types_by_name['ListCommentsRequest'] = _LISTCOMMENTSREQUEST
-DESCRIPTOR.message_types_by_name['ListCommentsResponse'] = _LISTCOMMENTSRESPONSE
-DESCRIPTOR.message_types_by_name['AttachmentUpload'] = _ATTACHMENTUPLOAD
-DESCRIPTOR.message_types_by_name['IssueDelta'] = _ISSUEDELTA
-DESCRIPTOR.message_types_by_name['ApprovalDelta'] = _APPROVALDELTA
-DESCRIPTOR.message_types_by_name['ModifyIssuesRequest'] = _MODIFYISSUESREQUEST
-DESCRIPTOR.message_types_by_name['ModifyIssuesResponse'] = _MODIFYISSUESRESPONSE
-DESCRIPTOR.message_types_by_name['ModifyIssueApprovalValuesRequest'] = _MODIFYISSUEAPPROVALVALUESREQUEST
-DESCRIPTOR.message_types_by_name['ModifyIssueApprovalValuesResponse'] = _MODIFYISSUEAPPROVALVALUESRESPONSE
-DESCRIPTOR.message_types_by_name['ListApprovalValuesRequest'] = _LISTAPPROVALVALUESREQUEST
-DESCRIPTOR.message_types_by_name['ListApprovalValuesResponse'] = _LISTAPPROVALVALUESRESPONSE
-DESCRIPTOR.message_types_by_name['ModifyCommentStateRequest'] = _MODIFYCOMMENTSTATEREQUEST
-DESCRIPTOR.message_types_by_name['ModifyCommentStateResponse'] = _MODIFYCOMMENTSTATERESPONSE
-DESCRIPTOR.message_types_by_name['MakeIssueFromTemplateRequest'] = _MAKEISSUEFROMTEMPLATEREQUEST
-DESCRIPTOR.message_types_by_name['MakeIssueRequest'] = _MAKEISSUEREQUEST
-DESCRIPTOR.enum_types_by_name['NotifyType'] = _NOTIFYTYPE
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-GetIssueRequest = _reflection.GeneratedProtocolMessageType('GetIssueRequest', (_message.Message,), {
-  'DESCRIPTOR' : _GETISSUEREQUEST,
-  '__module__' : 'api.v3.api_proto.issues_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.GetIssueRequest)
-  })
-_sym_db.RegisterMessage(GetIssueRequest)
-
-BatchGetIssuesRequest = _reflection.GeneratedProtocolMessageType('BatchGetIssuesRequest', (_message.Message,), {
-  'DESCRIPTOR' : _BATCHGETISSUESREQUEST,
-  '__module__' : 'api.v3.api_proto.issues_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.BatchGetIssuesRequest)
-  })
-_sym_db.RegisterMessage(BatchGetIssuesRequest)
-
-BatchGetIssuesResponse = _reflection.GeneratedProtocolMessageType('BatchGetIssuesResponse', (_message.Message,), {
-  'DESCRIPTOR' : _BATCHGETISSUESRESPONSE,
-  '__module__' : 'api.v3.api_proto.issues_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.BatchGetIssuesResponse)
-  })
-_sym_db.RegisterMessage(BatchGetIssuesResponse)
-
-SearchIssuesRequest = _reflection.GeneratedProtocolMessageType('SearchIssuesRequest', (_message.Message,), {
-  'DESCRIPTOR' : _SEARCHISSUESREQUEST,
-  '__module__' : 'api.v3.api_proto.issues_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.SearchIssuesRequest)
-  })
-_sym_db.RegisterMessage(SearchIssuesRequest)
-
-SearchIssuesResponse = _reflection.GeneratedProtocolMessageType('SearchIssuesResponse', (_message.Message,), {
-  'DESCRIPTOR' : _SEARCHISSUESRESPONSE,
-  '__module__' : 'api.v3.api_proto.issues_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.SearchIssuesResponse)
-  })
-_sym_db.RegisterMessage(SearchIssuesResponse)
-
-ListCommentsRequest = _reflection.GeneratedProtocolMessageType('ListCommentsRequest', (_message.Message,), {
-  'DESCRIPTOR' : _LISTCOMMENTSREQUEST,
-  '__module__' : 'api.v3.api_proto.issues_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.ListCommentsRequest)
-  })
-_sym_db.RegisterMessage(ListCommentsRequest)
-
-ListCommentsResponse = _reflection.GeneratedProtocolMessageType('ListCommentsResponse', (_message.Message,), {
-  'DESCRIPTOR' : _LISTCOMMENTSRESPONSE,
-  '__module__' : 'api.v3.api_proto.issues_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.ListCommentsResponse)
-  })
-_sym_db.RegisterMessage(ListCommentsResponse)
-
-AttachmentUpload = _reflection.GeneratedProtocolMessageType('AttachmentUpload', (_message.Message,), {
-  'DESCRIPTOR' : _ATTACHMENTUPLOAD,
-  '__module__' : 'api.v3.api_proto.issues_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.AttachmentUpload)
-  })
-_sym_db.RegisterMessage(AttachmentUpload)
-
-IssueDelta = _reflection.GeneratedProtocolMessageType('IssueDelta', (_message.Message,), {
-  'DESCRIPTOR' : _ISSUEDELTA,
-  '__module__' : 'api.v3.api_proto.issues_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.IssueDelta)
-  })
-_sym_db.RegisterMessage(IssueDelta)
-
-ApprovalDelta = _reflection.GeneratedProtocolMessageType('ApprovalDelta', (_message.Message,), {
-  'DESCRIPTOR' : _APPROVALDELTA,
-  '__module__' : 'api.v3.api_proto.issues_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.ApprovalDelta)
-  })
-_sym_db.RegisterMessage(ApprovalDelta)
-
-ModifyIssuesRequest = _reflection.GeneratedProtocolMessageType('ModifyIssuesRequest', (_message.Message,), {
-  'DESCRIPTOR' : _MODIFYISSUESREQUEST,
-  '__module__' : 'api.v3.api_proto.issues_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.ModifyIssuesRequest)
-  })
-_sym_db.RegisterMessage(ModifyIssuesRequest)
-
-ModifyIssuesResponse = _reflection.GeneratedProtocolMessageType('ModifyIssuesResponse', (_message.Message,), {
-  'DESCRIPTOR' : _MODIFYISSUESRESPONSE,
-  '__module__' : 'api.v3.api_proto.issues_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.ModifyIssuesResponse)
-  })
-_sym_db.RegisterMessage(ModifyIssuesResponse)
-
-ModifyIssueApprovalValuesRequest = _reflection.GeneratedProtocolMessageType('ModifyIssueApprovalValuesRequest', (_message.Message,), {
-  'DESCRIPTOR' : _MODIFYISSUEAPPROVALVALUESREQUEST,
-  '__module__' : 'api.v3.api_proto.issues_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.ModifyIssueApprovalValuesRequest)
-  })
-_sym_db.RegisterMessage(ModifyIssueApprovalValuesRequest)
-
-ModifyIssueApprovalValuesResponse = _reflection.GeneratedProtocolMessageType('ModifyIssueApprovalValuesResponse', (_message.Message,), {
-  'DESCRIPTOR' : _MODIFYISSUEAPPROVALVALUESRESPONSE,
-  '__module__' : 'api.v3.api_proto.issues_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.ModifyIssueApprovalValuesResponse)
-  })
-_sym_db.RegisterMessage(ModifyIssueApprovalValuesResponse)
-
-ListApprovalValuesRequest = _reflection.GeneratedProtocolMessageType('ListApprovalValuesRequest', (_message.Message,), {
-  'DESCRIPTOR' : _LISTAPPROVALVALUESREQUEST,
-  '__module__' : 'api.v3.api_proto.issues_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.ListApprovalValuesRequest)
-  })
-_sym_db.RegisterMessage(ListApprovalValuesRequest)
-
-ListApprovalValuesResponse = _reflection.GeneratedProtocolMessageType('ListApprovalValuesResponse', (_message.Message,), {
-  'DESCRIPTOR' : _LISTAPPROVALVALUESRESPONSE,
-  '__module__' : 'api.v3.api_proto.issues_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.ListApprovalValuesResponse)
-  })
-_sym_db.RegisterMessage(ListApprovalValuesResponse)
-
-ModifyCommentStateRequest = _reflection.GeneratedProtocolMessageType('ModifyCommentStateRequest', (_message.Message,), {
-  'DESCRIPTOR' : _MODIFYCOMMENTSTATEREQUEST,
-  '__module__' : 'api.v3.api_proto.issues_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.ModifyCommentStateRequest)
-  })
-_sym_db.RegisterMessage(ModifyCommentStateRequest)
-
-ModifyCommentStateResponse = _reflection.GeneratedProtocolMessageType('ModifyCommentStateResponse', (_message.Message,), {
-  'DESCRIPTOR' : _MODIFYCOMMENTSTATERESPONSE,
-  '__module__' : 'api.v3.api_proto.issues_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.ModifyCommentStateResponse)
-  })
-_sym_db.RegisterMessage(ModifyCommentStateResponse)
-
-MakeIssueFromTemplateRequest = _reflection.GeneratedProtocolMessageType('MakeIssueFromTemplateRequest', (_message.Message,), {
-  'DESCRIPTOR' : _MAKEISSUEFROMTEMPLATEREQUEST,
-  '__module__' : 'api.v3.api_proto.issues_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.MakeIssueFromTemplateRequest)
-  })
-_sym_db.RegisterMessage(MakeIssueFromTemplateRequest)
-
-MakeIssueRequest = _reflection.GeneratedProtocolMessageType('MakeIssueRequest', (_message.Message,), {
-  'DESCRIPTOR' : _MAKEISSUEREQUEST,
-  '__module__' : 'api.v3.api_proto.issues_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.MakeIssueRequest)
-  })
-_sym_db.RegisterMessage(MakeIssueRequest)
-
-
-DESCRIPTOR._options = None
-_GETISSUEREQUEST.fields_by_name['name']._options = None
-_BATCHGETISSUESREQUEST.fields_by_name['parent']._options = None
-_BATCHGETISSUESREQUEST.fields_by_name['names']._options = None
-_SEARCHISSUESREQUEST.fields_by_name['projects']._options = None
-_LISTCOMMENTSREQUEST.fields_by_name['parent']._options = None
-_ATTACHMENTUPLOAD.fields_by_name['filename']._options = None
-_ATTACHMENTUPLOAD.fields_by_name['content']._options = None
-_ISSUEDELTA.fields_by_name['issue']._options = None
-_ISSUEDELTA.fields_by_name['update_mask']._options = None
-_ISSUEDELTA.fields_by_name['ccs_remove']._options = None
-_ISSUEDELTA.fields_by_name['components_remove']._options = None
-_APPROVALDELTA.fields_by_name['update_mask']._options = None
-_APPROVALDELTA.fields_by_name['approvers_remove']._options = None
-_LISTAPPROVALVALUESREQUEST.fields_by_name['parent']._options = None
-_MODIFYCOMMENTSTATEREQUEST.fields_by_name['name']._options = None
-_MAKEISSUEFROMTEMPLATEREQUEST.fields_by_name['template']._options = None
-_MAKEISSUEREQUEST.fields_by_name['parent']._options = None
-
-_ISSUES = _descriptor.ServiceDescriptor(
-  name='Issues',
-  full_name='monorail.v3.Issues',
-  file=DESCRIPTOR,
-  index=0,
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_start=2892,
-  serialized_end=3810,
-  methods=[
-  _descriptor.MethodDescriptor(
-    name='GetIssue',
-    full_name='monorail.v3.Issues.GetIssue',
-    index=0,
-    containing_service=None,
-    input_type=_GETISSUEREQUEST,
-    output_type=api_dot_v3_dot_api__proto_dot_issue__objects__pb2._ISSUE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='BatchGetIssues',
-    full_name='monorail.v3.Issues.BatchGetIssues',
-    index=1,
-    containing_service=None,
-    input_type=_BATCHGETISSUESREQUEST,
-    output_type=_BATCHGETISSUESRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='SearchIssues',
-    full_name='monorail.v3.Issues.SearchIssues',
-    index=2,
-    containing_service=None,
-    input_type=_SEARCHISSUESREQUEST,
-    output_type=_SEARCHISSUESRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListComments',
-    full_name='monorail.v3.Issues.ListComments',
-    index=3,
-    containing_service=None,
-    input_type=_LISTCOMMENTSREQUEST,
-    output_type=_LISTCOMMENTSRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ModifyIssues',
-    full_name='monorail.v3.Issues.ModifyIssues',
-    index=4,
-    containing_service=None,
-    input_type=_MODIFYISSUESREQUEST,
-    output_type=_MODIFYISSUESRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ModifyIssueApprovalValues',
-    full_name='monorail.v3.Issues.ModifyIssueApprovalValues',
-    index=5,
-    containing_service=None,
-    input_type=_MODIFYISSUEAPPROVALVALUESREQUEST,
-    output_type=_MODIFYISSUEAPPROVALVALUESRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListApprovalValues',
-    full_name='monorail.v3.Issues.ListApprovalValues',
-    index=6,
-    containing_service=None,
-    input_type=_LISTAPPROVALVALUESREQUEST,
-    output_type=_LISTAPPROVALVALUESRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ModifyCommentState',
-    full_name='monorail.v3.Issues.ModifyCommentState',
-    index=7,
-    containing_service=None,
-    input_type=_MODIFYCOMMENTSTATEREQUEST,
-    output_type=_MODIFYCOMMENTSTATERESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='MakeIssueFromTemplate',
-    full_name='monorail.v3.Issues.MakeIssueFromTemplate',
-    index=8,
-    containing_service=None,
-    input_type=_MAKEISSUEFROMTEMPLATEREQUEST,
-    output_type=api_dot_v3_dot_api__proto_dot_issue__objects__pb2._ISSUE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='MakeIssue',
-    full_name='monorail.v3.Issues.MakeIssue',
-    index=9,
-    containing_service=None,
-    input_type=_MAKEISSUEREQUEST,
-    output_type=api_dot_v3_dot_api__proto_dot_issue__objects__pb2._ISSUE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-])
-_sym_db.RegisterServiceDescriptor(_ISSUES)
-
-DESCRIPTOR.services_by_name['Issues'] = _ISSUES
-
+  DESCRIPTOR._options = None
+  DESCRIPTOR._serialized_options = b'Z!infra/monorailv2/api/v3/api_proto'
+  _GETISSUEREQUEST.fields_by_name['name']._options = None
+  _GETISSUEREQUEST.fields_by_name['name']._serialized_options = b'\372A\025\n\023api.crbug.com/Issue\340A\002'
+  _BATCHGETISSUESREQUEST.fields_by_name['parent']._options = None
+  _BATCHGETISSUESREQUEST.fields_by_name['parent']._serialized_options = b'\372A\027\n\025api.crbug.com/Project'
+  _BATCHGETISSUESREQUEST.fields_by_name['names']._options = None
+  _BATCHGETISSUESREQUEST.fields_by_name['names']._serialized_options = b'\372A\025\n\023api.crbug.com/Issue'
+  _SEARCHISSUESREQUEST.fields_by_name['projects']._options = None
+  _SEARCHISSUESREQUEST.fields_by_name['projects']._serialized_options = b'\372A\027\n\025api.crbug.com/Project\340A\002'
+  _LISTCOMMENTSREQUEST.fields_by_name['parent']._options = None
+  _LISTCOMMENTSREQUEST.fields_by_name['parent']._serialized_options = b'\372A\025\n\023api.crbug.com/Issue\340A\002'
+  _ATTACHMENTUPLOAD.fields_by_name['filename']._options = None
+  _ATTACHMENTUPLOAD.fields_by_name['filename']._serialized_options = b'\340A\002'
+  _ATTACHMENTUPLOAD.fields_by_name['content']._options = None
+  _ATTACHMENTUPLOAD.fields_by_name['content']._serialized_options = b'\340A\002'
+  _ISSUEDELTA.fields_by_name['issue']._options = None
+  _ISSUEDELTA.fields_by_name['issue']._serialized_options = b'\340A\002'
+  _ISSUEDELTA.fields_by_name['update_mask']._options = None
+  _ISSUEDELTA.fields_by_name['update_mask']._serialized_options = b'\340A\002'
+  _ISSUEDELTA.fields_by_name['ccs_remove']._options = None
+  _ISSUEDELTA.fields_by_name['ccs_remove']._serialized_options = b'\372A\024\n\022api.crbug.com/User'
+  _ISSUEDELTA.fields_by_name['components_remove']._options = None
+  _ISSUEDELTA.fields_by_name['components_remove']._serialized_options = b'\372A\034\n\032api.crbug.com/ComponentDef'
+  _APPROVALDELTA.fields_by_name['update_mask']._options = None
+  _APPROVALDELTA.fields_by_name['update_mask']._serialized_options = b'\340A\002'
+  _APPROVALDELTA.fields_by_name['approvers_remove']._options = None
+  _APPROVALDELTA.fields_by_name['approvers_remove']._serialized_options = b'\372A\024\n\022api.crbug.com/User'
+  _LISTAPPROVALVALUESREQUEST.fields_by_name['parent']._options = None
+  _LISTAPPROVALVALUESREQUEST.fields_by_name['parent']._serialized_options = b'\372A\025\n\023api.crbug.com/Issue\340A\002'
+  _MODIFYCOMMENTSTATEREQUEST.fields_by_name['name']._options = None
+  _MODIFYCOMMENTSTATEREQUEST.fields_by_name['name']._serialized_options = b'\372A\027\n\025api.crbug.com/Comment\340A\002'
+  _MAKEISSUEFROMTEMPLATEREQUEST.fields_by_name['template']._options = None
+  _MAKEISSUEFROMTEMPLATEREQUEST.fields_by_name['template']._serialized_options = b'\372A\030\n\026api.crbug.com/Template'
+  _MAKEISSUEREQUEST.fields_by_name['parent']._options = None
+  _MAKEISSUEREQUEST.fields_by_name['parent']._serialized_options = b'\372A\027\n\025api.crbug.com/Project\340A\002'
+  _NOTIFYTYPE._serialized_start=2816
+  _NOTIFYTYPE._serialized_end=2889
+  _GETISSUEREQUEST._serialized_start=178
+  _GETISSUEREQUEST._serialized_end=238
+  _BATCHGETISSUESREQUEST._serialized_start=240
+  _BATCHGETISSUESREQUEST._serialized_end=348
+  _BATCHGETISSUESRESPONSE._serialized_start=350
+  _BATCHGETISSUESRESPONSE._serialized_end=410
+  _SEARCHISSUESREQUEST._serialized_start=413
+  _SEARCHISSUESREQUEST._serialized_end=555
+  _SEARCHISSUESRESPONSE._serialized_start=557
+  _SEARCHISSUESRESPONSE._serialized_end=640
+  _LISTCOMMENTSREQUEST._serialized_start=642
+  _LISTCOMMENTSREQUEST._serialized_end=763
+  _LISTCOMMENTSRESPONSE._serialized_start=765
+  _LISTCOMMENTSRESPONSE._serialized_end=852
+  _ATTACHMENTUPLOAD._serialized_start=854
+  _ATTACHMENTUPLOAD._serialized_end=917
+  _ISSUEDELTA._serialized_start=920
+  _ISSUEDELTA._serialized_end=1318
+  _APPROVALDELTA._serialized_start=1321
+  _APPROVALDELTA._serialized_end=1545
+  _MODIFYISSUESREQUEST._serialized_start=1548
+  _MODIFYISSUESREQUEST._serialized_end=1729
+  _MODIFYISSUESRESPONSE._serialized_start=1731
+  _MODIFYISSUESRESPONSE._serialized_end=1789
+  _MODIFYISSUEAPPROVALVALUESREQUEST._serialized_start=1792
+  _MODIFYISSUEAPPROVALVALUESREQUEST._serialized_end=1941
+  _MODIFYISSUEAPPROVALVALUESRESPONSE._serialized_start=1943
+  _MODIFYISSUEAPPROVALVALUESRESPONSE._serialized_end=2031
+  _LISTAPPROVALVALUESREQUEST._serialized_start=2033
+  _LISTAPPROVALVALUESREQUEST._serialized_end=2105
+  _LISTAPPROVALVALUESRESPONSE._serialized_start=2107
+  _LISTAPPROVALVALUESRESPONSE._serialized_end=2188
+  _MODIFYCOMMENTSTATEREQUEST._serialized_start=2190
+  _MODIFYCOMMENTSTATEREQUEST._serialized_end=2309
+  _MODIFYCOMMENTSTATERESPONSE._serialized_start=2311
+  _MODIFYCOMMENTSTATERESPONSE._serialized_end=2378
+  _MAKEISSUEFROMTEMPLATEREQUEST._serialized_start=2381
+  _MAKEISSUEFROMTEMPLATEREQUEST._serialized_end=2596
+  _MAKEISSUEREQUEST._serialized_start=2599
+  _MAKEISSUEREQUEST._serialized_end=2814
+  _ISSUES._serialized_start=2892
+  _ISSUES._serialized_end=3810
 # @@protoc_insertion_point(module_scope)