# coding: utf-8

"""
    projects-api

    These APIs allows you to create workflow statuses, which are then assigned to workflows. These workflows, containing multiple statuses, are subsequently linked to projects. Additionally, candidates are associated with projects, defining the path they are meant to follow within the established workflows.  # noqa: E501

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

import pprint
import re  # noqa: F401

import six

class GetProjectActivitiesResponseData(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 = {
        'recruiters_user_id': 'str',
        'candidate_id': 'str',
        'project_name': 'str',
        'project_id': 'str',
        'action_type': 'str',
        'action_value': 'str',
        'created_date': 'str',
        'scope_attr': 'GetProjectActivitiesResponseScopeAttr',
        'recruiter_name': 'str'
    }

    attribute_map = {
        'recruiters_user_id': 'recruitersUserId',
        'candidate_id': 'candidateId',
        'project_name': 'projectName',
        'project_id': 'projectId',
        'action_type': 'actionType',
        'action_value': 'actionValue',
        'created_date': 'createdDate',
        'scope_attr': 'scopeAttr',
        'recruiter_name': 'recruiterName'
    }

    def __init__(self, recruiters_user_id=None, candidate_id=None, project_name=None, project_id=None, action_type=None, action_value=None, created_date=None, scope_attr=None, recruiter_name=None):  # noqa: E501
        """GetProjectActivitiesResponseData - a model defined in Swagger"""  # noqa: E501
        self._recruiters_user_id = None
        self._candidate_id = None
        self._project_name = None
        self._project_id = None
        self._action_type = None
        self._action_value = None
        self._created_date = None
        self._scope_attr = None
        self._recruiter_name = None
        self.discriminator = None
        self.recruiters_user_id = recruiters_user_id
        self.candidate_id = candidate_id
        self.project_name = project_name
        self.project_id = project_id
        self.action_type = action_type
        self.action_value = action_value
        self.created_date = created_date
        self.scope_attr = scope_attr
        self.recruiter_name = recruiter_name

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

        User ID of the recruiter.  # noqa: E501

        :return: The recruiters_user_id of this GetProjectActivitiesResponseData.  # noqa: E501
        :rtype: str
        """
        return self._recruiters_user_id

    @recruiters_user_id.setter
    def recruiters_user_id(self, recruiters_user_id):
        """Sets the recruiters_user_id of this GetProjectActivitiesResponseData.

        User ID of the recruiter.  # noqa: E501

        :param recruiters_user_id: The recruiters_user_id of this GetProjectActivitiesResponseData.  # noqa: E501
        :type: str
        """
        if recruiters_user_id is None:
            raise ValueError("Invalid value for `recruiters_user_id`, must not be `None`")  # noqa: E501

        self._recruiters_user_id = recruiters_user_id

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

        ID of the candidate.  # noqa: E501

        :return: The candidate_id of this GetProjectActivitiesResponseData.  # noqa: E501
        :rtype: str
        """
        return self._candidate_id

    @candidate_id.setter
    def candidate_id(self, candidate_id):
        """Sets the candidate_id of this GetProjectActivitiesResponseData.

        ID of the candidate.  # noqa: E501

        :param candidate_id: The candidate_id of this GetProjectActivitiesResponseData.  # noqa: E501
        :type: str
        """
        if candidate_id is None:
            raise ValueError("Invalid value for `candidate_id`, must not be `None`")  # noqa: E501

        self._candidate_id = candidate_id

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

        Name of the project.  # noqa: E501

        :return: The project_name of this GetProjectActivitiesResponseData.  # noqa: E501
        :rtype: str
        """
        return self._project_name

    @project_name.setter
    def project_name(self, project_name):
        """Sets the project_name of this GetProjectActivitiesResponseData.

        Name of the project.  # noqa: E501

        :param project_name: The project_name of this GetProjectActivitiesResponseData.  # noqa: E501
        :type: str
        """
        if project_name is None:
            raise ValueError("Invalid value for `project_name`, must not be `None`")  # noqa: E501

        self._project_name = project_name

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

        ID of the project.  # noqa: E501

        :return: The project_id of this GetProjectActivitiesResponseData.  # noqa: E501
        :rtype: str
        """
        return self._project_id

    @project_id.setter
    def project_id(self, project_id):
        """Sets the project_id of this GetProjectActivitiesResponseData.

        ID of the project.  # noqa: E501

        :param project_id: The project_id of this GetProjectActivitiesResponseData.  # noqa: E501
        :type: str
        """
        if project_id is None:
            raise ValueError("Invalid value for `project_id`, must not be `None`")  # noqa: E501

        self._project_id = project_id

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

        Type of the action.  # noqa: E501

        :return: The action_type of this GetProjectActivitiesResponseData.  # noqa: E501
        :rtype: str
        """
        return self._action_type

    @action_type.setter
    def action_type(self, action_type):
        """Sets the action_type of this GetProjectActivitiesResponseData.

        Type of the action.  # noqa: E501

        :param action_type: The action_type of this GetProjectActivitiesResponseData.  # noqa: E501
        :type: str
        """
        if action_type is None:
            raise ValueError("Invalid value for `action_type`, must not be `None`")  # noqa: E501

        self._action_type = action_type

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

        Value associated with the action.  # noqa: E501

        :return: The action_value of this GetProjectActivitiesResponseData.  # noqa: E501
        :rtype: str
        """
        return self._action_value

    @action_value.setter
    def action_value(self, action_value):
        """Sets the action_value of this GetProjectActivitiesResponseData.

        Value associated with the action.  # noqa: E501

        :param action_value: The action_value of this GetProjectActivitiesResponseData.  # noqa: E501
        :type: str
        """
        if action_value is None:
            raise ValueError("Invalid value for `action_value`, must not be `None`")  # noqa: E501

        self._action_value = action_value

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

        Timestamp of when the activity was created.  # noqa: E501

        :return: The created_date of this GetProjectActivitiesResponseData.  # noqa: E501
        :rtype: str
        """
        return self._created_date

    @created_date.setter
    def created_date(self, created_date):
        """Sets the created_date of this GetProjectActivitiesResponseData.

        Timestamp of when the activity was created.  # noqa: E501

        :param created_date: The created_date of this GetProjectActivitiesResponseData.  # noqa: E501
        :type: str
        """
        if created_date is None:
            raise ValueError("Invalid value for `created_date`, must not be `None`")  # noqa: E501

        self._created_date = created_date

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


        :return: The scope_attr of this GetProjectActivitiesResponseData.  # noqa: E501
        :rtype: GetProjectActivitiesResponseScopeAttr
        """
        return self._scope_attr

    @scope_attr.setter
    def scope_attr(self, scope_attr):
        """Sets the scope_attr of this GetProjectActivitiesResponseData.


        :param scope_attr: The scope_attr of this GetProjectActivitiesResponseData.  # noqa: E501
        :type: GetProjectActivitiesResponseScopeAttr
        """
        if scope_attr is None:
            raise ValueError("Invalid value for `scope_attr`, must not be `None`")  # noqa: E501

        self._scope_attr = scope_attr

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

        Name of the recruiter.  # noqa: E501

        :return: The recruiter_name of this GetProjectActivitiesResponseData.  # noqa: E501
        :rtype: str
        """
        return self._recruiter_name

    @recruiter_name.setter
    def recruiter_name(self, recruiter_name):
        """Sets the recruiter_name of this GetProjectActivitiesResponseData.

        Name of the recruiter.  # noqa: E501

        :param recruiter_name: The recruiter_name of this GetProjectActivitiesResponseData.  # noqa: E501
        :type: str
        """
        if recruiter_name is None:
            raise ValueError("Invalid value for `recruiter_name`, must not be `None`")  # noqa: E501

        self._recruiter_name = recruiter_name

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

        return self.__dict__ == other.__dict__

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