# coding: utf-8

"""
    Speech Services API v3.0

    Speech Services API v3.0.  # noqa: E501

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


import pprint
import re  # noqa: F401

import six

from swagger_client.configuration import Configuration


class WebHookProperties(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 = {
        'error': 'EntityError',
        'api_version': 'str',
        'secret': 'str'
    }

    attribute_map = {
        'error': 'error',
        'api_version': 'apiVersion',
        'secret': 'secret'
    }

    def __init__(self, error=None, api_version=None, secret=None, _configuration=None):  # noqa: E501
        """WebHookProperties - a model defined in Swagger"""  # noqa: E501
        if _configuration is None:
            _configuration = Configuration()
        self._configuration = _configuration

        self._error = None
        self._api_version = None
        self._secret = None
        self.discriminator = None

        if error is not None:
            self.error = error
        if api_version is not None:
            self.api_version = api_version
        if secret is not None:
            self.secret = secret

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


        :return: The error of this WebHookProperties.  # noqa: E501
        :rtype: EntityError
        """
        return self._error

    @error.setter
    def error(self, error):
        """Sets the error of this WebHookProperties.


        :param error: The error of this WebHookProperties.  # noqa: E501
        :type: EntityError
        """

        self._error = error

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

        The API version the web hook was created in. This defines the shape of the payload in the callbacks.  If the payload type is not supported anymore, because the shape changed and the API version using it is removed (after deprecation),  the web hook will be disabled.  # noqa: E501

        :return: The api_version of this WebHookProperties.  # noqa: E501
        :rtype: str
        """
        return self._api_version

    @api_version.setter
    def api_version(self, api_version):
        """Sets the api_version of this WebHookProperties.

        The API version the web hook was created in. This defines the shape of the payload in the callbacks.  If the payload type is not supported anymore, because the shape changed and the API version using it is removed (after deprecation),  the web hook will be disabled.  # noqa: E501

        :param api_version: The api_version of this WebHookProperties.  # noqa: E501
        :type: str
        """

        self._api_version = api_version

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

        A secret that will be used to create a SHA256 hash of the payload with the secret as HMAC key.  This hash will be set as X-MicrosoftSpeechServices-Signature header when calling back into the registered URL.  # noqa: E501

        :return: The secret of this WebHookProperties.  # noqa: E501
        :rtype: str
        """
        return self._secret

    @secret.setter
    def secret(self, secret):
        """Sets the secret of this WebHookProperties.

        A secret that will be used to create a SHA256 hash of the payload with the secret as HMAC key.  This hash will be set as X-MicrosoftSpeechServices-Signature header when calling back into the registered URL.  # noqa: E501

        :param secret: The secret of this WebHookProperties.  # noqa: E501
        :type: str
        """

        self._secret = secret

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

        return self.to_dict() == other.to_dict()

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

        return self.to_dict() != other.to_dict()
