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}