# coding: utf-8

"""
PoolStatistics.py

 The Clear BSD License

 Copyright (c) – 2016, NetApp, Inc. All rights reserved.

 Redistribution and use in source and binary forms, with or without modification, are permitted (subject to the limitations in the disclaimer below) provided that the following conditions are met:

 * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

 * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

 * Neither the name of NetApp, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

 NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
"""

from pprint import pformat
from six import iteritems


class PoolStatistics(object):
    """
    NOTE: This class is auto generated by the swagger code generator program.
    Do not edit the class manually.
    """
    def __init__(self):
        """
        PoolStatistics - a model defined in Swagger

        :param dict swaggerTypes: The key is attribute name
                                  and the value is attribute type.
        :param dict attributeMap: The key is attribute name
                                  and the value is json key in definition.
        """
        self.swagger_types = {
            'observed_time': 'datetime',  # (required parameter)
            'observed_time_in_ms': 'int',  # (required parameter)
            'last_reset_time': 'datetime',  # (required parameter)
            'last_reset_time_in_ms': 'int',  # (required parameter)
            'array_id': 'str',  # (required parameter)
            'array_wwn': 'str',  # (required parameter)
            'member_ids_hash': 'str',  # (required parameter)
            'read_ops': 'float',  # (required parameter)
            'read_hit_ops': 'float',  # (required parameter)
            'read_hit_bytes': 'float',  # (required parameter)
            'read_time_total': 'float',  # (required parameter)
            'read_hit_time_total': 'float',  # (required parameter)
            'write_ops': 'float',  # (required parameter)
            'write_time_total': 'float',  # (required parameter)
            'write_hit_time_total': 'float',  # (required parameter)
            'err_redundancy_chk_indeterminate_reads': 'float',  # (required parameter)
            'err_redundancy_chk_recovered_reads': 'float',  # (required parameter)
            'err_redundancy_chk_unrecovered_reads': 'float',  # (required parameter)
            'idle_time': 'float',  # (required parameter)
            'other_ops': 'float',  # (required parameter)
            'other_time_max': 'float',  # (required parameter)
            'other_time_total': 'float',  # (required parameter)
            'read_bytes': 'float',  # (required parameter)
            'read_hit_time_max': 'float',  # (required parameter)
            'read_time_max': 'float',  # (required parameter)
            'write_bytes': 'float',  # (required parameter)
            'write_hit_bytes': 'float',  # (required parameter)
            'write_hit_ops': 'float',  # (required parameter)
            'write_hit_time_max': 'float',  # (required parameter)
            'write_time_max': 'float',  # (required parameter)
            'queue_depth_total': 'float',  # (required parameter)
            'queue_depth_max': 'float',  # (required parameter)
            'flash_cache_read_hit_ops': 'float',  # (required parameter)
            'flash_cache_read_hit_bytes': 'float',  # (required parameter)
            'flash_cache_read_hit_time_total': 'float',  # (required parameter)
            'flash_cache_read_hit_time_max': 'float',  # (required parameter)
            'pool_id': 'str'
        }

        self.attribute_map = {
            'observed_time': 'observedTime',  # (required parameter)
            'observed_time_in_ms': 'observedTimeInMS',  # (required parameter)
            'last_reset_time': 'lastResetTime',  # (required parameter)
            'last_reset_time_in_ms': 'lastResetTimeInMS',  # (required parameter)
            'array_id': 'arrayId',  # (required parameter)
            'array_wwn': 'arrayWwn',  # (required parameter)
            'member_ids_hash': 'memberIdsHash',  # (required parameter)
            'read_ops': 'readOps',  # (required parameter)
            'read_hit_ops': 'readHitOps',  # (required parameter)
            'read_hit_bytes': 'readHitBytes',  # (required parameter)
            'read_time_total': 'readTimeTotal',  # (required parameter)
            'read_hit_time_total': 'readHitTimeTotal',  # (required parameter)
            'write_ops': 'writeOps',  # (required parameter)
            'write_time_total': 'writeTimeTotal',  # (required parameter)
            'write_hit_time_total': 'writeHitTimeTotal',  # (required parameter)
            'err_redundancy_chk_indeterminate_reads': 'errRedundancyChkIndeterminateReads',  # (required parameter)
            'err_redundancy_chk_recovered_reads': 'errRedundancyChkRecoveredReads',  # (required parameter)
            'err_redundancy_chk_unrecovered_reads': 'errRedundancyChkUnrecoveredReads',  # (required parameter)
            'idle_time': 'idleTime',  # (required parameter)
            'other_ops': 'otherOps',  # (required parameter)
            'other_time_max': 'otherTimeMax',  # (required parameter)
            'other_time_total': 'otherTimeTotal',  # (required parameter)
            'read_bytes': 'readBytes',  # (required parameter)
            'read_hit_time_max': 'readHitTimeMax',  # (required parameter)
            'read_time_max': 'readTimeMax',  # (required parameter)
            'write_bytes': 'writeBytes',  # (required parameter)
            'write_hit_bytes': 'writeHitBytes',  # (required parameter)
            'write_hit_ops': 'writeHitOps',  # (required parameter)
            'write_hit_time_max': 'writeHitTimeMax',  # (required parameter)
            'write_time_max': 'writeTimeMax',  # (required parameter)
            'queue_depth_total': 'queueDepthTotal',  # (required parameter)
            'queue_depth_max': 'queueDepthMax',  # (required parameter)
            'flash_cache_read_hit_ops': 'flashCacheReadHitOps',  # (required parameter)
            'flash_cache_read_hit_bytes': 'flashCacheReadHitBytes',  # (required parameter)
            'flash_cache_read_hit_time_total': 'flashCacheReadHitTimeTotal',  # (required parameter)
            'flash_cache_read_hit_time_max': 'flashCacheReadHitTimeMax',  # (required parameter)
            'pool_id': 'poolId'
        }

        self._observed_time = None
        self._observed_time_in_ms = None
        self._last_reset_time = None
        self._last_reset_time_in_ms = None
        self._array_id = None
        self._array_wwn = None
        self._member_ids_hash = None
        self._read_ops = None
        self._read_hit_ops = None
        self._read_hit_bytes = None
        self._read_time_total = None
        self._read_hit_time_total = None
        self._write_ops = None
        self._write_time_total = None
        self._write_hit_time_total = None
        self._err_redundancy_chk_indeterminate_reads = None
        self._err_redundancy_chk_recovered_reads = None
        self._err_redundancy_chk_unrecovered_reads = None
        self._idle_time = None
        self._other_ops = None
        self._other_time_max = None
        self._other_time_total = None
        self._read_bytes = None
        self._read_hit_time_max = None
        self._read_time_max = None
        self._write_bytes = None
        self._write_hit_bytes = None
        self._write_hit_ops = None
        self._write_hit_time_max = None
        self._write_time_max = None
        self._queue_depth_total = None
        self._queue_depth_max = None
        self._flash_cache_read_hit_ops = None
        self._flash_cache_read_hit_bytes = None
        self._flash_cache_read_hit_time_total = None
        self._flash_cache_read_hit_time_max = None
        self._pool_id = None

    @property
    def observed_time(self):
        """
        Gets the observed_time of this PoolStatistics.


        :return: The observed_time of this PoolStatistics.
        :rtype: datetime
        :required/optional: required
        """
        return self._observed_time

    @observed_time.setter
    def observed_time(self, observed_time):
        """
        Sets the observed_time of this PoolStatistics.


        :param observed_time: The observed_time of this PoolStatistics.
        :type: datetime
        """
        self._observed_time = observed_time

    @property
    def observed_time_in_ms(self):
        """
        Gets the observed_time_in_ms of this PoolStatistics.


        :return: The observed_time_in_ms of this PoolStatistics.
        :rtype: int
        :required/optional: required
        """
        return self._observed_time_in_ms

    @observed_time_in_ms.setter
    def observed_time_in_ms(self, observed_time_in_ms):
        """
        Sets the observed_time_in_ms of this PoolStatistics.


        :param observed_time_in_ms: The observed_time_in_ms of this PoolStatistics.
        :type: int
        """
        self._observed_time_in_ms = observed_time_in_ms

    @property
    def last_reset_time(self):
        """
        Gets the last_reset_time of this PoolStatistics.


        :return: The last_reset_time of this PoolStatistics.
        :rtype: datetime
        :required/optional: required
        """
        return self._last_reset_time

    @last_reset_time.setter
    def last_reset_time(self, last_reset_time):
        """
        Sets the last_reset_time of this PoolStatistics.


        :param last_reset_time: The last_reset_time of this PoolStatistics.
        :type: datetime
        """
        self._last_reset_time = last_reset_time

    @property
    def last_reset_time_in_ms(self):
        """
        Gets the last_reset_time_in_ms of this PoolStatistics.


        :return: The last_reset_time_in_ms of this PoolStatistics.
        :rtype: int
        :required/optional: required
        """
        return self._last_reset_time_in_ms

    @last_reset_time_in_ms.setter
    def last_reset_time_in_ms(self, last_reset_time_in_ms):
        """
        Sets the last_reset_time_in_ms of this PoolStatistics.


        :param last_reset_time_in_ms: The last_reset_time_in_ms of this PoolStatistics.
        :type: int
        """
        self._last_reset_time_in_ms = last_reset_time_in_ms

    @property
    def array_id(self):
        """
        Gets the array_id of this PoolStatistics.


        :return: The array_id of this PoolStatistics.
        :rtype: str
        :required/optional: required
        """
        return self._array_id

    @array_id.setter
    def array_id(self, array_id):
        """
        Sets the array_id of this PoolStatistics.


        :param array_id: The array_id of this PoolStatistics.
        :type: str
        """
        self._array_id = array_id

    @property
    def array_wwn(self):
        """
        Gets the array_wwn of this PoolStatistics.


        :return: The array_wwn of this PoolStatistics.
        :rtype: str
        :required/optional: required
        """
        return self._array_wwn

    @array_wwn.setter
    def array_wwn(self, array_wwn):
        """
        Sets the array_wwn of this PoolStatistics.


        :param array_wwn: The array_wwn of this PoolStatistics.
        :type: str
        """
        self._array_wwn = array_wwn

    @property
    def member_ids_hash(self):
        """
        Gets the member_ids_hash of this PoolStatistics.
        Hash of member volume ids.

        :return: The member_ids_hash of this PoolStatistics.
        :rtype: str
        :required/optional: required
        """
        return self._member_ids_hash

    @member_ids_hash.setter
    def member_ids_hash(self, member_ids_hash):
        """
        Sets the member_ids_hash of this PoolStatistics.
        Hash of member volume ids.

        :param member_ids_hash: The member_ids_hash of this PoolStatistics.
        :type: str
        """
        self._member_ids_hash = member_ids_hash

    @property
    def read_ops(self):
        """
        Gets the read_ops of this PoolStatistics.


        :return: The read_ops of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._read_ops

    @read_ops.setter
    def read_ops(self, read_ops):
        """
        Sets the read_ops of this PoolStatistics.


        :param read_ops: The read_ops of this PoolStatistics.
        :type: float
        """
        self._read_ops = read_ops

    @property
    def read_hit_ops(self):
        """
        Gets the read_hit_ops of this PoolStatistics.
        Number of read operations that hit cache

        :return: The read_hit_ops of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._read_hit_ops

    @read_hit_ops.setter
    def read_hit_ops(self, read_hit_ops):
        """
        Sets the read_hit_ops of this PoolStatistics.
        Number of read operations that hit cache

        :param read_hit_ops: The read_hit_ops of this PoolStatistics.
        :type: float
        """
        self._read_hit_ops = read_hit_ops

    @property
    def read_hit_bytes(self):
        """
        Gets the read_hit_bytes of this PoolStatistics.
        Number of bytes read from cache

        :return: The read_hit_bytes of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._read_hit_bytes

    @read_hit_bytes.setter
    def read_hit_bytes(self, read_hit_bytes):
        """
        Sets the read_hit_bytes of this PoolStatistics.
        Number of bytes read from cache

        :param read_hit_bytes: The read_hit_bytes of this PoolStatistics.
        :type: float
        """
        self._read_hit_bytes = read_hit_bytes

    @property
    def read_time_total(self):
        """
        Gets the read_time_total of this PoolStatistics.


        :return: The read_time_total of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._read_time_total

    @read_time_total.setter
    def read_time_total(self, read_time_total):
        """
        Sets the read_time_total of this PoolStatistics.


        :param read_time_total: The read_time_total of this PoolStatistics.
        :type: float
        """
        self._read_time_total = read_time_total

    @property
    def read_hit_time_total(self):
        """
        Gets the read_hit_time_total of this PoolStatistics.


        :return: The read_hit_time_total of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._read_hit_time_total

    @read_hit_time_total.setter
    def read_hit_time_total(self, read_hit_time_total):
        """
        Sets the read_hit_time_total of this PoolStatistics.


        :param read_hit_time_total: The read_hit_time_total of this PoolStatistics.
        :type: float
        """
        self._read_hit_time_total = read_hit_time_total

    @property
    def write_ops(self):
        """
        Gets the write_ops of this PoolStatistics.


        :return: The write_ops of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._write_ops

    @write_ops.setter
    def write_ops(self, write_ops):
        """
        Sets the write_ops of this PoolStatistics.


        :param write_ops: The write_ops of this PoolStatistics.
        :type: float
        """
        self._write_ops = write_ops

    @property
    def write_time_total(self):
        """
        Gets the write_time_total of this PoolStatistics.


        :return: The write_time_total of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._write_time_total

    @write_time_total.setter
    def write_time_total(self, write_time_total):
        """
        Sets the write_time_total of this PoolStatistics.


        :param write_time_total: The write_time_total of this PoolStatistics.
        :type: float
        """
        self._write_time_total = write_time_total

    @property
    def write_hit_time_total(self):
        """
        Gets the write_hit_time_total of this PoolStatistics.


        :return: The write_hit_time_total of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._write_hit_time_total

    @write_hit_time_total.setter
    def write_hit_time_total(self, write_hit_time_total):
        """
        Sets the write_hit_time_total of this PoolStatistics.


        :param write_hit_time_total: The write_hit_time_total of this PoolStatistics.
        :type: float
        """
        self._write_hit_time_total = write_hit_time_total

    @property
    def err_redundancy_chk_indeterminate_reads(self):
        """
        Gets the err_redundancy_chk_indeterminate_reads of this PoolStatistics.


        :return: The err_redundancy_chk_indeterminate_reads of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._err_redundancy_chk_indeterminate_reads

    @err_redundancy_chk_indeterminate_reads.setter
    def err_redundancy_chk_indeterminate_reads(self, err_redundancy_chk_indeterminate_reads):
        """
        Sets the err_redundancy_chk_indeterminate_reads of this PoolStatistics.


        :param err_redundancy_chk_indeterminate_reads: The err_redundancy_chk_indeterminate_reads of this PoolStatistics.
        :type: float
        """
        self._err_redundancy_chk_indeterminate_reads = err_redundancy_chk_indeterminate_reads

    @property
    def err_redundancy_chk_recovered_reads(self):
        """
        Gets the err_redundancy_chk_recovered_reads of this PoolStatistics.


        :return: The err_redundancy_chk_recovered_reads of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._err_redundancy_chk_recovered_reads

    @err_redundancy_chk_recovered_reads.setter
    def err_redundancy_chk_recovered_reads(self, err_redundancy_chk_recovered_reads):
        """
        Sets the err_redundancy_chk_recovered_reads of this PoolStatistics.


        :param err_redundancy_chk_recovered_reads: The err_redundancy_chk_recovered_reads of this PoolStatistics.
        :type: float
        """
        self._err_redundancy_chk_recovered_reads = err_redundancy_chk_recovered_reads

    @property
    def err_redundancy_chk_unrecovered_reads(self):
        """
        Gets the err_redundancy_chk_unrecovered_reads of this PoolStatistics.


        :return: The err_redundancy_chk_unrecovered_reads of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._err_redundancy_chk_unrecovered_reads

    @err_redundancy_chk_unrecovered_reads.setter
    def err_redundancy_chk_unrecovered_reads(self, err_redundancy_chk_unrecovered_reads):
        """
        Sets the err_redundancy_chk_unrecovered_reads of this PoolStatistics.


        :param err_redundancy_chk_unrecovered_reads: The err_redundancy_chk_unrecovered_reads of this PoolStatistics.
        :type: float
        """
        self._err_redundancy_chk_unrecovered_reads = err_redundancy_chk_unrecovered_reads

    @property
    def idle_time(self):
        """
        Gets the idle_time of this PoolStatistics.


        :return: The idle_time of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._idle_time

    @idle_time.setter
    def idle_time(self, idle_time):
        """
        Sets the idle_time of this PoolStatistics.


        :param idle_time: The idle_time of this PoolStatistics.
        :type: float
        """
        self._idle_time = idle_time

    @property
    def other_ops(self):
        """
        Gets the other_ops of this PoolStatistics.


        :return: The other_ops of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._other_ops

    @other_ops.setter
    def other_ops(self, other_ops):
        """
        Sets the other_ops of this PoolStatistics.


        :param other_ops: The other_ops of this PoolStatistics.
        :type: float
        """
        self._other_ops = other_ops

    @property
    def other_time_max(self):
        """
        Gets the other_time_max of this PoolStatistics.


        :return: The other_time_max of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._other_time_max

    @other_time_max.setter
    def other_time_max(self, other_time_max):
        """
        Sets the other_time_max of this PoolStatistics.


        :param other_time_max: The other_time_max of this PoolStatistics.
        :type: float
        """
        self._other_time_max = other_time_max

    @property
    def other_time_total(self):
        """
        Gets the other_time_total of this PoolStatistics.


        :return: The other_time_total of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._other_time_total

    @other_time_total.setter
    def other_time_total(self, other_time_total):
        """
        Sets the other_time_total of this PoolStatistics.


        :param other_time_total: The other_time_total of this PoolStatistics.
        :type: float
        """
        self._other_time_total = other_time_total

    @property
    def read_bytes(self):
        """
        Gets the read_bytes of this PoolStatistics.


        :return: The read_bytes of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._read_bytes

    @read_bytes.setter
    def read_bytes(self, read_bytes):
        """
        Sets the read_bytes of this PoolStatistics.


        :param read_bytes: The read_bytes of this PoolStatistics.
        :type: float
        """
        self._read_bytes = read_bytes

    @property
    def read_hit_time_max(self):
        """
        Gets the read_hit_time_max of this PoolStatistics.


        :return: The read_hit_time_max of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._read_hit_time_max

    @read_hit_time_max.setter
    def read_hit_time_max(self, read_hit_time_max):
        """
        Sets the read_hit_time_max of this PoolStatistics.


        :param read_hit_time_max: The read_hit_time_max of this PoolStatistics.
        :type: float
        """
        self._read_hit_time_max = read_hit_time_max

    @property
    def read_time_max(self):
        """
        Gets the read_time_max of this PoolStatistics.


        :return: The read_time_max of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._read_time_max

    @read_time_max.setter
    def read_time_max(self, read_time_max):
        """
        Sets the read_time_max of this PoolStatistics.


        :param read_time_max: The read_time_max of this PoolStatistics.
        :type: float
        """
        self._read_time_max = read_time_max

    @property
    def write_bytes(self):
        """
        Gets the write_bytes of this PoolStatistics.


        :return: The write_bytes of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._write_bytes

    @write_bytes.setter
    def write_bytes(self, write_bytes):
        """
        Sets the write_bytes of this PoolStatistics.


        :param write_bytes: The write_bytes of this PoolStatistics.
        :type: float
        """
        self._write_bytes = write_bytes

    @property
    def write_hit_bytes(self):
        """
        Gets the write_hit_bytes of this PoolStatistics.
        Number of bytes written to cache

        :return: The write_hit_bytes of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._write_hit_bytes

    @write_hit_bytes.setter
    def write_hit_bytes(self, write_hit_bytes):
        """
        Sets the write_hit_bytes of this PoolStatistics.
        Number of bytes written to cache

        :param write_hit_bytes: The write_hit_bytes of this PoolStatistics.
        :type: float
        """
        self._write_hit_bytes = write_hit_bytes

    @property
    def write_hit_ops(self):
        """
        Gets the write_hit_ops of this PoolStatistics.
        Number of write operations that hit cache

        :return: The write_hit_ops of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._write_hit_ops

    @write_hit_ops.setter
    def write_hit_ops(self, write_hit_ops):
        """
        Sets the write_hit_ops of this PoolStatistics.
        Number of write operations that hit cache

        :param write_hit_ops: The write_hit_ops of this PoolStatistics.
        :type: float
        """
        self._write_hit_ops = write_hit_ops

    @property
    def write_hit_time_max(self):
        """
        Gets the write_hit_time_max of this PoolStatistics.


        :return: The write_hit_time_max of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._write_hit_time_max

    @write_hit_time_max.setter
    def write_hit_time_max(self, write_hit_time_max):
        """
        Sets the write_hit_time_max of this PoolStatistics.


        :param write_hit_time_max: The write_hit_time_max of this PoolStatistics.
        :type: float
        """
        self._write_hit_time_max = write_hit_time_max

    @property
    def write_time_max(self):
        """
        Gets the write_time_max of this PoolStatistics.


        :return: The write_time_max of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._write_time_max

    @write_time_max.setter
    def write_time_max(self, write_time_max):
        """
        Sets the write_time_max of this PoolStatistics.


        :param write_time_max: The write_time_max of this PoolStatistics.
        :type: float
        """
        self._write_time_max = write_time_max

    @property
    def queue_depth_total(self):
        """
        Gets the queue_depth_total of this PoolStatistics.
        Total channel queue depth.

        :return: The queue_depth_total of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._queue_depth_total

    @queue_depth_total.setter
    def queue_depth_total(self, queue_depth_total):
        """
        Sets the queue_depth_total of this PoolStatistics.
        Total channel queue depth.

        :param queue_depth_total: The queue_depth_total of this PoolStatistics.
        :type: float
        """
        self._queue_depth_total = queue_depth_total

    @property
    def queue_depth_max(self):
        """
        Gets the queue_depth_max of this PoolStatistics.
        Maximum channel queue depth.

        :return: The queue_depth_max of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._queue_depth_max

    @queue_depth_max.setter
    def queue_depth_max(self, queue_depth_max):
        """
        Sets the queue_depth_max of this PoolStatistics.
        Maximum channel queue depth.

        :param queue_depth_max: The queue_depth_max of this PoolStatistics.
        :type: float
        """
        self._queue_depth_max = queue_depth_max

    @property
    def flash_cache_read_hit_ops(self):
        """
        Gets the flash_cache_read_hit_ops of this PoolStatistics.
        The number of flash cache read hit operations.

        :return: The flash_cache_read_hit_ops of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._flash_cache_read_hit_ops

    @flash_cache_read_hit_ops.setter
    def flash_cache_read_hit_ops(self, flash_cache_read_hit_ops):
        """
        Sets the flash_cache_read_hit_ops of this PoolStatistics.
        The number of flash cache read hit operations.

        :param flash_cache_read_hit_ops: The flash_cache_read_hit_ops of this PoolStatistics.
        :type: float
        """
        self._flash_cache_read_hit_ops = flash_cache_read_hit_ops

    @property
    def flash_cache_read_hit_bytes(self):
        """
        Gets the flash_cache_read_hit_bytes of this PoolStatistics.
        The number of flash cache read hit bytes.

        :return: The flash_cache_read_hit_bytes of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._flash_cache_read_hit_bytes

    @flash_cache_read_hit_bytes.setter
    def flash_cache_read_hit_bytes(self, flash_cache_read_hit_bytes):
        """
        Sets the flash_cache_read_hit_bytes of this PoolStatistics.
        The number of flash cache read hit bytes.

        :param flash_cache_read_hit_bytes: The flash_cache_read_hit_bytes of this PoolStatistics.
        :type: float
        """
        self._flash_cache_read_hit_bytes = flash_cache_read_hit_bytes

    @property
    def flash_cache_read_hit_time_total(self):
        """
        Gets the flash_cache_read_hit_time_total of this PoolStatistics.
        The sum of all response times for all reads that have cache hits, in microseconds

        :return: The flash_cache_read_hit_time_total of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._flash_cache_read_hit_time_total

    @flash_cache_read_hit_time_total.setter
    def flash_cache_read_hit_time_total(self, flash_cache_read_hit_time_total):
        """
        Sets the flash_cache_read_hit_time_total of this PoolStatistics.
        The sum of all response times for all reads that have cache hits, in microseconds

        :param flash_cache_read_hit_time_total: The flash_cache_read_hit_time_total of this PoolStatistics.
        :type: float
        """
        self._flash_cache_read_hit_time_total = flash_cache_read_hit_time_total

    @property
    def flash_cache_read_hit_time_max(self):
        """
        Gets the flash_cache_read_hit_time_max of this PoolStatistics.
        Maximum I/O time in microseconds for any one read I/O that has a cache hit

        :return: The flash_cache_read_hit_time_max of this PoolStatistics.
        :rtype: float
        :required/optional: required
        """
        return self._flash_cache_read_hit_time_max

    @flash_cache_read_hit_time_max.setter
    def flash_cache_read_hit_time_max(self, flash_cache_read_hit_time_max):
        """
        Sets the flash_cache_read_hit_time_max of this PoolStatistics.
        Maximum I/O time in microseconds for any one read I/O that has a cache hit

        :param flash_cache_read_hit_time_max: The flash_cache_read_hit_time_max of this PoolStatistics.
        :type: float
        """
        self._flash_cache_read_hit_time_max = flash_cache_read_hit_time_max

    @property
    def pool_id(self):
        """
        Gets the pool_id of this PoolStatistics.
        The storage pool or volume group the volume is a member

        :return: The pool_id of this PoolStatistics.
        :rtype: str
        :required/optional: required
        """
        return self._pool_id

    @pool_id.setter
    def pool_id(self, pool_id):
        """
        Sets the pool_id of this PoolStatistics.
        The storage pool or volume group the volume is a member

        :param pool_id: The pool_id of this PoolStatistics.
        :type: str
        """
        self._pool_id = pool_id

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

        for attr, _ in 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 pformat(self.to_dict())

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

    def __eq__(self, other):
        """
        Returns true if both objects are equal
        """
        if self is None or other is None:
            return None
        return self.__dict__ == other.__dict__

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

