# coding: utf-8

"""
    resume-parser-api

    The Resume Parser extracts important information of a candidate such as candidate's name, contact information, email id, education, work experience, and skills, etc. from the resume using Deep learning models.  # noqa: E501

    OpenAPI spec version: 1.0.0
    
    Generated by: phenom
"""

import pprint
import re  # noqa: F401

import six

class ResumeResponseDataResumedata(object):
    """
    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 = {
        'personname': 'ResumeResponseDataResumedataPersonname',
        'mobile': 'list[ResumeResponseDataResumedataMobile]',
        'emailaddress': 'str',
        'altemailaddress': 'str',
        'internetaddress': 'list[ResumeResponseDataResumedataInternetaddress]',
        'postaladdress': 'list[ResumeResponseDataResumedataPostaladdress]',
        'resumelanguage': 'str',
        'languageknown': 'str',
        'experiencesummary': 'ResumeResponseDataResumedataExperiencesummary',
        'filename': 'str',
        'resumetext': 'str',
        'summary': 'str',
        'resumeskills': 'str',
        'skilltaxonomy': 'list[ResumeResponseDataResumedataSkilltaxonomy]',
        'educationhistory': 'list[ResumeResponseDataResumedataEducationhistory]',
        'workhistory': 'list[ResumeResponseDataResumedataWorkhistory]'
    }

    attribute_map = {
        'personname': 'personname',
        'mobile': 'mobile',
        'emailaddress': 'emailaddress',
        'altemailaddress': 'altemailaddress',
        'internetaddress': 'internetaddress',
        'postaladdress': 'postaladdress',
        'resumelanguage': 'resumelanguage',
        'languageknown': 'languageknown',
        'experiencesummary': 'experiencesummary',
        'filename': 'filename',
        'resumetext': 'resumetext',
        'summary': 'summary',
        'resumeskills': 'resumeskills',
        'skilltaxonomy': 'skilltaxonomy',
        'educationhistory': 'educationhistory',
        'workhistory': 'workhistory'
    }

    def __init__(self, personname=None, mobile=None, emailaddress=None, altemailaddress=None, internetaddress=None, postaladdress=None, resumelanguage=None, languageknown=None, experiencesummary=None, filename=None, resumetext=None, summary=None, resumeskills=None, skilltaxonomy=None, educationhistory=None, workhistory=None):  # noqa: E501
        """ResumeResponseDataResumedata - a model defined in Swagger"""  # noqa: E501
        self._personname = None
        self._mobile = None
        self._emailaddress = None
        self._altemailaddress = None
        self._internetaddress = None
        self._postaladdress = None
        self._resumelanguage = None
        self._languageknown = None
        self._experiencesummary = None
        self._filename = None
        self._resumetext = None
        self._summary = None
        self._resumeskills = None
        self._skilltaxonomy = None
        self._educationhistory = None
        self._workhistory = None
        self.discriminator = None
        if personname is not None:
            self.personname = personname
        if mobile is not None:
            self.mobile = mobile
        if emailaddress is not None:
            self.emailaddress = emailaddress
        if altemailaddress is not None:
            self.altemailaddress = altemailaddress
        if internetaddress is not None:
            self.internetaddress = internetaddress
        if postaladdress is not None:
            self.postaladdress = postaladdress
        if resumelanguage is not None:
            self.resumelanguage = resumelanguage
        if languageknown is not None:
            self.languageknown = languageknown
        if experiencesummary is not None:
            self.experiencesummary = experiencesummary
        if filename is not None:
            self.filename = filename
        if resumetext is not None:
            self.resumetext = resumetext
        if summary is not None:
            self.summary = summary
        if resumeskills is not None:
            self.resumeskills = resumeskills
        if skilltaxonomy is not None:
            self.skilltaxonomy = skilltaxonomy
        if educationhistory is not None:
            self.educationhistory = educationhistory
        if workhistory is not None:
            self.workhistory = workhistory

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


        :return: The personname of this ResumeResponseDataResumedata.  # noqa: E501
        :rtype: ResumeResponseDataResumedataPersonname
        """
        return self._personname

    @personname.setter
    def personname(self, personname):
        """Sets the personname of this ResumeResponseDataResumedata.


        :param personname: The personname of this ResumeResponseDataResumedata.  # noqa: E501
        :type: ResumeResponseDataResumedataPersonname
        """

        self._personname = personname

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

        Candidate contact details.  # noqa: E501

        :return: The mobile of this ResumeResponseDataResumedata.  # noqa: E501
        :rtype: list[ResumeResponseDataResumedataMobile]
        """
        return self._mobile

    @mobile.setter
    def mobile(self, mobile):
        """Sets the mobile of this ResumeResponseDataResumedata.

        Candidate contact details.  # noqa: E501

        :param mobile: The mobile of this ResumeResponseDataResumedata.  # noqa: E501
        :type: list[ResumeResponseDataResumedataMobile]
        """

        self._mobile = mobile

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

        Email address of Candidate.  # noqa: E501

        :return: The emailaddress of this ResumeResponseDataResumedata.  # noqa: E501
        :rtype: str
        """
        return self._emailaddress

    @emailaddress.setter
    def emailaddress(self, emailaddress):
        """Sets the emailaddress of this ResumeResponseDataResumedata.

        Email address of Candidate.  # noqa: E501

        :param emailaddress: The emailaddress of this ResumeResponseDataResumedata.  # noqa: E501
        :type: str
        """

        self._emailaddress = emailaddress

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

        Alternate Email other than primary mail.  # noqa: E501

        :return: The altemailaddress of this ResumeResponseDataResumedata.  # noqa: E501
        :rtype: str
        """
        return self._altemailaddress

    @altemailaddress.setter
    def altemailaddress(self, altemailaddress):
        """Sets the altemailaddress of this ResumeResponseDataResumedata.

        Alternate Email other than primary mail.  # noqa: E501

        :param altemailaddress: The altemailaddress of this ResumeResponseDataResumedata.  # noqa: E501
        :type: str
        """

        self._altemailaddress = altemailaddress

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

        Candidate Internet address details.  # noqa: E501

        :return: The internetaddress of this ResumeResponseDataResumedata.  # noqa: E501
        :rtype: list[ResumeResponseDataResumedataInternetaddress]
        """
        return self._internetaddress

    @internetaddress.setter
    def internetaddress(self, internetaddress):
        """Sets the internetaddress of this ResumeResponseDataResumedata.

        Candidate Internet address details.  # noqa: E501

        :param internetaddress: The internetaddress of this ResumeResponseDataResumedata.  # noqa: E501
        :type: list[ResumeResponseDataResumedataInternetaddress]
        """

        self._internetaddress = internetaddress

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

        Candidate postal details.  # noqa: E501

        :return: The postaladdress of this ResumeResponseDataResumedata.  # noqa: E501
        :rtype: list[ResumeResponseDataResumedataPostaladdress]
        """
        return self._postaladdress

    @postaladdress.setter
    def postaladdress(self, postaladdress):
        """Sets the postaladdress of this ResumeResponseDataResumedata.

        Candidate postal details.  # noqa: E501

        :param postaladdress: The postaladdress of this ResumeResponseDataResumedata.  # noqa: E501
        :type: list[ResumeResponseDataResumedataPostaladdress]
        """

        self._postaladdress = postaladdress

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

        Language of resume content.  # noqa: E501

        :return: The resumelanguage of this ResumeResponseDataResumedata.  # noqa: E501
        :rtype: str
        """
        return self._resumelanguage

    @resumelanguage.setter
    def resumelanguage(self, resumelanguage):
        """Sets the resumelanguage of this ResumeResponseDataResumedata.

        Language of resume content.  # noqa: E501

        :param resumelanguage: The resumelanguage of this ResumeResponseDataResumedata.  # noqa: E501
        :type: str
        """

        self._resumelanguage = resumelanguage

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

        Language known by candidate.  # noqa: E501

        :return: The languageknown of this ResumeResponseDataResumedata.  # noqa: E501
        :rtype: str
        """
        return self._languageknown

    @languageknown.setter
    def languageknown(self, languageknown):
        """Sets the languageknown of this ResumeResponseDataResumedata.

        Language known by candidate.  # noqa: E501

        :param languageknown: The languageknown of this ResumeResponseDataResumedata.  # noqa: E501
        :type: str
        """

        self._languageknown = languageknown

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


        :return: The experiencesummary of this ResumeResponseDataResumedata.  # noqa: E501
        :rtype: ResumeResponseDataResumedataExperiencesummary
        """
        return self._experiencesummary

    @experiencesummary.setter
    def experiencesummary(self, experiencesummary):
        """Sets the experiencesummary of this ResumeResponseDataResumedata.


        :param experiencesummary: The experiencesummary of this ResumeResponseDataResumedata.  # noqa: E501
        :type: ResumeResponseDataResumedataExperiencesummary
        """

        self._experiencesummary = experiencesummary

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

        Attached file name.  # noqa: E501

        :return: The filename of this ResumeResponseDataResumedata.  # noqa: E501
        :rtype: str
        """
        return self._filename

    @filename.setter
    def filename(self, filename):
        """Sets the filename of this ResumeResponseDataResumedata.

        Attached file name.  # noqa: E501

        :param filename: The filename of this ResumeResponseDataResumedata.  # noqa: E501
        :type: str
        """

        self._filename = filename

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

        Resume Content.  # noqa: E501

        :return: The resumetext of this ResumeResponseDataResumedata.  # noqa: E501
        :rtype: str
        """
        return self._resumetext

    @resumetext.setter
    def resumetext(self, resumetext):
        """Sets the resumetext of this ResumeResponseDataResumedata.

        Resume Content.  # noqa: E501

        :param resumetext: The resumetext of this ResumeResponseDataResumedata.  # noqa: E501
        :type: str
        """

        self._resumetext = resumetext

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

        Summary.  # noqa: E501

        :return: The summary of this ResumeResponseDataResumedata.  # noqa: E501
        :rtype: str
        """
        return self._summary

    @summary.setter
    def summary(self, summary):
        """Sets the summary of this ResumeResponseDataResumedata.

        Summary.  # noqa: E501

        :param summary: The summary of this ResumeResponseDataResumedata.  # noqa: E501
        :type: str
        """

        self._summary = summary

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

        Resume skills.  # noqa: E501

        :return: The resumeskills of this ResumeResponseDataResumedata.  # noqa: E501
        :rtype: str
        """
        return self._resumeskills

    @resumeskills.setter
    def resumeskills(self, resumeskills):
        """Sets the resumeskills of this ResumeResponseDataResumedata.

        Resume skills.  # noqa: E501

        :param resumeskills: The resumeskills of this ResumeResponseDataResumedata.  # noqa: E501
        :type: str
        """

        self._resumeskills = resumeskills

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

        Candidate skills history.  # noqa: E501

        :return: The skilltaxonomy of this ResumeResponseDataResumedata.  # noqa: E501
        :rtype: list[ResumeResponseDataResumedataSkilltaxonomy]
        """
        return self._skilltaxonomy

    @skilltaxonomy.setter
    def skilltaxonomy(self, skilltaxonomy):
        """Sets the skilltaxonomy of this ResumeResponseDataResumedata.

        Candidate skills history.  # noqa: E501

        :param skilltaxonomy: The skilltaxonomy of this ResumeResponseDataResumedata.  # noqa: E501
        :type: list[ResumeResponseDataResumedataSkilltaxonomy]
        """

        self._skilltaxonomy = skilltaxonomy

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

        Candidate education info.  # noqa: E501

        :return: The educationhistory of this ResumeResponseDataResumedata.  # noqa: E501
        :rtype: list[ResumeResponseDataResumedataEducationhistory]
        """
        return self._educationhistory

    @educationhistory.setter
    def educationhistory(self, educationhistory):
        """Sets the educationhistory of this ResumeResponseDataResumedata.

        Candidate education info.  # noqa: E501

        :param educationhistory: The educationhistory of this ResumeResponseDataResumedata.  # noqa: E501
        :type: list[ResumeResponseDataResumedataEducationhistory]
        """

        self._educationhistory = educationhistory

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

        Candidate work or experience details.  # noqa: E501

        :return: The workhistory of this ResumeResponseDataResumedata.  # noqa: E501
        :rtype: list[ResumeResponseDataResumedataWorkhistory]
        """
        return self._workhistory

    @workhistory.setter
    def workhistory(self, workhistory):
        """Sets the workhistory of this ResumeResponseDataResumedata.

        Candidate work or experience details.  # noqa: E501

        :param workhistory: The workhistory of this ResumeResponseDataResumedata.  # noqa: E501
        :type: list[ResumeResponseDataResumedataWorkhistory]
        """

        self._workhistory = workhistory

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

        return self.__dict__ == other.__dict__

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