# coding: utf-8

"""
    job-parser-api

    The process of extracting important information from the raw job description is called Job Parsing. This information can include things like job titles, required skills, required experience, job duties, and qualifications.  # noqa: E501

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

import pprint
import re  # noqa: F401

import six

class JobResponseJobTypeFields(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 = {
        'job_type': 'str',
        'is_intern': 'bool',
        'experience_type': 'str',
        'is_entrylevel': 'bool'
    }

    attribute_map = {
        'job_type': 'jobType',
        'is_intern': 'isIntern',
        'experience_type': 'experienceType',
        'is_entrylevel': 'isEntrylevel'
    }

    def __init__(self, job_type=None, is_intern=None, experience_type=None, is_entrylevel=None):  # noqa: E501
        """JobResponseJobTypeFields - a model defined in Swagger"""  # noqa: E501
        self._job_type = None
        self._is_intern = None
        self._experience_type = None
        self._is_entrylevel = None
        self.discriminator = None
        if job_type is not None:
            self.job_type = job_type
        if is_intern is not None:
            self.is_intern = is_intern
        if experience_type is not None:
            self.experience_type = experience_type
        if is_entrylevel is not None:
            self.is_entrylevel = is_entrylevel

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

        Job type part-time/full-time.  # noqa: E501

        :return: The job_type of this JobResponseJobTypeFields.  # noqa: E501
        :rtype: str
        """
        return self._job_type

    @job_type.setter
    def job_type(self, job_type):
        """Sets the job_type of this JobResponseJobTypeFields.

        Job type part-time/full-time.  # noqa: E501

        :param job_type: The job_type of this JobResponseJobTypeFields.  # noqa: E501
        :type: str
        """

        self._job_type = job_type

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

        Is intern job.  # noqa: E501

        :return: The is_intern of this JobResponseJobTypeFields.  # noqa: E501
        :rtype: bool
        """
        return self._is_intern

    @is_intern.setter
    def is_intern(self, is_intern):
        """Sets the is_intern of this JobResponseJobTypeFields.

        Is intern job.  # noqa: E501

        :param is_intern: The is_intern of this JobResponseJobTypeFields.  # noqa: E501
        :type: bool
        """

        self._is_intern = is_intern

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

        Experience Level.  # noqa: E501

        :return: The experience_type of this JobResponseJobTypeFields.  # noqa: E501
        :rtype: str
        """
        return self._experience_type

    @experience_type.setter
    def experience_type(self, experience_type):
        """Sets the experience_type of this JobResponseJobTypeFields.

        Experience Level.  # noqa: E501

        :param experience_type: The experience_type of this JobResponseJobTypeFields.  # noqa: E501
        :type: str
        """

        self._experience_type = experience_type

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

        Is entry level job.  # noqa: E501

        :return: The is_entrylevel of this JobResponseJobTypeFields.  # noqa: E501
        :rtype: bool
        """
        return self._is_entrylevel

    @is_entrylevel.setter
    def is_entrylevel(self, is_entrylevel):
        """Sets the is_entrylevel of this JobResponseJobTypeFields.

        Is entry level job.  # noqa: E501

        :param is_entrylevel: The is_entrylevel of this JobResponseJobTypeFields.  # noqa: E501
        :type: bool
        """

        self._is_entrylevel = is_entrylevel

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

        return self.__dict__ == other.__dict__

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