# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: scheduling_model.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 google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2
import optimizer_defs_pb2 as optimizer__defs__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='scheduling_model.proto',
  package='optilab.toolbox',
  syntax='proto3',
  serialized_options=None,
  serialized_pb=_b('\n\x16scheduling_model.proto\x12\x0foptilab.toolbox\x1a\x19google/protobuf/any.proto\x1a\x14optimizer_defs.proto\"\xc1\x01\n\x1c\x43reateSchedulingOptimizerReq\x12\x62\n\x16scheduling_engine_type\x18\x01 \x01(\x0e\x32\x42.optilab.toolbox.CreateSchedulingOptimizerReq.SchedulingEngineType\"=\n\x14SchedulingEngineType\x12\x17\n\x13\x45MPLOYEE_SCHEDULING\x10\x00\x12\x0c\n\x08JOB_SHOP\x10\x01\"T\n!EmployeeSchedulingPreferenceProto\x12\x13\n\x0b\x65mployee_id\x18\x01 \x01(\x05\x12\r\n\x05shift\x18\x02 \x01(\x05\x12\x0b\n\x03\x64\x61y\x18\x03 \x01(\x05\"\xb5\x01\n\x1c\x45mployeeSchedulingModelProto\x12\x15\n\rnum_employees\x18\x01 \x01(\x05\x12\x19\n\x11num_shift_per_day\x18\x02 \x01(\x05\x12\x10\n\x08num_days\x18\x03 \x01(\x05\x12Q\n\x15shift_preference_list\x18\x04 \x03(\x0b\x32\x32.optilab.toolbox.EmployeeSchedulingPreferenceProto\"\x85\x01\n\x14SchedulingModelProto\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12R\n\x19\x65mployee_scheduling_model\x18\x02 \x01(\x0b\x32-.optilab.toolbox.EmployeeSchedulingModelProtoH\x00\x42\x07\n\x05model\"V\n\x1d\x45mployeeDayShiftSolutionProto\x12\x13\n\x0b\x65mployee_id\x18\x01 \x01(\x05\x12\r\n\x05shift\x18\x02 \x01(\x05\x12\x11\n\tsatisfied\x18\x03 \x01(\x08\"w\n EmployeeDayScheduleSolutionProto\x12\x0b\n\x03\x64\x61y\x18\x01 \x01(\x05\x12\x46\n\x0eshift_schedule\x18\x02 \x03(\x0b\x32..optilab.toolbox.EmployeeDayShiftSolutionProto\"j\n\x1f\x45mployeeSchedulingSolutionProto\x12G\n\x0c\x64\x61y_schedule\x18\x01 \x03(\x0b\x32\x31.optilab.toolbox.EmployeeDayScheduleSolutionProto\"\xd2\x01\n\x17SchedulingSolutionProto\x12=\n\x06status\x18\x01 \x01(\x0e\x32-.optilab.toolbox.OptimizerSolutionStatusProto\x12\x12\n\nstatus_str\x18\x02 \x01(\t\x12X\n\x1c\x65mployee_scheduling_solution\x18\x03 \x01(\x0b\x32\x30.optilab.toolbox.EmployeeSchedulingSolutionProtoH\x00\x42\n\n\x08solutionb\x06proto3')
  ,
  dependencies=[google_dot_protobuf_dot_any__pb2.DESCRIPTOR,optimizer__defs__pb2.DESCRIPTOR,])



_CREATESCHEDULINGOPTIMIZERREQ_SCHEDULINGENGINETYPE = _descriptor.EnumDescriptor(
  name='SchedulingEngineType',
  full_name='optilab.toolbox.CreateSchedulingOptimizerReq.SchedulingEngineType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='EMPLOYEE_SCHEDULING', index=0, number=0,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='JOB_SHOP', index=1, number=1,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=225,
  serialized_end=286,
)
_sym_db.RegisterEnumDescriptor(_CREATESCHEDULINGOPTIMIZERREQ_SCHEDULINGENGINETYPE)


_CREATESCHEDULINGOPTIMIZERREQ = _descriptor.Descriptor(
  name='CreateSchedulingOptimizerReq',
  full_name='optilab.toolbox.CreateSchedulingOptimizerReq',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='scheduling_engine_type', full_name='optilab.toolbox.CreateSchedulingOptimizerReq.scheduling_engine_type', index=0,
      number=1, 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _CREATESCHEDULINGOPTIMIZERREQ_SCHEDULINGENGINETYPE,
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=93,
  serialized_end=286,
)


_EMPLOYEESCHEDULINGPREFERENCEPROTO = _descriptor.Descriptor(
  name='EmployeeSchedulingPreferenceProto',
  full_name='optilab.toolbox.EmployeeSchedulingPreferenceProto',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='employee_id', full_name='optilab.toolbox.EmployeeSchedulingPreferenceProto.employee_id', 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='shift', full_name='optilab.toolbox.EmployeeSchedulingPreferenceProto.shift', 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),
    _descriptor.FieldDescriptor(
      name='day', full_name='optilab.toolbox.EmployeeSchedulingPreferenceProto.day', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=288,
  serialized_end=372,
)


_EMPLOYEESCHEDULINGMODELPROTO = _descriptor.Descriptor(
  name='EmployeeSchedulingModelProto',
  full_name='optilab.toolbox.EmployeeSchedulingModelProto',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='num_employees', full_name='optilab.toolbox.EmployeeSchedulingModelProto.num_employees', 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='num_shift_per_day', full_name='optilab.toolbox.EmployeeSchedulingModelProto.num_shift_per_day', 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),
    _descriptor.FieldDescriptor(
      name='num_days', full_name='optilab.toolbox.EmployeeSchedulingModelProto.num_days', 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),
    _descriptor.FieldDescriptor(
      name='shift_preference_list', full_name='optilab.toolbox.EmployeeSchedulingModelProto.shift_preference_list', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=375,
  serialized_end=556,
)


_SCHEDULINGMODELPROTO = _descriptor.Descriptor(
  name='SchedulingModelProto',
  full_name='optilab.toolbox.SchedulingModelProto',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='model_id', full_name='optilab.toolbox.SchedulingModelProto.model_id', 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),
    _descriptor.FieldDescriptor(
      name='employee_scheduling_model', full_name='optilab.toolbox.SchedulingModelProto.employee_scheduling_model', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='model', full_name='optilab.toolbox.SchedulingModelProto.model',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=559,
  serialized_end=692,
)


_EMPLOYEEDAYSHIFTSOLUTIONPROTO = _descriptor.Descriptor(
  name='EmployeeDayShiftSolutionProto',
  full_name='optilab.toolbox.EmployeeDayShiftSolutionProto',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='employee_id', full_name='optilab.toolbox.EmployeeDayShiftSolutionProto.employee_id', 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='shift', full_name='optilab.toolbox.EmployeeDayShiftSolutionProto.shift', 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),
    _descriptor.FieldDescriptor(
      name='satisfied', full_name='optilab.toolbox.EmployeeDayShiftSolutionProto.satisfied', 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=694,
  serialized_end=780,
)


_EMPLOYEEDAYSCHEDULESOLUTIONPROTO = _descriptor.Descriptor(
  name='EmployeeDayScheduleSolutionProto',
  full_name='optilab.toolbox.EmployeeDayScheduleSolutionProto',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='day', full_name='optilab.toolbox.EmployeeDayScheduleSolutionProto.day', 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='shift_schedule', full_name='optilab.toolbox.EmployeeDayScheduleSolutionProto.shift_schedule', 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=782,
  serialized_end=901,
)


_EMPLOYEESCHEDULINGSOLUTIONPROTO = _descriptor.Descriptor(
  name='EmployeeSchedulingSolutionProto',
  full_name='optilab.toolbox.EmployeeSchedulingSolutionProto',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='day_schedule', full_name='optilab.toolbox.EmployeeSchedulingSolutionProto.day_schedule', 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=903,
  serialized_end=1009,
)


_SCHEDULINGSOLUTIONPROTO = _descriptor.Descriptor(
  name='SchedulingSolutionProto',
  full_name='optilab.toolbox.SchedulingSolutionProto',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='status', full_name='optilab.toolbox.SchedulingSolutionProto.status', index=0,
      number=1, 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),
    _descriptor.FieldDescriptor(
      name='status_str', full_name='optilab.toolbox.SchedulingSolutionProto.status_str', 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),
    _descriptor.FieldDescriptor(
      name='employee_scheduling_solution', full_name='optilab.toolbox.SchedulingSolutionProto.employee_scheduling_solution', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='solution', full_name='optilab.toolbox.SchedulingSolutionProto.solution',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=1012,
  serialized_end=1222,
)

_CREATESCHEDULINGOPTIMIZERREQ.fields_by_name['scheduling_engine_type'].enum_type = _CREATESCHEDULINGOPTIMIZERREQ_SCHEDULINGENGINETYPE
_CREATESCHEDULINGOPTIMIZERREQ_SCHEDULINGENGINETYPE.containing_type = _CREATESCHEDULINGOPTIMIZERREQ
_EMPLOYEESCHEDULINGMODELPROTO.fields_by_name['shift_preference_list'].message_type = _EMPLOYEESCHEDULINGPREFERENCEPROTO
_SCHEDULINGMODELPROTO.fields_by_name['employee_scheduling_model'].message_type = _EMPLOYEESCHEDULINGMODELPROTO
_SCHEDULINGMODELPROTO.oneofs_by_name['model'].fields.append(
  _SCHEDULINGMODELPROTO.fields_by_name['employee_scheduling_model'])
_SCHEDULINGMODELPROTO.fields_by_name['employee_scheduling_model'].containing_oneof = _SCHEDULINGMODELPROTO.oneofs_by_name['model']
_EMPLOYEEDAYSCHEDULESOLUTIONPROTO.fields_by_name['shift_schedule'].message_type = _EMPLOYEEDAYSHIFTSOLUTIONPROTO
_EMPLOYEESCHEDULINGSOLUTIONPROTO.fields_by_name['day_schedule'].message_type = _EMPLOYEEDAYSCHEDULESOLUTIONPROTO
_SCHEDULINGSOLUTIONPROTO.fields_by_name['status'].enum_type = optimizer__defs__pb2._OPTIMIZERSOLUTIONSTATUSPROTO
_SCHEDULINGSOLUTIONPROTO.fields_by_name['employee_scheduling_solution'].message_type = _EMPLOYEESCHEDULINGSOLUTIONPROTO
_SCHEDULINGSOLUTIONPROTO.oneofs_by_name['solution'].fields.append(
  _SCHEDULINGSOLUTIONPROTO.fields_by_name['employee_scheduling_solution'])
_SCHEDULINGSOLUTIONPROTO.fields_by_name['employee_scheduling_solution'].containing_oneof = _SCHEDULINGSOLUTIONPROTO.oneofs_by_name['solution']
DESCRIPTOR.message_types_by_name['CreateSchedulingOptimizerReq'] = _CREATESCHEDULINGOPTIMIZERREQ
DESCRIPTOR.message_types_by_name['EmployeeSchedulingPreferenceProto'] = _EMPLOYEESCHEDULINGPREFERENCEPROTO
DESCRIPTOR.message_types_by_name['EmployeeSchedulingModelProto'] = _EMPLOYEESCHEDULINGMODELPROTO
DESCRIPTOR.message_types_by_name['SchedulingModelProto'] = _SCHEDULINGMODELPROTO
DESCRIPTOR.message_types_by_name['EmployeeDayShiftSolutionProto'] = _EMPLOYEEDAYSHIFTSOLUTIONPROTO
DESCRIPTOR.message_types_by_name['EmployeeDayScheduleSolutionProto'] = _EMPLOYEEDAYSCHEDULESOLUTIONPROTO
DESCRIPTOR.message_types_by_name['EmployeeSchedulingSolutionProto'] = _EMPLOYEESCHEDULINGSOLUTIONPROTO
DESCRIPTOR.message_types_by_name['SchedulingSolutionProto'] = _SCHEDULINGSOLUTIONPROTO
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

CreateSchedulingOptimizerReq = _reflection.GeneratedProtocolMessageType('CreateSchedulingOptimizerReq', (_message.Message,), dict(
  DESCRIPTOR = _CREATESCHEDULINGOPTIMIZERREQ,
  __module__ = 'scheduling_model_pb2'
  # @@protoc_insertion_point(class_scope:optilab.toolbox.CreateSchedulingOptimizerReq)
  ))
_sym_db.RegisterMessage(CreateSchedulingOptimizerReq)

EmployeeSchedulingPreferenceProto = _reflection.GeneratedProtocolMessageType('EmployeeSchedulingPreferenceProto', (_message.Message,), dict(
  DESCRIPTOR = _EMPLOYEESCHEDULINGPREFERENCEPROTO,
  __module__ = 'scheduling_model_pb2'
  # @@protoc_insertion_point(class_scope:optilab.toolbox.EmployeeSchedulingPreferenceProto)
  ))
_sym_db.RegisterMessage(EmployeeSchedulingPreferenceProto)

EmployeeSchedulingModelProto = _reflection.GeneratedProtocolMessageType('EmployeeSchedulingModelProto', (_message.Message,), dict(
  DESCRIPTOR = _EMPLOYEESCHEDULINGMODELPROTO,
  __module__ = 'scheduling_model_pb2'
  # @@protoc_insertion_point(class_scope:optilab.toolbox.EmployeeSchedulingModelProto)
  ))
_sym_db.RegisterMessage(EmployeeSchedulingModelProto)

SchedulingModelProto = _reflection.GeneratedProtocolMessageType('SchedulingModelProto', (_message.Message,), dict(
  DESCRIPTOR = _SCHEDULINGMODELPROTO,
  __module__ = 'scheduling_model_pb2'
  # @@protoc_insertion_point(class_scope:optilab.toolbox.SchedulingModelProto)
  ))
_sym_db.RegisterMessage(SchedulingModelProto)

EmployeeDayShiftSolutionProto = _reflection.GeneratedProtocolMessageType('EmployeeDayShiftSolutionProto', (_message.Message,), dict(
  DESCRIPTOR = _EMPLOYEEDAYSHIFTSOLUTIONPROTO,
  __module__ = 'scheduling_model_pb2'
  # @@protoc_insertion_point(class_scope:optilab.toolbox.EmployeeDayShiftSolutionProto)
  ))
_sym_db.RegisterMessage(EmployeeDayShiftSolutionProto)

EmployeeDayScheduleSolutionProto = _reflection.GeneratedProtocolMessageType('EmployeeDayScheduleSolutionProto', (_message.Message,), dict(
  DESCRIPTOR = _EMPLOYEEDAYSCHEDULESOLUTIONPROTO,
  __module__ = 'scheduling_model_pb2'
  # @@protoc_insertion_point(class_scope:optilab.toolbox.EmployeeDayScheduleSolutionProto)
  ))
_sym_db.RegisterMessage(EmployeeDayScheduleSolutionProto)

EmployeeSchedulingSolutionProto = _reflection.GeneratedProtocolMessageType('EmployeeSchedulingSolutionProto', (_message.Message,), dict(
  DESCRIPTOR = _EMPLOYEESCHEDULINGSOLUTIONPROTO,
  __module__ = 'scheduling_model_pb2'
  # @@protoc_insertion_point(class_scope:optilab.toolbox.EmployeeSchedulingSolutionProto)
  ))
_sym_db.RegisterMessage(EmployeeSchedulingSolutionProto)

SchedulingSolutionProto = _reflection.GeneratedProtocolMessageType('SchedulingSolutionProto', (_message.Message,), dict(
  DESCRIPTOR = _SCHEDULINGSOLUTIONPROTO,
  __module__ = 'scheduling_model_pb2'
  # @@protoc_insertion_point(class_scope:optilab.toolbox.SchedulingSolutionProto)
  ))
_sym_db.RegisterMessage(SchedulingSolutionProto)


# @@protoc_insertion_point(module_scope)
