# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: api/api_proto/projects.proto

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

_sym_db = _symbol_database.Default()


from api.api_proto import common_pb2 as api_dot_api__proto_dot_common__pb2
from api.api_proto import project_objects_pb2 as api_dot_api__proto_dot_project__objects__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='api/api_proto/projects.proto',
  package='monorail',
  syntax='proto3',
  serialized_options=None,
  serialized_pb=_b('\n\x1c\x61pi/api_proto/projects.proto\x12\x08monorail\x1a\x1a\x61pi/api_proto/common.proto\x1a#api/api_proto/project_objects.proto\"<\n\x13ListProjectsRequest\x12\x11\n\tpage_size\x18\x01 \x01(\x05\x12\x12\n\npage_token\x18\x02 \x01(\t\"T\n\x14ListProjectsResponse\x12#\n\x08projects\x18\x01 \x03(\x0b\x32\x11.monorail.Project\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"3\n\x1bListProjectTemplatesRequest\x12\x14\n\x0cproject_name\x18\x02 \x01(\t\"H\n\x1cListProjectTemplatesResponse\x12(\n\ttemplates\x18\x01 \x03(\x0b\x32\x15.monorail.TemplateDef\"(\n\x10GetConfigRequest\x12\x14\n\x0cproject_name\x18\x02 \x01(\t\"4\n\x1cGetPresentationConfigRequest\x12\x14\n\x0cproject_name\x18\x02 \x01(\t\"3\n\x1bGetCustomPermissionsRequest\x12\x14\n\x0cproject_name\x18\x02 \x01(\t\"3\n\x1cGetCustomPermissionsResponse\x12\x13\n\x0bpermissions\x18\x01 \x03(\t\"0\n\x18GetVisibleMembersRequest\x12\x14\n\x0cproject_name\x18\x02 \x01(\t\"h\n\x19GetVisibleMembersResponse\x12$\n\tuser_refs\x18\x01 \x03(\x0b\x32\x11.monorail.UserRef\x12%\n\ngroup_refs\x18\x02 \x03(\x0b\x32\x11.monorail.UserRef\".\n\x16GetLabelOptionsRequest\x12\x14\n\x0cproject_name\x18\x02 \x01(\t\"f\n\x17GetLabelOptionsResponse\x12)\n\rlabel_options\x18\x01 \x03(\x0b\x32\x12.monorail.LabelDef\x12 \n\x18\x65xclusive_label_prefixes\x18\x02 \x03(\t\"+\n\x13ListStatusesRequest\x12\x14\n\x0cproject_name\x18\x02 \x01(\t\"\x8e\x01\n\x14ListStatusesResponse\x12(\n\x0bstatus_defs\x18\x01 \x03(\x0b\x32\x13.monorail.StatusDef\x12\x31\n\x14statuses_offer_merge\x18\x02 \x03(\x0b\x32\x13.monorail.StatusRef\x12\x19\n\x11restrict_to_known\x18\x03 \x01(\x08\"I\n\x15ListComponentsRequest\x12\x14\n\x0cproject_name\x18\x02 \x01(\t\x12\x1a\n\x12include_admin_info\x18\x03 \x01(\x08\"H\n\x16ListComponentsResponse\x12.\n\x0e\x63omponent_defs\x18\x01 \x03(\x0b\x32\x16.monorail.ComponentDef\"c\n\x11ListFieldsRequest\x12\x14\n\x0cproject_name\x18\x02 \x01(\t\x12\x1a\n\x12include_admin_info\x18\x03 \x01(\x08\x12\x1c\n\x14include_user_choices\x18\x04 \x01(\x08\"<\n\x12ListFieldsResponse\x12&\n\nfield_defs\x18\x01 \x03(\x0b\x32\x12.monorail.FieldDef\"2\n\x1aGetProjectStarCountRequest\x12\x14\n\x0cproject_name\x18\x02 \x01(\t\"1\n\x1bGetProjectStarCountResponse\x12\x12\n\nstar_count\x18\x01 \x01(\r\";\n\x12StarProjectRequest\x12\x14\n\x0cproject_name\x18\x02 \x01(\t\x12\x0f\n\x07starred\x18\x03 \x01(\x08\")\n\x13StarProjectResponse\x12\x12\n\nstar_count\x18\x01 \x01(\r\"/\n\x17\x43heckProjectNameRequest\x12\x14\n\x0cproject_name\x18\x02 \x01(\t\")\n\x18\x43heckProjectNameResponse\x12\r\n\x05\x65rror\x18\x01 \x01(\t\"^\n\x19\x43heckComponentNameRequest\x12\x14\n\x0cproject_name\x18\x02 \x01(\t\x12\x13\n\x0bparent_path\x18\x03 \x01(\t\x12\x16\n\x0e\x63omponent_name\x18\x04 \x01(\t\"+\n\x1a\x43heckComponentNameResponse\x12\r\n\x05\x65rror\x18\x01 \x01(\t\"A\n\x15\x43heckFieldNameRequest\x12\x14\n\x0cproject_name\x18\x02 \x01(\t\x12\x12\n\nfield_name\x18\x03 \x01(\t\"\'\n\x16\x43heckFieldNameResponse\x12\r\n\x05\x65rror\x18\x01 \x01(\t2\xc3\n\n\x08Projects\x12O\n\x0cListProjects\x12\x1d.monorail.ListProjectsRequest\x1a\x1e.monorail.ListProjectsResponse\"\x00\x12g\n\x14ListProjectTemplates\x12%.monorail.ListProjectTemplatesRequest\x1a&.monorail.ListProjectTemplatesResponse\"\x00\x12;\n\tGetConfig\x12\x1a.monorail.GetConfigRequest\x1a\x10.monorail.Config\"\x00\x12_\n\x15GetPresentationConfig\x12&.monorail.GetPresentationConfigRequest\x1a\x1c.monorail.PresentationConfig\"\x00\x12g\n\x14GetCustomPermissions\x12%.monorail.GetCustomPermissionsRequest\x1a&.monorail.GetCustomPermissionsResponse\"\x00\x12^\n\x11GetVisibleMembers\x12\".monorail.GetVisibleMembersRequest\x1a#.monorail.GetVisibleMembersResponse\"\x00\x12X\n\x0fGetLabelOptions\x12 .monorail.GetLabelOptionsRequest\x1a!.monorail.GetLabelOptionsResponse\"\x00\x12O\n\x0cListStatuses\x12\x1d.monorail.ListStatusesRequest\x1a\x1e.monorail.ListStatusesResponse\"\x00\x12U\n\x0eListComponents\x12\x1f.monorail.ListComponentsRequest\x1a .monorail.ListComponentsResponse\"\x00\x12I\n\nListFields\x12\x1b.monorail.ListFieldsRequest\x1a\x1c.monorail.ListFieldsResponse\"\x00\x12\x64\n\x13GetProjectStarCount\x12$.monorail.GetProjectStarCountRequest\x1a%.monorail.GetProjectStarCountResponse\"\x00\x12L\n\x0bStarProject\x12\x1c.monorail.StarProjectRequest\x1a\x1d.monorail.StarProjectResponse\"\x00\x12[\n\x10\x43heckProjectName\x12!.monorail.CheckProjectNameRequest\x1a\".monorail.CheckProjectNameResponse\"\x00\x12\x61\n\x12\x43heckComponentName\x12#.monorail.CheckComponentNameRequest\x1a$.monorail.CheckComponentNameResponse\"\x00\x12U\n\x0e\x43heckFieldName\x12\x1f.monorail.CheckFieldNameRequest\x1a .monorail.CheckFieldNameResponse\"\x00\x62\x06proto3')
  ,
  dependencies=[api_dot_api__proto_dot_common__pb2.DESCRIPTOR,api_dot_api__proto_dot_project__objects__pb2.DESCRIPTOR,])




_LISTPROJECTSREQUEST = _descriptor.Descriptor(
  name='ListProjectsRequest',
  full_name='monorail.ListProjectsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='page_size', full_name='monorail.ListProjectsRequest.page_size', index=0,
      number=1, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='page_token', full_name='monorail.ListProjectsRequest.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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=107,
  serialized_end=167,
)


_LISTPROJECTSRESPONSE = _descriptor.Descriptor(
  name='ListProjectsResponse',
  full_name='monorail.ListProjectsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='projects', full_name='monorail.ListProjectsResponse.projects', 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),
    _descriptor.FieldDescriptor(
      name='next_page_token', full_name='monorail.ListProjectsResponse.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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=169,
  serialized_end=253,
)


_LISTPROJECTTEMPLATESREQUEST = _descriptor.Descriptor(
  name='ListProjectTemplatesRequest',
  full_name='monorail.ListProjectTemplatesRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='project_name', full_name='monorail.ListProjectTemplatesRequest.project_name', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=255,
  serialized_end=306,
)


_LISTPROJECTTEMPLATESRESPONSE = _descriptor.Descriptor(
  name='ListProjectTemplatesResponse',
  full_name='monorail.ListProjectTemplatesResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='templates', full_name='monorail.ListProjectTemplatesResponse.templates', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=308,
  serialized_end=380,
)


_GETCONFIGREQUEST = _descriptor.Descriptor(
  name='GetConfigRequest',
  full_name='monorail.GetConfigRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='project_name', full_name='monorail.GetConfigRequest.project_name', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=382,
  serialized_end=422,
)


_GETPRESENTATIONCONFIGREQUEST = _descriptor.Descriptor(
  name='GetPresentationConfigRequest',
  full_name='monorail.GetPresentationConfigRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='project_name', full_name='monorail.GetPresentationConfigRequest.project_name', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=424,
  serialized_end=476,
)


_GETCUSTOMPERMISSIONSREQUEST = _descriptor.Descriptor(
  name='GetCustomPermissionsRequest',
  full_name='monorail.GetCustomPermissionsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='project_name', full_name='monorail.GetCustomPermissionsRequest.project_name', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=478,
  serialized_end=529,
)


_GETCUSTOMPERMISSIONSRESPONSE = _descriptor.Descriptor(
  name='GetCustomPermissionsResponse',
  full_name='monorail.GetCustomPermissionsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='permissions', full_name='monorail.GetCustomPermissionsResponse.permissions', 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=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=531,
  serialized_end=582,
)


_GETVISIBLEMEMBERSREQUEST = _descriptor.Descriptor(
  name='GetVisibleMembersRequest',
  full_name='monorail.GetVisibleMembersRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='project_name', full_name='monorail.GetVisibleMembersRequest.project_name', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=584,
  serialized_end=632,
)


_GETVISIBLEMEMBERSRESPONSE = _descriptor.Descriptor(
  name='GetVisibleMembersResponse',
  full_name='monorail.GetVisibleMembersResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='user_refs', full_name='monorail.GetVisibleMembersResponse.user_refs', 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),
    _descriptor.FieldDescriptor(
      name='group_refs', full_name='monorail.GetVisibleMembersResponse.group_refs', index=1,
      number=2, 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=634,
  serialized_end=738,
)


_GETLABELOPTIONSREQUEST = _descriptor.Descriptor(
  name='GetLabelOptionsRequest',
  full_name='monorail.GetLabelOptionsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='project_name', full_name='monorail.GetLabelOptionsRequest.project_name', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=740,
  serialized_end=786,
)


_GETLABELOPTIONSRESPONSE = _descriptor.Descriptor(
  name='GetLabelOptionsResponse',
  full_name='monorail.GetLabelOptionsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='label_options', full_name='monorail.GetLabelOptionsResponse.label_options', 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),
    _descriptor.FieldDescriptor(
      name='exclusive_label_prefixes', full_name='monorail.GetLabelOptionsResponse.exclusive_label_prefixes', 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=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=788,
  serialized_end=890,
)


_LISTSTATUSESREQUEST = _descriptor.Descriptor(
  name='ListStatusesRequest',
  full_name='monorail.ListStatusesRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='project_name', full_name='monorail.ListStatusesRequest.project_name', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=892,
  serialized_end=935,
)


_LISTSTATUSESRESPONSE = _descriptor.Descriptor(
  name='ListStatusesResponse',
  full_name='monorail.ListStatusesResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='status_defs', full_name='monorail.ListStatusesResponse.status_defs', 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),
    _descriptor.FieldDescriptor(
      name='statuses_offer_merge', full_name='monorail.ListStatusesResponse.statuses_offer_merge', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='restrict_to_known', full_name='monorail.ListStatusesResponse.restrict_to_known', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=938,
  serialized_end=1080,
)


_LISTCOMPONENTSREQUEST = _descriptor.Descriptor(
  name='ListComponentsRequest',
  full_name='monorail.ListComponentsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='project_name', full_name='monorail.ListComponentsRequest.project_name', index=0,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='include_admin_info', full_name='monorail.ListComponentsRequest.include_admin_info', index=1,
      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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1082,
  serialized_end=1155,
)


_LISTCOMPONENTSRESPONSE = _descriptor.Descriptor(
  name='ListComponentsResponse',
  full_name='monorail.ListComponentsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='component_defs', full_name='monorail.ListComponentsResponse.component_defs', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1157,
  serialized_end=1229,
)


_LISTFIELDSREQUEST = _descriptor.Descriptor(
  name='ListFieldsRequest',
  full_name='monorail.ListFieldsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='project_name', full_name='monorail.ListFieldsRequest.project_name', index=0,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='include_admin_info', full_name='monorail.ListFieldsRequest.include_admin_info', index=1,
      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),
    _descriptor.FieldDescriptor(
      name='include_user_choices', full_name='monorail.ListFieldsRequest.include_user_choices', index=2,
      number=4, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1231,
  serialized_end=1330,
)


_LISTFIELDSRESPONSE = _descriptor.Descriptor(
  name='ListFieldsResponse',
  full_name='monorail.ListFieldsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='field_defs', full_name='monorail.ListFieldsResponse.field_defs', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1332,
  serialized_end=1392,
)


_GETPROJECTSTARCOUNTREQUEST = _descriptor.Descriptor(
  name='GetProjectStarCountRequest',
  full_name='monorail.GetProjectStarCountRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='project_name', full_name='monorail.GetProjectStarCountRequest.project_name', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1394,
  serialized_end=1444,
)


_GETPROJECTSTARCOUNTRESPONSE = _descriptor.Descriptor(
  name='GetProjectStarCountResponse',
  full_name='monorail.GetProjectStarCountResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='star_count', full_name='monorail.GetProjectStarCountResponse.star_count', index=0,
      number=1, 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1446,
  serialized_end=1495,
)


_STARPROJECTREQUEST = _descriptor.Descriptor(
  name='StarProjectRequest',
  full_name='monorail.StarProjectRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='project_name', full_name='monorail.StarProjectRequest.project_name', index=0,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='starred', full_name='monorail.StarProjectRequest.starred', index=1,
      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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1497,
  serialized_end=1556,
)


_STARPROJECTRESPONSE = _descriptor.Descriptor(
  name='StarProjectResponse',
  full_name='monorail.StarProjectResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='star_count', full_name='monorail.StarProjectResponse.star_count', index=0,
      number=1, 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1558,
  serialized_end=1599,
)


_CHECKPROJECTNAMEREQUEST = _descriptor.Descriptor(
  name='CheckProjectNameRequest',
  full_name='monorail.CheckProjectNameRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='project_name', full_name='monorail.CheckProjectNameRequest.project_name', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1601,
  serialized_end=1648,
)


_CHECKPROJECTNAMERESPONSE = _descriptor.Descriptor(
  name='CheckProjectNameResponse',
  full_name='monorail.CheckProjectNameResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='error', full_name='monorail.CheckProjectNameResponse.error', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1650,
  serialized_end=1691,
)


_CHECKCOMPONENTNAMEREQUEST = _descriptor.Descriptor(
  name='CheckComponentNameRequest',
  full_name='monorail.CheckComponentNameRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='project_name', full_name='monorail.CheckComponentNameRequest.project_name', index=0,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='parent_path', full_name='monorail.CheckComponentNameRequest.parent_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),
    _descriptor.FieldDescriptor(
      name='component_name', full_name='monorail.CheckComponentNameRequest.component_name', index=2,
      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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1693,
  serialized_end=1787,
)


_CHECKCOMPONENTNAMERESPONSE = _descriptor.Descriptor(
  name='CheckComponentNameResponse',
  full_name='monorail.CheckComponentNameResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='error', full_name='monorail.CheckComponentNameResponse.error', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1789,
  serialized_end=1832,
)


_CHECKFIELDNAMEREQUEST = _descriptor.Descriptor(
  name='CheckFieldNameRequest',
  full_name='monorail.CheckFieldNameRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='project_name', full_name='monorail.CheckFieldNameRequest.project_name', index=0,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='field_name', full_name='monorail.CheckFieldNameRequest.field_name', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1834,
  serialized_end=1899,
)


_CHECKFIELDNAMERESPONSE = _descriptor.Descriptor(
  name='CheckFieldNameResponse',
  full_name='monorail.CheckFieldNameResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='error', full_name='monorail.CheckFieldNameResponse.error', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1901,
  serialized_end=1940,
)

_LISTPROJECTSRESPONSE.fields_by_name['projects'].message_type = api_dot_api__proto_dot_project__objects__pb2._PROJECT
_LISTPROJECTTEMPLATESRESPONSE.fields_by_name['templates'].message_type = api_dot_api__proto_dot_project__objects__pb2._TEMPLATEDEF
_GETVISIBLEMEMBERSRESPONSE.fields_by_name['user_refs'].message_type = api_dot_api__proto_dot_common__pb2._USERREF
_GETVISIBLEMEMBERSRESPONSE.fields_by_name['group_refs'].message_type = api_dot_api__proto_dot_common__pb2._USERREF
_GETLABELOPTIONSRESPONSE.fields_by_name['label_options'].message_type = api_dot_api__proto_dot_project__objects__pb2._LABELDEF
_LISTSTATUSESRESPONSE.fields_by_name['status_defs'].message_type = api_dot_api__proto_dot_project__objects__pb2._STATUSDEF
_LISTSTATUSESRESPONSE.fields_by_name['statuses_offer_merge'].message_type = api_dot_api__proto_dot_common__pb2._STATUSREF
_LISTCOMPONENTSRESPONSE.fields_by_name['component_defs'].message_type = api_dot_api__proto_dot_project__objects__pb2._COMPONENTDEF
_LISTFIELDSRESPONSE.fields_by_name['field_defs'].message_type = api_dot_api__proto_dot_project__objects__pb2._FIELDDEF
DESCRIPTOR.message_types_by_name['ListProjectsRequest'] = _LISTPROJECTSREQUEST
DESCRIPTOR.message_types_by_name['ListProjectsResponse'] = _LISTPROJECTSRESPONSE
DESCRIPTOR.message_types_by_name['ListProjectTemplatesRequest'] = _LISTPROJECTTEMPLATESREQUEST
DESCRIPTOR.message_types_by_name['ListProjectTemplatesResponse'] = _LISTPROJECTTEMPLATESRESPONSE
DESCRIPTOR.message_types_by_name['GetConfigRequest'] = _GETCONFIGREQUEST
DESCRIPTOR.message_types_by_name['GetPresentationConfigRequest'] = _GETPRESENTATIONCONFIGREQUEST
DESCRIPTOR.message_types_by_name['GetCustomPermissionsRequest'] = _GETCUSTOMPERMISSIONSREQUEST
DESCRIPTOR.message_types_by_name['GetCustomPermissionsResponse'] = _GETCUSTOMPERMISSIONSRESPONSE
DESCRIPTOR.message_types_by_name['GetVisibleMembersRequest'] = _GETVISIBLEMEMBERSREQUEST
DESCRIPTOR.message_types_by_name['GetVisibleMembersResponse'] = _GETVISIBLEMEMBERSRESPONSE
DESCRIPTOR.message_types_by_name['GetLabelOptionsRequest'] = _GETLABELOPTIONSREQUEST
DESCRIPTOR.message_types_by_name['GetLabelOptionsResponse'] = _GETLABELOPTIONSRESPONSE
DESCRIPTOR.message_types_by_name['ListStatusesRequest'] = _LISTSTATUSESREQUEST
DESCRIPTOR.message_types_by_name['ListStatusesResponse'] = _LISTSTATUSESRESPONSE
DESCRIPTOR.message_types_by_name['ListComponentsRequest'] = _LISTCOMPONENTSREQUEST
DESCRIPTOR.message_types_by_name['ListComponentsResponse'] = _LISTCOMPONENTSRESPONSE
DESCRIPTOR.message_types_by_name['ListFieldsRequest'] = _LISTFIELDSREQUEST
DESCRIPTOR.message_types_by_name['ListFieldsResponse'] = _LISTFIELDSRESPONSE
DESCRIPTOR.message_types_by_name['GetProjectStarCountRequest'] = _GETPROJECTSTARCOUNTREQUEST
DESCRIPTOR.message_types_by_name['GetProjectStarCountResponse'] = _GETPROJECTSTARCOUNTRESPONSE
DESCRIPTOR.message_types_by_name['StarProjectRequest'] = _STARPROJECTREQUEST
DESCRIPTOR.message_types_by_name['StarProjectResponse'] = _STARPROJECTRESPONSE
DESCRIPTOR.message_types_by_name['CheckProjectNameRequest'] = _CHECKPROJECTNAMEREQUEST
DESCRIPTOR.message_types_by_name['CheckProjectNameResponse'] = _CHECKPROJECTNAMERESPONSE
DESCRIPTOR.message_types_by_name['CheckComponentNameRequest'] = _CHECKCOMPONENTNAMEREQUEST
DESCRIPTOR.message_types_by_name['CheckComponentNameResponse'] = _CHECKCOMPONENTNAMERESPONSE
DESCRIPTOR.message_types_by_name['CheckFieldNameRequest'] = _CHECKFIELDNAMEREQUEST
DESCRIPTOR.message_types_by_name['CheckFieldNameResponse'] = _CHECKFIELDNAMERESPONSE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

ListProjectsRequest = _reflection.GeneratedProtocolMessageType('ListProjectsRequest', (_message.Message,), dict(
  DESCRIPTOR = _LISTPROJECTSREQUEST,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.ListProjectsRequest)
  ))
_sym_db.RegisterMessage(ListProjectsRequest)

ListProjectsResponse = _reflection.GeneratedProtocolMessageType('ListProjectsResponse', (_message.Message,), dict(
  DESCRIPTOR = _LISTPROJECTSRESPONSE,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.ListProjectsResponse)
  ))
_sym_db.RegisterMessage(ListProjectsResponse)

ListProjectTemplatesRequest = _reflection.GeneratedProtocolMessageType('ListProjectTemplatesRequest', (_message.Message,), dict(
  DESCRIPTOR = _LISTPROJECTTEMPLATESREQUEST,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.ListProjectTemplatesRequest)
  ))
_sym_db.RegisterMessage(ListProjectTemplatesRequest)

ListProjectTemplatesResponse = _reflection.GeneratedProtocolMessageType('ListProjectTemplatesResponse', (_message.Message,), dict(
  DESCRIPTOR = _LISTPROJECTTEMPLATESRESPONSE,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.ListProjectTemplatesResponse)
  ))
_sym_db.RegisterMessage(ListProjectTemplatesResponse)

GetConfigRequest = _reflection.GeneratedProtocolMessageType('GetConfigRequest', (_message.Message,), dict(
  DESCRIPTOR = _GETCONFIGREQUEST,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.GetConfigRequest)
  ))
_sym_db.RegisterMessage(GetConfigRequest)

GetPresentationConfigRequest = _reflection.GeneratedProtocolMessageType('GetPresentationConfigRequest', (_message.Message,), dict(
  DESCRIPTOR = _GETPRESENTATIONCONFIGREQUEST,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.GetPresentationConfigRequest)
  ))
_sym_db.RegisterMessage(GetPresentationConfigRequest)

GetCustomPermissionsRequest = _reflection.GeneratedProtocolMessageType('GetCustomPermissionsRequest', (_message.Message,), dict(
  DESCRIPTOR = _GETCUSTOMPERMISSIONSREQUEST,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.GetCustomPermissionsRequest)
  ))
_sym_db.RegisterMessage(GetCustomPermissionsRequest)

GetCustomPermissionsResponse = _reflection.GeneratedProtocolMessageType('GetCustomPermissionsResponse', (_message.Message,), dict(
  DESCRIPTOR = _GETCUSTOMPERMISSIONSRESPONSE,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.GetCustomPermissionsResponse)
  ))
_sym_db.RegisterMessage(GetCustomPermissionsResponse)

GetVisibleMembersRequest = _reflection.GeneratedProtocolMessageType('GetVisibleMembersRequest', (_message.Message,), dict(
  DESCRIPTOR = _GETVISIBLEMEMBERSREQUEST,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.GetVisibleMembersRequest)
  ))
_sym_db.RegisterMessage(GetVisibleMembersRequest)

GetVisibleMembersResponse = _reflection.GeneratedProtocolMessageType('GetVisibleMembersResponse', (_message.Message,), dict(
  DESCRIPTOR = _GETVISIBLEMEMBERSRESPONSE,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.GetVisibleMembersResponse)
  ))
_sym_db.RegisterMessage(GetVisibleMembersResponse)

GetLabelOptionsRequest = _reflection.GeneratedProtocolMessageType('GetLabelOptionsRequest', (_message.Message,), dict(
  DESCRIPTOR = _GETLABELOPTIONSREQUEST,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.GetLabelOptionsRequest)
  ))
_sym_db.RegisterMessage(GetLabelOptionsRequest)

GetLabelOptionsResponse = _reflection.GeneratedProtocolMessageType('GetLabelOptionsResponse', (_message.Message,), dict(
  DESCRIPTOR = _GETLABELOPTIONSRESPONSE,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.GetLabelOptionsResponse)
  ))
_sym_db.RegisterMessage(GetLabelOptionsResponse)

ListStatusesRequest = _reflection.GeneratedProtocolMessageType('ListStatusesRequest', (_message.Message,), dict(
  DESCRIPTOR = _LISTSTATUSESREQUEST,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.ListStatusesRequest)
  ))
_sym_db.RegisterMessage(ListStatusesRequest)

ListStatusesResponse = _reflection.GeneratedProtocolMessageType('ListStatusesResponse', (_message.Message,), dict(
  DESCRIPTOR = _LISTSTATUSESRESPONSE,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.ListStatusesResponse)
  ))
_sym_db.RegisterMessage(ListStatusesResponse)

ListComponentsRequest = _reflection.GeneratedProtocolMessageType('ListComponentsRequest', (_message.Message,), dict(
  DESCRIPTOR = _LISTCOMPONENTSREQUEST,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.ListComponentsRequest)
  ))
_sym_db.RegisterMessage(ListComponentsRequest)

ListComponentsResponse = _reflection.GeneratedProtocolMessageType('ListComponentsResponse', (_message.Message,), dict(
  DESCRIPTOR = _LISTCOMPONENTSRESPONSE,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.ListComponentsResponse)
  ))
_sym_db.RegisterMessage(ListComponentsResponse)

ListFieldsRequest = _reflection.GeneratedProtocolMessageType('ListFieldsRequest', (_message.Message,), dict(
  DESCRIPTOR = _LISTFIELDSREQUEST,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.ListFieldsRequest)
  ))
_sym_db.RegisterMessage(ListFieldsRequest)

ListFieldsResponse = _reflection.GeneratedProtocolMessageType('ListFieldsResponse', (_message.Message,), dict(
  DESCRIPTOR = _LISTFIELDSRESPONSE,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.ListFieldsResponse)
  ))
_sym_db.RegisterMessage(ListFieldsResponse)

GetProjectStarCountRequest = _reflection.GeneratedProtocolMessageType('GetProjectStarCountRequest', (_message.Message,), dict(
  DESCRIPTOR = _GETPROJECTSTARCOUNTREQUEST,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.GetProjectStarCountRequest)
  ))
_sym_db.RegisterMessage(GetProjectStarCountRequest)

GetProjectStarCountResponse = _reflection.GeneratedProtocolMessageType('GetProjectStarCountResponse', (_message.Message,), dict(
  DESCRIPTOR = _GETPROJECTSTARCOUNTRESPONSE,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.GetProjectStarCountResponse)
  ))
_sym_db.RegisterMessage(GetProjectStarCountResponse)

StarProjectRequest = _reflection.GeneratedProtocolMessageType('StarProjectRequest', (_message.Message,), dict(
  DESCRIPTOR = _STARPROJECTREQUEST,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.StarProjectRequest)
  ))
_sym_db.RegisterMessage(StarProjectRequest)

StarProjectResponse = _reflection.GeneratedProtocolMessageType('StarProjectResponse', (_message.Message,), dict(
  DESCRIPTOR = _STARPROJECTRESPONSE,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.StarProjectResponse)
  ))
_sym_db.RegisterMessage(StarProjectResponse)

CheckProjectNameRequest = _reflection.GeneratedProtocolMessageType('CheckProjectNameRequest', (_message.Message,), dict(
  DESCRIPTOR = _CHECKPROJECTNAMEREQUEST,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.CheckProjectNameRequest)
  ))
_sym_db.RegisterMessage(CheckProjectNameRequest)

CheckProjectNameResponse = _reflection.GeneratedProtocolMessageType('CheckProjectNameResponse', (_message.Message,), dict(
  DESCRIPTOR = _CHECKPROJECTNAMERESPONSE,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.CheckProjectNameResponse)
  ))
_sym_db.RegisterMessage(CheckProjectNameResponse)

CheckComponentNameRequest = _reflection.GeneratedProtocolMessageType('CheckComponentNameRequest', (_message.Message,), dict(
  DESCRIPTOR = _CHECKCOMPONENTNAMEREQUEST,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.CheckComponentNameRequest)
  ))
_sym_db.RegisterMessage(CheckComponentNameRequest)

CheckComponentNameResponse = _reflection.GeneratedProtocolMessageType('CheckComponentNameResponse', (_message.Message,), dict(
  DESCRIPTOR = _CHECKCOMPONENTNAMERESPONSE,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.CheckComponentNameResponse)
  ))
_sym_db.RegisterMessage(CheckComponentNameResponse)

CheckFieldNameRequest = _reflection.GeneratedProtocolMessageType('CheckFieldNameRequest', (_message.Message,), dict(
  DESCRIPTOR = _CHECKFIELDNAMEREQUEST,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.CheckFieldNameRequest)
  ))
_sym_db.RegisterMessage(CheckFieldNameRequest)

CheckFieldNameResponse = _reflection.GeneratedProtocolMessageType('CheckFieldNameResponse', (_message.Message,), dict(
  DESCRIPTOR = _CHECKFIELDNAMERESPONSE,
  __module__ = 'api.api_proto.projects_pb2'
  # @@protoc_insertion_point(class_scope:monorail.CheckFieldNameResponse)
  ))
_sym_db.RegisterMessage(CheckFieldNameResponse)



_PROJECTS = _descriptor.ServiceDescriptor(
  name='Projects',
  full_name='monorail.Projects',
  file=DESCRIPTOR,
  index=0,
  serialized_options=None,
  serialized_start=1943,
  serialized_end=3290,
  methods=[
  _descriptor.MethodDescriptor(
    name='ListProjects',
    full_name='monorail.Projects.ListProjects',
    index=0,
    containing_service=None,
    input_type=_LISTPROJECTSREQUEST,
    output_type=_LISTPROJECTSRESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='ListProjectTemplates',
    full_name='monorail.Projects.ListProjectTemplates',
    index=1,
    containing_service=None,
    input_type=_LISTPROJECTTEMPLATESREQUEST,
    output_type=_LISTPROJECTTEMPLATESRESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetConfig',
    full_name='monorail.Projects.GetConfig',
    index=2,
    containing_service=None,
    input_type=_GETCONFIGREQUEST,
    output_type=api_dot_api__proto_dot_project__objects__pb2._CONFIG,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetPresentationConfig',
    full_name='monorail.Projects.GetPresentationConfig',
    index=3,
    containing_service=None,
    input_type=_GETPRESENTATIONCONFIGREQUEST,
    output_type=api_dot_api__proto_dot_project__objects__pb2._PRESENTATIONCONFIG,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetCustomPermissions',
    full_name='monorail.Projects.GetCustomPermissions',
    index=4,
    containing_service=None,
    input_type=_GETCUSTOMPERMISSIONSREQUEST,
    output_type=_GETCUSTOMPERMISSIONSRESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetVisibleMembers',
    full_name='monorail.Projects.GetVisibleMembers',
    index=5,
    containing_service=None,
    input_type=_GETVISIBLEMEMBERSREQUEST,
    output_type=_GETVISIBLEMEMBERSRESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetLabelOptions',
    full_name='monorail.Projects.GetLabelOptions',
    index=6,
    containing_service=None,
    input_type=_GETLABELOPTIONSREQUEST,
    output_type=_GETLABELOPTIONSRESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='ListStatuses',
    full_name='monorail.Projects.ListStatuses',
    index=7,
    containing_service=None,
    input_type=_LISTSTATUSESREQUEST,
    output_type=_LISTSTATUSESRESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='ListComponents',
    full_name='monorail.Projects.ListComponents',
    index=8,
    containing_service=None,
    input_type=_LISTCOMPONENTSREQUEST,
    output_type=_LISTCOMPONENTSRESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='ListFields',
    full_name='monorail.Projects.ListFields',
    index=9,
    containing_service=None,
    input_type=_LISTFIELDSREQUEST,
    output_type=_LISTFIELDSRESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetProjectStarCount',
    full_name='monorail.Projects.GetProjectStarCount',
    index=10,
    containing_service=None,
    input_type=_GETPROJECTSTARCOUNTREQUEST,
    output_type=_GETPROJECTSTARCOUNTRESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='StarProject',
    full_name='monorail.Projects.StarProject',
    index=11,
    containing_service=None,
    input_type=_STARPROJECTREQUEST,
    output_type=_STARPROJECTRESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='CheckProjectName',
    full_name='monorail.Projects.CheckProjectName',
    index=12,
    containing_service=None,
    input_type=_CHECKPROJECTNAMEREQUEST,
    output_type=_CHECKPROJECTNAMERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='CheckComponentName',
    full_name='monorail.Projects.CheckComponentName',
    index=13,
    containing_service=None,
    input_type=_CHECKCOMPONENTNAMEREQUEST,
    output_type=_CHECKCOMPONENTNAMERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='CheckFieldName',
    full_name='monorail.Projects.CheckFieldName',
    index=14,
    containing_service=None,
    input_type=_CHECKFIELDNAMEREQUEST,
    output_type=_CHECKFIELDNAMERESPONSE,
    serialized_options=None,
  ),
])
_sym_db.RegisterServiceDescriptor(_PROJECTS)

DESCRIPTOR.services_by_name['Projects'] = _PROJECTS

# @@protoc_insertion_point(module_scope)
