# coding: utf-8

"""
Copyright 2016 SmartBear Software

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

    Ref: https://github.com/swagger-api/swagger-codegen
"""

from pprint import pformat
from six import iteritems
import re


class ResultDirectoriesTotalUsage(object):
    """
    NOTE: This class is auto generated by the swagger code generator program.
    Do not edit the class manually.
    """
    def __init__(self):
        """
        ResultDirectoriesTotalUsage - 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 = {
            'ads_cnt': 'int',
            'dir_cnt': 'int',
            'file_cnt': 'int',
            'lin': 'int',
            'log_size_sum': 'int',
            'log_size_sum_overflow': 'int',
            'name': 'str',
            'other_cnt': 'int',
            'parent': 'int',
            'phys_size_sum': 'int'
        }

        self.attribute_map = {
            'ads_cnt': 'ads_cnt',
            'dir_cnt': 'dir_cnt',
            'file_cnt': 'file_cnt',
            'lin': 'lin',
            'log_size_sum': 'log_size_sum',
            'log_size_sum_overflow': 'log_size_sum_overflow',
            'name': 'name',
            'other_cnt': 'other_cnt',
            'parent': 'parent',
            'phys_size_sum': 'phys_size_sum'
        }

        self._ads_cnt = None
        self._dir_cnt = None
        self._file_cnt = None
        self._lin = None
        self._log_size_sum = None
        self._log_size_sum_overflow = None
        self._name = None
        self._other_cnt = None
        self._parent = None
        self._phys_size_sum = None

    @property
    def ads_cnt(self):
        """
        Gets the ads_cnt of this ResultDirectoriesTotalUsage.
        Number of alternate data streams.

        :return: The ads_cnt of this ResultDirectoriesTotalUsage.
        :rtype: int
        """
        return self._ads_cnt

    @ads_cnt.setter
    def ads_cnt(self, ads_cnt):
        """
        Sets the ads_cnt of this ResultDirectoriesTotalUsage.
        Number of alternate data streams.

        :param ads_cnt: The ads_cnt of this ResultDirectoriesTotalUsage.
        :type: int
        """
        
        self._ads_cnt = ads_cnt

    @property
    def dir_cnt(self):
        """
        Gets the dir_cnt of this ResultDirectoriesTotalUsage.
        Number of directories.

        :return: The dir_cnt of this ResultDirectoriesTotalUsage.
        :rtype: int
        """
        return self._dir_cnt

    @dir_cnt.setter
    def dir_cnt(self, dir_cnt):
        """
        Sets the dir_cnt of this ResultDirectoriesTotalUsage.
        Number of directories.

        :param dir_cnt: The dir_cnt of this ResultDirectoriesTotalUsage.
        :type: int
        """
        
        self._dir_cnt = dir_cnt

    @property
    def file_cnt(self):
        """
        Gets the file_cnt of this ResultDirectoriesTotalUsage.
        Number of files.

        :return: The file_cnt of this ResultDirectoriesTotalUsage.
        :rtype: int
        """
        return self._file_cnt

    @file_cnt.setter
    def file_cnt(self, file_cnt):
        """
        Sets the file_cnt of this ResultDirectoriesTotalUsage.
        Number of files.

        :param file_cnt: The file_cnt of this ResultDirectoriesTotalUsage.
        :type: int
        """
        
        self._file_cnt = file_cnt

    @property
    def lin(self):
        """
        Gets the lin of this ResultDirectoriesTotalUsage.
        Logical inode number.

        :return: The lin of this ResultDirectoriesTotalUsage.
        :rtype: int
        """
        return self._lin

    @lin.setter
    def lin(self, lin):
        """
        Sets the lin of this ResultDirectoriesTotalUsage.
        Logical inode number.

        :param lin: The lin of this ResultDirectoriesTotalUsage.
        :type: int
        """
        
        self._lin = lin

    @property
    def log_size_sum(self):
        """
        Gets the log_size_sum of this ResultDirectoriesTotalUsage.
        Logical size directory in bytes.

        :return: The log_size_sum of this ResultDirectoriesTotalUsage.
        :rtype: int
        """
        return self._log_size_sum

    @log_size_sum.setter
    def log_size_sum(self, log_size_sum):
        """
        Sets the log_size_sum of this ResultDirectoriesTotalUsage.
        Logical size directory in bytes.

        :param log_size_sum: The log_size_sum of this ResultDirectoriesTotalUsage.
        :type: int
        """
        
        self._log_size_sum = log_size_sum

    @property
    def log_size_sum_overflow(self):
        """
        Gets the log_size_sum_overflow of this ResultDirectoriesTotalUsage.
        Logical size sum of overflow in bytes.

        :return: The log_size_sum_overflow of this ResultDirectoriesTotalUsage.
        :rtype: int
        """
        return self._log_size_sum_overflow

    @log_size_sum_overflow.setter
    def log_size_sum_overflow(self, log_size_sum_overflow):
        """
        Sets the log_size_sum_overflow of this ResultDirectoriesTotalUsage.
        Logical size sum of overflow in bytes.

        :param log_size_sum_overflow: The log_size_sum_overflow of this ResultDirectoriesTotalUsage.
        :type: int
        """
        
        self._log_size_sum_overflow = log_size_sum_overflow

    @property
    def name(self):
        """
        Gets the name of this ResultDirectoriesTotalUsage.
        Name of directory.

        :return: The name of this ResultDirectoriesTotalUsage.
        :rtype: str
        """
        return self._name

    @name.setter
    def name(self, name):
        """
        Sets the name of this ResultDirectoriesTotalUsage.
        Name of directory.

        :param name: The name of this ResultDirectoriesTotalUsage.
        :type: str
        """
        
        self._name = name

    @property
    def other_cnt(self):
        """
        Gets the other_cnt of this ResultDirectoriesTotalUsage.
        Other count.

        :return: The other_cnt of this ResultDirectoriesTotalUsage.
        :rtype: int
        """
        return self._other_cnt

    @other_cnt.setter
    def other_cnt(self, other_cnt):
        """
        Sets the other_cnt of this ResultDirectoriesTotalUsage.
        Other count.

        :param other_cnt: The other_cnt of this ResultDirectoriesTotalUsage.
        :type: int
        """
        
        self._other_cnt = other_cnt

    @property
    def parent(self):
        """
        Gets the parent of this ResultDirectoriesTotalUsage.
        Parent directory inode.

        :return: The parent of this ResultDirectoriesTotalUsage.
        :rtype: int
        """
        return self._parent

    @parent.setter
    def parent(self, parent):
        """
        Sets the parent of this ResultDirectoriesTotalUsage.
        Parent directory inode.

        :param parent: The parent of this ResultDirectoriesTotalUsage.
        :type: int
        """
        
        self._parent = parent

    @property
    def phys_size_sum(self):
        """
        Gets the phys_size_sum of this ResultDirectoriesTotalUsage.
        Physical size directory in bytes.

        :return: The phys_size_sum of this ResultDirectoriesTotalUsage.
        :rtype: int
        """
        return self._phys_size_sum

    @phys_size_sum.setter
    def phys_size_sum(self, phys_size_sum):
        """
        Sets the phys_size_sum of this ResultDirectoriesTotalUsage.
        Physical size directory in bytes.

        :param phys_size_sum: The phys_size_sum of this ResultDirectoriesTotalUsage.
        :type: int
        """
        
        self._phys_size_sum = phys_size_sum

    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`
        """
        return self.to_str()

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

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

