# coding: utf-8

"""
    EVE Swagger Interface

    An OpenAPI for EVE Online  # noqa: E501

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


import pprint
import re  # noqa: F401

import six

from swagger_client.models.get_universe_stations_station_id_position import GetUniverseStationsStationIdPosition  # noqa: F401,E501


class GetUniverseStationsStationIdOk(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 = {
        'station_id': 'int',
        'name': 'str',
        'owner': 'int',
        'type_id': 'int',
        'race_id': 'int',
        'position': 'GetUniverseStationsStationIdPosition',
        'system_id': 'int',
        'reprocessing_efficiency': 'float',
        'reprocessing_stations_take': 'float',
        'max_dockable_ship_volume': 'float',
        'office_rental_cost': 'float',
        'services': 'list[str]'
    }

    attribute_map = {
        'station_id': 'station_id',
        'name': 'name',
        'owner': 'owner',
        'type_id': 'type_id',
        'race_id': 'race_id',
        'position': 'position',
        'system_id': 'system_id',
        'reprocessing_efficiency': 'reprocessing_efficiency',
        'reprocessing_stations_take': 'reprocessing_stations_take',
        'max_dockable_ship_volume': 'max_dockable_ship_volume',
        'office_rental_cost': 'office_rental_cost',
        'services': 'services'
    }

    def __init__(self, station_id=None, name=None, owner=None, type_id=None, race_id=None, position=None, system_id=None, reprocessing_efficiency=None, reprocessing_stations_take=None, max_dockable_ship_volume=None, office_rental_cost=None, services=None):  # noqa: E501
        """GetUniverseStationsStationIdOk - a model defined in Swagger"""  # noqa: E501

        self._station_id = None
        self._name = None
        self._owner = None
        self._type_id = None
        self._race_id = None
        self._position = None
        self._system_id = None
        self._reprocessing_efficiency = None
        self._reprocessing_stations_take = None
        self._max_dockable_ship_volume = None
        self._office_rental_cost = None
        self._services = None
        self.discriminator = None

        self.station_id = station_id
        self.name = name
        if owner is not None:
            self.owner = owner
        self.type_id = type_id
        if race_id is not None:
            self.race_id = race_id
        self.position = position
        self.system_id = system_id
        self.reprocessing_efficiency = reprocessing_efficiency
        self.reprocessing_stations_take = reprocessing_stations_take
        self.max_dockable_ship_volume = max_dockable_ship_volume
        self.office_rental_cost = office_rental_cost
        self.services = services

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

        station_id integer  # noqa: E501

        :return: The station_id of this GetUniverseStationsStationIdOk.  # noqa: E501
        :rtype: int
        """
        return self._station_id

    @station_id.setter
    def station_id(self, station_id):
        """Sets the station_id of this GetUniverseStationsStationIdOk.

        station_id integer  # noqa: E501

        :param station_id: The station_id of this GetUniverseStationsStationIdOk.  # noqa: E501
        :type: int
        """
        if station_id is None:
            raise ValueError("Invalid value for `station_id`, must not be `None`")  # noqa: E501

        self._station_id = station_id

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

        name string  # noqa: E501

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

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

        name string  # noqa: E501

        :param name: The name of this GetUniverseStationsStationIdOk.  # noqa: E501
        :type: str
        """
        if name is None:
            raise ValueError("Invalid value for `name`, must not be `None`")  # noqa: E501

        self._name = name

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

        ID of the corporation that controls this station  # noqa: E501

        :return: The owner of this GetUniverseStationsStationIdOk.  # noqa: E501
        :rtype: int
        """
        return self._owner

    @owner.setter
    def owner(self, owner):
        """Sets the owner of this GetUniverseStationsStationIdOk.

        ID of the corporation that controls this station  # noqa: E501

        :param owner: The owner of this GetUniverseStationsStationIdOk.  # noqa: E501
        :type: int
        """

        self._owner = owner

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

        type_id integer  # noqa: E501

        :return: The type_id of this GetUniverseStationsStationIdOk.  # noqa: E501
        :rtype: int
        """
        return self._type_id

    @type_id.setter
    def type_id(self, type_id):
        """Sets the type_id of this GetUniverseStationsStationIdOk.

        type_id integer  # noqa: E501

        :param type_id: The type_id of this GetUniverseStationsStationIdOk.  # noqa: E501
        :type: int
        """
        if type_id is None:
            raise ValueError("Invalid value for `type_id`, must not be `None`")  # noqa: E501

        self._type_id = type_id

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

        race_id integer  # noqa: E501

        :return: The race_id of this GetUniverseStationsStationIdOk.  # noqa: E501
        :rtype: int
        """
        return self._race_id

    @race_id.setter
    def race_id(self, race_id):
        """Sets the race_id of this GetUniverseStationsStationIdOk.

        race_id integer  # noqa: E501

        :param race_id: The race_id of this GetUniverseStationsStationIdOk.  # noqa: E501
        :type: int
        """

        self._race_id = race_id

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


        :return: The position of this GetUniverseStationsStationIdOk.  # noqa: E501
        :rtype: GetUniverseStationsStationIdPosition
        """
        return self._position

    @position.setter
    def position(self, position):
        """Sets the position of this GetUniverseStationsStationIdOk.


        :param position: The position of this GetUniverseStationsStationIdOk.  # noqa: E501
        :type: GetUniverseStationsStationIdPosition
        """
        if position is None:
            raise ValueError("Invalid value for `position`, must not be `None`")  # noqa: E501

        self._position = position

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

        The solar system this station is in  # noqa: E501

        :return: The system_id of this GetUniverseStationsStationIdOk.  # noqa: E501
        :rtype: int
        """
        return self._system_id

    @system_id.setter
    def system_id(self, system_id):
        """Sets the system_id of this GetUniverseStationsStationIdOk.

        The solar system this station is in  # noqa: E501

        :param system_id: The system_id of this GetUniverseStationsStationIdOk.  # noqa: E501
        :type: int
        """
        if system_id is None:
            raise ValueError("Invalid value for `system_id`, must not be `None`")  # noqa: E501

        self._system_id = system_id

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

        reprocessing_efficiency number  # noqa: E501

        :return: The reprocessing_efficiency of this GetUniverseStationsStationIdOk.  # noqa: E501
        :rtype: float
        """
        return self._reprocessing_efficiency

    @reprocessing_efficiency.setter
    def reprocessing_efficiency(self, reprocessing_efficiency):
        """Sets the reprocessing_efficiency of this GetUniverseStationsStationIdOk.

        reprocessing_efficiency number  # noqa: E501

        :param reprocessing_efficiency: The reprocessing_efficiency of this GetUniverseStationsStationIdOk.  # noqa: E501
        :type: float
        """
        if reprocessing_efficiency is None:
            raise ValueError("Invalid value for `reprocessing_efficiency`, must not be `None`")  # noqa: E501

        self._reprocessing_efficiency = reprocessing_efficiency

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

        reprocessing_stations_take number  # noqa: E501

        :return: The reprocessing_stations_take of this GetUniverseStationsStationIdOk.  # noqa: E501
        :rtype: float
        """
        return self._reprocessing_stations_take

    @reprocessing_stations_take.setter
    def reprocessing_stations_take(self, reprocessing_stations_take):
        """Sets the reprocessing_stations_take of this GetUniverseStationsStationIdOk.

        reprocessing_stations_take number  # noqa: E501

        :param reprocessing_stations_take: The reprocessing_stations_take of this GetUniverseStationsStationIdOk.  # noqa: E501
        :type: float
        """
        if reprocessing_stations_take is None:
            raise ValueError("Invalid value for `reprocessing_stations_take`, must not be `None`")  # noqa: E501

        self._reprocessing_stations_take = reprocessing_stations_take

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

        max_dockable_ship_volume number  # noqa: E501

        :return: The max_dockable_ship_volume of this GetUniverseStationsStationIdOk.  # noqa: E501
        :rtype: float
        """
        return self._max_dockable_ship_volume

    @max_dockable_ship_volume.setter
    def max_dockable_ship_volume(self, max_dockable_ship_volume):
        """Sets the max_dockable_ship_volume of this GetUniverseStationsStationIdOk.

        max_dockable_ship_volume number  # noqa: E501

        :param max_dockable_ship_volume: The max_dockable_ship_volume of this GetUniverseStationsStationIdOk.  # noqa: E501
        :type: float
        """
        if max_dockable_ship_volume is None:
            raise ValueError("Invalid value for `max_dockable_ship_volume`, must not be `None`")  # noqa: E501

        self._max_dockable_ship_volume = max_dockable_ship_volume

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

        office_rental_cost number  # noqa: E501

        :return: The office_rental_cost of this GetUniverseStationsStationIdOk.  # noqa: E501
        :rtype: float
        """
        return self._office_rental_cost

    @office_rental_cost.setter
    def office_rental_cost(self, office_rental_cost):
        """Sets the office_rental_cost of this GetUniverseStationsStationIdOk.

        office_rental_cost number  # noqa: E501

        :param office_rental_cost: The office_rental_cost of this GetUniverseStationsStationIdOk.  # noqa: E501
        :type: float
        """
        if office_rental_cost is None:
            raise ValueError("Invalid value for `office_rental_cost`, must not be `None`")  # noqa: E501

        self._office_rental_cost = office_rental_cost

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

        services array  # noqa: E501

        :return: The services of this GetUniverseStationsStationIdOk.  # noqa: E501
        :rtype: list[str]
        """
        return self._services

    @services.setter
    def services(self, services):
        """Sets the services of this GetUniverseStationsStationIdOk.

        services array  # noqa: E501

        :param services: The services of this GetUniverseStationsStationIdOk.  # noqa: E501
        :type: list[str]
        """
        if services is None:
            raise ValueError("Invalid value for `services`, must not be `None`")  # noqa: E501
        allowed_values = ["bounty-missions", "assasination-missions", "courier-missions", "interbus", "reprocessing-plant", "refinery", "market", "black-market", "stock-exchange", "cloning", "surgery", "dna-therapy", "repair-facilities", "factory", "labratory", "gambling", "fitting", "paintshop", "news", "storage", "insurance", "docking", "office-rental", "jump-clone-facility", "loyalty-point-store", "navy-offices", "security-offices"]  # noqa: E501
        if not set(services).issubset(set(allowed_values)):
            raise ValueError(
                "Invalid values for `services` [{0}], must be a subset of [{1}]"  # noqa: E501
                .format(", ".join(map(str, set(services) - set(allowed_values))),  # noqa: E501
                        ", ".join(map(str, allowed_values)))
            )

        self._services = services

    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, GetUniverseStationsStationIdOk):
            return False

        return self.__dict__ == other.__dict__

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