fireblocks_sdk/models/
additional_info_request_additional_info.rs

1// Fireblocks API
2//
3// Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain.  - Visit our website for more information: [Fireblocks Website](https://fireblocks.com) - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)
4//
5// The version of the OpenAPI document: 1.8.0
6// Contact: developers@fireblocks.com
7// Generated by: https://openapi-generator.tech
8
9use {
10    crate::models,
11    serde::{Deserialize, Serialize},
12};
13
14/// AdditionalInfoRequestAdditionalInfo : Additional payment information based
15/// on the payment rail type Additional payment information based on the payment
16/// rail type
17#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
18#[serde(untagged)]
19pub enum AdditionalInfoRequestAdditionalInfo {
20    IbanPaymentInfo(models::IbanPaymentInfo),
21    AbaPaymentInfo(models::AbaPaymentInfo),
22    SpeiBasicPaymentInfo(models::SpeiBasicPaymentInfo),
23    SpeiAdvancedPaymentInfo(models::SpeiAdvancedPaymentInfo),
24    PixPaymentInfo(models::PixPaymentInfo),
25    SepaPaymentInfo(models::SepaPaymentInfo),
26    AchPaymentInfo(models::AchPaymentInfo),
27    UsWirePaymentInfo(models::UsWirePaymentInfo),
28    MomoPaymentInfo(models::MomoPaymentInfo),
29    LbtPaymentInfo(models::LbtPaymentInfo),
30}
31
32impl Default for AdditionalInfoRequestAdditionalInfo {
33    fn default() -> Self {
34        Self::IbanPaymentInfo(Default::default())
35    }
36}
37/// The payment rail type for Lebanese bank transfers
38#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
39pub enum Rail {
40    #[serde(rename = "LBT")]
41    Lbt,
42}
43
44impl Default for Rail {
45    fn default() -> Rail {
46        Self::Lbt
47    }
48}
49/// The addressing system used for Lebanese bank transfers (Bank Account Number)
50#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
51pub enum AddressingSystem {
52    #[serde(rename = "BAN")]
53    Ban,
54}
55
56impl Default for AddressingSystem {
57    fn default() -> AddressingSystem {
58        Self::Ban
59    }
60}
61/// The type of PIX key being used
62#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
63pub enum KeyType {
64    #[serde(rename = "CPF")]
65    Cpf,
66    #[serde(rename = "CNPJ")]
67    Cnpj,
68    #[serde(rename = "EMAIL")]
69    Email,
70    #[serde(rename = "PHONE")]
71    Phone,
72    #[serde(rename = "RANDOM")]
73    Random,
74}
75
76impl Default for KeyType {
77    fn default() -> KeyType {
78        Self::Cpf
79    }
80}
81/// The type of bank account
82#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
83pub enum AccountType {
84    #[serde(rename = "CHECKING")]
85    Checking,
86    #[serde(rename = "SAVINGS")]
87    Savings,
88}
89
90impl Default for AccountType {
91    fn default() -> AccountType {
92        Self::Checking
93    }
94}
95/// The mobile money service provider
96#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
97pub enum Provider {
98    #[serde(rename = "M_PESA")]
99    MPesa,
100    #[serde(rename = "AIRTEL")]
101    Airtel,
102    #[serde(rename = "MTN")]
103    Mtn,
104    #[serde(rename = "TIGO")]
105    Tigo,
106}
107
108impl Default for Provider {
109    fn default() -> Provider {
110        Self::MPesa
111    }
112}