/*
 * Binance Spot REST API
 *
 * OpenAPI Specifications for the Binance Spot REST API
 *
 * API documents:
 * - [Github rest-api documentation file](https://github.com/binance/binance-spot-api-docs/blob/master/rest-api.md)
 * - [General API information for rest-api on website](https://developers.binance.com/docs/binance-spot-api-docs/rest-api/general-api-information)
 *
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

#![allow(unused_imports)]
use crate::spot::rest_api::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "filterType")]
pub enum ExchangeFilters {
    #[serde(rename = "EXCHANGE_MAX_NUM_ORDERS")]
    ExchangeMaxNumOrders(Box<models::ExchangeMaxNumOrdersFilter>),
    #[serde(rename = "EXCHANGE_MAX_NUM_ALGO_ORDERS")]
    ExchangeMaxNumAlgoOrders(Box<models::ExchangeMaxNumAlgoOrdersFilter>),
    #[serde(rename = "EXCHANGE_MAX_NUM_ICEBERG_ORDERS")]
    ExchangeMaxNumIcebergOrders(Box<models::ExchangeMaxNumIcebergOrdersFilter>),
    #[serde(rename = "EXCHANGE_MAX_NUM_ORDER_LISTS")]
    ExchangeMaxNumOrderLists(Box<models::ExchangeMaxNumOrderListsFilter>),
}

impl Default for ExchangeFilters {
    fn default() -> Self {
        Self::ExchangeMaxNumOrders(Default::default())
    }
}
