# 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 AssetUpdateRequest(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 = {
        'is_paused': 'bool',
        'running_speed_type': 'AssetRunningSpeedType',
        'running_speed_min': 'float',
        'running_speed_max': 'float',
        'running_speed_unit': 'str',
        'running_speed_reference_monitoring_point_id': 'str',
        'running_speed_sensor_role_type': 'SensorRoleTypeCodes',
        'primary_image_file_id': 'str',
        'name': 'str',
        'abbreviation': 'str',
        'supplier': 'str',
        'manufacturer': 'str',
        'model_name': 'str',
        'location_notes': 'str',
        'notes': 'str',
        'generic_input': 'str',
        'is_operator_view': 'bool',
        'type_id': 'int',
        'category_id': 'int',
        'size_id': 'int',
        'criticality_id': 'int',
        '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',
        'running_speed_harmonic': 'float'
    }

    attribute_map = {
        'is_paused': 'IsPaused',
        'running_speed_type': 'RunningSpeedType',
        'running_speed_min': 'RunningSpeedMin',
        'running_speed_max': 'RunningSpeedMax',
        'running_speed_unit': 'RunningSpeedUnit',
        'running_speed_reference_monitoring_point_id': 'RunningSpeedReferenceMonitoringPointId',
        'running_speed_sensor_role_type': 'RunningSpeedSensorRoleType',
        'primary_image_file_id': 'PrimaryImageFileId',
        'name': 'Name',
        'abbreviation': 'Abbreviation',
        'supplier': 'Supplier',
        'manufacturer': 'Manufacturer',
        'model_name': 'ModelName',
        'location_notes': 'LocationNotes',
        'notes': 'Notes',
        'generic_input': 'GenericInput',
        'is_operator_view': 'IsOperatorView',
        'type_id': 'TypeId',
        'category_id': 'CategoryId',
        'size_id': 'SizeId',
        'criticality_id': 'CriticalityId',
        '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',
        'running_speed_harmonic': 'RunningSpeedHarmonic'
    }

    def __init__(self, is_paused=None, running_speed_type=None, running_speed_min=None, running_speed_max=None, running_speed_unit=None, running_speed_reference_monitoring_point_id=None, running_speed_sensor_role_type=None, primary_image_file_id=None, name=None, abbreviation=None, supplier=None, manufacturer=None, model_name=None, location_notes=None, notes=None, generic_input=None, is_operator_view=None, type_id=None, category_id=None, size_id=None, criticality_id=None, 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, running_speed_harmonic=None):  # noqa: E501
        """AssetUpdateRequest - a model defined in Swagger"""  # noqa: E501
        self._is_paused = None
        self._running_speed_type = None
        self._running_speed_min = None
        self._running_speed_max = None
        self._running_speed_unit = None
        self._running_speed_reference_monitoring_point_id = None
        self._running_speed_sensor_role_type = None
        self._primary_image_file_id = None
        self._name = None
        self._abbreviation = None
        self._supplier = None
        self._manufacturer = None
        self._model_name = None
        self._location_notes = None
        self._notes = None
        self._generic_input = None
        self._is_operator_view = None
        self._type_id = None
        self._category_id = None
        self._size_id = None
        self._criticality_id = None
        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._running_speed_harmonic = None
        self.discriminator = None
        self.is_paused = is_paused
        self.running_speed_type = running_speed_type
        if running_speed_min is not None:
            self.running_speed_min = running_speed_min
        if running_speed_max is not None:
            self.running_speed_max = running_speed_max
        if running_speed_unit is not None:
            self.running_speed_unit = running_speed_unit
        if running_speed_reference_monitoring_point_id is not None:
            self.running_speed_reference_monitoring_point_id = running_speed_reference_monitoring_point_id
        if running_speed_sensor_role_type is not None:
            self.running_speed_sensor_role_type = running_speed_sensor_role_type
        if primary_image_file_id is not None:
            self.primary_image_file_id = primary_image_file_id
        self.name = name
        if abbreviation is not None:
            self.abbreviation = abbreviation
        if supplier is not None:
            self.supplier = supplier
        if manufacturer is not None:
            self.manufacturer = manufacturer
        if model_name is not None:
            self.model_name = model_name
        if location_notes is not None:
            self.location_notes = location_notes
        if notes is not None:
            self.notes = notes
        if generic_input is not None:
            self.generic_input = generic_input
        self.is_operator_view = is_operator_view
        if type_id is not None:
            self.type_id = type_id
        if category_id is not None:
            self.category_id = category_id
        if size_id is not None:
            self.size_id = size_id
        if criticality_id is not None:
            self.criticality_id = criticality_id
        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
        if running_speed_harmonic is not None:
            self.running_speed_harmonic = running_speed_harmonic

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


        :return: The is_paused of this AssetUpdateRequest.  # noqa: E501
        :rtype: bool
        """
        return self._is_paused

    @is_paused.setter
    def is_paused(self, is_paused):
        """Sets the is_paused of this AssetUpdateRequest.


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

        self._is_paused = is_paused

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


        :return: The running_speed_type of this AssetUpdateRequest.  # noqa: E501
        :rtype: AssetRunningSpeedType
        """
        return self._running_speed_type

    @running_speed_type.setter
    def running_speed_type(self, running_speed_type):
        """Sets the running_speed_type of this AssetUpdateRequest.


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

        self._running_speed_type = running_speed_type

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


        :return: The running_speed_min of this AssetUpdateRequest.  # noqa: E501
        :rtype: float
        """
        return self._running_speed_min

    @running_speed_min.setter
    def running_speed_min(self, running_speed_min):
        """Sets the running_speed_min of this AssetUpdateRequest.


        :param running_speed_min: The running_speed_min of this AssetUpdateRequest.  # noqa: E501
        :type: float
        """

        self._running_speed_min = running_speed_min

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


        :return: The running_speed_max of this AssetUpdateRequest.  # noqa: E501
        :rtype: float
        """
        return self._running_speed_max

    @running_speed_max.setter
    def running_speed_max(self, running_speed_max):
        """Sets the running_speed_max of this AssetUpdateRequest.


        :param running_speed_max: The running_speed_max of this AssetUpdateRequest.  # noqa: E501
        :type: float
        """

        self._running_speed_max = running_speed_max

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


        :return: The running_speed_unit of this AssetUpdateRequest.  # noqa: E501
        :rtype: str
        """
        return self._running_speed_unit

    @running_speed_unit.setter
    def running_speed_unit(self, running_speed_unit):
        """Sets the running_speed_unit of this AssetUpdateRequest.


        :param running_speed_unit: The running_speed_unit of this AssetUpdateRequest.  # noqa: E501
        :type: str
        """

        self._running_speed_unit = running_speed_unit

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


        :return: The running_speed_reference_monitoring_point_id of this AssetUpdateRequest.  # noqa: E501
        :rtype: str
        """
        return self._running_speed_reference_monitoring_point_id

    @running_speed_reference_monitoring_point_id.setter
    def running_speed_reference_monitoring_point_id(self, running_speed_reference_monitoring_point_id):
        """Sets the running_speed_reference_monitoring_point_id of this AssetUpdateRequest.


        :param running_speed_reference_monitoring_point_id: The running_speed_reference_monitoring_point_id of this AssetUpdateRequest.  # noqa: E501
        :type: str
        """

        self._running_speed_reference_monitoring_point_id = running_speed_reference_monitoring_point_id

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


        :return: The running_speed_sensor_role_type of this AssetUpdateRequest.  # noqa: E501
        :rtype: SensorRoleTypeCodes
        """
        return self._running_speed_sensor_role_type

    @running_speed_sensor_role_type.setter
    def running_speed_sensor_role_type(self, running_speed_sensor_role_type):
        """Sets the running_speed_sensor_role_type of this AssetUpdateRequest.


        :param running_speed_sensor_role_type: The running_speed_sensor_role_type of this AssetUpdateRequest.  # noqa: E501
        :type: SensorRoleTypeCodes
        """

        self._running_speed_sensor_role_type = running_speed_sensor_role_type

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


        :return: The primary_image_file_id of this AssetUpdateRequest.  # noqa: E501
        :rtype: str
        """
        return self._primary_image_file_id

    @primary_image_file_id.setter
    def primary_image_file_id(self, primary_image_file_id):
        """Sets the primary_image_file_id of this AssetUpdateRequest.


        :param primary_image_file_id: The primary_image_file_id of this AssetUpdateRequest.  # noqa: E501
        :type: str
        """

        self._primary_image_file_id = primary_image_file_id

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


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

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


        :param name: The name of this AssetUpdateRequest.  # 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 abbreviation(self):
        """Gets the abbreviation of this AssetUpdateRequest.  # noqa: E501


        :return: The abbreviation of this AssetUpdateRequest.  # noqa: E501
        :rtype: str
        """
        return self._abbreviation

    @abbreviation.setter
    def abbreviation(self, abbreviation):
        """Sets the abbreviation of this AssetUpdateRequest.


        :param abbreviation: The abbreviation of this AssetUpdateRequest.  # noqa: E501
        :type: str
        """

        self._abbreviation = abbreviation

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


        :return: The supplier of this AssetUpdateRequest.  # noqa: E501
        :rtype: str
        """
        return self._supplier

    @supplier.setter
    def supplier(self, supplier):
        """Sets the supplier of this AssetUpdateRequest.


        :param supplier: The supplier of this AssetUpdateRequest.  # noqa: E501
        :type: str
        """

        self._supplier = supplier

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


        :return: The manufacturer of this AssetUpdateRequest.  # noqa: E501
        :rtype: str
        """
        return self._manufacturer

    @manufacturer.setter
    def manufacturer(self, manufacturer):
        """Sets the manufacturer of this AssetUpdateRequest.


        :param manufacturer: The manufacturer of this AssetUpdateRequest.  # noqa: E501
        :type: str
        """

        self._manufacturer = manufacturer

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


        :return: The model_name of this AssetUpdateRequest.  # noqa: E501
        :rtype: str
        """
        return self._model_name

    @model_name.setter
    def model_name(self, model_name):
        """Sets the model_name of this AssetUpdateRequest.


        :param model_name: The model_name of this AssetUpdateRequest.  # noqa: E501
        :type: str
        """

        self._model_name = model_name

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


        :return: The location_notes of this AssetUpdateRequest.  # noqa: E501
        :rtype: str
        """
        return self._location_notes

    @location_notes.setter
    def location_notes(self, location_notes):
        """Sets the location_notes of this AssetUpdateRequest.


        :param location_notes: The location_notes of this AssetUpdateRequest.  # noqa: E501
        :type: str
        """

        self._location_notes = location_notes

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


        :return: The notes of this AssetUpdateRequest.  # noqa: E501
        :rtype: str
        """
        return self._notes

    @notes.setter
    def notes(self, notes):
        """Sets the notes of this AssetUpdateRequest.


        :param notes: The notes of this AssetUpdateRequest.  # noqa: E501
        :type: str
        """

        self._notes = notes

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


        :return: The generic_input of this AssetUpdateRequest.  # noqa: E501
        :rtype: str
        """
        return self._generic_input

    @generic_input.setter
    def generic_input(self, generic_input):
        """Sets the generic_input of this AssetUpdateRequest.


        :param generic_input: The generic_input of this AssetUpdateRequest.  # noqa: E501
        :type: str
        """

        self._generic_input = generic_input

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


        :return: The is_operator_view of this AssetUpdateRequest.  # noqa: E501
        :rtype: bool
        """
        return self._is_operator_view

    @is_operator_view.setter
    def is_operator_view(self, is_operator_view):
        """Sets the is_operator_view of this AssetUpdateRequest.


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

        self._is_operator_view = is_operator_view

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


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

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


        :param type_id: The type_id of this AssetUpdateRequest.  # noqa: E501
        :type: int
        """

        self._type_id = type_id

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


        :return: The category_id of this AssetUpdateRequest.  # noqa: E501
        :rtype: int
        """
        return self._category_id

    @category_id.setter
    def category_id(self, category_id):
        """Sets the category_id of this AssetUpdateRequest.


        :param category_id: The category_id of this AssetUpdateRequest.  # noqa: E501
        :type: int
        """

        self._category_id = category_id

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


        :return: The size_id of this AssetUpdateRequest.  # noqa: E501
        :rtype: int
        """
        return self._size_id

    @size_id.setter
    def size_id(self, size_id):
        """Sets the size_id of this AssetUpdateRequest.


        :param size_id: The size_id of this AssetUpdateRequest.  # noqa: E501
        :type: int
        """

        self._size_id = size_id

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


        :return: The criticality_id of this AssetUpdateRequest.  # noqa: E501
        :rtype: int
        """
        return self._criticality_id

    @criticality_id.setter
    def criticality_id(self, criticality_id):
        """Sets the criticality_id of this AssetUpdateRequest.


        :param criticality_id: The criticality_id of this AssetUpdateRequest.  # noqa: E501
        :type: int
        """

        self._criticality_id = criticality_id

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


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

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


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

        self._asset_cost = asset_cost

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


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

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


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

        self._date_installed = date_installed

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


        :return: The annual_run_time of this AssetUpdateRequest.  # 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 AssetUpdateRequest.


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

        self._annual_run_time = annual_run_time

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


        :return: The lost_production_cost of this AssetUpdateRequest.  # 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 AssetUpdateRequest.


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

        self._lost_production_cost = lost_production_cost

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


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

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


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

        self._overhaul_cost = overhaul_cost

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


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

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


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

        self._power_consumption = power_consumption

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


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

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


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

        self._life_expectancy = life_expectancy

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


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

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


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

        self._unscheduled_downtime = unscheduled_downtime

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


        :return: The running_speed_harmonic of this AssetUpdateRequest.  # noqa: E501
        :rtype: float
        """
        return self._running_speed_harmonic

    @running_speed_harmonic.setter
    def running_speed_harmonic(self, running_speed_harmonic):
        """Sets the running_speed_harmonic of this AssetUpdateRequest.


        :param running_speed_harmonic: The running_speed_harmonic of this AssetUpdateRequest.  # noqa: E501
        :type: float
        """

        self._running_speed_harmonic = running_speed_harmonic

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

        return self.__dict__ == other.__dict__

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