# 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 Watermark(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 = {
        'watermark_text': 'str',
        'watermark_text_size': 'int',
        'watermark_position': 'OneOfWatermarkWatermarkPosition',
        'watermark_rotation_angle': 'int',
        'is_watermark_mandatory': 'bool',
        'watermark_intensity': 'int'
    }

    attribute_map = {
        'watermark_text': 'watermarkText',
        'watermark_text_size': 'watermarkTextSize',
        'watermark_position': 'watermarkPosition',
        'watermark_rotation_angle': 'watermarkRotationAngle',
        'is_watermark_mandatory': 'isWatermarkMandatory',
        'watermark_intensity': 'watermarkIntensity'
    }

    def __init__(self, watermark_text=None, watermark_text_size=None, watermark_position=None, watermark_rotation_angle=None, is_watermark_mandatory=None, watermark_intensity=None):  # noqa: E501
        """Watermark - a model defined in Swagger"""  # noqa: E501
        self._watermark_text = None
        self._watermark_text_size = None
        self._watermark_position = None
        self._watermark_rotation_angle = None
        self._is_watermark_mandatory = None
        self._watermark_intensity = None
        self.discriminator = None
        if watermark_text is not None:
            self.watermark_text = watermark_text
        if watermark_text_size is not None:
            self.watermark_text_size = watermark_text_size
        if watermark_position is not None:
            self.watermark_position = watermark_position
        if watermark_rotation_angle is not None:
            self.watermark_rotation_angle = watermark_rotation_angle
        if is_watermark_mandatory is not None:
            self.is_watermark_mandatory = is_watermark_mandatory
        if watermark_intensity is not None:
            self.watermark_intensity = watermark_intensity

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

        The watermark text associated with the tag defintion.  # noqa: E501

        :return: The watermark_text of this Watermark.  # noqa: E501
        :rtype: str
        """
        return self._watermark_text

    @watermark_text.setter
    def watermark_text(self, watermark_text):
        """Sets the watermark_text of this Watermark.

        The watermark text associated with the tag defintion.  # noqa: E501

        :param watermark_text: The watermark_text of this Watermark.  # noqa: E501
        :type: str
        """

        self._watermark_text = watermark_text

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

        The size of the watermark text, in points, associated with the tag definition.  # noqa: E501

        :return: The watermark_text_size of this Watermark.  # noqa: E501
        :rtype: int
        """
        return self._watermark_text_size

    @watermark_text_size.setter
    def watermark_text_size(self, watermark_text_size):
        """Sets the watermark_text_size of this Watermark.

        The size of the watermark text, in points, associated with the tag definition.  # noqa: E501

        :param watermark_text_size: The watermark_text_size of this Watermark.  # noqa: E501
        :type: int
        """

        self._watermark_text_size = watermark_text_size

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

        The position of the watermark on the page.  # noqa: E501

        :return: The watermark_position of this Watermark.  # noqa: E501
        :rtype: OneOfWatermarkWatermarkPosition
        """
        return self._watermark_position

    @watermark_position.setter
    def watermark_position(self, watermark_position):
        """Sets the watermark_position of this Watermark.

        The position of the watermark on the page.  # noqa: E501

        :param watermark_position: The watermark_position of this Watermark.  # noqa: E501
        :type: OneOfWatermarkWatermarkPosition
        """

        self._watermark_position = watermark_position

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

        The rotation angle, in degrees, of the watermark associated with the tag definition.  # noqa: E501

        :return: The watermark_rotation_angle of this Watermark.  # noqa: E501
        :rtype: int
        """
        return self._watermark_rotation_angle

    @watermark_rotation_angle.setter
    def watermark_rotation_angle(self, watermark_rotation_angle):
        """Sets the watermark_rotation_angle of this Watermark.

        The rotation angle, in degrees, of the watermark associated with the tag definition.  # noqa: E501

        :param watermark_rotation_angle: The watermark_rotation_angle of this Watermark.  # noqa: E501
        :type: int
        """

        self._watermark_rotation_angle = watermark_rotation_angle

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

        A boolean indicating whether or not the watermark associated with the tag is mandatory.  # noqa: E501

        :return: The is_watermark_mandatory of this Watermark.  # noqa: E501
        :rtype: bool
        """
        return self._is_watermark_mandatory

    @is_watermark_mandatory.setter
    def is_watermark_mandatory(self, is_watermark_mandatory):
        """Sets the is_watermark_mandatory of this Watermark.

        A boolean indicating whether or not the watermark associated with the tag is mandatory.  # noqa: E501

        :param is_watermark_mandatory: The is_watermark_mandatory of this Watermark.  # noqa: E501
        :type: bool
        """

        self._is_watermark_mandatory = is_watermark_mandatory

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

        The intensity of the watermark associated with the tag definition. Valid value  ranges from 0 to 100, with -1 as the default values.  # noqa: E501

        :return: The watermark_intensity of this Watermark.  # noqa: E501
        :rtype: int
        """
        return self._watermark_intensity

    @watermark_intensity.setter
    def watermark_intensity(self, watermark_intensity):
        """Sets the watermark_intensity of this Watermark.

        The intensity of the watermark associated with the tag definition. Valid value  ranges from 0 to 100, with -1 as the default values.  # noqa: E501

        :param watermark_intensity: The watermark_intensity of this Watermark.  # noqa: E501
        :type: int
        """

        self._watermark_intensity = watermark_intensity

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

        return self.__dict__ == other.__dict__

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