# coding: utf-8

"""
    Gmail API

    The Gmail API lets you view and manage Gmail mailbox data like threads, messages, and labels.  # noqa: E501

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

import pprint
import re  # noqa: F401

import six

class SmimeInfo(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 = {
        'encrypted_key_password': 'str',
        'expiration': 'str',
        'id': 'str',
        'is_default': 'bool',
        'issuer_cn': 'str',
        'pem': 'str',
        'pkcs12': 'str'
    }

    attribute_map = {
        'encrypted_key_password': 'encryptedKeyPassword',
        'expiration': 'expiration',
        'id': 'id',
        'is_default': 'isDefault',
        'issuer_cn': 'issuerCn',
        'pem': 'pem',
        'pkcs12': 'pkcs12'
    }

    def __init__(self, encrypted_key_password=None, expiration=None, id=None, is_default=None, issuer_cn=None, pem=None, pkcs12=None):  # noqa: E501
        """SmimeInfo - a model defined in Swagger"""  # noqa: E501
        self._encrypted_key_password = None
        self._expiration = None
        self._id = None
        self._is_default = None
        self._issuer_cn = None
        self._pem = None
        self._pkcs12 = None
        self.discriminator = None
        if encrypted_key_password is not None:
            self.encrypted_key_password = encrypted_key_password
        if expiration is not None:
            self.expiration = expiration
        if id is not None:
            self.id = id
        if is_default is not None:
            self.is_default = is_default
        if issuer_cn is not None:
            self.issuer_cn = issuer_cn
        if pem is not None:
            self.pem = pem
        if pkcs12 is not None:
            self.pkcs12 = pkcs12

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

        Encrypted key password, when key is encrypted.  # noqa: E501

        :return: The encrypted_key_password of this SmimeInfo.  # noqa: E501
        :rtype: str
        """
        return self._encrypted_key_password

    @encrypted_key_password.setter
    def encrypted_key_password(self, encrypted_key_password):
        """Sets the encrypted_key_password of this SmimeInfo.

        Encrypted key password, when key is encrypted.  # noqa: E501

        :param encrypted_key_password: The encrypted_key_password of this SmimeInfo.  # noqa: E501
        :type: str
        """

        self._encrypted_key_password = encrypted_key_password

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

        When the certificate expires (in milliseconds since epoch).  # noqa: E501

        :return: The expiration of this SmimeInfo.  # noqa: E501
        :rtype: str
        """
        return self._expiration

    @expiration.setter
    def expiration(self, expiration):
        """Sets the expiration of this SmimeInfo.

        When the certificate expires (in milliseconds since epoch).  # noqa: E501

        :param expiration: The expiration of this SmimeInfo.  # noqa: E501
        :type: str
        """

        self._expiration = expiration

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

        The immutable ID for the SmimeInfo.  # noqa: E501

        :return: The id of this SmimeInfo.  # noqa: E501
        :rtype: str
        """
        return self._id

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

        The immutable ID for the SmimeInfo.  # noqa: E501

        :param id: The id of this SmimeInfo.  # noqa: E501
        :type: str
        """

        self._id = id

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

        Whether this SmimeInfo is the default one for this user's send-as address.  # noqa: E501

        :return: The is_default of this SmimeInfo.  # noqa: E501
        :rtype: bool
        """
        return self._is_default

    @is_default.setter
    def is_default(self, is_default):
        """Sets the is_default of this SmimeInfo.

        Whether this SmimeInfo is the default one for this user's send-as address.  # noqa: E501

        :param is_default: The is_default of this SmimeInfo.  # noqa: E501
        :type: bool
        """

        self._is_default = is_default

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

        The S/MIME certificate issuer's common name.  # noqa: E501

        :return: The issuer_cn of this SmimeInfo.  # noqa: E501
        :rtype: str
        """
        return self._issuer_cn

    @issuer_cn.setter
    def issuer_cn(self, issuer_cn):
        """Sets the issuer_cn of this SmimeInfo.

        The S/MIME certificate issuer's common name.  # noqa: E501

        :param issuer_cn: The issuer_cn of this SmimeInfo.  # noqa: E501
        :type: str
        """

        self._issuer_cn = issuer_cn

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

        PEM formatted X509 concatenated certificate string (standard base64 encoding). Format used for returning key, which includes public key as well as certificate chain (not private key).  # noqa: E501

        :return: The pem of this SmimeInfo.  # noqa: E501
        :rtype: str
        """
        return self._pem

    @pem.setter
    def pem(self, pem):
        """Sets the pem of this SmimeInfo.

        PEM formatted X509 concatenated certificate string (standard base64 encoding). Format used for returning key, which includes public key as well as certificate chain (not private key).  # noqa: E501

        :param pem: The pem of this SmimeInfo.  # noqa: E501
        :type: str
        """

        self._pem = pem

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

        PKCS#12 format containing a single private/public key pair and certificate chain. This format is only accepted from client for creating a new SmimeInfo and is never returned, because the private key is not intended to be exported. PKCS#12 may be encrypted, in which case encryptedKeyPassword should be set appropriately.  # noqa: E501

        :return: The pkcs12 of this SmimeInfo.  # noqa: E501
        :rtype: str
        """
        return self._pkcs12

    @pkcs12.setter
    def pkcs12(self, pkcs12):
        """Sets the pkcs12 of this SmimeInfo.

        PKCS#12 format containing a single private/public key pair and certificate chain. This format is only accepted from client for creating a new SmimeInfo and is never returned, because the private key is not intended to be exported. PKCS#12 may be encrypted, in which case encryptedKeyPassword should be set appropriately.  # noqa: E501

        :param pkcs12: The pkcs12 of this SmimeInfo.  # noqa: E501
        :type: str
        """

        self._pkcs12 = pkcs12

    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
        if issubclass(SmimeInfo, dict):
            for key, value in self.items():
                result[key] = 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, SmimeInfo):
            return False

        return self.__dict__ == other.__dict__

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