diff --git a/api/api_proto/sitewide_pb2.py b/api/api_proto/sitewide_pb2.py
index e4d30f0..55a27b5 100644
--- a/api/api_proto/sitewide_pb2.py
+++ b/api/api_proto/sitewide_pb2.py
@@ -2,9 +2,9 @@
 # Generated by the protocol buffer compiler.  DO NOT EDIT!
 # source: api/api_proto/sitewide.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)
 
@@ -13,236 +13,22 @@
 
 
 
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='api/api_proto/sitewide.proto',
-  package='monorail',
-  syntax='proto3',
-  serialized_options=b'Z\'infra/monorailv2/api/api_proto;monorail',
-  create_key=_descriptor._internal_create_key,
-  serialized_pb=b'\n\x1c\x61pi/api_proto/sitewide.proto\x12\x08monorail\"8\n\x13RefreshTokenRequest\x12\r\n\x05token\x18\x02 \x01(\t\x12\x12\n\ntoken_path\x18\x03 \x01(\t\"@\n\x14RefreshTokenResponse\x12\r\n\x05token\x18\x01 \x01(\t\x12\x19\n\x11token_expires_sec\x18\x02 \x01(\r\"\x18\n\x16GetServerStatusRequest\"Y\n\x17GetServerStatusResponse\x12\x16\n\x0e\x62\x61nner_message\x18\x01 \x01(\t\x12\x13\n\x0b\x62\x61nner_time\x18\x02 \x01(\x07\x12\x11\n\tread_only\x18\x03 \x01(\x08\x32\xb5\x01\n\x08Sitewide\x12O\n\x0cRefreshToken\x12\x1d.monorail.RefreshTokenRequest\x1a\x1e.monorail.RefreshTokenResponse\"\x00\x12X\n\x0fGetServerStatus\x12 .monorail.GetServerStatusRequest\x1a!.monorail.GetServerStatusResponse\"\x00\x42)Z\'infra/monorailv2/api/api_proto;monorailb\x06proto3'
-)
+DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1c\x61pi/api_proto/sitewide.proto\x12\x08monorail\"8\n\x13RefreshTokenRequest\x12\r\n\x05token\x18\x02 \x01(\t\x12\x12\n\ntoken_path\x18\x03 \x01(\t\"@\n\x14RefreshTokenResponse\x12\r\n\x05token\x18\x01 \x01(\t\x12\x19\n\x11token_expires_sec\x18\x02 \x01(\r\"\x18\n\x16GetServerStatusRequest\"Y\n\x17GetServerStatusResponse\x12\x16\n\x0e\x62\x61nner_message\x18\x01 \x01(\t\x12\x13\n\x0b\x62\x61nner_time\x18\x02 \x01(\x07\x12\x11\n\tread_only\x18\x03 \x01(\x08\x32\xb5\x01\n\x08Sitewide\x12O\n\x0cRefreshToken\x12\x1d.monorail.RefreshTokenRequest\x1a\x1e.monorail.RefreshTokenResponse\"\x00\x12X\n\x0fGetServerStatus\x12 .monorail.GetServerStatusRequest\x1a!.monorail.GetServerStatusResponse\"\x00\x42)Z\'infra/monorailv2/api/api_proto;monorailb\x06proto3')
 
+_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
+_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'api.api_proto.sitewide_pb2', globals())
+if _descriptor._USE_C_DESCRIPTORS == False:
 
-
-
-_REFRESHTOKENREQUEST = _descriptor.Descriptor(
-  name='RefreshTokenRequest',
-  full_name='monorail.RefreshTokenRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='token', full_name='monorail.RefreshTokenRequest.token', index=0,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='token_path', full_name='monorail.RefreshTokenRequest.token_path', index=1,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      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=42,
-  serialized_end=98,
-)
-
-
-_REFRESHTOKENRESPONSE = _descriptor.Descriptor(
-  name='RefreshTokenResponse',
-  full_name='monorail.RefreshTokenResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='token', full_name='monorail.RefreshTokenResponse.token', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='token_expires_sec', full_name='monorail.RefreshTokenResponse.token_expires_sec', index=1,
-      number=2, type=13, cpp_type=3, 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=100,
-  serialized_end=164,
-)
-
-
-_GETSERVERSTATUSREQUEST = _descriptor.Descriptor(
-  name='GetServerStatusRequest',
-  full_name='monorail.GetServerStatusRequest',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto3',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=166,
-  serialized_end=190,
-)
-
-
-_GETSERVERSTATUSRESPONSE = _descriptor.Descriptor(
-  name='GetServerStatusResponse',
-  full_name='monorail.GetServerStatusResponse',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  create_key=_descriptor._internal_create_key,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='banner_message', full_name='monorail.GetServerStatusResponse.banner_message', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=b"".decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
-    _descriptor.FieldDescriptor(
-      name='banner_time', full_name='monorail.GetServerStatusResponse.banner_time', index=1,
-      number=2, type=7, cpp_type=3, 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='read_only', full_name='monorail.GetServerStatusResponse.read_only', index=2,
-      number=3, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      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=192,
-  serialized_end=281,
-)
-
-DESCRIPTOR.message_types_by_name['RefreshTokenRequest'] = _REFRESHTOKENREQUEST
-DESCRIPTOR.message_types_by_name['RefreshTokenResponse'] = _REFRESHTOKENRESPONSE
-DESCRIPTOR.message_types_by_name['GetServerStatusRequest'] = _GETSERVERSTATUSREQUEST
-DESCRIPTOR.message_types_by_name['GetServerStatusResponse'] = _GETSERVERSTATUSRESPONSE
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-RefreshTokenRequest = _reflection.GeneratedProtocolMessageType('RefreshTokenRequest', (_message.Message,), {
-  'DESCRIPTOR' : _REFRESHTOKENREQUEST,
-  '__module__' : 'api.api_proto.sitewide_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.RefreshTokenRequest)
-  })
-_sym_db.RegisterMessage(RefreshTokenRequest)
-
-RefreshTokenResponse = _reflection.GeneratedProtocolMessageType('RefreshTokenResponse', (_message.Message,), {
-  'DESCRIPTOR' : _REFRESHTOKENRESPONSE,
-  '__module__' : 'api.api_proto.sitewide_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.RefreshTokenResponse)
-  })
-_sym_db.RegisterMessage(RefreshTokenResponse)
-
-GetServerStatusRequest = _reflection.GeneratedProtocolMessageType('GetServerStatusRequest', (_message.Message,), {
-  'DESCRIPTOR' : _GETSERVERSTATUSREQUEST,
-  '__module__' : 'api.api_proto.sitewide_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.GetServerStatusRequest)
-  })
-_sym_db.RegisterMessage(GetServerStatusRequest)
-
-GetServerStatusResponse = _reflection.GeneratedProtocolMessageType('GetServerStatusResponse', (_message.Message,), {
-  'DESCRIPTOR' : _GETSERVERSTATUSRESPONSE,
-  '__module__' : 'api.api_proto.sitewide_pb2'
-  # @@protoc_insertion_point(class_scope:monorail.GetServerStatusResponse)
-  })
-_sym_db.RegisterMessage(GetServerStatusResponse)
-
-
-DESCRIPTOR._options = None
-
-_SITEWIDE = _descriptor.ServiceDescriptor(
-  name='Sitewide',
-  full_name='monorail.Sitewide',
-  file=DESCRIPTOR,
-  index=0,
-  serialized_options=None,
-  create_key=_descriptor._internal_create_key,
-  serialized_start=284,
-  serialized_end=465,
-  methods=[
-  _descriptor.MethodDescriptor(
-    name='RefreshToken',
-    full_name='monorail.Sitewide.RefreshToken',
-    index=0,
-    containing_service=None,
-    input_type=_REFRESHTOKENREQUEST,
-    output_type=_REFRESHTOKENRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-  _descriptor.MethodDescriptor(
-    name='GetServerStatus',
-    full_name='monorail.Sitewide.GetServerStatus',
-    index=1,
-    containing_service=None,
-    input_type=_GETSERVERSTATUSREQUEST,
-    output_type=_GETSERVERSTATUSRESPONSE,
-    serialized_options=None,
-    create_key=_descriptor._internal_create_key,
-  ),
-])
-_sym_db.RegisterServiceDescriptor(_SITEWIDE)
-
-DESCRIPTOR.services_by_name['Sitewide'] = _SITEWIDE
-
+  DESCRIPTOR._options = None
+  DESCRIPTOR._serialized_options = b'Z\'infra/monorailv2/api/api_proto;monorail'
+  _REFRESHTOKENREQUEST._serialized_start=42
+  _REFRESHTOKENREQUEST._serialized_end=98
+  _REFRESHTOKENRESPONSE._serialized_start=100
+  _REFRESHTOKENRESPONSE._serialized_end=164
+  _GETSERVERSTATUSREQUEST._serialized_start=166
+  _GETSERVERSTATUSREQUEST._serialized_end=190
+  _GETSERVERSTATUSRESPONSE._serialized_start=192
+  _GETSERVERSTATUSRESPONSE._serialized_end=281
+  _SITEWIDE._serialized_start=284
+  _SITEWIDE._serialized_end=465
 # @@protoc_insertion_point(module_scope)
