# coding: utf-8 """ Gate API v4 APIv4 provides spot, margin and futures trading operations. There are public APIs to retrieve the real-time market statistics, and private APIs which needs authentication to trade on user's behalf. # noqa: E501 OpenAPI spec version: 4.6.1 Contact: support@mail.gate.io Generated by: https://openapi-generator.tech """ import pprint import re # noqa: F401 import six class Order(object): """NOTE: This class is auto generated by OpenAPI Generator. Ref: https://openapi-generator.tech Do not edit the class manually. """ """ Attributes: openapi_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. """ openapi_types = { 'id': 'str', 'create_time': 'str', 'status': 'str', 'currency_pair': 'str', 'type': 'str', 'account': 'str', 'side': 'str', 'amount': 'str', 'price': 'str', 'time_in_force': 'str', 'left': 'str', 'fill_price': 'str' } attribute_map = { 'id': 'id', 'create_time': 'create_time', 'status': 'status', 'currency_pair': 'currency_pair', 'type': 'type', 'account': 'account', 'side': 'side', 'amount': 'amount', 'price': 'price', 'time_in_force': 'time_in_force', 'left': 'left', 'fill_price': 'fill_price' } def __init__(self, id=None, create_time=None, status=None, currency_pair=None, type='limit', account='spot', side=None, amount=None, price=None, time_in_force='gtc', left=None, fill_price=None): # noqa: E501 """Order - a model defined in OpenAPI""" # noqa: E501 self._id = None self._create_time = None self._status = None self._currency_pair = None self._type = None self._account = None self._side = None self._amount = None self._price = None self._time_in_force = None self._left = None self._fill_price = None self.discriminator = None if id is not None: self.id = id if create_time is not None: self.create_time = create_time if status is not None: self.status = status self.currency_pair = currency_pair if type is not None: self.type = type if account is not None: self.account = account self.side = side self.amount = amount self.price = price if time_in_force is not None: self.time_in_force = time_in_force if left is not None: self.left = left if fill_price is not None: self.fill_price = fill_price @property def id(self): """Gets the id of this Order. # noqa: E501 Order ID # noqa: E501 :return: The id of this Order. # noqa: E501 :rtype: str """ return self._id @id.setter def id(self, id): """Sets the id of this Order. Order ID # noqa: E501 :param id: The id of this Order. # noqa: E501 :type: str """ self._id = id @property def create_time(self): """Gets the create_time of this Order. # noqa: E501 Order creation time # noqa: E501 :return: The create_time of this Order. # noqa: E501 :rtype: str """ return self._create_time @create_time.setter def create_time(self, create_time): """Sets the create_time of this Order. Order creation time # noqa: E501 :param create_time: The create_time of this Order. # noqa: E501 :type: str """ self._create_time = create_time @property def status(self): """Gets the status of this Order. # noqa: E501 Order status - `open`: to be filled- `closed`: filled- `cancelled`: cancelled # noqa: E501 :return: The status of this Order. # noqa: E501 :rtype: str """ return self._status @status.setter def status(self, status): """Sets the status of this Order. Order status - `open`: to be filled- `closed`: filled- `cancelled`: cancelled # noqa: E501 :param status: The status of this Order. # noqa: E501 :type: str """ allowed_values = ["open", "closed", "cancelled"] # noqa: E501 if status not in allowed_values: raise ValueError( "Invalid value for `status` ({0}), must be one of {1}" # noqa: E501 .format(status, allowed_values) ) self._status = status @property def currency_pair(self): """Gets the currency_pair of this Order. # noqa: E501 Currency pair # noqa: E501 :return: The currency_pair of this Order. # noqa: E501 :rtype: str """ return self._currency_pair @currency_pair.setter def currency_pair(self, currency_pair): """Sets the currency_pair of this Order. Currency pair # noqa: E501 :param currency_pair: The currency_pair of this Order. # noqa: E501 :type: str """ if currency_pair is None: raise ValueError("Invalid value for `currency_pair`, must not be `None`") # noqa: E501 self._currency_pair = currency_pair @property def type(self): """Gets the type of this Order. # noqa: E501 Order type. limit - limit order # noqa: E501 :return: The type of this Order. # noqa: E501 :rtype: str """ return self._type @type.setter def type(self, type): """Sets the type of this Order. Order type. limit - limit order # noqa: E501 :param type: The type of this Order. # noqa: E501 :type: str """ allowed_values = ["limit"] # noqa: E501 if type not in allowed_values: raise ValueError( "Invalid value for `type` ({0}), must be one of {1}" # noqa: E501 .format(type, allowed_values) ) self._type = type @property def account(self): """Gets the account of this Order. # noqa: E501 Account type. spot - use spot account; margin - use margin account # noqa: E501 :return: The account of this Order. # noqa: E501 :rtype: str """ return self._account @account.setter def account(self, account): """Sets the account of this Order. Account type. spot - use spot account; margin - use margin account # noqa: E501 :param account: The account of this Order. # noqa: E501 :type: str """ allowed_values = ["spot", "margin"] # noqa: E501 if account not in allowed_values: raise ValueError( "Invalid value for `account` ({0}), must be one of {1}" # noqa: E501 .format(account, allowed_values) ) self._account = account @property def side(self): """Gets the side of this Order. # noqa: E501 Order side # noqa: E501 :return: The side of this Order. # noqa: E501 :rtype: str """ return self._side @side.setter def side(self, side): """Sets the side of this Order. Order side # noqa: E501 :param side: The side of this Order. # noqa: E501 :type: str """ if side is None: raise ValueError("Invalid value for `side`, must not be `None`") # noqa: E501 allowed_values = ["buy", "sell"] # noqa: E501 if side not in allowed_values: raise ValueError( "Invalid value for `side` ({0}), must be one of {1}" # noqa: E501 .format(side, allowed_values) ) self._side = side @property def amount(self): """Gets the amount of this Order. # noqa: E501 Trade amount # noqa: E501 :return: The amount of this Order. # noqa: E501 :rtype: str """ return self._amount @amount.setter def amount(self, amount): """Sets the amount of this Order. Trade amount # noqa: E501 :param amount: The amount of this Order. # noqa: E501 :type: str """ if amount is None: raise ValueError("Invalid value for `amount`, must not be `None`") # noqa: E501 self._amount = amount @property def price(self): """Gets the price of this Order. # noqa: E501 Order price # noqa: E501 :return: The price of this Order. # noqa: E501 :rtype: str """ return self._price @price.setter def price(self, price): """Sets the price of this Order. Order price # noqa: E501 :param price: The price of this Order. # noqa: E501 :type: str """ if price is None: raise ValueError("Invalid value for `price`, must not be `None`") # noqa: E501 self._price = price @property def time_in_force(self): """Gets the time_in_force of this Order. # noqa: E501 Time in force # noqa: E501 :return: The time_in_force of this Order. # noqa: E501 :rtype: str """ return self._time_in_force @time_in_force.setter def time_in_force(self, time_in_force): """Sets the time_in_force of this Order. Time in force # noqa: E501 :param time_in_force: The time_in_force of this Order. # noqa: E501 :type: str """ allowed_values = ["gtc", "ioc"] # noqa: E501 if time_in_force not in allowed_values: raise ValueError( "Invalid value for `time_in_force` ({0}), must be one of {1}" # noqa: E501 .format(time_in_force, allowed_values) ) self._time_in_force = time_in_force @property def left(self): """Gets the left of this Order. # noqa: E501 Amount left to fill # noqa: E501 :return: The left of this Order. # noqa: E501 :rtype: str """ return self._left @left.setter def left(self, left): """Sets the left of this Order. Amount left to fill # noqa: E501 :param left: The left of this Order. # noqa: E501 :type: str """ self._left = left @property def fill_price(self): """Gets the fill_price of this Order. # noqa: E501 Fill price of the order # noqa: E501 :return: The fill_price of this Order. # noqa: E501 :rtype: str """ return self._fill_price @fill_price.setter def fill_price(self, fill_price): """Sets the fill_price of this Order. Fill price of the order # noqa: E501 :param fill_price: The fill_price of this Order. # noqa: E501 :type: str """ self._fill_price = fill_price def to_dict(self): """Returns the model properties as a dict""" result = {} for attr, _ in six.iteritems(self.openapi_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, Order): return False return self.__dict__ == other.__dict__ def __ne__(self, other): """Returns true if both objects are not equal""" return not self == other