# coding: utf-8

"""
    Internal API

    SmartDiagnostics REST API for internal users only  # noqa: E501

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

import pprint
import re  # noqa: F401

import six

class AssetEconomicsChild(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 = {
        'asset_cost': 'float',
        'date_installed': 'datetime',
        'annual_run_time': 'float',
        'lost_production_cost': 'float',
        'overhaul_cost': 'float',
        'power_consumption': 'float',
        'life_expectancy': 'float',
        'unscheduled_downtime': 'float'
    }

    attribute_map = {
        'asset_cost': 'AssetCost',
        'date_installed': 'DateInstalled',
        'annual_run_time': 'AnnualRunTime',
        'lost_production_cost': 'LostProductionCost',
        'overhaul_cost': 'OverhaulCost',
        'power_consumption': 'PowerConsumption',
        'life_expectancy': 'LifeExpectancy',
        'unscheduled_downtime': 'UnscheduledDowntime'
    }

    def __init__(self, asset_cost=None, date_installed=None, annual_run_time=None, lost_production_cost=None, overhaul_cost=None, power_consumption=None, life_expectancy=None, unscheduled_downtime=None):  # noqa: E501
        """AssetEconomicsChild - a model defined in Swagger"""  # noqa: E501
        self._asset_cost = None
        self._date_installed = None
        self._annual_run_time = None
        self._lost_production_cost = None
        self._overhaul_cost = None
        self._power_consumption = None
        self._life_expectancy = None
        self._unscheduled_downtime = None
        self.discriminator = None
        if asset_cost is not None:
            self.asset_cost = asset_cost
        if date_installed is not None:
            self.date_installed = date_installed
        if annual_run_time is not None:
            self.annual_run_time = annual_run_time
        if lost_production_cost is not None:
            self.lost_production_cost = lost_production_cost
        if overhaul_cost is not None:
            self.overhaul_cost = overhaul_cost
        if power_consumption is not None:
            self.power_consumption = power_consumption
        if life_expectancy is not None:
            self.life_expectancy = life_expectancy
        if unscheduled_downtime is not None:
            self.unscheduled_downtime = unscheduled_downtime

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


        :return: The asset_cost of this AssetEconomicsChild.  # noqa: E501
        :rtype: float
        """
        return self._asset_cost

    @asset_cost.setter
    def asset_cost(self, asset_cost):
        """Sets the asset_cost of this AssetEconomicsChild.


        :param asset_cost: The asset_cost of this AssetEconomicsChild.  # noqa: E501
        :type: float
        """

        self._asset_cost = asset_cost

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


        :return: The date_installed of this AssetEconomicsChild.  # noqa: E501
        :rtype: datetime
        """
        return self._date_installed

    @date_installed.setter
    def date_installed(self, date_installed):
        """Sets the date_installed of this AssetEconomicsChild.


        :param date_installed: The date_installed of this AssetEconomicsChild.  # noqa: E501
        :type: datetime
        """

        self._date_installed = date_installed

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


        :return: The annual_run_time of this AssetEconomicsChild.  # noqa: E501
        :rtype: float
        """
        return self._annual_run_time

    @annual_run_time.setter
    def annual_run_time(self, annual_run_time):
        """Sets the annual_run_time of this AssetEconomicsChild.


        :param annual_run_time: The annual_run_time of this AssetEconomicsChild.  # noqa: E501
        :type: float
        """

        self._annual_run_time = annual_run_time

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


        :return: The lost_production_cost of this AssetEconomicsChild.  # noqa: E501
        :rtype: float
        """
        return self._lost_production_cost

    @lost_production_cost.setter
    def lost_production_cost(self, lost_production_cost):
        """Sets the lost_production_cost of this AssetEconomicsChild.


        :param lost_production_cost: The lost_production_cost of this AssetEconomicsChild.  # noqa: E501
        :type: float
        """

        self._lost_production_cost = lost_production_cost

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


        :return: The overhaul_cost of this AssetEconomicsChild.  # noqa: E501
        :rtype: float
        """
        return self._overhaul_cost

    @overhaul_cost.setter
    def overhaul_cost(self, overhaul_cost):
        """Sets the overhaul_cost of this AssetEconomicsChild.


        :param overhaul_cost: The overhaul_cost of this AssetEconomicsChild.  # noqa: E501
        :type: float
        """

        self._overhaul_cost = overhaul_cost

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


        :return: The power_consumption of this AssetEconomicsChild.  # noqa: E501
        :rtype: float
        """
        return self._power_consumption

    @power_consumption.setter
    def power_consumption(self, power_consumption):
        """Sets the power_consumption of this AssetEconomicsChild.


        :param power_consumption: The power_consumption of this AssetEconomicsChild.  # noqa: E501
        :type: float
        """

        self._power_consumption = power_consumption

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


        :return: The life_expectancy of this AssetEconomicsChild.  # noqa: E501
        :rtype: float
        """
        return self._life_expectancy

    @life_expectancy.setter
    def life_expectancy(self, life_expectancy):
        """Sets the life_expectancy of this AssetEconomicsChild.


        :param life_expectancy: The life_expectancy of this AssetEconomicsChild.  # noqa: E501
        :type: float
        """

        self._life_expectancy = life_expectancy

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


        :return: The unscheduled_downtime of this AssetEconomicsChild.  # noqa: E501
        :rtype: float
        """
        return self._unscheduled_downtime

    @unscheduled_downtime.setter
    def unscheduled_downtime(self, unscheduled_downtime):
        """Sets the unscheduled_downtime of this AssetEconomicsChild.


        :param unscheduled_downtime: The unscheduled_downtime of this AssetEconomicsChild.  # noqa: E501
        :type: float
        """

        self._unscheduled_downtime = unscheduled_downtime

    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
        if issubclass(AssetEconomicsChild, dict):
            for key, value in self.items():
                result[key] = 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, AssetEconomicsChild):
            return False

        return self.__dict__ == other.__dict__

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