# coding: utf-8

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

from typing import List, Dict  # noqa: F401

from gpa_api.models.base_model_ import Model
from gpa_api.models.metric import Metric
from gpa_api import util

from gpa_api.models.metric import Metric  # noqa: E501

class Fluid(Model):
    """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).

    Do not edit the class manually.
    """

    def __init__(self, id=None, nitrogen=None, methane=None, ethane=None, propane=None, i_butane=None, n_butane=None, i_pentane=None, n_pentane=None, n_hexane=None, created_date=None):  # noqa: E501
        """Fluid - a model defined in OpenAPI

        :param id: The id of this Fluid.  # noqa: E501
        :type id: str
        :param nitrogen: The nitrogen of this Fluid.  # noqa: E501
        :type nitrogen: Metric
        :param methane: The methane of this Fluid.  # noqa: E501
        :type methane: Metric
        :param ethane: The ethane of this Fluid.  # noqa: E501
        :type ethane: Metric
        :param propane: The propane of this Fluid.  # noqa: E501
        :type propane: Metric
        :param i_butane: The i_butane of this Fluid.  # noqa: E501
        :type i_butane: Metric
        :param n_butane: The n_butane of this Fluid.  # noqa: E501
        :type n_butane: Metric
        :param i_pentane: The i_pentane of this Fluid.  # noqa: E501
        :type i_pentane: Metric
        :param n_pentane: The n_pentane of this Fluid.  # noqa: E501
        :type n_pentane: Metric
        :param n_hexane: The n_hexane of this Fluid.  # noqa: E501
        :type n_hexane: Metric
        :param created_date: The created_date of this Fluid.  # noqa: E501
        :type created_date: datetime
        """
        self.openapi_types = {
            'id': str,
            'nitrogen': Metric,
            'methane': Metric,
            'ethane': Metric,
            'propane': Metric,
            'i_butane': Metric,
            'n_butane': Metric,
            'i_pentane': Metric,
            'n_pentane': Metric,
            'n_hexane': Metric,
            'created_date': datetime
        }

        self.attribute_map = {
            'id': 'id',
            'nitrogen': 'nitrogen',
            'methane': 'methane',
            'ethane': 'ethane',
            'propane': 'propane',
            'i_butane': 'iButane',
            'n_butane': 'nButane',
            'i_pentane': 'iPentane',
            'n_pentane': 'nPentane',
            'n_hexane': 'nHexane',
            'created_date': 'createdDate'
        }

        self._id = id
        self._nitrogen = nitrogen
        self._methane = methane
        self._ethane = ethane
        self._propane = propane
        self._i_butane = i_butane
        self._n_butane = n_butane
        self._i_pentane = i_pentane
        self._n_pentane = n_pentane
        self._n_hexane = n_hexane
        self._created_date = created_date

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

        :param dikt: A dict.
        :type: dict
        :return: The Fluid of this Fluid.  # noqa: E501
        :rtype: Fluid
        """
        return util.deserialize_model(dikt, cls)

    @property
    def id(self):
        """Gets the id of this Fluid.


        :return: The id of this Fluid.
        :rtype: str
        """
        return self._id

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


        :param id: The id of this Fluid.
        :type id: str
        """

        self._id = id

    @property
    def nitrogen(self):
        """Gets the nitrogen of this Fluid.


        :return: The nitrogen of this Fluid.
        :rtype: Metric
        """
        return self._nitrogen

    @nitrogen.setter
    def nitrogen(self, nitrogen):
        """Sets the nitrogen of this Fluid.


        :param nitrogen: The nitrogen of this Fluid.
        :type nitrogen: Metric
        """

        self._nitrogen = nitrogen

    @property
    def methane(self):
        """Gets the methane of this Fluid.


        :return: The methane of this Fluid.
        :rtype: Metric
        """
        return self._methane

    @methane.setter
    def methane(self, methane):
        """Sets the methane of this Fluid.


        :param methane: The methane of this Fluid.
        :type methane: Metric
        """

        self._methane = methane

    @property
    def ethane(self):
        """Gets the ethane of this Fluid.


        :return: The ethane of this Fluid.
        :rtype: Metric
        """
        return self._ethane

    @ethane.setter
    def ethane(self, ethane):
        """Sets the ethane of this Fluid.


        :param ethane: The ethane of this Fluid.
        :type ethane: Metric
        """

        self._ethane = ethane

    @property
    def propane(self):
        """Gets the propane of this Fluid.


        :return: The propane of this Fluid.
        :rtype: Metric
        """
        return self._propane

    @propane.setter
    def propane(self, propane):
        """Sets the propane of this Fluid.


        :param propane: The propane of this Fluid.
        :type propane: Metric
        """

        self._propane = propane

    @property
    def i_butane(self):
        """Gets the i_butane of this Fluid.


        :return: The i_butane of this Fluid.
        :rtype: Metric
        """
        return self._i_butane

    @i_butane.setter
    def i_butane(self, i_butane):
        """Sets the i_butane of this Fluid.


        :param i_butane: The i_butane of this Fluid.
        :type i_butane: Metric
        """

        self._i_butane = i_butane

    @property
    def n_butane(self):
        """Gets the n_butane of this Fluid.


        :return: The n_butane of this Fluid.
        :rtype: Metric
        """
        return self._n_butane

    @n_butane.setter
    def n_butane(self, n_butane):
        """Sets the n_butane of this Fluid.


        :param n_butane: The n_butane of this Fluid.
        :type n_butane: Metric
        """

        self._n_butane = n_butane

    @property
    def i_pentane(self):
        """Gets the i_pentane of this Fluid.


        :return: The i_pentane of this Fluid.
        :rtype: Metric
        """
        return self._i_pentane

    @i_pentane.setter
    def i_pentane(self, i_pentane):
        """Sets the i_pentane of this Fluid.


        :param i_pentane: The i_pentane of this Fluid.
        :type i_pentane: Metric
        """

        self._i_pentane = i_pentane

    @property
    def n_pentane(self):
        """Gets the n_pentane of this Fluid.


        :return: The n_pentane of this Fluid.
        :rtype: Metric
        """
        return self._n_pentane

    @n_pentane.setter
    def n_pentane(self, n_pentane):
        """Sets the n_pentane of this Fluid.


        :param n_pentane: The n_pentane of this Fluid.
        :type n_pentane: Metric
        """

        self._n_pentane = n_pentane

    @property
    def n_hexane(self):
        """Gets the n_hexane of this Fluid.


        :return: The n_hexane of this Fluid.
        :rtype: Metric
        """
        return self._n_hexane

    @n_hexane.setter
    def n_hexane(self, n_hexane):
        """Sets the n_hexane of this Fluid.


        :param n_hexane: The n_hexane of this Fluid.
        :type n_hexane: Metric
        """

        self._n_hexane = n_hexane

    @property
    def created_date(self):
        """Gets the created_date of this Fluid.


        :return: The created_date of this Fluid.
        :rtype: datetime
        """
        return self._created_date

    @created_date.setter
    def created_date(self, created_date):
        """Sets the created_date of this Fluid.


        :param created_date: The created_date of this Fluid.
        :type created_date: datetime
        """

        self._created_date = created_date
