# coding: utf-8

"""
    UAM - Application API

    UAM manages client accounts and allows each client to define users, roles and master keys. The core operations of UAM are as follows: Creating new accounts. For each account: Creating new master keys. Adding new users Adding new roles Attaching roles to users. Attaching roles to keys. Returning the key's metadata together with temporary access credentials in order to access the key fragments.  # noqa: E501

    OpenAPI spec version: 1.0.6
    Contact: refael@akeyless-security.com
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


import pprint
import re  # noqa: F401

import six


class GetAccountDetailsReplyObj(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 = {
        'account_id': 'str',
        'admin_user_policy_id': 'str',
        'customer_address': 'str',
        'customer_email': 'str',
        'customer_id': 'str',
        'customer_name': 'str',
        'customer_phone': 'str',
        'num_of_dynamic_secrets': 'int',
        'num_of_items': 'int',
        'num_of_keys': 'int',
        'num_of_roles': 'int',
        'num_of_secrets': 'int',
        'num_of_users': 'int'
    }

    attribute_map = {
        'account_id': 'account_id',
        'admin_user_policy_id': 'admin_user_policy_id',
        'customer_address': 'customer_address',
        'customer_email': 'customer_email',
        'customer_id': 'customer_id',
        'customer_name': 'customer_name',
        'customer_phone': 'customer_phone',
        'num_of_dynamic_secrets': 'num_of_dynamic_secrets',
        'num_of_items': 'num_of_items',
        'num_of_keys': 'num_of_keys',
        'num_of_roles': 'num_of_roles',
        'num_of_secrets': 'num_of_secrets',
        'num_of_users': 'num_of_users'
    }

    def __init__(self, account_id=None, admin_user_policy_id=None, customer_address=None, customer_email=None, customer_id=None, customer_name=None, customer_phone=None, num_of_dynamic_secrets=None, num_of_items=None, num_of_keys=None, num_of_roles=None, num_of_secrets=None, num_of_users=None):  # noqa: E501
        """GetAccountDetailsReplyObj - a model defined in Swagger"""  # noqa: E501

        self._account_id = None
        self._admin_user_policy_id = None
        self._customer_address = None
        self._customer_email = None
        self._customer_id = None
        self._customer_name = None
        self._customer_phone = None
        self._num_of_dynamic_secrets = None
        self._num_of_items = None
        self._num_of_keys = None
        self._num_of_roles = None
        self._num_of_secrets = None
        self._num_of_users = None
        self.discriminator = None

        if account_id is not None:
            self.account_id = account_id
        if admin_user_policy_id is not None:
            self.admin_user_policy_id = admin_user_policy_id
        if customer_address is not None:
            self.customer_address = customer_address
        if customer_email is not None:
            self.customer_email = customer_email
        if customer_id is not None:
            self.customer_id = customer_id
        if customer_name is not None:
            self.customer_name = customer_name
        if customer_phone is not None:
            self.customer_phone = customer_phone
        if num_of_dynamic_secrets is not None:
            self.num_of_dynamic_secrets = num_of_dynamic_secrets
        if num_of_items is not None:
            self.num_of_items = num_of_items
        if num_of_keys is not None:
            self.num_of_keys = num_of_keys
        if num_of_roles is not None:
            self.num_of_roles = num_of_roles
        if num_of_secrets is not None:
            self.num_of_secrets = num_of_secrets
        if num_of_users is not None:
            self.num_of_users = num_of_users

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


        :return: The account_id of this GetAccountDetailsReplyObj.  # noqa: E501
        :rtype: str
        """
        return self._account_id

    @account_id.setter
    def account_id(self, account_id):
        """Sets the account_id of this GetAccountDetailsReplyObj.


        :param account_id: The account_id of this GetAccountDetailsReplyObj.  # noqa: E501
        :type: str
        """

        self._account_id = account_id

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


        :return: The admin_user_policy_id of this GetAccountDetailsReplyObj.  # noqa: E501
        :rtype: str
        """
        return self._admin_user_policy_id

    @admin_user_policy_id.setter
    def admin_user_policy_id(self, admin_user_policy_id):
        """Sets the admin_user_policy_id of this GetAccountDetailsReplyObj.


        :param admin_user_policy_id: The admin_user_policy_id of this GetAccountDetailsReplyObj.  # noqa: E501
        :type: str
        """

        self._admin_user_policy_id = admin_user_policy_id

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


        :return: The customer_address of this GetAccountDetailsReplyObj.  # noqa: E501
        :rtype: str
        """
        return self._customer_address

    @customer_address.setter
    def customer_address(self, customer_address):
        """Sets the customer_address of this GetAccountDetailsReplyObj.


        :param customer_address: The customer_address of this GetAccountDetailsReplyObj.  # noqa: E501
        :type: str
        """

        self._customer_address = customer_address

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


        :return: The customer_email of this GetAccountDetailsReplyObj.  # noqa: E501
        :rtype: str
        """
        return self._customer_email

    @customer_email.setter
    def customer_email(self, customer_email):
        """Sets the customer_email of this GetAccountDetailsReplyObj.


        :param customer_email: The customer_email of this GetAccountDetailsReplyObj.  # noqa: E501
        :type: str
        """

        self._customer_email = customer_email

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


        :return: The customer_id of this GetAccountDetailsReplyObj.  # noqa: E501
        :rtype: str
        """
        return self._customer_id

    @customer_id.setter
    def customer_id(self, customer_id):
        """Sets the customer_id of this GetAccountDetailsReplyObj.


        :param customer_id: The customer_id of this GetAccountDetailsReplyObj.  # noqa: E501
        :type: str
        """

        self._customer_id = customer_id

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


        :return: The customer_name of this GetAccountDetailsReplyObj.  # noqa: E501
        :rtype: str
        """
        return self._customer_name

    @customer_name.setter
    def customer_name(self, customer_name):
        """Sets the customer_name of this GetAccountDetailsReplyObj.


        :param customer_name: The customer_name of this GetAccountDetailsReplyObj.  # noqa: E501
        :type: str
        """

        self._customer_name = customer_name

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


        :return: The customer_phone of this GetAccountDetailsReplyObj.  # noqa: E501
        :rtype: str
        """
        return self._customer_phone

    @customer_phone.setter
    def customer_phone(self, customer_phone):
        """Sets the customer_phone of this GetAccountDetailsReplyObj.


        :param customer_phone: The customer_phone of this GetAccountDetailsReplyObj.  # noqa: E501
        :type: str
        """

        self._customer_phone = customer_phone

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


        :return: The num_of_dynamic_secrets of this GetAccountDetailsReplyObj.  # noqa: E501
        :rtype: int
        """
        return self._num_of_dynamic_secrets

    @num_of_dynamic_secrets.setter
    def num_of_dynamic_secrets(self, num_of_dynamic_secrets):
        """Sets the num_of_dynamic_secrets of this GetAccountDetailsReplyObj.


        :param num_of_dynamic_secrets: The num_of_dynamic_secrets of this GetAccountDetailsReplyObj.  # noqa: E501
        :type: int
        """

        self._num_of_dynamic_secrets = num_of_dynamic_secrets

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


        :return: The num_of_items of this GetAccountDetailsReplyObj.  # noqa: E501
        :rtype: int
        """
        return self._num_of_items

    @num_of_items.setter
    def num_of_items(self, num_of_items):
        """Sets the num_of_items of this GetAccountDetailsReplyObj.


        :param num_of_items: The num_of_items of this GetAccountDetailsReplyObj.  # noqa: E501
        :type: int
        """

        self._num_of_items = num_of_items

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


        :return: The num_of_keys of this GetAccountDetailsReplyObj.  # noqa: E501
        :rtype: int
        """
        return self._num_of_keys

    @num_of_keys.setter
    def num_of_keys(self, num_of_keys):
        """Sets the num_of_keys of this GetAccountDetailsReplyObj.


        :param num_of_keys: The num_of_keys of this GetAccountDetailsReplyObj.  # noqa: E501
        :type: int
        """

        self._num_of_keys = num_of_keys

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


        :return: The num_of_roles of this GetAccountDetailsReplyObj.  # noqa: E501
        :rtype: int
        """
        return self._num_of_roles

    @num_of_roles.setter
    def num_of_roles(self, num_of_roles):
        """Sets the num_of_roles of this GetAccountDetailsReplyObj.


        :param num_of_roles: The num_of_roles of this GetAccountDetailsReplyObj.  # noqa: E501
        :type: int
        """

        self._num_of_roles = num_of_roles

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


        :return: The num_of_secrets of this GetAccountDetailsReplyObj.  # noqa: E501
        :rtype: int
        """
        return self._num_of_secrets

    @num_of_secrets.setter
    def num_of_secrets(self, num_of_secrets):
        """Sets the num_of_secrets of this GetAccountDetailsReplyObj.


        :param num_of_secrets: The num_of_secrets of this GetAccountDetailsReplyObj.  # noqa: E501
        :type: int
        """

        self._num_of_secrets = num_of_secrets

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


        :return: The num_of_users of this GetAccountDetailsReplyObj.  # noqa: E501
        :rtype: int
        """
        return self._num_of_users

    @num_of_users.setter
    def num_of_users(self, num_of_users):
        """Sets the num_of_users of this GetAccountDetailsReplyObj.


        :param num_of_users: The num_of_users of this GetAccountDetailsReplyObj.  # noqa: E501
        :type: int
        """

        self._num_of_users = num_of_users

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

        return self.__dict__ == other.__dict__

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