# coding: utf-8

"""
    Laserfiche API

    Welcome to the Laserfiche API Swagger Playground. You can try out any of our API calls against your live Laserfiche Cloud account. Visit the developer center for more details: <a href=\"https://developer.laserfiche.com\">https://developer.laserfiche.com</a><p><strong>Build# : </strong>561590</p>  # noqa: E501

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

import pprint
import re  # noqa: F401

import six

class WEntryLinkInfo(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 = {
        'link_id': 'int',
        'source_id': 'int',
        'source_full_path': 'str',
        'source_label': 'str',
        'target_id': 'int',
        'target_full_path': 'str',
        'target_label': 'str',
        'description': 'str',
        'link_type_description': 'str',
        'link_properties': 'dict(str, str)',
        'source_link': 'str',
        'target_link': 'str'
    }

    attribute_map = {
        'link_id': 'linkId',
        'source_id': 'sourceId',
        'source_full_path': 'sourceFullPath',
        'source_label': 'sourceLabel',
        'target_id': 'targetId',
        'target_full_path': 'targetFullPath',
        'target_label': 'targetLabel',
        'description': 'description',
        'link_type_description': 'linkTypeDescription',
        'link_properties': 'linkProperties',
        'source_link': 'sourceLink',
        'target_link': 'targetLink'
    }

    def __init__(self, link_id=None, source_id=None, source_full_path=None, source_label=None, target_id=None, target_full_path=None, target_label=None, description=None, link_type_description=None, link_properties=None, source_link=None, target_link=None):  # noqa: E501
        """WEntryLinkInfo - a model defined in Swagger"""  # noqa: E501
        self._link_id = None
        self._source_id = None
        self._source_full_path = None
        self._source_label = None
        self._target_id = None
        self._target_full_path = None
        self._target_label = None
        self._description = None
        self._link_type_description = None
        self._link_properties = None
        self._source_link = None
        self._target_link = None
        self.discriminator = None
        if link_id is not None:
            self.link_id = link_id
        if source_id is not None:
            self.source_id = source_id
        if source_full_path is not None:
            self.source_full_path = source_full_path
        if source_label is not None:
            self.source_label = source_label
        if target_id is not None:
            self.target_id = target_id
        if target_full_path is not None:
            self.target_full_path = target_full_path
        if target_label is not None:
            self.target_label = target_label
        if description is not None:
            self.description = description
        if link_type_description is not None:
            self.link_type_description = link_type_description
        if link_properties is not None:
            self.link_properties = link_properties
        if source_link is not None:
            self.source_link = source_link
        if target_link is not None:
            self.target_link = target_link

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

        The ID of the entry link.  # noqa: E501

        :return: The link_id of this WEntryLinkInfo.  # noqa: E501
        :rtype: int
        """
        return self._link_id

    @link_id.setter
    def link_id(self, link_id):
        """Sets the link_id of this WEntryLinkInfo.

        The ID of the entry link.  # noqa: E501

        :param link_id: The link_id of this WEntryLinkInfo.  # noqa: E501
        :type: int
        """

        self._link_id = link_id

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

        The ID of the source entry of the represented link.  # noqa: E501

        :return: The source_id of this WEntryLinkInfo.  # noqa: E501
        :rtype: int
        """
        return self._source_id

    @source_id.setter
    def source_id(self, source_id):
        """Sets the source_id of this WEntryLinkInfo.

        The ID of the source entry of the represented link.  # noqa: E501

        :param source_id: The source_id of this WEntryLinkInfo.  # noqa: E501
        :type: int
        """

        self._source_id = source_id

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

        The full path to the source entry of the represented link.  # noqa: E501

        :return: The source_full_path of this WEntryLinkInfo.  # noqa: E501
        :rtype: str
        """
        return self._source_full_path

    @source_full_path.setter
    def source_full_path(self, source_full_path):
        """Sets the source_full_path of this WEntryLinkInfo.

        The full path to the source entry of the represented link.  # noqa: E501

        :param source_full_path: The source_full_path of this WEntryLinkInfo.  # noqa: E501
        :type: str
        """

        self._source_full_path = source_full_path

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

        The label for the source entry in the link type.  # noqa: E501

        :return: The source_label of this WEntryLinkInfo.  # noqa: E501
        :rtype: str
        """
        return self._source_label

    @source_label.setter
    def source_label(self, source_label):
        """Sets the source_label of this WEntryLinkInfo.

        The label for the source entry in the link type.  # noqa: E501

        :param source_label: The source_label of this WEntryLinkInfo.  # noqa: E501
        :type: str
        """

        self._source_label = source_label

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

        The ID of the target entry of the represented link.  # noqa: E501

        :return: The target_id of this WEntryLinkInfo.  # noqa: E501
        :rtype: int
        """
        return self._target_id

    @target_id.setter
    def target_id(self, target_id):
        """Sets the target_id of this WEntryLinkInfo.

        The ID of the target entry of the represented link.  # noqa: E501

        :param target_id: The target_id of this WEntryLinkInfo.  # noqa: E501
        :type: int
        """

        self._target_id = target_id

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

        The full path to the target entry of the represented link.  # noqa: E501

        :return: The target_full_path of this WEntryLinkInfo.  # noqa: E501
        :rtype: str
        """
        return self._target_full_path

    @target_full_path.setter
    def target_full_path(self, target_full_path):
        """Sets the target_full_path of this WEntryLinkInfo.

        The full path to the target entry of the represented link.  # noqa: E501

        :param target_full_path: The target_full_path of this WEntryLinkInfo.  # noqa: E501
        :type: str
        """

        self._target_full_path = target_full_path

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

        The label for the target entry in the link type.  # noqa: E501

        :return: The target_label of this WEntryLinkInfo.  # noqa: E501
        :rtype: str
        """
        return self._target_label

    @target_label.setter
    def target_label(self, target_label):
        """Sets the target_label of this WEntryLinkInfo.

        The label for the target entry in the link type.  # noqa: E501

        :param target_label: The target_label of this WEntryLinkInfo.  # noqa: E501
        :type: str
        """

        self._target_label = target_label

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

        The descriptive text for the represented entry link.  # noqa: E501

        :return: The description of this WEntryLinkInfo.  # noqa: E501
        :rtype: str
        """
        return self._description

    @description.setter
    def description(self, description):
        """Sets the description of this WEntryLinkInfo.

        The descriptive text for the represented entry link.  # noqa: E501

        :param description: The description of this WEntryLinkInfo.  # noqa: E501
        :type: str
        """

        self._description = description

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

        The description of the link type.  # noqa: E501

        :return: The link_type_description of this WEntryLinkInfo.  # noqa: E501
        :rtype: str
        """
        return self._link_type_description

    @link_type_description.setter
    def link_type_description(self, link_type_description):
        """Sets the link_type_description of this WEntryLinkInfo.

        The description of the link type.  # noqa: E501

        :param link_type_description: The link_type_description of this WEntryLinkInfo.  # noqa: E501
        :type: str
        """

        self._link_type_description = link_type_description

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

        The properties for the entry link.  # noqa: E501

        :return: The link_properties of this WEntryLinkInfo.  # noqa: E501
        :rtype: dict(str, str)
        """
        return self._link_properties

    @link_properties.setter
    def link_properties(self, link_properties):
        """Sets the link_properties of this WEntryLinkInfo.

        The properties for the entry link.  # noqa: E501

        :param link_properties: The link_properties of this WEntryLinkInfo.  # noqa: E501
        :type: dict(str, str)
        """

        self._link_properties = link_properties

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

        The navigation link to the source entry.  # noqa: E501

        :return: The source_link of this WEntryLinkInfo.  # noqa: E501
        :rtype: str
        """
        return self._source_link

    @source_link.setter
    def source_link(self, source_link):
        """Sets the source_link of this WEntryLinkInfo.

        The navigation link to the source entry.  # noqa: E501

        :param source_link: The source_link of this WEntryLinkInfo.  # noqa: E501
        :type: str
        """

        self._source_link = source_link

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

        The navigation link to the target entry.  # noqa: E501

        :return: The target_link of this WEntryLinkInfo.  # noqa: E501
        :rtype: str
        """
        return self._target_link

    @target_link.setter
    def target_link(self, target_link):
        """Sets the target_link of this WEntryLinkInfo.

        The navigation link to the target entry.  # noqa: E501

        :param target_link: The target_link of this WEntryLinkInfo.  # noqa: E501
        :type: str
        """

        self._target_link = target_link

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

        return self.__dict__ == other.__dict__

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