# coding: utf-8

"""
    XMS API

    XMS is the controller of distributed storage system  # noqa: E501

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


import pprint
import re  # noqa: F401
import six


class ObjectStorageUserUpdateReqInfo(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 = {
        'bucket_quota_max_objects': 'int',
        'bucket_quota_max_size': 'int',
        'display_name': 'str',
        'email': 'str',
        'max_buckets': 'int',
        'op_mask': 'str',
        'suspended': 'bool',
        'user_quota_max_objects': 'int',
        'user_quota_max_size': 'int'
    }

    attribute_map = {
        'bucket_quota_max_objects': 'bucket_quota_max_objects',
        'bucket_quota_max_size': 'bucket_quota_max_size',
        'display_name': 'display_name',
        'email': 'email',
        'max_buckets': 'max_buckets',
        'op_mask': 'op_mask',
        'suspended': 'suspended',
        'user_quota_max_objects': 'user_quota_max_objects',
        'user_quota_max_size': 'user_quota_max_size'
    }

    def __init__(self, bucket_quota_max_objects=None, bucket_quota_max_size=None, display_name=None, email=None, max_buckets=None, op_mask=None, suspended=None, user_quota_max_objects=None, user_quota_max_size=None):  # noqa: E501
        """ObjectStorageUserUpdateReqInfo - a model defined in Swagger"""  # noqa: E501

        self._bucket_quota_max_objects = None
        self._bucket_quota_max_size = None
        self._display_name = None
        self._email = None
        self._max_buckets = None
        self._op_mask = None
        self._suspended = None
        self._user_quota_max_objects = None
        self._user_quota_max_size = None
        self.discriminator = None

        if bucket_quota_max_objects is not None:
            self.bucket_quota_max_objects = bucket_quota_max_objects
        if bucket_quota_max_size is not None:
            self.bucket_quota_max_size = bucket_quota_max_size
        if display_name is not None:
            self.display_name = display_name
        if email is not None:
            self.email = email
        if max_buckets is not None:
            self.max_buckets = max_buckets
        if op_mask is not None:
            self.op_mask = op_mask
        if suspended is not None:
            self.suspended = suspended
        if user_quota_max_objects is not None:
            self.user_quota_max_objects = user_quota_max_objects
        if user_quota_max_size is not None:
            self.user_quota_max_size = user_quota_max_size

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


        :return: The bucket_quota_max_objects of this ObjectStorageUserUpdateReqInfo.  # noqa: E501
        :rtype: int
        """
        return self._bucket_quota_max_objects

    @bucket_quota_max_objects.setter
    def bucket_quota_max_objects(self, bucket_quota_max_objects):
        """Sets the bucket_quota_max_objects of this ObjectStorageUserUpdateReqInfo.


        :param bucket_quota_max_objects: The bucket_quota_max_objects of this ObjectStorageUserUpdateReqInfo.  # noqa: E501
        :type: int
        """

        self._bucket_quota_max_objects = bucket_quota_max_objects

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


        :return: The bucket_quota_max_size of this ObjectStorageUserUpdateReqInfo.  # noqa: E501
        :rtype: int
        """
        return self._bucket_quota_max_size

    @bucket_quota_max_size.setter
    def bucket_quota_max_size(self, bucket_quota_max_size):
        """Sets the bucket_quota_max_size of this ObjectStorageUserUpdateReqInfo.


        :param bucket_quota_max_size: The bucket_quota_max_size of this ObjectStorageUserUpdateReqInfo.  # noqa: E501
        :type: int
        """

        self._bucket_quota_max_size = bucket_quota_max_size

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


        :return: The display_name of this ObjectStorageUserUpdateReqInfo.  # noqa: E501
        :rtype: str
        """
        return self._display_name

    @display_name.setter
    def display_name(self, display_name):
        """Sets the display_name of this ObjectStorageUserUpdateReqInfo.


        :param display_name: The display_name of this ObjectStorageUserUpdateReqInfo.  # noqa: E501
        :type: str
        """

        self._display_name = display_name

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


        :return: The email of this ObjectStorageUserUpdateReqInfo.  # noqa: E501
        :rtype: str
        """
        return self._email

    @email.setter
    def email(self, email):
        """Sets the email of this ObjectStorageUserUpdateReqInfo.


        :param email: The email of this ObjectStorageUserUpdateReqInfo.  # noqa: E501
        :type: str
        """

        self._email = email

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


        :return: The max_buckets of this ObjectStorageUserUpdateReqInfo.  # noqa: E501
        :rtype: int
        """
        return self._max_buckets

    @max_buckets.setter
    def max_buckets(self, max_buckets):
        """Sets the max_buckets of this ObjectStorageUserUpdateReqInfo.


        :param max_buckets: The max_buckets of this ObjectStorageUserUpdateReqInfo.  # noqa: E501
        :type: int
        """

        self._max_buckets = max_buckets

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


        :return: The op_mask of this ObjectStorageUserUpdateReqInfo.  # noqa: E501
        :rtype: str
        """
        return self._op_mask

    @op_mask.setter
    def op_mask(self, op_mask):
        """Sets the op_mask of this ObjectStorageUserUpdateReqInfo.


        :param op_mask: The op_mask of this ObjectStorageUserUpdateReqInfo.  # noqa: E501
        :type: str
        """

        self._op_mask = op_mask

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


        :return: The suspended of this ObjectStorageUserUpdateReqInfo.  # noqa: E501
        :rtype: bool
        """
        return self._suspended

    @suspended.setter
    def suspended(self, suspended):
        """Sets the suspended of this ObjectStorageUserUpdateReqInfo.


        :param suspended: The suspended of this ObjectStorageUserUpdateReqInfo.  # noqa: E501
        :type: bool
        """

        self._suspended = suspended

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


        :return: The user_quota_max_objects of this ObjectStorageUserUpdateReqInfo.  # noqa: E501
        :rtype: int
        """
        return self._user_quota_max_objects

    @user_quota_max_objects.setter
    def user_quota_max_objects(self, user_quota_max_objects):
        """Sets the user_quota_max_objects of this ObjectStorageUserUpdateReqInfo.


        :param user_quota_max_objects: The user_quota_max_objects of this ObjectStorageUserUpdateReqInfo.  # noqa: E501
        :type: int
        """

        self._user_quota_max_objects = user_quota_max_objects

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


        :return: The user_quota_max_size of this ObjectStorageUserUpdateReqInfo.  # noqa: E501
        :rtype: int
        """
        return self._user_quota_max_size

    @user_quota_max_size.setter
    def user_quota_max_size(self, user_quota_max_size):
        """Sets the user_quota_max_size of this ObjectStorageUserUpdateReqInfo.


        :param user_quota_max_size: The user_quota_max_size of this ObjectStorageUserUpdateReqInfo.  # noqa: E501
        :type: int
        """

        self._user_quota_max_size = user_quota_max_size

    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

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

        return self.__dict__ == other.__dict__

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