# coding: utf-8

"""
    OANDA v20 REST API

    The full OANDA v20 REST API Specification. This specification defines how to interact with v20 Accounts, Trades, Orders, Pricing and more. To authenticate use the string 'Bearer ' followed by the token which can be obtained at https://www.oanda.com/demo-account/tpa/personal_token  # noqa: E501

    OpenAPI spec version: 3.0.23
    Contact: api@oanda.com
    Generated by: https://github.com/swagger-api/swagger-codegen.git
"""


import pprint
import re  # noqa: F401

import six


class LiquidityRegenerationScheduleStep(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 = {
        'timestamp': 'str',
        'bid_liquidity_used': 'str',
        'ask_liquidity_used': 'str'
    }

    attribute_map = {
        'timestamp': 'timestamp',
        'bid_liquidity_used': 'bidLiquidityUsed',
        'ask_liquidity_used': 'askLiquidityUsed'
    }

    def __init__(self, timestamp=None, bid_liquidity_used=None, ask_liquidity_used=None):  # noqa: E501
        """LiquidityRegenerationScheduleStep - a model defined in Swagger"""  # noqa: E501

        self._timestamp = None
        self._bid_liquidity_used = None
        self._ask_liquidity_used = None
        self.discriminator = None

        if timestamp is not None:
            self.timestamp = timestamp
        if bid_liquidity_used is not None:
            self.bid_liquidity_used = bid_liquidity_used
        if ask_liquidity_used is not None:
            self.ask_liquidity_used = ask_liquidity_used

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

        The timestamp of the schedule step.  # noqa: E501

        :return: The timestamp of this LiquidityRegenerationScheduleStep.  # noqa: E501
        :rtype: str
        """
        return self._timestamp

    @timestamp.setter
    def timestamp(self, timestamp):
        """Sets the timestamp of this LiquidityRegenerationScheduleStep.

        The timestamp of the schedule step.  # noqa: E501

        :param timestamp: The timestamp of this LiquidityRegenerationScheduleStep.  # noqa: E501
        :type: str
        """

        self._timestamp = timestamp

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

        The amount of bid liquidity used at this step in the schedule.  # noqa: E501

        :return: The bid_liquidity_used of this LiquidityRegenerationScheduleStep.  # noqa: E501
        :rtype: str
        """
        return self._bid_liquidity_used

    @bid_liquidity_used.setter
    def bid_liquidity_used(self, bid_liquidity_used):
        """Sets the bid_liquidity_used of this LiquidityRegenerationScheduleStep.

        The amount of bid liquidity used at this step in the schedule.  # noqa: E501

        :param bid_liquidity_used: The bid_liquidity_used of this LiquidityRegenerationScheduleStep.  # noqa: E501
        :type: str
        """

        self._bid_liquidity_used = bid_liquidity_used

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

        The amount of ask liquidity used at this step in the schedule.  # noqa: E501

        :return: The ask_liquidity_used of this LiquidityRegenerationScheduleStep.  # noqa: E501
        :rtype: str
        """
        return self._ask_liquidity_used

    @ask_liquidity_used.setter
    def ask_liquidity_used(self, ask_liquidity_used):
        """Sets the ask_liquidity_used of this LiquidityRegenerationScheduleStep.

        The amount of ask liquidity used at this step in the schedule.  # noqa: E501

        :param ask_liquidity_used: The ask_liquidity_used of this LiquidityRegenerationScheduleStep.  # noqa: E501
        :type: str
        """

        self._ask_liquidity_used = ask_liquidity_used

    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

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

        return self.__dict__ == other.__dict__

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