fireblocks_sdk/models/
travel_rule_validate_full_transaction_request.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#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct TravelRuleValidateFullTransactionRequest {
16    /// The Decentralized Identifier (DID) of the exchange (VASP) that is
17    /// sending the virtual assets. This identifier is unique to the exchange
18    /// and is generated when the exchange's account is  created in the Notabene
19    /// network.
20    #[serde(rename = "originatorVASPdid", skip_serializing_if = "Option::is_none")]
21    pub originator_vas_pdid: Option<String>,
22    /// The Decentralized Identifier (DID) of the exchange (VASP) that is
23    /// receiving the virtual assets. This identifier is unique to the exchange
24    /// and is generated when the exchange's account is  created in the Notabene
25    /// network.
26    #[serde(rename = "beneficiaryVASPdid", skip_serializing_if = "Option::is_none")]
27    pub beneficiary_vas_pdid: Option<String>,
28    /// Transaction asset symbol (e.g., BTC, ETH, USDC).  By using the
29    /// `notation` query string, users can select the type of asset notation  -
30    /// `fireblocks`: Converts asset symbols to Fireblocks notation.  -
31    /// `notabene`: Retains the original Notabene asset symbol format.
32    #[serde(rename = "transactionAsset", skip_serializing_if = "Option::is_none")]
33    pub transaction_asset: Option<String>,
34    /// Transaction amount in the transaction asset. For example, if the asset
35    /// is BTC, the amount  is the value in BTC units.  By using the `notation`
36    /// query string, users can select the type of amount notation -
37    /// `fireblocks`: Converts the amount to Fireblocks notation (e.g., adjusted
38    /// for decimals). - `notabene`: Retains the original Notabene amount
39    /// format.
40    #[serde(rename = "transactionAmount", skip_serializing_if = "Option::is_none")]
41    pub transaction_amount: Option<String>,
42    /// The name of the VASP acting as the transaction originator.
43    #[serde(rename = "originatorVASPname", skip_serializing_if = "Option::is_none")]
44    pub originator_vas_pname: Option<String>,
45    /// The name of the VASP acting as the transaction beneficiary.
46    #[serde(
47        rename = "beneficiaryVASPname",
48        skip_serializing_if = "Option::is_none"
49    )]
50    pub beneficiary_vas_pname: Option<String>,
51    /// Information about the blockchain transaction.
52    #[serde(
53        rename = "transactionBlockchainInfo",
54        skip_serializing_if = "Option::is_none"
55    )]
56    pub transaction_blockchain_info: Option<models::TravelRuleTransactionBlockchainInfo>,
57    /// Information about the originator of the transaction.
58    #[serde(rename = "originator")]
59    pub originator: models::TravelRuleValidatePiiIvms,
60    /// Information about the beneficiary of the transaction.
61    #[serde(rename = "beneficiary")]
62    pub beneficiary: models::TravelRuleValidatePiiIvms,
63    /// Encrypted data related to the transaction.
64    #[serde(rename = "encrypted", skip_serializing_if = "Option::is_none")]
65    pub encrypted: Option<String>,
66    /// The protocol used to perform the travel rule.
67    #[serde(rename = "protocol", skip_serializing_if = "Option::is_none")]
68    pub protocol: Option<String>,
69    /// Whether to skip validation of beneficiary data.
70    #[serde(
71        rename = "skipBeneficiaryDataValidation",
72        skip_serializing_if = "Option::is_none"
73    )]
74    pub skip_beneficiary_data_validation: Option<bool>,
75    /// Whether to check if the transaction complies with the travel rule in the
76    /// beneficiary VASP's jurisdiction.
77    #[serde(rename = "travelRuleBehavior", skip_serializing_if = "Option::is_none")]
78    pub travel_rule_behavior: Option<bool>,
79    /// A reference ID related to the originator of the transaction.
80    #[serde(rename = "originatorRef", skip_serializing_if = "Option::is_none")]
81    pub originator_ref: Option<String>,
82    /// A reference ID related to the beneficiary of the transaction.
83    #[serde(rename = "beneficiaryRef", skip_serializing_if = "Option::is_none")]
84    pub beneficiary_ref: Option<String>,
85    /// A reference ID related to the travel rule behavior.
86    #[serde(
87        rename = "travelRuleBehaviorRef",
88        skip_serializing_if = "Option::is_none"
89    )]
90    pub travel_rule_behavior_ref: Option<String>,
91    /// Ownership proof related to the originator of the transaction.
92    #[serde(rename = "originatorProof", skip_serializing_if = "Option::is_none")]
93    pub originator_proof: Option<models::TravelRuleOwnershipProof>,
94    /// Ownership proof related to the beneficiary of the transaction.
95    #[serde(rename = "beneficiaryProof", skip_serializing_if = "Option::is_none")]
96    pub beneficiary_proof: Option<models::TravelRuleOwnershipProof>,
97    /// The Decentralized Identifier (DID) of the person at the receiving
98    /// exchange (VASP).  This identifier is generated when the customer is
99    /// registered in the Notabene network,  or automatically created based on
100    /// the `beneficiaryRef`.  - If neither `beneficiaryRef` nor
101    /// `beneficiaryDid` is provided in the `txCreate` payload,    a new random
102    /// DID is generated for every transaction.
103    #[serde(rename = "beneficiaryDid", skip_serializing_if = "Option::is_none")]
104    pub beneficiary_did: Option<String>,
105    /// The Decentralized Identifier (DID) of the person at the exchange (VASP)
106    /// who is requesting the withdrawal. This identifier is generated when the
107    /// customer is registered in the Notabene network or automatically created
108    /// based on the `originatorRef`.  - If neither `originatorRef` nor
109    /// `originatorDid` is provided in the `txCreate` payload,    a new random
110    /// DID is generated for every transaction.
111    #[serde(rename = "originatorDid", skip_serializing_if = "Option::is_none")]
112    pub originator_did: Option<String>,
113    /// Indicates if the transaction involves a non-custodial wallet.
114    #[serde(rename = "isNonCustodial", skip_serializing_if = "Option::is_none")]
115    pub is_non_custodial: Option<bool>,
116    /// The email address where a notification should be sent upon completion of
117    /// the travel rule
118    #[serde(rename = "notificationEmail", skip_serializing_if = "Option::is_none")]
119    pub notification_email: Option<String>,
120    /// Personal identifiable information related to the transaction
121    #[serde(rename = "pii", skip_serializing_if = "Option::is_none")]
122    pub pii: Option<models::TravelRulePiiIvms>,
123    /// The URL of the personal identifiable information related to the
124    /// transaction
125    #[serde(rename = "pii_url", skip_serializing_if = "Option::is_none")]
126    pub pii_url: Option<String>,
127}
128
129impl TravelRuleValidateFullTransactionRequest {
130    pub fn new(
131        originator: models::TravelRuleValidatePiiIvms,
132        beneficiary: models::TravelRuleValidatePiiIvms,
133    ) -> TravelRuleValidateFullTransactionRequest {
134        TravelRuleValidateFullTransactionRequest {
135            originator_vas_pdid: None,
136            beneficiary_vas_pdid: None,
137            transaction_asset: None,
138            transaction_amount: None,
139            originator_vas_pname: None,
140            beneficiary_vas_pname: None,
141            transaction_blockchain_info: None,
142            originator,
143            beneficiary,
144            encrypted: None,
145            protocol: None,
146            skip_beneficiary_data_validation: None,
147            travel_rule_behavior: None,
148            originator_ref: None,
149            beneficiary_ref: None,
150            travel_rule_behavior_ref: None,
151            originator_proof: None,
152            beneficiary_proof: None,
153            beneficiary_did: None,
154            originator_did: None,
155            is_non_custodial: None,
156            notification_email: None,
157            pii: None,
158            pii_url: None,
159        }
160    }
161}