/*
 * Binance Derivatives Trading Portfolio Margin WebSocket Market Streams
 *
 * OpenAPI Specification for the Binance Derivatives Trading Portfolio Margin WebSocket Market Streams
 *
 * 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::derivatives_trading_portfolio_margin::websocket_streams::models;
use serde::{Deserialize, Deserializer, Serialize, de::Error};
use serde_json::Value;

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct AlgoUpdateO {
    #[serde(rename = "caid", skip_serializing_if = "Option::is_none")]
    pub caid: Option<String>,
    #[serde(rename = "aid", skip_serializing_if = "Option::is_none")]
    pub aid: Option<i64>,
    #[serde(rename = "at", skip_serializing_if = "Option::is_none")]
    pub at: Option<String>,
    #[serde(rename = "o", skip_serializing_if = "Option::is_none")]
    pub o: Option<String>,
    #[serde(rename = "s", skip_serializing_if = "Option::is_none")]
    pub s: Option<String>,
    #[serde(rename = "S", skip_serializing_if = "Option::is_none")]
    pub s_uppercase: Option<String>,
    #[serde(rename = "ps", skip_serializing_if = "Option::is_none")]
    pub ps: Option<String>,
    #[serde(rename = "f", skip_serializing_if = "Option::is_none")]
    pub f: Option<String>,
    #[serde(rename = "q", skip_serializing_if = "Option::is_none")]
    pub q: Option<String>,
    #[serde(rename = "X", skip_serializing_if = "Option::is_none")]
    pub x_uppercase: Option<String>,
    #[serde(rename = "ai", skip_serializing_if = "Option::is_none")]
    pub ai: Option<String>,
    #[serde(rename = "ap", skip_serializing_if = "Option::is_none")]
    pub ap: Option<String>,
    #[serde(rename = "aq", skip_serializing_if = "Option::is_none")]
    pub aq: Option<String>,
    #[serde(rename = "act", skip_serializing_if = "Option::is_none")]
    pub act: Option<String>,
    #[serde(rename = "tp", skip_serializing_if = "Option::is_none")]
    pub tp: Option<String>,
    #[serde(rename = "p", skip_serializing_if = "Option::is_none")]
    pub p: Option<String>,
    #[serde(rename = "V", skip_serializing_if = "Option::is_none")]
    pub v_uppercase: Option<String>,
    #[serde(rename = "wt", skip_serializing_if = "Option::is_none")]
    pub wt: Option<String>,
    #[serde(rename = "pm", skip_serializing_if = "Option::is_none")]
    pub pm: Option<String>,
    #[serde(rename = "cp", skip_serializing_if = "Option::is_none")]
    pub cp: Option<bool>,
    #[serde(rename = "pP", skip_serializing_if = "Option::is_none")]
    pub p_p: Option<bool>,
    #[serde(rename = "R", skip_serializing_if = "Option::is_none")]
    pub r_uppercase: Option<bool>,
    #[serde(rename = "tt", skip_serializing_if = "Option::is_none")]
    pub tt: Option<i64>,
    #[serde(rename = "gtd", skip_serializing_if = "Option::is_none")]
    pub gtd: Option<i64>,
    #[serde(rename = "rm", skip_serializing_if = "Option::is_none")]
    pub rm: Option<String>,
}

impl AlgoUpdateO {
    #[must_use]
    pub fn new() -> AlgoUpdateO {
        AlgoUpdateO {
            caid: None,
            aid: None,
            at: None,
            o: None,
            s: None,
            s_uppercase: None,
            ps: None,
            f: None,
            q: None,
            x_uppercase: None,
            ai: None,
            ap: None,
            aq: None,
            act: None,
            tp: None,
            p: None,
            v_uppercase: None,
            wt: None,
            pm: None,
            cp: None,
            p_p: None,
            r_uppercase: None,
            tt: None,
            gtd: None,
            rm: None,
        }
    }
}
