# coding: utf-8

"""
    GraphHopper Directions API

    You use the GraphHopper Directions API to add route planning, navigation and route optimization to your software. E.g. the Routing API has turn instructions and elevation data and the Route Optimization API solves your logistic problems and supports various constraints like time window and capacity restrictions. Also it is possible to get all distances between all locations with our fast Matrix API.  # noqa: E501

    OpenAPI spec version: 1.0.0
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


import pprint
import re  # noqa: F401

import six

from swagger_client.models.address import Address  # noqa: F401,E501
from swagger_client.models.time_window import TimeWindow  # noqa: F401,E501


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

    Do not edit the class manually.
    """

    """
    Attributes:
      swagger_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    swagger_types = {
        'id': 'str',
        'type': 'str',
        'priority': 'int',
        'name': 'str',
        'address': 'Address',
        'duration': 'int',
        'preparation_time': 'int',
        'time_windows': 'list[TimeWindow]',
        'size': 'list[int]',
        'required_skills': 'list[str]',
        'allowed_vehicles': 'list[str]',
        'disallowed_vehicles': 'list[str]',
        'max_time_in_vehicle': 'int'
    }

    attribute_map = {
        'id': 'id',
        'type': 'type',
        'priority': 'priority',
        'name': 'name',
        'address': 'address',
        'duration': 'duration',
        'preparation_time': 'preparation_time',
        'time_windows': 'time_windows',
        'size': 'size',
        'required_skills': 'required_skills',
        'allowed_vehicles': 'allowed_vehicles',
        'disallowed_vehicles': 'disallowed_vehicles',
        'max_time_in_vehicle': 'max_time_in_vehicle'
    }

    def __init__(self, id=None, type=None, priority=None, name=None, address=None, duration=None, preparation_time=None, time_windows=None, size=None, required_skills=None, allowed_vehicles=None, disallowed_vehicles=None, max_time_in_vehicle=None):  # noqa: E501
        """Service - a model defined in Swagger"""  # noqa: E501

        self._id = None
        self._type = None
        self._priority = None
        self._name = None
        self._address = None
        self._duration = None
        self._preparation_time = None
        self._time_windows = None
        self._size = None
        self._required_skills = None
        self._allowed_vehicles = None
        self._disallowed_vehicles = None
        self._max_time_in_vehicle = None
        self.discriminator = None

        if id is not None:
            self.id = id
        if type is not None:
            self.type = type
        if priority is not None:
            self.priority = priority
        if name is not None:
            self.name = name
        if address is not None:
            self.address = address
        if duration is not None:
            self.duration = duration
        if preparation_time is not None:
            self.preparation_time = preparation_time
        if time_windows is not None:
            self.time_windows = time_windows
        if size is not None:
            self.size = size
        if required_skills is not None:
            self.required_skills = required_skills
        if allowed_vehicles is not None:
            self.allowed_vehicles = allowed_vehicles
        if disallowed_vehicles is not None:
            self.disallowed_vehicles = disallowed_vehicles
        if max_time_in_vehicle is not None:
            self.max_time_in_vehicle = max_time_in_vehicle

    @property
    def id(self):
        """Gets the id of this Service.  # noqa: E501

        Unique identifier of service  # noqa: E501

        :return: The id of this Service.  # noqa: E501
        :rtype: str
        """
        return self._id

    @id.setter
    def id(self, id):
        """Sets the id of this Service.

        Unique identifier of service  # noqa: E501

        :param id: The id of this Service.  # noqa: E501
        :type: str
        """

        self._id = id

    @property
    def type(self):
        """Gets the type of this Service.  # noqa: E501

        type of service  # noqa: E501

        :return: The type of this Service.  # noqa: E501
        :rtype: str
        """
        return self._type

    @type.setter
    def type(self, type):
        """Sets the type of this Service.

        type of service  # noqa: E501

        :param type: The type of this Service.  # noqa: E501
        :type: str
        """
        allowed_values = ["service", "pickup", "delivery"]  # noqa: E501
        if type not in allowed_values:
            raise ValueError(
                "Invalid value for `type` ({0}), must be one of {1}"  # noqa: E501
                .format(type, allowed_values)
            )

        self._type = type

    @property
    def priority(self):
        """Gets the priority of this Service.  # noqa: E501

        priority of service  # noqa: E501

        :return: The priority of this Service.  # noqa: E501
        :rtype: int
        """
        return self._priority

    @priority.setter
    def priority(self, priority):
        """Sets the priority of this Service.

        priority of service  # noqa: E501

        :param priority: The priority of this Service.  # noqa: E501
        :type: int
        """

        self._priority = priority

    @property
    def name(self):
        """Gets the name of this Service.  # noqa: E501

        name of service  # noqa: E501

        :return: The name of this Service.  # noqa: E501
        :rtype: str
        """
        return self._name

    @name.setter
    def name(self, name):
        """Sets the name of this Service.

        name of service  # noqa: E501

        :param name: The name of this Service.  # noqa: E501
        :type: str
        """

        self._name = name

    @property
    def address(self):
        """Gets the address of this Service.  # noqa: E501


        :return: The address of this Service.  # noqa: E501
        :rtype: Address
        """
        return self._address

    @address.setter
    def address(self, address):
        """Sets the address of this Service.


        :param address: The address of this Service.  # noqa: E501
        :type: Address
        """

        self._address = address

    @property
    def duration(self):
        """Gets the duration of this Service.  # noqa: E501

        duration of service, i.e. time in seconds the corresponding activity takes  # noqa: E501

        :return: The duration of this Service.  # noqa: E501
        :rtype: int
        """
        return self._duration

    @duration.setter
    def duration(self, duration):
        """Sets the duration of this Service.

        duration of service, i.e. time in seconds the corresponding activity takes  # noqa: E501

        :param duration: The duration of this Service.  # noqa: E501
        :type: int
        """

        self._duration = duration

    @property
    def preparation_time(self):
        """Gets the preparation_time of this Service.  # noqa: E501

        preparation time of service, e.g. search for a parking space. it only falls due if the location of previous activity differs from this location  # noqa: E501

        :return: The preparation_time of this Service.  # noqa: E501
        :rtype: int
        """
        return self._preparation_time

    @preparation_time.setter
    def preparation_time(self, preparation_time):
        """Sets the preparation_time of this Service.

        preparation time of service, e.g. search for a parking space. it only falls due if the location of previous activity differs from this location  # noqa: E501

        :param preparation_time: The preparation_time of this Service.  # noqa: E501
        :type: int
        """

        self._preparation_time = preparation_time

    @property
    def time_windows(self):
        """Gets the time_windows of this Service.  # noqa: E501

        array of time windows. currently, only a single time window is allowed  # noqa: E501

        :return: The time_windows of this Service.  # noqa: E501
        :rtype: list[TimeWindow]
        """
        return self._time_windows

    @time_windows.setter
    def time_windows(self, time_windows):
        """Sets the time_windows of this Service.

        array of time windows. currently, only a single time window is allowed  # noqa: E501

        :param time_windows: The time_windows of this Service.  # noqa: E501
        :type: list[TimeWindow]
        """

        self._time_windows = time_windows

    @property
    def size(self):
        """Gets the size of this Service.  # noqa: E501

        array of capacity dimensions  # noqa: E501

        :return: The size of this Service.  # noqa: E501
        :rtype: list[int]
        """
        return self._size

    @size.setter
    def size(self, size):
        """Sets the size of this Service.

        array of capacity dimensions  # noqa: E501

        :param size: The size of this Service.  # noqa: E501
        :type: list[int]
        """

        self._size = size

    @property
    def required_skills(self):
        """Gets the required_skills of this Service.  # noqa: E501

        array of required skills  # noqa: E501

        :return: The required_skills of this Service.  # noqa: E501
        :rtype: list[str]
        """
        return self._required_skills

    @required_skills.setter
    def required_skills(self, required_skills):
        """Sets the required_skills of this Service.

        array of required skills  # noqa: E501

        :param required_skills: The required_skills of this Service.  # noqa: E501
        :type: list[str]
        """

        self._required_skills = required_skills

    @property
    def allowed_vehicles(self):
        """Gets the allowed_vehicles of this Service.  # noqa: E501

        array of allowed vehicle ids  # noqa: E501

        :return: The allowed_vehicles of this Service.  # noqa: E501
        :rtype: list[str]
        """
        return self._allowed_vehicles

    @allowed_vehicles.setter
    def allowed_vehicles(self, allowed_vehicles):
        """Sets the allowed_vehicles of this Service.

        array of allowed vehicle ids  # noqa: E501

        :param allowed_vehicles: The allowed_vehicles of this Service.  # noqa: E501
        :type: list[str]
        """

        self._allowed_vehicles = allowed_vehicles

    @property
    def disallowed_vehicles(self):
        """Gets the disallowed_vehicles of this Service.  # noqa: E501

        array of disallowed vehicle ids  # noqa: E501

        :return: The disallowed_vehicles of this Service.  # noqa: E501
        :rtype: list[str]
        """
        return self._disallowed_vehicles

    @disallowed_vehicles.setter
    def disallowed_vehicles(self, disallowed_vehicles):
        """Sets the disallowed_vehicles of this Service.

        array of disallowed vehicle ids  # noqa: E501

        :param disallowed_vehicles: The disallowed_vehicles of this Service.  # noqa: E501
        :type: list[str]
        """

        self._disallowed_vehicles = disallowed_vehicles

    @property
    def max_time_in_vehicle(self):
        """Gets the max_time_in_vehicle of this Service.  # noqa: E501

        max time service can stay in vehicle  # noqa: E501

        :return: The max_time_in_vehicle of this Service.  # noqa: E501
        :rtype: int
        """
        return self._max_time_in_vehicle

    @max_time_in_vehicle.setter
    def max_time_in_vehicle(self, max_time_in_vehicle):
        """Sets the max_time_in_vehicle of this Service.

        max time service can stay in vehicle  # noqa: E501

        :param max_time_in_vehicle: The max_time_in_vehicle of this Service.  # noqa: E501
        :type: int
        """

        self._max_time_in_vehicle = max_time_in_vehicle

    def to_dict(self):
        """Returns the model properties as a dict"""
        result = {}

        for attr, _ in six.iteritems(self.swagger_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, Service):
            return False

        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        return not self == other

# coding: utf-8

"""
    GraphHopper Directions API

    You use the GraphHopper Directions API to add route planning, navigation and route optimization to your software. E.g. the Routing API has turn instructions and elevation data and the Route Optimization API solves your logistic problems and supports various constraints like time window and capacity restrictions. Also it is possible to get all distances between all locations with our fast Matrix API.  # noqa: E501

    OpenAPI spec version: 1.0.0
    
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


import pprint
import re  # noqa: F401

import six

from swagger_client.models.address import Address  # noqa: F401,E501
from swagger_client.models.time_window import TimeWindow  # noqa: F401,E501


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

    Do not edit the class manually.
    """

    """
    Attributes:
      swagger_types (dict): The key is attribute name
                            and the value is attribute type.
      attribute_map (dict): The key is attribute name
                            and the value is json key in definition.
    """
    swagger_types = {
        'id': 'str',
        'type': 'str',
        'priority': 'int',
        'name': 'str',
        'address': 'Address',
        'duration': 'int',
        'preparation_time': 'int',
        'time_windows': 'list[TimeWindow]',
        'size': 'list[int]',
        'required_skills': 'list[str]',
        'allowed_vehicles': 'list[str]',
        'disallowed_vehicles': 'list[str]',
        'max_time_in_vehicle': 'int'
    }

    attribute_map = {
        'id': 'id',
        'type': 'type',
        'priority': 'priority',
        'name': 'name',
        'address': 'address',
        'duration': 'duration',
        'preparation_time': 'preparation_time',
        'time_windows': 'time_windows',
        'size': 'size',
        'required_skills': 'required_skills',
        'allowed_vehicles': 'allowed_vehicles',
        'disallowed_vehicles': 'disallowed_vehicles',
        'max_time_in_vehicle': 'max_time_in_vehicle'
    }

    def __init__(self, id=None, type=None, priority=None, name=None, address=None, duration=None, preparation_time=None, time_windows=None, size=None, required_skills=None, allowed_vehicles=None, disallowed_vehicles=None, max_time_in_vehicle=None):  # noqa: E501
        """Service - a model defined in Swagger"""  # noqa: E501

        self._id = None
        self._type = None
        self._priority = None
        self._name = None
        self._address = None
        self._duration = None
        self._preparation_time = None
        self._time_windows = None
        self._size = None
        self._required_skills = None
        self._allowed_vehicles = None
        self._disallowed_vehicles = None
        self._max_time_in_vehicle = None
        self.discriminator = None

        if id is not None:
            self.id = id
        if type is not None:
            self.type = type
        if priority is not None:
            self.priority = priority
        if name is not None:
            self.name = name
        if address is not None:
            self.address = address
        if duration is not None:
            self.duration = duration
        if preparation_time is not None:
            self.preparation_time = preparation_time
        if time_windows is not None:
            self.time_windows = time_windows
        if size is not None:
            self.size = size
        if required_skills is not None:
            self.required_skills = required_skills
        if allowed_vehicles is not None:
            self.allowed_vehicles = allowed_vehicles
        if disallowed_vehicles is not None:
            self.disallowed_vehicles = disallowed_vehicles
        if max_time_in_vehicle is not None:
            self.max_time_in_vehicle = max_time_in_vehicle

    @property
    def id(self):
        """Gets the id of this Service.  # noqa: E501

        Unique identifier of service  # noqa: E501

        :return: The id of this Service.  # noqa: E501
        :rtype: str
        """
        return self._id

    @id.setter
    def id(self, id):
        """Sets the id of this Service.

        Unique identifier of service  # noqa: E501

        :param id: The id of this Service.  # noqa: E501
        :type: str
        """

        self._id = id

    @property
    def type(self):
        """Gets the type of this Service.  # noqa: E501

        type of service  # noqa: E501

        :return: The type of this Service.  # noqa: E501
        :rtype: str
        """
        return self._type

    @type.setter
    def type(self, type):
        """Sets the type of this Service.

        type of service  # noqa: E501

        :param type: The type of this Service.  # noqa: E501
        :type: str
        """
        allowed_values = ["service", "pickup", "delivery"]  # noqa: E501
        if type not in allowed_values:
            raise ValueError(
                "Invalid value for `type` ({0}), must be one of {1}"  # noqa: E501
                .format(type, allowed_values)
            )

        self._type = type

    @property
    def priority(self):
        """Gets the priority of this Service.  # noqa: E501

        priority of service  # noqa: E501

        :return: The priority of this Service.  # noqa: E501
        :rtype: int
        """
        return self._priority

    @priority.setter
    def priority(self, priority):
        """Sets the priority of this Service.

        priority of service  # noqa: E501

        :param priority: The priority of this Service.  # noqa: E501
        :type: int
        """

        self._priority = priority

    @property
    def name(self):
        """Gets the name of this Service.  # noqa: E501

        name of service  # noqa: E501

        :return: The name of this Service.  # noqa: E501
        :rtype: str
        """
        return self._name

    @name.setter
    def name(self, name):
        """Sets the name of this Service.

        name of service  # noqa: E501

        :param name: The name of this Service.  # noqa: E501
        :type: str
        """

        self._name = name

    @property
    def address(self):
        """Gets the address of this Service.  # noqa: E501


        :return: The address of this Service.  # noqa: E501
        :rtype: Address
        """
        return self._address

    @address.setter
    def address(self, address):
        """Sets the address of this Service.


        :param address: The address of this Service.  # noqa: E501
        :type: Address
        """

        self._address = address

    @property
    def duration(self):
        """Gets the duration of this Service.  # noqa: E501

        duration of service, i.e. time in seconds the corresponding activity takes  # noqa: E501

        :return: The duration of this Service.  # noqa: E501
        :rtype: int
        """
        return self._duration

    @duration.setter
    def duration(self, duration):
        """Sets the duration of this Service.

        duration of service, i.e. time in seconds the corresponding activity takes  # noqa: E501

        :param duration: The duration of this Service.  # noqa: E501
        :type: int
        """

        self._duration = duration

    @property
    def preparation_time(self):
        """Gets the preparation_time of this Service.  # noqa: E501

        preparation time of service, e.g. search for a parking space. it only falls due if the location of previous activity differs from this location  # noqa: E501

        :return: The preparation_time of this Service.  # noqa: E501
        :rtype: int
        """
        return self._preparation_time

    @preparation_time.setter
    def preparation_time(self, preparation_time):
        """Sets the preparation_time of this Service.

        preparation time of service, e.g. search for a parking space. it only falls due if the location of previous activity differs from this location  # noqa: E501

        :param preparation_time: The preparation_time of this Service.  # noqa: E501
        :type: int
        """

        self._preparation_time = preparation_time

    @property
    def time_windows(self):
        """Gets the time_windows of this Service.  # noqa: E501

        array of time windows. currently, only a single time window is allowed  # noqa: E501

        :return: The time_windows of this Service.  # noqa: E501
        :rtype: list[TimeWindow]
        """
        return self._time_windows

    @time_windows.setter
    def time_windows(self, time_windows):
        """Sets the time_windows of this Service.

        array of time windows. currently, only a single time window is allowed  # noqa: E501

        :param time_windows: The time_windows of this Service.  # noqa: E501
        :type: list[TimeWindow]
        """

        self._time_windows = time_windows

    @property
    def size(self):
        """Gets the size of this Service.  # noqa: E501

        array of capacity dimensions  # noqa: E501

        :return: The size of this Service.  # noqa: E501
        :rtype: list[int]
        """
        return self._size

    @size.setter
    def size(self, size):
        """Sets the size of this Service.

        array of capacity dimensions  # noqa: E501

        :param size: The size of this Service.  # noqa: E501
        :type: list[int]
        """

        self._size = size

    @property
    def required_skills(self):
        """Gets the required_skills of this Service.  # noqa: E501

        array of required skills  # noqa: E501

        :return: The required_skills of this Service.  # noqa: E501
        :rtype: list[str]
        """
        return self._required_skills

    @required_skills.setter
    def required_skills(self, required_skills):
        """Sets the required_skills of this Service.

        array of required skills  # noqa: E501

        :param required_skills: The required_skills of this Service.  # noqa: E501
        :type: list[str]
        """

        self._required_skills = required_skills

    @property
    def allowed_vehicles(self):
        """Gets the allowed_vehicles of this Service.  # noqa: E501

        array of allowed vehicle ids  # noqa: E501

        :return: The allowed_vehicles of this Service.  # noqa: E501
        :rtype: list[str]
        """
        return self._allowed_vehicles

    @allowed_vehicles.setter
    def allowed_vehicles(self, allowed_vehicles):
        """Sets the allowed_vehicles of this Service.

        array of allowed vehicle ids  # noqa: E501

        :param allowed_vehicles: The allowed_vehicles of this Service.  # noqa: E501
        :type: list[str]
        """

        self._allowed_vehicles = allowed_vehicles

    @property
    def disallowed_vehicles(self):
        """Gets the disallowed_vehicles of this Service.  # noqa: E501

        array of disallowed vehicle ids  # noqa: E501

        :return: The disallowed_vehicles of this Service.  # noqa: E501
        :rtype: list[str]
        """
        return self._disallowed_vehicles

    @disallowed_vehicles.setter
    def disallowed_vehicles(self, disallowed_vehicles):
        """Sets the disallowed_vehicles of this Service.

        array of disallowed vehicle ids  # noqa: E501

        :param disallowed_vehicles: The disallowed_vehicles of this Service.  # noqa: E501
        :type: list[str]
        """

        self._disallowed_vehicles = disallowed_vehicles

    @property
    def max_time_in_vehicle(self):
        """Gets the max_time_in_vehicle of this Service.  # noqa: E501

        max time service can stay in vehicle  # noqa: E501

        :return: The max_time_in_vehicle of this Service.  # noqa: E501
        :rtype: int
        """
        return self._max_time_in_vehicle

    @max_time_in_vehicle.setter
    def max_time_in_vehicle(self, max_time_in_vehicle):
        """Sets the max_time_in_vehicle of this Service.

        max time service can stay in vehicle  # noqa: E501

        :param max_time_in_vehicle: The max_time_in_vehicle of this Service.  # noqa: E501
        :type: int
        """

        self._max_time_in_vehicle = max_time_in_vehicle

    def to_dict(self):
        """Returns the model properties as a dict"""
        result = {}

        for attr, _ in six.iteritems(self.swagger_types):
            value = getattr(self, attr)
            if isinstance(value, list):
                result[attr] = list(map(
                    lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
                    value
                ))
            elif hasattr(value, "to_dict"):
                result[attr] = value.to_dict()
            elif isinstance(value, dict):
                result[attr] = dict(map(
                    lambda item: (item[0], item[1].to_dict())
                    if hasattr(item[1], "to_dict") else item,
                    value.items()
                ))
            else:
                result[attr] = value

        return result

    def to_str(self):
        """Returns the string representation of the model"""
        return pprint.pformat(self.to_dict())

    def __repr__(self):
        """For `print` and `pprint`"""
        return self.to_str()

    def __eq__(self, other):
        """Returns true if both objects are equal"""
        if not isinstance(other, Service):
            return False

        return self.__dict__ == other.__dict__

    def __ne__(self, other):
        """Returns true if both objects are not equal"""
        return not self == other

# coding: utf-8 GraphHopper Directions API      You use the GraphHopper Directions API to add route planning, navigation and route optimization to your software. E.g. the Routing API has turn instructions and elevation data and the Route Optimization API solves your logistic problems and supports various constraints like time window and capacity restrictions. Also it is possible to get all distances between all locations with our fast Matrix API.  # noqa: E501      OpenAPI spec version: 1.0.0          Generated by: https://github.com/swagger-api/swagger-codegen.git # noqa: F401 # noqa: F401,E501 # noqa: F401,E501 NOTE: This class is auto generated by the swagger code generator program.      Do not edit the class manually. Attributes:       swagger_types (dict): The key is attribute name                             and the value is attribute type.       attribute_map (dict): The key is attribute name                             and the value is json key in definition. # noqa: E501 Service - a model defined in Swagger # noqa: E501 Gets the id of this Service.  # noqa: E501          Unique identifier of service  # noqa: E501          :return: The id of this Service.  # noqa: E501         :rtype: str Sets the id of this Service.          Unique identifier of service  # noqa: E501          :param id: The id of this Service.  # noqa: E501         :type: str Gets the type of this Service.  # noqa: E501          type of service  # noqa: E501          :return: The type of this Service.  # noqa: E501         :rtype: str Sets the type of this Service.          type of service  # noqa: E501          :param type: The type of this Service.  # noqa: E501         :type: str # noqa: E501 # noqa: E501 Gets the priority of this Service.  # noqa: E501          priority of service  # noqa: E501          :return: The priority of this Service.  # noqa: E501         :rtype: int Sets the priority of this Service.          priority of service  # noqa: E501          :param priority: The priority of this Service.  # noqa: E501         :type: int Gets the name of this Service.  # noqa: E501          name of service  # noqa: E501          :return: The name of this Service.  # noqa: E501         :rtype: str Sets the name of this Service.          name of service  # noqa: E501          :param name: The name of this Service.  # noqa: E501         :type: str Gets the address of this Service.  # noqa: E501           :return: The address of this Service.  # noqa: E501         :rtype: Address Sets the address of this Service.           :param address: The address of this Service.  # noqa: E501         :type: Address Gets the duration of this Service.  # noqa: E501          duration of service, i.e. time in seconds the corresponding activity takes  # noqa: E501          :return: The duration of this Service.  # noqa: E501         :rtype: int Sets the duration of this Service.          duration of service, i.e. time in seconds the corresponding activity takes  # noqa: E501          :param duration: The duration of this Service.  # noqa: E501         :type: int Gets the preparation_time of this Service.  # noqa: E501          preparation time of service, e.g. search for a parking space. it only falls due if the location of previous activity differs from this location  # noqa: E501          :return: The preparation_time of this Service.  # noqa: E501         :rtype: int Sets the preparation_time of this Service.          preparation time of service, e.g. search for a parking space. it only falls due if the location of previous activity differs from this location  # noqa: E501          :param preparation_time: The preparation_time of this Service.  # noqa: E501         :type: int Gets the time_windows of this Service.  # noqa: E501          array of time windows. currently, only a single time window is allowed  # noqa: E501          :return: The time_windows of this Service.  # noqa: E501         :rtype: list[TimeWindow] Sets the time_windows of this Service.          array of time windows. currently, only a single time window is allowed  # noqa: E501          :param time_windows: The time_windows of this Service.  # noqa: E501         :type: list[TimeWindow] Gets the size of this Service.  # noqa: E501          array of capacity dimensions  # noqa: E501          :return: The size of this Service.  # noqa: E501         :rtype: list[int] Sets the size of this Service.          array of capacity dimensions  # noqa: E501          :param size: The size of this Service.  # noqa: E501         :type: list[int] Gets the required_skills of this Service.  # noqa: E501          array of required skills  # noqa: E501          :return: The required_skills of this Service.  # noqa: E501         :rtype: list[str] Sets the required_skills of this Service.          array of required skills  # noqa: E501          :param required_skills: The required_skills of this Service.  # noqa: E501         :type: list[str] Gets the allowed_vehicles of this Service.  # noqa: E501          array of allowed vehicle ids  # noqa: E501          :return: The allowed_vehicles of this Service.  # noqa: E501         :rtype: list[str] Sets the allowed_vehicles of this Service.          array of allowed vehicle ids  # noqa: E501          :param allowed_vehicles: The allowed_vehicles of this Service.  # noqa: E501         :type: list[str] Gets the disallowed_vehicles of this Service.  # noqa: E501          array of disallowed vehicle ids  # noqa: E501          :return: The disallowed_vehicles of this Service.  # noqa: E501         :rtype: list[str] Sets the disallowed_vehicles of this Service.          array of disallowed vehicle ids  # noqa: E501          :param disallowed_vehicles: The disallowed_vehicles of this Service.  # noqa: E501         :type: list[str] Gets the max_time_in_vehicle of this Service.  # noqa: E501          max time service can stay in vehicle  # noqa: E501          :return: The max_time_in_vehicle of this Service.  # noqa: E501         :rtype: int Sets the max_time_in_vehicle of this Service.          max time service can stay in vehicle  # noqa: E501          :param max_time_in_vehicle: The max_time_in_vehicle of this Service.  # noqa: E501         :type: int Returns the model properties as a dict Returns the string representation of the model For `print` and `pprint` Returns true if both objects are equal Returns true if both objects are not equal