fireblocks_sdk/models/
token_ownership_response.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 TokenOwnershipResponse {
16    /// The Fireblocks NFT asset id
17    #[serde(rename = "id")]
18    pub id: String,
19    /// Token id within the contract/collection
20    #[serde(rename = "tokenId")]
21    pub token_id: String,
22    /// Token's standard
23    #[serde(rename = "standard")]
24    pub standard: String,
25    /// URL of the original token JSON metadata
26    #[serde(rename = "metadataURI", skip_serializing_if = "Option::is_none")]
27    pub metadata_uri: Option<String>,
28    /// URL of the cached token JSON metadata
29    #[serde(rename = "cachedMetadataURI", skip_serializing_if = "Option::is_none")]
30    pub cached_metadata_uri: Option<String>,
31    /// Media items extracted from metadata JSON
32    #[serde(rename = "media", skip_serializing_if = "Option::is_none")]
33    pub media: Option<Vec<models::MediaEntityResponse>>,
34    /// Owned Token's Spam status
35    #[serde(rename = "spam", skip_serializing_if = "Option::is_none")]
36    pub spam: Option<models::SpamOwnershipResponse>,
37    /// Parent collection information
38    #[serde(rename = "collection", skip_serializing_if = "Option::is_none")]
39    pub collection: Option<models::TokenCollectionResponse>,
40    /// Token's balance
41    #[serde(rename = "balance")]
42    pub balance: String,
43    /// Fireblocks Vault Account ID
44    #[serde(rename = "vaultAccountId", skip_serializing_if = "Option::is_none")]
45    pub vault_account_id: Option<String>,
46    /// Ownership start timestamp (epoch)
47    #[serde(rename = "ownershipStartTime")]
48    pub ownership_start_time: f64,
49    /// Ownership start last update time (epoch)
50    #[serde(rename = "ownershipLastUpdateTime")]
51    pub ownership_last_update_time: f64,
52    /// Token's blockchain
53    #[serde(rename = "blockchainDescriptor")]
54    pub blockchain_descriptor: BlockchainDescriptor,
55    /// Token's metadata description
56    #[serde(rename = "description", skip_serializing_if = "Option::is_none")]
57    pub description: Option<String>,
58    /// Token's name
59    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
60    pub name: Option<String>,
61    /// Ownership Non-Custodial Wallet ID
62    #[serde(rename = "ncwId", skip_serializing_if = "Option::is_none")]
63    pub ncw_id: Option<String>,
64    /// Ownership Non-Custodial Wallet's account ID
65    #[serde(rename = "ncwAccountId", skip_serializing_if = "Option::is_none")]
66    pub ncw_account_id: Option<String>,
67    /// Owned Token's status
68    #[serde(rename = "status")]
69    pub status: Status,
70}
71
72impl TokenOwnershipResponse {
73    pub fn new(
74        id: String,
75        token_id: String,
76        standard: String,
77        balance: String,
78        ownership_start_time: f64,
79        ownership_last_update_time: f64,
80        blockchain_descriptor: BlockchainDescriptor,
81        status: Status,
82    ) -> TokenOwnershipResponse {
83        TokenOwnershipResponse {
84            id,
85            token_id,
86            standard,
87            metadata_uri: None,
88            cached_metadata_uri: None,
89            media: None,
90            spam: None,
91            collection: None,
92            balance,
93            vault_account_id: None,
94            ownership_start_time,
95            ownership_last_update_time,
96            blockchain_descriptor,
97            description: None,
98            name: None,
99            ncw_id: None,
100            ncw_account_id: None,
101            status,
102        }
103    }
104}
105/// Token's blockchain
106#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
107pub enum BlockchainDescriptor {
108    #[serde(rename = "ETH")]
109    Eth,
110    #[serde(rename = "ETH_TEST3")]
111    EthTest3,
112    #[serde(rename = "ETH_TEST5")]
113    EthTest5,
114    #[serde(rename = "ETH_TEST6")]
115    EthTest6,
116    #[serde(rename = "POLYGON")]
117    Polygon,
118    #[serde(rename = "POLYGON_TEST_MUMBAI")]
119    PolygonTestMumbai,
120    #[serde(rename = "AMOY_POLYGON_TEST")]
121    AmoyPolygonTest,
122    #[serde(rename = "XTZ")]
123    Xtz,
124    #[serde(rename = "XTZ_TEST")]
125    XtzTest,
126    #[serde(rename = "BASECHAIN_ETH")]
127    BasechainEth,
128    #[serde(rename = "BASECHAIN_ETH_TEST3")]
129    BasechainEthTest3,
130    #[serde(rename = "BASECHAIN_ETH_TEST5")]
131    BasechainEthTest5,
132    #[serde(rename = "ETHERLINK")]
133    Etherlink,
134    #[serde(rename = "ETHERLINK_TEST")]
135    EtherlinkTest,
136    #[serde(rename = "MANTLE")]
137    Mantle,
138    #[serde(rename = "MANTLE_TEST")]
139    MantleTest,
140    #[serde(rename = "GUN_GUNZILLA_TEST")]
141    GunGunzillaTest,
142    #[serde(rename = "ETH_SONEIUM")]
143    EthSoneium,
144    #[serde(rename = "SONEIUM_MINATO_TEST")]
145    SoneiumMinatoTest,
146    #[serde(rename = "IOTX_IOTEX")]
147    IotxIotex,
148}
149
150impl Default for BlockchainDescriptor {
151    fn default() -> BlockchainDescriptor {
152        Self::Eth
153    }
154}
155/// Owned Token's status
156#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
157pub enum Status {
158    #[serde(rename = "LISTED")]
159    Listed,
160    #[serde(rename = "ARCHIVED")]
161    Archived,
162}
163
164impl Default for Status {
165    fn default() -> Status {
166        Self::Listed
167    }
168}