diff --git a/api/v3/api_proto/users_pb2.py b/api/v3/api_proto/users_pb2.py
index 4b9903e..52f4c4d 100644
--- a/api/v3/api_proto/users_pb2.py
+++ b/api/v3/api_proto/users_pb2.py
@@ -2,9 +2,9 @@
 # Generated by the protocol buffer compiler.  DO NOT EDIT!
 # source: api/v3/api_proto/users.proto
 """Generated protocol buffer code."""
+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,455 +18,44 @@
 from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2
 
 
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='api/v3/api_proto/users.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\x1c\x61pi/v3/api_proto/users.proto\x12\x0bmonorail.v3\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a#api/v3/api_proto/user_objects.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\":\n\x0eGetUserRequest\x12(\n\x04name\x18\x01 \x01(\tB\x1a\xfa\x41\x14\n\x12\x61pi.crbug.com/User\xe0\x41\x02\"A\n\x14\x42\x61tchGetUsersRequest\x12)\n\x05names\x18\x01 \x03(\tB\x1a\xfa\x41\x14\n\x12\x61pi.crbug.com/User\xe0\x41\x02\"9\n\x15\x42\x61tchGetUsersResponse\x12 \n\x05users\x18\x01 \x03(\x0b\x32\x11.monorail.v3.User\"\x86\x01\n\x11UpdateUserRequest\x12;\n\x04user\x18\x01 \x01(\x0b\x32\x11.monorail.v3.UserB\x1a\xe0\x41\x02\xfa\x41\x14\n\x12\x61pi.crbug.com/User\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"D\n\x12StarProjectRequest\x12.\n\x07project\x18\x01 \x01(\tB\x1d\xfa\x41\x17\n\x15\x61pi.crbug.com/Project\xe0\x41\x02\"F\n\x14UnStarProjectRequest\x12.\n\x07project\x18\x01 \x01(\tB\x1d\xfa\x41\x17\n\x15\x61pi.crbug.com/Project\xe0\x41\x02\"l\n\x17ListProjectStarsRequest\x12*\n\x06parent\x18\x01 \x01(\tB\x1a\xfa\x41\x14\n\x12\x61pi.crbug.com/User\xe0\x41\x02\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"d\n\x18ListProjectStarsResponse\x12/\n\rproject_stars\x18\x01 \x03(\x0b\x32\x18.monorail.v3.ProjectStar\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t2\xde\x03\n\x05Users\x12;\n\x07GetUser\x12\x1b.monorail.v3.GetUserRequest\x1a\x11.monorail.v3.User\"\x00\x12X\n\rBatchGetUsers\x12!.monorail.v3.BatchGetUsersRequest\x1a\".monorail.v3.BatchGetUsersResponse\"\x00\x12\x41\n\nUpdateUser\x12\x1e.monorail.v3.UpdateUserRequest\x1a\x11.monorail.v3.User\"\x00\x12J\n\x0bStarProject\x12\x1f.monorail.v3.StarProjectRequest\x1a\x18.monorail.v3.ProjectStar\"\x00\x12L\n\rUnStarProject\x12!.monorail.v3.UnStarProjectRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x61\n\x10ListProjectStars\x12$.monorail.v3.ListProjectStarsRequest\x1a%.monorail.v3.ListProjectStarsResponse\"\x00\x42#Z!infra/monorailv2/api/v3/api_protob\x06proto3'
-  ,
-  dependencies=[google_dot_api_dot_field__behavior__pb2.DESCRIPTOR,google_dot_api_dot_resource__pb2.DESCRIPTOR,api_dot_v3_dot_api__proto_dot_user__objects__pb2.DESCRIPTOR,google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,google_dot_protobuf_dot_field__mask__pb2.DESCRIPTOR,])
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x61pi/v3/api_proto/users.proto\x12\x0bmonorail.v3\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a#api/v3/api_proto/user_objects.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\":\n\x0eGetUserRequest\x12(\n\x04name\x18\x01 \x01(\tB\x1a\xfa\x41\x14\n\x12\x61pi.crbug.com/User\xe0\x41\x02\"A\n\x14\x42\x61tchGetUsersRequest\x12)\n\x05names\x18\x01 \x03(\tB\x1a\xfa\x41\x14\n\x12\x61pi.crbug.com/User\xe0\x41\x02\"9\n\x15\x42\x61tchGetUsersResponse\x12 \n\x05users\x18\x01 \x03(\x0b\x32\x11.monorail.v3.User\"\x86\x01\n\x11UpdateUserRequest\x12;\n\x04user\x18\x01 \x01(\x0b\x32\x11.monorail.v3.UserB\x1a\xe0\x41\x02\xfa\x41\x14\n\x12\x61pi.crbug.com/User\x12\x34\n\x0bupdate_mask\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x03\xe0\x41\x02\"D\n\x12StarProjectRequest\x12.\n\x07project\x18\x01 \x01(\tB\x1d\xfa\x41\x17\n\x15\x61pi.crbug.com/Project\xe0\x41\x02\"F\n\x14UnStarProjectRequest\x12.\n\x07project\x18\x01 \x01(\tB\x1d\xfa\x41\x17\n\x15\x61pi.crbug.com/Project\xe0\x41\x02\"l\n\x17ListProjectStarsRequest\x12*\n\x06parent\x18\x01 \x01(\tB\x1a\xfa\x41\x14\n\x12\x61pi.crbug.com/User\xe0\x41\x02\x12\x11\n\tpage_size\x18\x02 \x01(\x05\x12\x12\n\npage_token\x18\x03 \x01(\t\"d\n\x18ListProjectStarsResponse\x12/\n\rproject_stars\x18\x01 \x03(\x0b\x32\x18.monorail.v3.ProjectStar\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t2\xde\x03\n\x05Users\x12;\n\x07GetUser\x12\x1b.monorail.v3.GetUserRequest\x1a\x11.monorail.v3.User\"\x00\x12X\n\rBatchGetUsers\x12!.monorail.v3.BatchGetUsersRequest\x1a\".monorail.v3.BatchGetUsersResponse\"\x00\x12\x41\n\nUpdateUser\x12\x1e.monorail.v3.UpdateUserRequest\x1a\x11.monorail.v3.User\"\x00\x12J\n\x0bStarProject\x12\x1f.monorail.v3.StarProjectRequest\x1a\x18.monorail.v3.ProjectStar\"\x00\x12L\n\rUnStarProject\x12!.monorail.v3.UnStarProjectRequest\x1a\x16.google.protobuf.Empty\"\x00\x12\x61\n\x10ListProjectStars\x12$.monorail.v3.ListProjectStarsRequest\x1a%.monorail.v3.ListProjectStarsResponse\"\x00\x42#Z!infra/monorailv2/api/v3/api_protob\x06proto3')
 
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'api.v3.api_proto.users_pb2', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
 
-
-
-_GETUSERREQUEST = _descriptor.Descriptor(
-  name='GetUserRequest',
-  full_name='monorail.v3.GetUserRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='name', full_name='monorail.v3.GetUserRequest.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\024\n\022api.crbug.com/User\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=205,
-  serialized_end=263,
-)
-
-
-_BATCHGETUSERSREQUEST = _descriptor.Descriptor(
-  name='BatchGetUsersRequest',
-  full_name='monorail.v3.BatchGetUsersRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='names', full_name='monorail.v3.BatchGetUsersRequest.names', 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\024\n\022api.crbug.com/User\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=265,
-  serialized_end=330,
-)
-
-
-_BATCHGETUSERSRESPONSE = _descriptor.Descriptor(
-  name='BatchGetUsersResponse',
-  full_name='monorail.v3.BatchGetUsersResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='users', full_name='monorail.v3.BatchGetUsersResponse.users', 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=332,
-  serialized_end=389,
-)
-
-
-_UPDATEUSERREQUEST = _descriptor.Descriptor(
-  name='UpdateUserRequest',
-  full_name='monorail.v3.UpdateUserRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='user', full_name='monorail.v3.UpdateUserRequest.user', 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\372A\024\n\022api.crbug.com/User', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='update_mask', full_name='monorail.v3.UpdateUserRequest.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),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=392,
-  serialized_end=526,
-)
-
-
-_STARPROJECTREQUEST = _descriptor.Descriptor(
-  name='StarProjectRequest',
-  full_name='monorail.v3.StarProjectRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='project', full_name='monorail.v3.StarProjectRequest.project', 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),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=528,
-  serialized_end=596,
-)
-
-
-_UNSTARPROJECTREQUEST = _descriptor.Descriptor(
-  name='UnStarProjectRequest',
-  full_name='monorail.v3.UnStarProjectRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='project', full_name='monorail.v3.UnStarProjectRequest.project', 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),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=598,
-  serialized_end=668,
-)
-
-
-_LISTPROJECTSTARSREQUEST = _descriptor.Descriptor(
-  name='ListProjectStarsRequest',
-  full_name='monorail.v3.ListProjectStarsRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='parent', full_name='monorail.v3.ListProjectStarsRequest.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\024\n\022api.crbug.com/User\340A\002', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='page_size', full_name='monorail.v3.ListProjectStarsRequest.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.ListProjectStarsRequest.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),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=670,
-  serialized_end=778,
-)
-
-
-_LISTPROJECTSTARSRESPONSE = _descriptor.Descriptor(
-  name='ListProjectStarsResponse',
-  full_name='monorail.v3.ListProjectStarsResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='project_stars', full_name='monorail.v3.ListProjectStarsResponse.project_stars', 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.ListProjectStarsResponse.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=780,
-  serialized_end=880,
-)
-
-_BATCHGETUSERSRESPONSE.fields_by_name['users'].message_type = api_dot_v3_dot_api__proto_dot_user__objects__pb2._USER
-_UPDATEUSERREQUEST.fields_by_name['user'].message_type = api_dot_v3_dot_api__proto_dot_user__objects__pb2._USER
-_UPDATEUSERREQUEST.fields_by_name['update_mask'].message_type = google_dot_protobuf_dot_field__mask__pb2._FIELDMASK
-_LISTPROJECTSTARSRESPONSE.fields_by_name['project_stars'].message_type = api_dot_v3_dot_api__proto_dot_user__objects__pb2._PROJECTSTAR
-DESCRIPTOR.message_types_by_name['GetUserRequest'] = _GETUSERREQUEST
-DESCRIPTOR.message_types_by_name['BatchGetUsersRequest'] = _BATCHGETUSERSREQUEST
-DESCRIPTOR.message_types_by_name['BatchGetUsersResponse'] = _BATCHGETUSERSRESPONSE
-DESCRIPTOR.message_types_by_name['UpdateUserRequest'] = _UPDATEUSERREQUEST
-DESCRIPTOR.message_types_by_name['StarProjectRequest'] = _STARPROJECTREQUEST
-DESCRIPTOR.message_types_by_name['UnStarProjectRequest'] = _UNSTARPROJECTREQUEST
-DESCRIPTOR.message_types_by_name['ListProjectStarsRequest'] = _LISTPROJECTSTARSREQUEST
-DESCRIPTOR.message_types_by_name['ListProjectStarsResponse'] = _LISTPROJECTSTARSRESPONSE
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-GetUserRequest = _reflection.GeneratedProtocolMessageType('GetUserRequest', (_message.Message,), {
-  'DESCRIPTOR' : _GETUSERREQUEST,
-  '__module__' : 'api.v3.api_proto.users_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.GetUserRequest)
-  })
-_sym_db.RegisterMessage(GetUserRequest)
-
-BatchGetUsersRequest = _reflection.GeneratedProtocolMessageType('BatchGetUsersRequest', (_message.Message,), {
-  'DESCRIPTOR' : _BATCHGETUSERSREQUEST,
-  '__module__' : 'api.v3.api_proto.users_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.BatchGetUsersRequest)
-  })
-_sym_db.RegisterMessage(BatchGetUsersRequest)
-
-BatchGetUsersResponse = _reflection.GeneratedProtocolMessageType('BatchGetUsersResponse', (_message.Message,), {
-  'DESCRIPTOR' : _BATCHGETUSERSRESPONSE,
-  '__module__' : 'api.v3.api_proto.users_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.BatchGetUsersResponse)
-  })
-_sym_db.RegisterMessage(BatchGetUsersResponse)
-
-UpdateUserRequest = _reflection.GeneratedProtocolMessageType('UpdateUserRequest', (_message.Message,), {
-  'DESCRIPTOR' : _UPDATEUSERREQUEST,
-  '__module__' : 'api.v3.api_proto.users_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.UpdateUserRequest)
-  })
-_sym_db.RegisterMessage(UpdateUserRequest)
-
-StarProjectRequest = _reflection.GeneratedProtocolMessageType('StarProjectRequest', (_message.Message,), {
-  'DESCRIPTOR' : _STARPROJECTREQUEST,
-  '__module__' : 'api.v3.api_proto.users_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.StarProjectRequest)
-  })
-_sym_db.RegisterMessage(StarProjectRequest)
-
-UnStarProjectRequest = _reflection.GeneratedProtocolMessageType('UnStarProjectRequest', (_message.Message,), {
-  'DESCRIPTOR' : _UNSTARPROJECTREQUEST,
-  '__module__' : 'api.v3.api_proto.users_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.UnStarProjectRequest)
-  })
-_sym_db.RegisterMessage(UnStarProjectRequest)
-
-ListProjectStarsRequest = _reflection.GeneratedProtocolMessageType('ListProjectStarsRequest', (_message.Message,), {
-  'DESCRIPTOR' : _LISTPROJECTSTARSREQUEST,
-  '__module__' : 'api.v3.api_proto.users_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.ListProjectStarsRequest)
-  })
-_sym_db.RegisterMessage(ListProjectStarsRequest)
-
-ListProjectStarsResponse = _reflection.GeneratedProtocolMessageType('ListProjectStarsResponse', (_message.Message,), {
-  'DESCRIPTOR' : _LISTPROJECTSTARSRESPONSE,
-  '__module__' : 'api.v3.api_proto.users_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.v3.ListProjectStarsResponse)
-  })
-_sym_db.RegisterMessage(ListProjectStarsResponse)
-
-
-DESCRIPTOR._options = None
-_GETUSERREQUEST.fields_by_name['name']._options = None
-_BATCHGETUSERSREQUEST.fields_by_name['names']._options = None
-_UPDATEUSERREQUEST.fields_by_name['user']._options = None
-_UPDATEUSERREQUEST.fields_by_name['update_mask']._options = None
-_STARPROJECTREQUEST.fields_by_name['project']._options = None
-_UNSTARPROJECTREQUEST.fields_by_name['project']._options = None
-_LISTPROJECTSTARSREQUEST.fields_by_name['parent']._options = None
-
-_USERS = _descriptor.ServiceDescriptor(
-  name='Users',
-  full_name='monorail.v3.Users',
-  file=DESCRIPTOR,
-  index=0,
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_start=883,
-  serialized_end=1361,
-  methods=[
-  _descriptor.MethodDescriptor(
-    name='GetUser',
-    full_name='monorail.v3.Users.GetUser',
-    index=0,
-    containing_service=None,
-    input_type=_GETUSERREQUEST,
-    output_type=api_dot_v3_dot_api__proto_dot_user__objects__pb2._USER,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='BatchGetUsers',
-    full_name='monorail.v3.Users.BatchGetUsers',
-    index=1,
-    containing_service=None,
-    input_type=_BATCHGETUSERSREQUEST,
-    output_type=_BATCHGETUSERSRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='UpdateUser',
-    full_name='monorail.v3.Users.UpdateUser',
-    index=2,
-    containing_service=None,
-    input_type=_UPDATEUSERREQUEST,
-    output_type=api_dot_v3_dot_api__proto_dot_user__objects__pb2._USER,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='StarProject',
-    full_name='monorail.v3.Users.StarProject',
-    index=3,
-    containing_service=None,
-    input_type=_STARPROJECTREQUEST,
-    output_type=api_dot_v3_dot_api__proto_dot_user__objects__pb2._PROJECTSTAR,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='UnStarProject',
-    full_name='monorail.v3.Users.UnStarProject',
-    index=4,
-    containing_service=None,
-    input_type=_UNSTARPROJECTREQUEST,
-    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='ListProjectStars',
-    full_name='monorail.v3.Users.ListProjectStars',
-    index=5,
-    containing_service=None,
-    input_type=_LISTPROJECTSTARSREQUEST,
-    output_type=_LISTPROJECTSTARSRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-])
-_sym_db.RegisterServiceDescriptor(_USERS)
-
-DESCRIPTOR.services_by_name['Users'] = _USERS
-
+  DESCRIPTOR._options = None
+  DESCRIPTOR._serialized_options = b'Z!infra/monorailv2/api/v3/api_proto'
+  _GETUSERREQUEST.fields_by_name['name']._options = None
+  _GETUSERREQUEST.fields_by_name['name']._serialized_options = b'\372A\024\n\022api.crbug.com/User\340A\002'
+  _BATCHGETUSERSREQUEST.fields_by_name['names']._options = None
+  _BATCHGETUSERSREQUEST.fields_by_name['names']._serialized_options = b'\372A\024\n\022api.crbug.com/User\340A\002'
+  _UPDATEUSERREQUEST.fields_by_name['user']._options = None
+  _UPDATEUSERREQUEST.fields_by_name['user']._serialized_options = b'\340A\002\372A\024\n\022api.crbug.com/User'
+  _UPDATEUSERREQUEST.fields_by_name['update_mask']._options = None
+  _UPDATEUSERREQUEST.fields_by_name['update_mask']._serialized_options = b'\340A\002'
+  _STARPROJECTREQUEST.fields_by_name['project']._options = None
+  _STARPROJECTREQUEST.fields_by_name['project']._serialized_options = b'\372A\027\n\025api.crbug.com/Project\340A\002'
+  _UNSTARPROJECTREQUEST.fields_by_name['project']._options = None
+  _UNSTARPROJECTREQUEST.fields_by_name['project']._serialized_options = b'\372A\027\n\025api.crbug.com/Project\340A\002'
+  _LISTPROJECTSTARSREQUEST.fields_by_name['parent']._options = None
+  _LISTPROJECTSTARSREQUEST.fields_by_name['parent']._serialized_options = b'\372A\024\n\022api.crbug.com/User\340A\002'
+  _GETUSERREQUEST._serialized_start=205
+  _GETUSERREQUEST._serialized_end=263
+  _BATCHGETUSERSREQUEST._serialized_start=265
+  _BATCHGETUSERSREQUEST._serialized_end=330
+  _BATCHGETUSERSRESPONSE._serialized_start=332
+  _BATCHGETUSERSRESPONSE._serialized_end=389
+  _UPDATEUSERREQUEST._serialized_start=392
+  _UPDATEUSERREQUEST._serialized_end=526
+  _STARPROJECTREQUEST._serialized_start=528
+  _STARPROJECTREQUEST._serialized_end=596
+  _UNSTARPROJECTREQUEST._serialized_start=598
+  _UNSTARPROJECTREQUEST._serialized_end=668
+  _LISTPROJECTSTARSREQUEST._serialized_start=670
+  _LISTPROJECTSTARSREQUEST._serialized_end=778
+  _LISTPROJECTSTARSRESPONSE._serialized_start=780
+  _LISTPROJECTSTARSRESPONSE._serialized_end=880
+  _USERS._serialized_start=883
+  _USERS._serialized_end=1361
 # @@protoc_insertion_point(module_scope)
