# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: linear_model.proto

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

_sym_db = _symbol_database.Default()


DESCRIPTOR = _descriptor.FileDescriptor(
    name='linear_model.proto',
    package='optilab',
    syntax='proto3',
    serialized_options=None,
    serialized_pb=_b('\n\x12linear_model.proto\x12\x07optilab\"\x99\x01\n\x10OptVariableProto\x12\x13\n\x0blower_bound\x18\x01 \x01(\x01\x12\x13\n\x0bupper_bound\x18\x02 \x01(\x01\x12\x1d\n\x15objective_coefficient\x18\x03 \x01(\x01\x12\x12\n\nis_integer\x18\x04 \x01(\x08\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x1a\n\x12\x62ranching_priority\x18\x06 \x01(\x05\"I\n\x19PartialVariableAssignment\x12\x15\n\tvar_index\x18\x01 \x03(\x05\x42\x02\x10\x01\x12\x15\n\tvar_value\x18\x02 \x03(\x01\x42\x02\x10\x01\"\x85\x01\n\x12OptConstraintProto\x12\x11\n\tvar_index\x18\x01 \x03(\x05\x12\x13\n\x0b\x63oefficient\x18\x02 \x03(\x01\x12\x13\n\x0blower_bound\x18\x03 \x01(\x01\x12\x13\n\x0bupper_bound\x18\x04 \x01(\x01\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x0f\n\x07is_lazy\x18\x06 \x01(\x08\"\xe2\x01\n\rOptModelProto\x12+\n\x08variable\x18\x01 \x03(\x0b\x32\x19.optilab.OptVariableProto\x12/\n\nconstraint\x18\x02 \x03(\x0b\x32\x1b.optilab.OptConstraintProto\x12\x10\n\x08maximize\x18\x03 \x01(\x08\x12\x18\n\x10objective_offset\x18\x04 \x01(\x01\x12\x0c\n\x04name\x18\x05 \x01(\t\x12\x39\n\rsolution_hint\x18\x06 \x01(\x0b\x32\".optilab.PartialVariableAssignment\"\x1f\n\x0eOptionalDouble\x12\r\n\x05value\x18\x01 \x01(\x01\" \n\x0fOptionalBoolean\x12\r\n\x05value\x18\x01 \x01(\x08\"\xb8\x03\n\x16OptSolverParamsetProto\x12\x31\n\x10relative_mip_gap\x18\x01 \x01(\x0b\x32\x17.optilab.OptionalDouble\x12\x31\n\x10primal_tolerance\x18\x02 \x01(\x0b\x32\x17.optilab.OptionalDouble\x12/\n\x0e\x64ual_tolerance\x18\x03 \x01(\x0b\x32\x17.optilab.OptionalDouble\x12G\n\x0clp_algorithm\x18\x04 \x01(\x0e\x32\x31.optilab.OptSolverParamsetProto.LPAlgorithmValues\x12*\n\x08presolve\x18\x05 \x01(\x0b\x32\x18.optilab.OptionalBoolean\x12)\n\x07scaling\x18\x07 \x01(\x0b\x32\x18.optilab.OptionalBoolean\"g\n\x11LPAlgorithmValues\x12\x17\n\x13LP_ALGO_UNSPECIFIED\x10\x00\x12\x10\n\x0cLP_ALGO_DUAL\x10\x01\x12\x12\n\x0eLP_ALGO_PRIMAL\x10\x02\x12\x13\n\x0fLP_ALGO_BARRIER\x10\x03\"\x95\x03\n\x14LinearModelSpecProto\x12\x10\n\x08model_id\x18\x01 \x01(\t\x12\'\n\x05model\x18\n \x01(\x0b\x32\x16.optilab.OptModelProtoH\x00\x12\x14\n\nmodel_path\x18\x0b \x01(\tH\x00\x12;\n\nclass_type\x18\x02 \x01(\x0e\x32\'.optilab.LinearModelSpecProto.ClassType\x12?\n\x0cpackage_type\x18\x03 \x01(\x0e\x32).optilab.LinearModelSpecProto.PackageType\"$\n\tClassType\x12\x07\n\x03MIP\x10\x00\x12\x06\n\x02LP\x10\x01\x12\x06\n\x02IP\x10\x02\"s\n\x0bPackageType\x12\x11\n\rOR_TOOLS_GLOP\x10\x00\x12\x10\n\x0cOR_TOOLS_CLP\x10\x01\x12\x11\n\rOR_TOOLS_GLPK\x10\x02\x12\x10\n\x0cOR_TOOLS_CBC\x10\x03\x12\x10\n\x0cOR_TOOLS_BOP\x10\x04\x12\x08\n\x04SCIP\x10\x05\x42\x13\n\x11model_description\"B\n\x1bLinearVariableSolutionProto\x12\x10\n\x08var_name\x18\x01 \x01(\t\x12\x11\n\tvar_value\x18\x02 \x03(\x01\"\xdd\x01\n\x18LinearModelSolutionProto\x12\x37\n\x06status\x18\x01 \x01(\x0e\x32\'.optilab.LinearModelSolutionStatusProto\x12\x12\n\nstatus_str\x18\x02 \x01(\t\x12\x17\n\x0fobjective_value\x18\x03 \x01(\x01\x12\x1c\n\x14\x62\x65st_objective_bound\x18\x04 \x01(\x01\x12=\n\x0fvariable_assign\x18\x05 \x03(\x0b\x32$.optilab.LinearVariableSolutionProto*\xea\x02\n\x1eLinearModelSolutionStatusProto\x12\x12\n\x0eSOLVER_OPTIMAL\x10\x00\x12\x13\n\x0fSOLVER_FEASIBLE\x10\x01\x12\x15\n\x11SOLVER_INFEASIBLE\x10\x02\x12\x14\n\x10SOLVER_UNBOUNDED\x10\x03\x12\x13\n\x0fSOLVER_ABNORMAL\x10\x04\x12\x15\n\x11SOLVER_NOT_SOLVED\x10\x06\x12\x19\n\x15SOLVER_MODEL_IS_VALID\x10\x61\x12\x19\n\x15SOLVER_UNKNOWN_STATUS\x10\x63\x12\x18\n\x14SOLVER_MODEL_INVALID\x10\x05\x12&\n\"SOLVER_MODEL_INVALID_SOLUTION_HINT\x10T\x12*\n&SOLVER_MODEL_INVALID_SOLVER_PARAMETERS\x10U\x12\"\n\x1eSOLVER_SOLVER_TYPE_UNAVAILABLE\x10\x07\x62\x06proto3')
)

_LINEARMODELSOLUTIONSTATUSPROTO = _descriptor.EnumDescriptor(
    name='LinearModelSolutionStatusProto',
    full_name='optilab.LinearModelSolutionStatusProto',
    filename=None,
    file=DESCRIPTOR,
    values=[
        _descriptor.EnumValueDescriptor(
            name='SOLVER_OPTIMAL', index=0, number=0,
            serialized_options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='SOLVER_FEASIBLE', index=1, number=1,
            serialized_options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='SOLVER_INFEASIBLE', index=2, number=2,
            serialized_options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='SOLVER_UNBOUNDED', index=3, number=3,
            serialized_options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='SOLVER_ABNORMAL', index=4, number=4,
            serialized_options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='SOLVER_NOT_SOLVED', index=5, number=6,
            serialized_options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='SOLVER_MODEL_IS_VALID', index=6, number=97,
            serialized_options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='SOLVER_UNKNOWN_STATUS', index=7, number=99,
            serialized_options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='SOLVER_MODEL_INVALID', index=8, number=5,
            serialized_options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='SOLVER_MODEL_INVALID_SOLUTION_HINT', index=9, number=84,
            serialized_options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='SOLVER_MODEL_INVALID_SOLVER_PARAMETERS', index=10, number=85,
            serialized_options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='SOLVER_SOLVER_TYPE_UNAVAILABLE', index=11, number=7,
            serialized_options=None,
            type=None),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=1838,
    serialized_end=2200,
)
_sym_db.RegisterEnumDescriptor(_LINEARMODELSOLUTIONSTATUSPROTO)

LinearModelSolutionStatusProto = enum_type_wrapper.EnumTypeWrapper(
    _LINEARMODELSOLUTIONSTATUSPROTO)
SOLVER_OPTIMAL = 0
SOLVER_FEASIBLE = 1
SOLVER_INFEASIBLE = 2
SOLVER_UNBOUNDED = 3
SOLVER_ABNORMAL = 4
SOLVER_NOT_SOLVED = 6
SOLVER_MODEL_IS_VALID = 97
SOLVER_UNKNOWN_STATUS = 99
SOLVER_MODEL_INVALID = 5
SOLVER_MODEL_INVALID_SOLUTION_HINT = 84
SOLVER_MODEL_INVALID_SOLVER_PARAMETERS = 85
SOLVER_SOLVER_TYPE_UNAVAILABLE = 7


_OPTSOLVERPARAMSETPROTO_LPALGORITHMVALUES = _descriptor.EnumDescriptor(
    name='LPAlgorithmValues',
    full_name='optilab.OptSolverParamsetProto.LPAlgorithmValues',
    filename=None,
    file=DESCRIPTOR,
    values=[
        _descriptor.EnumValueDescriptor(
            name='LP_ALGO_UNSPECIFIED', index=0, number=0,
            serialized_options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='LP_ALGO_DUAL', index=1, number=1,
            serialized_options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='LP_ALGO_PRIMAL', index=2, number=2,
            serialized_options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='LP_ALGO_BARRIER', index=3, number=3,
            serialized_options=None,
            type=None),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=1032,
    serialized_end=1135,
)
_sym_db.RegisterEnumDescriptor(_OPTSOLVERPARAMSETPROTO_LPALGORITHMVALUES)

_LINEARMODELSPECPROTO_CLASSTYPE = _descriptor.EnumDescriptor(
    name='ClassType',
    full_name='optilab.LinearModelSpecProto.ClassType',
    filename=None,
    file=DESCRIPTOR,
    values=[
        _descriptor.EnumValueDescriptor(
            name='MIP', index=0, number=0,
            serialized_options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='LP', index=1, number=1,
            serialized_options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='IP', index=2, number=2,
            serialized_options=None,
            type=None),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=1369,
    serialized_end=1405,
)
_sym_db.RegisterEnumDescriptor(_LINEARMODELSPECPROTO_CLASSTYPE)

_LINEARMODELSPECPROTO_PACKAGETYPE = _descriptor.EnumDescriptor(
    name='PackageType',
    full_name='optilab.LinearModelSpecProto.PackageType',
    filename=None,
    file=DESCRIPTOR,
    values=[
        _descriptor.EnumValueDescriptor(
            name='OR_TOOLS_GLOP', index=0, number=0,
            serialized_options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='OR_TOOLS_CLP', index=1, number=1,
            serialized_options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='OR_TOOLS_GLPK', index=2, number=2,
            serialized_options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='OR_TOOLS_CBC', index=3, number=3,
            serialized_options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='OR_TOOLS_BOP', index=4, number=4,
            serialized_options=None,
            type=None),
        _descriptor.EnumValueDescriptor(
            name='SCIP', index=5, number=5,
            serialized_options=None,
            type=None),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=1407,
    serialized_end=1522,
)
_sym_db.RegisterEnumDescriptor(_LINEARMODELSPECPROTO_PACKAGETYPE)


_OPTVARIABLEPROTO = _descriptor.Descriptor(
    name='OptVariableProto',
    full_name='optilab.OptVariableProto',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='lower_bound',
            full_name='optilab.OptVariableProto.lower_bound',
            index=0,
            number=1,
            type=1,
            cpp_type=5,
            label=1,
            has_default_value=False,
            default_value=float(0),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
            name='upper_bound',
            full_name='optilab.OptVariableProto.upper_bound',
            index=1,
            number=2,
            type=1,
            cpp_type=5,
            label=1,
            has_default_value=False,
            default_value=float(0),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
            name='objective_coefficient',
            full_name='optilab.OptVariableProto.objective_coefficient',
            index=2,
            number=3,
            type=1,
            cpp_type=5,
            label=1,
            has_default_value=False,
            default_value=float(0),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
            name='is_integer',
            full_name='optilab.OptVariableProto.is_integer',
            index=3,
            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),
        _descriptor.FieldDescriptor(
            name='name',
            full_name='optilab.OptVariableProto.name',
            index=4,
            number=5,
            type=9,
            cpp_type=9,
            label=1,
            has_default_value=False,
            default_value=_b("").decode('utf-8'),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
            name='branching_priority',
            full_name='optilab.OptVariableProto.branching_priority',
            index=5,
            number=6,
            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=32,
    serialized_end=185,
)


_PARTIALVARIABLEASSIGNMENT = _descriptor.Descriptor(
    name='PartialVariableAssignment',
    full_name='optilab.PartialVariableAssignment',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='var_index',
            full_name='optilab.PartialVariableAssignment.var_index',
            index=0,
            number=1,
            type=5,
            cpp_type=1,
            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('\020\001'),
            file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
            name='var_value',
            full_name='optilab.PartialVariableAssignment.var_value',
            index=1,
            number=2,
            type=1,
            cpp_type=5,
            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('\020\001'),
            file=DESCRIPTOR),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[],
    serialized_start=187,
    serialized_end=260,
)


_OPTCONSTRAINTPROTO = _descriptor.Descriptor(
    name='OptConstraintProto',
    full_name='optilab.OptConstraintProto',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='var_index', full_name='optilab.OptConstraintProto.var_index', index=0,
            number=1, type=5, cpp_type=1, 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='coefficient', full_name='optilab.OptConstraintProto.coefficient', index=1,
            number=2, type=1, cpp_type=5, 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='lower_bound', full_name='optilab.OptConstraintProto.lower_bound', index=2,
            number=3, type=1, cpp_type=5, label=1,
            has_default_value=False, default_value=float(0),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            serialized_options=None, file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
            name='upper_bound', full_name='optilab.OptConstraintProto.upper_bound', index=3,
            number=4, type=1, cpp_type=5, label=1,
            has_default_value=False, default_value=float(0),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            serialized_options=None, file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
            name='name', full_name='optilab.OptConstraintProto.name', index=4,
            number=5, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            serialized_options=None, file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
            name='is_lazy', full_name='optilab.OptConstraintProto.is_lazy', index=5,
            number=6, 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=263,
    serialized_end=396,
)


_OPTMODELPROTO = _descriptor.Descriptor(
    name='OptModelProto',
    full_name='optilab.OptModelProto',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='variable', full_name='optilab.OptModelProto.variable', 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='constraint', full_name='optilab.OptModelProto.constraint', 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='maximize', full_name='optilab.OptModelProto.maximize', 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),
        _descriptor.FieldDescriptor(
            name='objective_offset', full_name='optilab.OptModelProto.objective_offset', index=3,
            number=4, type=1, cpp_type=5, label=1,
            has_default_value=False, default_value=float(0),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            serialized_options=None, file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
            name='name', full_name='optilab.OptModelProto.name', index=4,
            number=5, type=9, cpp_type=9, label=1,
            has_default_value=False, default_value=_b("").decode('utf-8'),
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            serialized_options=None, file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
            name='solution_hint', full_name='optilab.OptModelProto.solution_hint', index=5,
            number=6, 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=[
    ],
    serialized_start=399,
    serialized_end=625,
)


_OPTIONALDOUBLE = _descriptor.Descriptor(
    name='OptionalDouble',
    full_name='optilab.OptionalDouble',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='value', full_name='optilab.OptionalDouble.value', index=0,
            number=1, type=1, cpp_type=5, label=1,
            has_default_value=False, default_value=float(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=627,
    serialized_end=658,
)


_OPTIONALBOOLEAN = _descriptor.Descriptor(
    name='OptionalBoolean',
    full_name='optilab.OptionalBoolean',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='value', full_name='optilab.OptionalBoolean.value', index=0,
            number=1, 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=660,
    serialized_end=692,
)


_OPTSOLVERPARAMSETPROTO = _descriptor.Descriptor(
    name='OptSolverParamsetProto',
    full_name='optilab.OptSolverParamsetProto',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='relative_mip_gap',
            full_name='optilab.OptSolverParamsetProto.relative_mip_gap',
            index=0,
            number=1,
            type=11,
            cpp_type=10,
            label=1,
            has_default_value=False,
            default_value=None,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
            name='primal_tolerance',
            full_name='optilab.OptSolverParamsetProto.primal_tolerance',
            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),
        _descriptor.FieldDescriptor(
            name='dual_tolerance',
            full_name='optilab.OptSolverParamsetProto.dual_tolerance',
            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),
        _descriptor.FieldDescriptor(
            name='lp_algorithm',
            full_name='optilab.OptSolverParamsetProto.lp_algorithm',
            index=3,
            number=4,
            type=14,
            cpp_type=8,
            label=1,
            has_default_value=False,
            default_value=0,
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
            name='presolve',
            full_name='optilab.OptSolverParamsetProto.presolve',
            index=4,
            number=5,
            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),
        _descriptor.FieldDescriptor(
            name='scaling',
            full_name='optilab.OptSolverParamsetProto.scaling',
            index=5,
            number=7,
            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=[
        _OPTSOLVERPARAMSETPROTO_LPALGORITHMVALUES,
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[],
    serialized_start=695,
    serialized_end=1135,
)


_LINEARMODELSPECPROTO = _descriptor.Descriptor(
    name='LinearModelSpecProto',
    full_name='optilab.LinearModelSpecProto',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='model_id', full_name='optilab.LinearModelSpecProto.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='model', full_name='optilab.LinearModelSpecProto.model', index=1,
            number=10, 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),
        _descriptor.FieldDescriptor(
            name='model_path', full_name='optilab.LinearModelSpecProto.model_path', index=2,
            number=11, 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='class_type', full_name='optilab.LinearModelSpecProto.class_type', index=3,
            number=2, type=14, cpp_type=8, label=1,
            has_default_value=False, default_value=0,
            message_type=None, enum_type=None, containing_type=None,
            is_extension=False, extension_scope=None,
            serialized_options=None, file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
            name='package_type', full_name='optilab.LinearModelSpecProto.package_type', index=4,
            number=3, 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=[
        _LINEARMODELSPECPROTO_CLASSTYPE,
        _LINEARMODELSPECPROTO_PACKAGETYPE,
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
        _descriptor.OneofDescriptor(
            name='model_description', full_name='optilab.LinearModelSpecProto.model_description',
            index=0, containing_type=None, fields=[]),
    ],
    serialized_start=1138,
    serialized_end=1543,
)


_LINEARVARIABLESOLUTIONPROTO = _descriptor.Descriptor(
    name='LinearVariableSolutionProto',
    full_name='optilab.LinearVariableSolutionProto',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='var_name',
            full_name='optilab.LinearVariableSolutionProto.var_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=None,
            file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
            name='var_value',
            full_name='optilab.LinearVariableSolutionProto.var_value',
            index=1,
            number=2,
            type=1,
            cpp_type=5,
            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=1545,
    serialized_end=1611,
)


_LINEARMODELSOLUTIONPROTO = _descriptor.Descriptor(
    name='LinearModelSolutionProto',
    full_name='optilab.LinearModelSolutionProto',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    fields=[
        _descriptor.FieldDescriptor(
            name='status',
            full_name='optilab.LinearModelSolutionProto.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.LinearModelSolutionProto.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='objective_value',
            full_name='optilab.LinearModelSolutionProto.objective_value',
            index=2,
            number=3,
            type=1,
            cpp_type=5,
            label=1,
            has_default_value=False,
            default_value=float(0),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
            name='best_objective_bound',
            full_name='optilab.LinearModelSolutionProto.best_objective_bound',
            index=3,
            number=4,
            type=1,
            cpp_type=5,
            label=1,
            has_default_value=False,
            default_value=float(0),
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR),
        _descriptor.FieldDescriptor(
            name='variable_assign',
            full_name='optilab.LinearModelSolutionProto.variable_assign',
            index=4,
            number=5,
            type=11,
            cpp_type=10,
            label=3,
            has_default_value=False,
            default_value=[],
            message_type=None,
            enum_type=None,
            containing_type=None,
            is_extension=False,
            extension_scope=None,
            serialized_options=None,
            file=DESCRIPTOR),
    ],
    extensions=[],
    nested_types=[],
    enum_types=[],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[],
    serialized_start=1614,
    serialized_end=1835,
)

_OPTMODELPROTO.fields_by_name['variable'].message_type = _OPTVARIABLEPROTO
_OPTMODELPROTO.fields_by_name['constraint'].message_type = _OPTCONSTRAINTPROTO
_OPTMODELPROTO.fields_by_name['solution_hint'].message_type = _PARTIALVARIABLEASSIGNMENT
_OPTSOLVERPARAMSETPROTO.fields_by_name['relative_mip_gap'].message_type = _OPTIONALDOUBLE
_OPTSOLVERPARAMSETPROTO.fields_by_name['primal_tolerance'].message_type = _OPTIONALDOUBLE
_OPTSOLVERPARAMSETPROTO.fields_by_name['dual_tolerance'].message_type = _OPTIONALDOUBLE
_OPTSOLVERPARAMSETPROTO.fields_by_name['lp_algorithm'].enum_type = _OPTSOLVERPARAMSETPROTO_LPALGORITHMVALUES
_OPTSOLVERPARAMSETPROTO.fields_by_name['presolve'].message_type = _OPTIONALBOOLEAN
_OPTSOLVERPARAMSETPROTO.fields_by_name['scaling'].message_type = _OPTIONALBOOLEAN
_OPTSOLVERPARAMSETPROTO_LPALGORITHMVALUES.containing_type = _OPTSOLVERPARAMSETPROTO
_LINEARMODELSPECPROTO.fields_by_name['model'].message_type = _OPTMODELPROTO
_LINEARMODELSPECPROTO.fields_by_name['class_type'].enum_type = _LINEARMODELSPECPROTO_CLASSTYPE
_LINEARMODELSPECPROTO.fields_by_name['package_type'].enum_type = _LINEARMODELSPECPROTO_PACKAGETYPE
_LINEARMODELSPECPROTO_CLASSTYPE.containing_type = _LINEARMODELSPECPROTO
_LINEARMODELSPECPROTO_PACKAGETYPE.containing_type = _LINEARMODELSPECPROTO
_LINEARMODELSPECPROTO.oneofs_by_name['model_description'].fields.append(
    _LINEARMODELSPECPROTO.fields_by_name['model'])
_LINEARMODELSPECPROTO.fields_by_name['model'].containing_oneof = _LINEARMODELSPECPROTO.oneofs_by_name['model_description']
_LINEARMODELSPECPROTO.oneofs_by_name['model_description'].fields.append(
    _LINEARMODELSPECPROTO.fields_by_name['model_path'])
_LINEARMODELSPECPROTO.fields_by_name['model_path'].containing_oneof = _LINEARMODELSPECPROTO.oneofs_by_name['model_description']
_LINEARMODELSOLUTIONPROTO.fields_by_name['status'].enum_type = _LINEARMODELSOLUTIONSTATUSPROTO
_LINEARMODELSOLUTIONPROTO.fields_by_name['variable_assign'].message_type = _LINEARVARIABLESOLUTIONPROTO
DESCRIPTOR.message_types_by_name['OptVariableProto'] = _OPTVARIABLEPROTO
DESCRIPTOR.message_types_by_name['PartialVariableAssignment'] = _PARTIALVARIABLEASSIGNMENT
DESCRIPTOR.message_types_by_name['OptConstraintProto'] = _OPTCONSTRAINTPROTO
DESCRIPTOR.message_types_by_name['OptModelProto'] = _OPTMODELPROTO
DESCRIPTOR.message_types_by_name['OptionalDouble'] = _OPTIONALDOUBLE
DESCRIPTOR.message_types_by_name['OptionalBoolean'] = _OPTIONALBOOLEAN
DESCRIPTOR.message_types_by_name['OptSolverParamsetProto'] = _OPTSOLVERPARAMSETPROTO
DESCRIPTOR.message_types_by_name['LinearModelSpecProto'] = _LINEARMODELSPECPROTO
DESCRIPTOR.message_types_by_name['LinearVariableSolutionProto'] = _LINEARVARIABLESOLUTIONPROTO
DESCRIPTOR.message_types_by_name['LinearModelSolutionProto'] = _LINEARMODELSOLUTIONPROTO
DESCRIPTOR.enum_types_by_name['LinearModelSolutionStatusProto'] = _LINEARMODELSOLUTIONSTATUSPROTO
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

OptVariableProto = _reflection.GeneratedProtocolMessageType('OptVariableProto', (_message.Message,), dict(
    DESCRIPTOR=_OPTVARIABLEPROTO,
    __module__='linear_model_pb2'
    # @@protoc_insertion_point(class_scope:optilab.OptVariableProto)
))
_sym_db.RegisterMessage(OptVariableProto)

PartialVariableAssignment = _reflection.GeneratedProtocolMessageType('PartialVariableAssignment', (_message.Message,), dict(
    DESCRIPTOR=_PARTIALVARIABLEASSIGNMENT,
    __module__='linear_model_pb2'
    # @@protoc_insertion_point(class_scope:optilab.PartialVariableAssignment)
))
_sym_db.RegisterMessage(PartialVariableAssignment)

OptConstraintProto = _reflection.GeneratedProtocolMessageType('OptConstraintProto', (_message.Message,), dict(
    DESCRIPTOR=_OPTCONSTRAINTPROTO,
    __module__='linear_model_pb2'
    # @@protoc_insertion_point(class_scope:optilab.OptConstraintProto)
))
_sym_db.RegisterMessage(OptConstraintProto)

OptModelProto = _reflection.GeneratedProtocolMessageType('OptModelProto', (_message.Message,), dict(
    DESCRIPTOR=_OPTMODELPROTO,
    __module__='linear_model_pb2'
    # @@protoc_insertion_point(class_scope:optilab.OptModelProto)
))
_sym_db.RegisterMessage(OptModelProto)

OptionalDouble = _reflection.GeneratedProtocolMessageType('OptionalDouble', (_message.Message,), dict(
    DESCRIPTOR=_OPTIONALDOUBLE,
    __module__='linear_model_pb2'
    # @@protoc_insertion_point(class_scope:optilab.OptionalDouble)
))
_sym_db.RegisterMessage(OptionalDouble)

OptionalBoolean = _reflection.GeneratedProtocolMessageType('OptionalBoolean', (_message.Message,), dict(
    DESCRIPTOR=_OPTIONALBOOLEAN,
    __module__='linear_model_pb2'
    # @@protoc_insertion_point(class_scope:optilab.OptionalBoolean)
))
_sym_db.RegisterMessage(OptionalBoolean)

OptSolverParamsetProto = _reflection.GeneratedProtocolMessageType('OptSolverParamsetProto', (_message.Message,), dict(
    DESCRIPTOR=_OPTSOLVERPARAMSETPROTO,
    __module__='linear_model_pb2'
    # @@protoc_insertion_point(class_scope:optilab.OptSolverParamsetProto)
))
_sym_db.RegisterMessage(OptSolverParamsetProto)

LinearModelSpecProto = _reflection.GeneratedProtocolMessageType('LinearModelSpecProto', (_message.Message,), dict(
    DESCRIPTOR=_LINEARMODELSPECPROTO,
    __module__='linear_model_pb2'
    # @@protoc_insertion_point(class_scope:optilab.LinearModelSpecProto)
))
_sym_db.RegisterMessage(LinearModelSpecProto)

LinearVariableSolutionProto = _reflection.GeneratedProtocolMessageType('LinearVariableSolutionProto', (_message.Message,), dict(
    DESCRIPTOR=_LINEARVARIABLESOLUTIONPROTO,
    __module__='linear_model_pb2'
    # @@protoc_insertion_point(class_scope:optilab.LinearVariableSolutionProto)
))
_sym_db.RegisterMessage(LinearVariableSolutionProto)

LinearModelSolutionProto = _reflection.GeneratedProtocolMessageType('LinearModelSolutionProto', (_message.Message,), dict(
    DESCRIPTOR=_LINEARMODELSOLUTIONPROTO,
    __module__='linear_model_pb2'
    # @@protoc_insertion_point(class_scope:optilab.LinearModelSolutionProto)
))
_sym_db.RegisterMessage(LinearModelSolutionProto)


_PARTIALVARIABLEASSIGNMENT.fields_by_name['var_index']._options = None
_PARTIALVARIABLEASSIGNMENT.fields_by_name['var_value']._options = None
# @@protoc_insertion_point(module_scope)
