sellapp-sdk 0.1.1

Official Rust SDK for the SellApp API: manage products, orders, subscriptions, and customers.
// This file is auto-generated by oagen. Do not edit.

#[allow(unused_imports)]
use super::*;
#[allow(unused_imports)]
use crate::enums::*;
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Serialize)]
#[serde(untagged)]
pub enum SdkCreateCouponRequestApplicationJsonDiscountOneOf {
    F64(f64),
    String(String),
    Unknown(serde_json::Value),
}
impl<'de> Deserialize<'de> for SdkCreateCouponRequestApplicationJsonDiscountOneOf {
    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
        let value = serde_json::Value::deserialize(deserializer)?;
        crate::runtime_schema::union(&value, "{\"kind\":\"union\",\"composition\":\"oneOf\",\"variants\":[{\"kind\":\"primitive\",\"type\":\"number\",\"constraints\":{\"minimum\":1,\"maxLength\":255}},{\"kind\":\"primitive\",\"type\":\"string\",\"constraints\":{\"minimum\":1,\"maxLength\":255}}]}").map_err(serde::de::Error::custom)?;
        if let Ok(inner) = serde_json::from_value::<f64>(value.clone()) {
            return Ok(Self::F64(inner));
        }
        if let Ok(inner) = serde_json::from_value::<String>(value.clone()) {
            return Ok(Self::String(inner));
        }
        if crate::runtime_schema::allow_unknown_union() {
            Ok(Self::Unknown(value))
        } else {
            Err(serde::de::Error::custom("unknown union variant"))
        }
    }
}

impl SdkCreateCouponRequestApplicationJsonDiscountOneOf {
    /// Whether this union value matches a variant known to this SDK version.
    pub fn is_known_variant(&self) -> bool {
        !matches!(self, Self::Unknown(_))
    }
}

#[derive(Debug, Clone, Serialize)]
#[serde(untagged)]
pub enum SdkCreateRewardCouponTemplateRequestApplicationJsonDiscountOneOf {
    String(String),
    F64(f64),
    Unknown(serde_json::Value),
}
impl<'de> Deserialize<'de> for SdkCreateRewardCouponTemplateRequestApplicationJsonDiscountOneOf {
    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
        let value = serde_json::Value::deserialize(deserializer)?;
        crate::runtime_schema::union(&value, "{\"kind\":\"union\",\"composition\":\"oneOf\",\"variants\":[{\"kind\":\"primitive\",\"type\":\"string\",\"constraints\":{\"minimum\":0.01}},{\"kind\":\"primitive\",\"type\":\"number\",\"constraints\":{\"minimum\":0.01}}]}").map_err(serde::de::Error::custom)?;
        if let Ok(inner) = serde_json::from_value::<String>(value.clone()) {
            return Ok(Self::String(inner));
        }
        if let Ok(inner) = serde_json::from_value::<f64>(value.clone()) {
            return Ok(Self::F64(inner));
        }
        if crate::runtime_schema::allow_unknown_union() {
            Ok(Self::Unknown(value))
        } else {
            Err(serde::de::Error::custom("unknown union variant"))
        }
    }
}

impl SdkCreateRewardCouponTemplateRequestApplicationJsonDiscountOneOf {
    /// Whether this union value matches a variant known to this SDK version.
    pub fn is_known_variant(&self) -> bool {
        !matches!(self, Self::Unknown(_))
    }
}

#[derive(Debug, Clone, Serialize)]
#[serde(untagged)]
pub enum V2ListTicketsResponseValue200ApplicationJsonPropertyDataItemPropertyCustomerIdOneOf {
    I64(i64),
    String(String),
    Unknown(serde_json::Value),
}
impl<'de> Deserialize<'de>
    for V2ListTicketsResponseValue200ApplicationJsonPropertyDataItemPropertyCustomerIdOneOf
{
    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
        let value = serde_json::Value::deserialize(deserializer)?;
        crate::runtime_schema::union(&value, "{\"kind\":\"union\",\"composition\":\"oneOf\",\"variants\":[{\"kind\":\"primitive\",\"type\":\"integer\"},{\"kind\":\"primitive\",\"type\":\"string\"}]}").map_err(serde::de::Error::custom)?;
        if let Ok(inner) = serde_json::from_value::<i64>(value.clone()) {
            return Ok(Self::I64(inner));
        }
        if let Ok(inner) = serde_json::from_value::<String>(value.clone()) {
            return Ok(Self::String(inner));
        }
        if crate::runtime_schema::allow_unknown_union() {
            Ok(Self::Unknown(value))
        } else {
            Err(serde::de::Error::custom("unknown union variant"))
        }
    }
}

impl V2ListTicketsResponseValue200ApplicationJsonPropertyDataItemPropertyCustomerIdOneOf {
    /// Whether this union value matches a variant known to this SDK version.
    pub fn is_known_variant(&self) -> bool {
        !matches!(self, Self::Unknown(_))
    }
}

#[derive(Debug, Clone, Serialize)]
#[serde(untagged)]
pub enum ValidateParamsBodyOneOf {
    ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue1(
        ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue1,
    ),
    ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue2(
        ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue2,
    ),
    ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue3(
        ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue3,
    ),
    ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue4(
        ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue4,
    ),
    ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue5(
        ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue5,
    ),
    ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue6(
        ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue6,
    ),
    Unknown(serde_json::Value),
}
impl<'de> Deserialize<'de> for ValidateParamsBodyOneOf {
    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
        let value = serde_json::Value::deserialize(deserializer)?;
        crate::runtime_schema::union(&value, "{\"kind\":\"union\",\"composition\":\"oneOf\",\"variants\":[{\"kind\":\"ref\",\"name\":\"ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue1\"},{\"kind\":\"ref\",\"name\":\"ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue2\"},{\"kind\":\"ref\",\"name\":\"ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue3\"},{\"kind\":\"ref\",\"name\":\"ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue4\"},{\"kind\":\"ref\",\"name\":\"ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue5\"},{\"kind\":\"ref\",\"name\":\"ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue6\"}]}").map_err(serde::de::Error::custom)?;
        if let Ok(inner) = serde_json::from_value::<
            ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue1,
        >(value.clone())
        {
            return Ok(
                Self::ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue1(
                    inner,
                ),
            );
        }
        if let Ok(inner) = serde_json::from_value::<
            ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue2,
        >(value.clone())
        {
            return Ok(
                Self::ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue2(
                    inner,
                ),
            );
        }
        if let Ok(inner) = serde_json::from_value::<
            ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue3,
        >(value.clone())
        {
            return Ok(
                Self::ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue3(
                    inner,
                ),
            );
        }
        if let Ok(inner) = serde_json::from_value::<
            ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue4,
        >(value.clone())
        {
            return Ok(
                Self::ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue4(
                    inner,
                ),
            );
        }
        if let Ok(inner) = serde_json::from_value::<
            ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue5,
        >(value.clone())
        {
            return Ok(
                Self::ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue5(
                    inner,
                ),
            );
        }
        if let Ok(inner) = serde_json::from_value::<
            ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue6,
        >(value.clone())
        {
            return Ok(
                Self::ValidateAndSavePaymentMethodConfigurationRequestApplicationJsonOneOfValue6(
                    inner,
                ),
            );
        }
        if crate::runtime_schema::allow_unknown_union() {
            Ok(Self::Unknown(value))
        } else {
            Err(serde::de::Error::custom("unknown union variant"))
        }
    }
}

impl ValidateParamsBodyOneOf {
    /// Whether this union value matches a variant known to this SDK version.
    pub fn is_known_variant(&self) -> bool {
        !matches!(self, Self::Unknown(_))
    }
}

#[derive(Debug, Clone, Serialize)]
#[serde(untagged)]
pub enum CreateCustomerSessionParamsBodyOneOf {
    CreateCustomerSessionRequestApplicationJsonOneOfValue1(
        CreateCustomerSessionRequestApplicationJsonOneOfValue1,
    ),
    CreateCustomerSessionRequestApplicationJsonOneOfValue2(
        CreateCustomerSessionRequestApplicationJsonOneOfValue2,
    ),
    Unknown(serde_json::Value),
}
impl<'de> Deserialize<'de> for CreateCustomerSessionParamsBodyOneOf {
    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
        let value = serde_json::Value::deserialize(deserializer)?;
        crate::runtime_schema::union(&value, "{\"kind\":\"union\",\"composition\":\"oneOf\",\"variants\":[{\"kind\":\"ref\",\"name\":\"CreateCustomerSessionRequestApplicationJsonOneOfValue1\"},{\"kind\":\"ref\",\"name\":\"CreateCustomerSessionRequestApplicationJsonOneOfValue2\"}]}").map_err(serde::de::Error::custom)?;
        if let Ok(inner) = serde_json::from_value::<
            CreateCustomerSessionRequestApplicationJsonOneOfValue1,
        >(value.clone())
        {
            return Ok(Self::CreateCustomerSessionRequestApplicationJsonOneOfValue1(inner));
        }
        if let Ok(inner) = serde_json::from_value::<
            CreateCustomerSessionRequestApplicationJsonOneOfValue2,
        >(value.clone())
        {
            return Ok(Self::CreateCustomerSessionRequestApplicationJsonOneOfValue2(inner));
        }
        if crate::runtime_schema::allow_unknown_union() {
            Ok(Self::Unknown(value))
        } else {
            Err(serde::de::Error::custom("unknown union variant"))
        }
    }
}

impl CreateCustomerSessionParamsBodyOneOf {
    /// Whether this union value matches a variant known to this SDK version.
    pub fn is_known_variant(&self) -> bool {
        !matches!(self, Self::Unknown(_))
    }
}

#[derive(Debug, Clone, Serialize)]
#[serde(untagged)]
pub enum ExchangeOAuthTokenParamsBodyOneOf {
    ExchangeOAuthTokenRequestApplicationXWwwFormUrlencodedOneOfValue1(
        ExchangeOAuthTokenRequestApplicationXWwwFormUrlencodedOneOfValue1,
    ),
    ExchangeOAuthTokenRequestApplicationXWwwFormUrlencodedOneOfValue2(
        ExchangeOAuthTokenRequestApplicationXWwwFormUrlencodedOneOfValue2,
    ),
    Unknown(serde_json::Value),
}
impl<'de> Deserialize<'de> for ExchangeOAuthTokenParamsBodyOneOf {
    fn deserialize<D: serde::Deserializer<'de>>(deserializer: D) -> Result<Self, D::Error> {
        let value = serde_json::Value::deserialize(deserializer)?;
        crate::runtime_schema::union(&value, "{\"kind\":\"union\",\"composition\":\"oneOf\",\"variants\":[{\"kind\":\"ref\",\"name\":\"ExchangeOAuthTokenRequestApplicationXWwwFormUrlencodedOneOfValue1\"},{\"kind\":\"ref\",\"name\":\"ExchangeOAuthTokenRequestApplicationXWwwFormUrlencodedOneOfValue2\"}]}").map_err(serde::de::Error::custom)?;
        if let Ok(inner) = serde_json::from_value::<
            ExchangeOAuthTokenRequestApplicationXWwwFormUrlencodedOneOfValue1,
        >(value.clone())
        {
            return Ok(
                Self::ExchangeOAuthTokenRequestApplicationXWwwFormUrlencodedOneOfValue1(inner),
            );
        }
        if let Ok(inner) = serde_json::from_value::<
            ExchangeOAuthTokenRequestApplicationXWwwFormUrlencodedOneOfValue2,
        >(value.clone())
        {
            return Ok(
                Self::ExchangeOAuthTokenRequestApplicationXWwwFormUrlencodedOneOfValue2(inner),
            );
        }
        if crate::runtime_schema::allow_unknown_union() {
            Ok(Self::Unknown(value))
        } else {
            Err(serde::de::Error::custom("unknown union variant"))
        }
    }
}

impl ExchangeOAuthTokenParamsBodyOneOf {
    /// Whether this union value matches a variant known to this SDK version.
    pub fn is_known_variant(&self) -> bool {
        !matches!(self, Self::Unknown(_))
    }
}