oanda-v20-openapi 3.0.25

The full OANDA v20 API Specification. This specification defines how to interact with v20 Accounts, Trades, Orders, Pricing and more.
Documentation
/*
 * OANDA v20 API
 *
 * The full OANDA v20 API Specification. This specification defines how to interact with v20 Accounts, Trades, Orders, Pricing and more.
 *
 * The version of the OpenAPI document: 3.0.25
 * Contact: api@oanda.com
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

/// TransactionType : The Type of the Transaction.
/// The Type of the Transaction.
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum TransactionType {
    #[serde(rename = "CREATE")]
    Create,
    #[serde(rename = "CLOSE")]
    Close,
    #[serde(rename = "REOPEN")]
    Reopen,
    #[serde(rename = "CLIENT_CONFIGURE")]
    ClientConfigure,
    #[serde(rename = "CLIENT_CONFIGURE_REJECT")]
    ClientConfigureReject,
    #[serde(rename = "TRANSFER_FUNDS")]
    TransferFunds,
    #[serde(rename = "TRANSFER_FUNDS_REJECT")]
    TransferFundsReject,
    #[serde(rename = "MARKET_ORDER")]
    MarketOrder,
    #[serde(rename = "MARKET_ORDER_REJECT")]
    MarketOrderReject,
    #[serde(rename = "FIXED_PRICE_ORDER")]
    FixedPriceOrder,
    #[serde(rename = "LIMIT_ORDER")]
    LimitOrder,
    #[serde(rename = "LIMIT_ORDER_REJECT")]
    LimitOrderReject,
    #[serde(rename = "STOP_ORDER")]
    StopOrder,
    #[serde(rename = "STOP_ORDER_REJECT")]
    StopOrderReject,
    #[serde(rename = "MARKET_IF_TOUCHED_ORDER")]
    MarketIfTouchedOrder,
    #[serde(rename = "MARKET_IF_TOUCHED_ORDER_REJECT")]
    MarketIfTouchedOrderReject,
    #[serde(rename = "TAKE_PROFIT_ORDER")]
    TakeProfitOrder,
    #[serde(rename = "TAKE_PROFIT_ORDER_REJECT")]
    TakeProfitOrderReject,
    #[serde(rename = "STOP_LOSS_ORDER")]
    StopLossOrder,
    #[serde(rename = "STOP_LOSS_ORDER_REJECT")]
    StopLossOrderReject,
    #[serde(rename = "TRAILING_STOP_LOSS_ORDER")]
    TrailingStopLossOrder,
    #[serde(rename = "TRAILING_STOP_LOSS_ORDER_REJECT")]
    TrailingStopLossOrderReject,
    #[serde(rename = "ORDER_FILL")]
    OrderFill,
    #[serde(rename = "ORDER_CANCEL")]
    OrderCancel,
    #[serde(rename = "ORDER_CANCEL_REJECT")]
    OrderCancelReject,
    #[serde(rename = "ORDER_CLIENT_EXTENSIONS_MODIFY")]
    OrderClientExtensionsModify,
    #[serde(rename = "ORDER_CLIENT_EXTENSIONS_MODIFY_REJECT")]
    OrderClientExtensionsModifyReject,
    #[serde(rename = "TRADE_CLIENT_EXTENSIONS_MODIFY")]
    TradeClientExtensionsModify,
    #[serde(rename = "TRADE_CLIENT_EXTENSIONS_MODIFY_REJECT")]
    TradeClientExtensionsModifyReject,
    #[serde(rename = "MARGIN_CALL_ENTER")]
    MarginCallEnter,
    #[serde(rename = "MARGIN_CALL_EXTEND")]
    MarginCallExtend,
    #[serde(rename = "MARGIN_CALL_EXIT")]
    MarginCallExit,
    #[serde(rename = "DELAYED_TRADE_CLOSURE")]
    DelayedTradeClosure,
    #[serde(rename = "DAILY_FINANCING")]
    DailyFinancing,
    #[serde(rename = "RESET_RESETTABLE_PL")]
    ResetResettablePl,

}

impl std::fmt::Display for TransactionType {
    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
        match self {
            Self::Create => write!(f, "CREATE"),
            Self::Close => write!(f, "CLOSE"),
            Self::Reopen => write!(f, "REOPEN"),
            Self::ClientConfigure => write!(f, "CLIENT_CONFIGURE"),
            Self::ClientConfigureReject => write!(f, "CLIENT_CONFIGURE_REJECT"),
            Self::TransferFunds => write!(f, "TRANSFER_FUNDS"),
            Self::TransferFundsReject => write!(f, "TRANSFER_FUNDS_REJECT"),
            Self::MarketOrder => write!(f, "MARKET_ORDER"),
            Self::MarketOrderReject => write!(f, "MARKET_ORDER_REJECT"),
            Self::FixedPriceOrder => write!(f, "FIXED_PRICE_ORDER"),
            Self::LimitOrder => write!(f, "LIMIT_ORDER"),
            Self::LimitOrderReject => write!(f, "LIMIT_ORDER_REJECT"),
            Self::StopOrder => write!(f, "STOP_ORDER"),
            Self::StopOrderReject => write!(f, "STOP_ORDER_REJECT"),
            Self::MarketIfTouchedOrder => write!(f, "MARKET_IF_TOUCHED_ORDER"),
            Self::MarketIfTouchedOrderReject => write!(f, "MARKET_IF_TOUCHED_ORDER_REJECT"),
            Self::TakeProfitOrder => write!(f, "TAKE_PROFIT_ORDER"),
            Self::TakeProfitOrderReject => write!(f, "TAKE_PROFIT_ORDER_REJECT"),
            Self::StopLossOrder => write!(f, "STOP_LOSS_ORDER"),
            Self::StopLossOrderReject => write!(f, "STOP_LOSS_ORDER_REJECT"),
            Self::TrailingStopLossOrder => write!(f, "TRAILING_STOP_LOSS_ORDER"),
            Self::TrailingStopLossOrderReject => write!(f, "TRAILING_STOP_LOSS_ORDER_REJECT"),
            Self::OrderFill => write!(f, "ORDER_FILL"),
            Self::OrderCancel => write!(f, "ORDER_CANCEL"),
            Self::OrderCancelReject => write!(f, "ORDER_CANCEL_REJECT"),
            Self::OrderClientExtensionsModify => write!(f, "ORDER_CLIENT_EXTENSIONS_MODIFY"),
            Self::OrderClientExtensionsModifyReject => write!(f, "ORDER_CLIENT_EXTENSIONS_MODIFY_REJECT"),
            Self::TradeClientExtensionsModify => write!(f, "TRADE_CLIENT_EXTENSIONS_MODIFY"),
            Self::TradeClientExtensionsModifyReject => write!(f, "TRADE_CLIENT_EXTENSIONS_MODIFY_REJECT"),
            Self::MarginCallEnter => write!(f, "MARGIN_CALL_ENTER"),
            Self::MarginCallExtend => write!(f, "MARGIN_CALL_EXTEND"),
            Self::MarginCallExit => write!(f, "MARGIN_CALL_EXIT"),
            Self::DelayedTradeClosure => write!(f, "DELAYED_TRADE_CLOSURE"),
            Self::DailyFinancing => write!(f, "DAILY_FINANCING"),
            Self::ResetResettablePl => write!(f, "RESET_RESETTABLE_PL"),
        }
    }
}

impl Default for TransactionType {
    fn default() -> TransactionType {
        Self::Create
    }
}