/*
 * Client Portal Web API
 *
 * Client Portal Web API
 *
 * The version of the OpenAPI document: 1.0.0
 * 
 * Generated by: https://openapi-generator.tech
 */




#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct InlineResponse20022Rules {
    #[serde(rename = "error", skip_serializing_if = "Option::is_none")]
    pub error: Option<String>,
    #[serde(rename = "orderTypes", skip_serializing_if = "Option::is_none")]
    pub order_types: Option<Vec<crate::models::InlineResponse20022OrderTypes>>,
    #[serde(rename = "ibalgoTypes", skip_serializing_if = "Option::is_none")]
    pub ibalgo_types: Option<Vec<crate::models::InlineResponse20022IbalgoTypes>>,
    #[serde(rename = "fraqTypes", skip_serializing_if = "Option::is_none")]
    pub fraq_types: Option<Vec<crate::models::InlineResponse20022FraqTypes>>,
    #[serde(rename = "cqtTypes", skip_serializing_if = "Option::is_none")]
    pub cqt_types: Option<Vec<crate::models::InlineResponse20022CqtTypes>>,
    /// If object returned will provide the defaults based on user settings
    #[serde(rename = "orderDefaults", skip_serializing_if = "Option::is_none")]
    pub order_defaults: Option<Vec<crate::models::InlineResponse20022OrderDefaults>>,
    #[serde(rename = "orderTypesOutside", skip_serializing_if = "Option::is_none")]
    pub order_types_outside: Option<Vec<crate::models::InlineResponse20022OrderTypesOutside>>,
    /// Default quantity
    #[serde(rename = "defaultSize", skip_serializing_if = "Option::is_none")]
    pub default_size: Option<i32>,
    /// cash value
    #[serde(rename = "cashSize", skip_serializing_if = "Option::is_none")]
    pub cash_size: Option<i32>,
    /// increment quantity value
    #[serde(rename = "sizeIncrement", skip_serializing_if = "Option::is_none")]
    pub size_increment: Option<i32>,
    #[serde(rename = "tifTypes", skip_serializing_if = "Option::is_none")]
    pub tif_types: Option<Vec<crate::models::InlineResponse20022TifTypes>>,
    /// Default time in force value
    #[serde(rename = "defaultTIF", skip_serializing_if = "Option::is_none")]
    pub default_tif: Option<String>,
    /// Limit price
    #[serde(rename = "limitPrice", skip_serializing_if = "Option::is_none")]
    pub limit_price: Option<f32>,
    /// Stop price
    #[serde(rename = "stopprice", skip_serializing_if = "Option::is_none")]
    pub stopprice: Option<f32>,
    /// Order origin designation for US securities options and Options Clearing Corporation
    #[serde(rename = "orderOrigination", skip_serializing_if = "Option::is_none")]
    pub order_origination: Option<f32>,
    /// order preview required
    #[serde(rename = "preview", skip_serializing_if = "Option::is_none")]
    pub preview: Option<bool>,
    #[serde(rename = "displaySize", skip_serializing_if = "Option::is_none")]
    pub display_size: Option<f32>,
    /// decimal places for fractional order size
    #[serde(rename = "fraqInt", skip_serializing_if = "Option::is_none")]
    pub fraq_int: Option<f32>,
    /// Cash currency for the contract
    #[serde(rename = "cashCcy", skip_serializing_if = "Option::is_none")]
    pub cash_ccy: Option<String>,
    /// Increment value for cash quantity
    #[serde(rename = "cashQtyIncr", skip_serializing_if = "Option::is_none")]
    pub cash_qty_incr: Option<f32>,
    /// Price Magnifier
    #[serde(rename = "priceMagnifier", skip_serializing_if = "Option::is_none")]
    pub price_magnifier: Option<f32>,
    /// trading negative price support
    #[serde(rename = "negativeCapable", skip_serializing_if = "Option::is_none")]
    pub negative_capable: Option<bool>,
    /// Price increment value
    #[serde(rename = "increment", skip_serializing_if = "Option::is_none")]
    pub increment: Option<f32>,
    /// Number of digits for price increment
    #[serde(rename = "incrementDigits", skip_serializing_if = "Option::is_none")]
    pub increment_digits: Option<i32>,
}

impl InlineResponse20022Rules {
    pub fn new() -> InlineResponse20022Rules {
        InlineResponse20022Rules {
            error: None,
            order_types: None,
            ibalgo_types: None,
            fraq_types: None,
            cqt_types: None,
            order_defaults: None,
            order_types_outside: None,
            default_size: None,
            cash_size: None,
            size_increment: None,
            tif_types: None,
            default_tif: None,
            limit_price: None,
            stopprice: None,
            order_origination: None,
            preview: None,
            display_size: None,
            fraq_int: None,
            cash_ccy: None,
            cash_qty_incr: None,
            price_magnifier: None,
            negative_capable: None,
            increment: None,
            increment_digits: None,
        }
    }
}


