# coding: utf-8

from __future__ import absolute_import
from datetime import date, datetime  # noqa: F401

from typing import List, Dict  # noqa: F401

from tapi_server.models.base_model_ import Model
from tapi_server import util


class TapiPathComputationRouteObjectiveFunction(Model):
    """NOTE: This class is auto generated by the swagger code generator program.

    Do not edit the class manually.
    """

    """
    allowed enum values
    """
    MIN_WORK_ROUTE_HOP = "MIN_WORK_ROUTE_HOP"
    MIN_WORK_ROUTE_COST = "MIN_WORK_ROUTE_COST"
    MIN_WORK_ROUTE_LATENCY = "MIN_WORK_ROUTE_LATENCY"
    MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_HOP = "MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_HOP"
    MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_COST = "MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_COST"
    MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_LATENCY = "MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_LATENCY"
    LOAD_BALANCE_MAX_UNUSED_CAPACITY = "LOAD_BALANCE_MAX_UNUSED_CAPACITY"
    def __init__(self):  # noqa: E501
        """TapiPathComputationRouteObjectiveFunction - a model defined in Swagger

        """
        self.swagger_types = {
        }

        self.attribute_map = {
        }

    @classmethod
    def from_dict(cls, dikt) -> 'TapiPathComputationRouteObjectiveFunction':
        """Returns the dict as a model

        :param dikt: A dict.
        :type: dict
        :return: The tapi.path.computation.RouteObjectiveFunction of this TapiPathComputationRouteObjectiveFunction.  # noqa: E501
        :rtype: TapiPathComputationRouteObjectiveFunction
        """
        return util.deserialize_model(dikt, cls)
