# coding: utf-8

"""
    ORCID Member

    No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)  # noqa: E501

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

import pprint
import re  # noqa: F401

import six
from orcid_api_v3.models.created_date_v20 import CreatedDateV20  # noqa: F401,E501
from orcid_api_v3.models.external_i_ds_v20 import ExternalIDsV20  # noqa: F401,E501
from orcid_api_v3.models.last_modified_date_v20 import LastModifiedDateV20  # noqa: F401,E501
from orcid_api_v3.models.publication_date_v20 import PublicationDateV20  # noqa: F401,E501
from orcid_api_v3.models.source_v20 import SourceV20  # noqa: F401,E501
from orcid_api_v3.models.work_title_v20 import WorkTitleV20  # noqa: F401,E501


class WorkSummaryV20(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 = {
        'put_code': 'int',
        'created_date': 'CreatedDateV20',
        'last_modified_date': 'LastModifiedDateV20',
        'source': 'SourceV20',
        'title': 'WorkTitleV20',
        'external_ids': 'ExternalIDsV20',
        'type': 'str',
        'publication_date': 'PublicationDateV20',
        'visibility': 'str',
        'path': 'str',
        'display_index': 'str'
    }

    attribute_map = {
        'put_code': 'put-code',
        'created_date': 'created-date',
        'last_modified_date': 'last-modified-date',
        'source': 'source',
        'title': 'title',
        'external_ids': 'external-ids',
        'type': 'type',
        'publication_date': 'publication-date',
        'visibility': 'visibility',
        'path': 'path',
        'display_index': 'display-index'
    }

    def __init__(self, put_code=None, created_date=None, last_modified_date=None, source=None, title=None, external_ids=None, type=None, publication_date=None, visibility=None, path=None, display_index=None):  # noqa: E501
        """WorkSummaryV20 - a model defined in Swagger"""  # noqa: E501
        self._put_code = None
        self._created_date = None
        self._last_modified_date = None
        self._source = None
        self._title = None
        self._external_ids = None
        self._type = None
        self._publication_date = None
        self._visibility = None
        self._path = None
        self._display_index = None
        self.discriminator = None
        if put_code is not None:
            self.put_code = put_code
        if created_date is not None:
            self.created_date = created_date
        if last_modified_date is not None:
            self.last_modified_date = last_modified_date
        if source is not None:
            self.source = source
        if title is not None:
            self.title = title
        if external_ids is not None:
            self.external_ids = external_ids
        if type is not None:
            self.type = type
        if publication_date is not None:
            self.publication_date = publication_date
        if visibility is not None:
            self.visibility = visibility
        if path is not None:
            self.path = path
        if display_index is not None:
            self.display_index = display_index

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


        :return: The put_code of this WorkSummaryV20.  # noqa: E501
        :rtype: int
        """
        return self._put_code

    @put_code.setter
    def put_code(self, put_code):
        """Sets the put_code of this WorkSummaryV20.


        :param put_code: The put_code of this WorkSummaryV20.  # noqa: E501
        :type: int
        """

        self._put_code = put_code

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


        :return: The created_date of this WorkSummaryV20.  # noqa: E501
        :rtype: CreatedDateV20
        """
        return self._created_date

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


        :param created_date: The created_date of this WorkSummaryV20.  # noqa: E501
        :type: CreatedDateV20
        """

        self._created_date = created_date

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


        :return: The last_modified_date of this WorkSummaryV20.  # noqa: E501
        :rtype: LastModifiedDateV20
        """
        return self._last_modified_date

    @last_modified_date.setter
    def last_modified_date(self, last_modified_date):
        """Sets the last_modified_date of this WorkSummaryV20.


        :param last_modified_date: The last_modified_date of this WorkSummaryV20.  # noqa: E501
        :type: LastModifiedDateV20
        """

        self._last_modified_date = last_modified_date

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


        :return: The source of this WorkSummaryV20.  # noqa: E501
        :rtype: SourceV20
        """
        return self._source

    @source.setter
    def source(self, source):
        """Sets the source of this WorkSummaryV20.


        :param source: The source of this WorkSummaryV20.  # noqa: E501
        :type: SourceV20
        """

        self._source = source

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


        :return: The title of this WorkSummaryV20.  # noqa: E501
        :rtype: WorkTitleV20
        """
        return self._title

    @title.setter
    def title(self, title):
        """Sets the title of this WorkSummaryV20.


        :param title: The title of this WorkSummaryV20.  # noqa: E501
        :type: WorkTitleV20
        """

        self._title = title

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


        :return: The external_ids of this WorkSummaryV20.  # noqa: E501
        :rtype: ExternalIDsV20
        """
        return self._external_ids

    @external_ids.setter
    def external_ids(self, external_ids):
        """Sets the external_ids of this WorkSummaryV20.


        :param external_ids: The external_ids of this WorkSummaryV20.  # noqa: E501
        :type: ExternalIDsV20
        """

        self._external_ids = external_ids

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


        :return: The type of this WorkSummaryV20.  # noqa: E501
        :rtype: str
        """
        return self._type