fireblocks_sdk/models/
screening_metadata_config_v2.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/// ScreeningMetadataConfigV2 : Screening metadata configuration
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct ScreeningMetadataConfigV2 {
17    /// Direction of transaction
18    #[serde(rename = "direction")]
19    pub direction: Direction,
20    /// Screening provider
21    #[serde(
22        rename = "provider",
23        default,
24        with = "::serde_with::rust::double_option",
25        skip_serializing_if = "Option::is_none"
26    )]
27    pub provider: Option<Option<Provider>>,
28    /// Risk rating threshold
29    #[serde(rename = "riskRating", skip_serializing_if = "Option::is_none")]
30    pub risk_rating: Option<RiskRating>,
31    /// Risk score threshold
32    #[serde(rename = "riskScore", skip_serializing_if = "Option::is_none")]
33    pub risk_score: Option<String>,
34    /// Exposure type
35    #[serde(rename = "exposureType", skip_serializing_if = "Option::is_none")]
36    pub exposure_type: Option<ExposureType>,
37    #[serde(rename = "category", skip_serializing_if = "Option::is_none")]
38    pub category: Option<Vec<String>>,
39    #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
40    pub name: Option<Vec<String>>,
41    #[serde(rename = "categoryId", skip_serializing_if = "Option::is_none")]
42    pub category_id: Option<Vec<String>>,
43    /// Transaction status
44    #[serde(rename = "status", skip_serializing_if = "Option::is_none")]
45    pub status: Option<Status>,
46    /// Source address
47    #[serde(rename = "sourceAddress", skip_serializing_if = "Option::is_none")]
48    pub source_address: Option<String>,
49    /// Destination address
50    #[serde(rename = "destAddress", skip_serializing_if = "Option::is_none")]
51    pub dest_address: Option<String>,
52}
53
54impl ScreeningMetadataConfigV2 {
55    /// Screening metadata configuration
56    pub fn new(direction: Direction) -> ScreeningMetadataConfigV2 {
57        ScreeningMetadataConfigV2 {
58            direction,
59            provider: None,
60            risk_rating: None,
61            risk_score: None,
62            exposure_type: None,
63            category: None,
64            name: None,
65            category_id: None,
66            status: None,
67            source_address: None,
68            dest_address: None,
69        }
70    }
71}
72/// Direction of transaction
73#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
74pub enum Direction {
75    #[serde(rename = "INBOUND")]
76    Inbound,
77    #[serde(rename = "OUTBOUND")]
78    Outbound,
79    #[serde(rename = "ANY")]
80    Any,
81}
82
83impl Default for Direction {
84    fn default() -> Direction {
85        Self::Inbound
86    }
87}
88/// Screening provider
89#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
90pub enum Provider {
91    #[serde(rename = "CHAINALYSIS")]
92    Chainalysis,
93    #[serde(rename = "CHAINALYSIS_V2")]
94    ChainalysisV2,
95    #[serde(rename = "ELLIPTIC")]
96    Elliptic,
97    #[serde(rename = "ELLIPTIC_HOLISTIC")]
98    EllipticHolistic,
99    #[serde(rename = "NOTABENE")]
100    Notabene,
101}
102
103impl Default for Provider {
104    fn default() -> Provider {
105        Self::Chainalysis
106    }
107}
108/// Risk rating threshold
109#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
110pub enum RiskRating {
111    #[serde(rename = "LOW")]
112    Low,
113    #[serde(rename = "MEDIUM")]
114    Medium,
115    #[serde(rename = "HIGH")]
116    High,
117    #[serde(rename = "SEVERE")]
118    Severe,
119    #[serde(rename = "ANY")]
120    Any,
121}
122
123impl Default for RiskRating {
124    fn default() -> RiskRating {
125        Self::Low
126    }
127}
128/// Exposure type
129#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
130pub enum ExposureType {
131    #[serde(rename = "DIRECT")]
132    Direct,
133    #[serde(rename = "INDIRECT")]
134    Indirect,
135    #[serde(rename = "ANY")]
136    Any,
137}
138
139impl Default for ExposureType {
140    fn default() -> ExposureType {
141        Self::Direct
142    }
143}
144/// Transaction status
145#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
146pub enum Status {
147    #[serde(rename = "COMPLETED")]
148    Completed,
149    #[serde(rename = "PENDING")]
150    Pending,
151    #[serde(rename = "REJECTED")]
152    Rejected,
153    #[serde(rename = "FAILED")]
154    Failed,
155    #[serde(rename = "CANCELED")]
156    Canceled,
157    #[serde(rename = "BLOCKING_TIME_EXPIRED")]
158    BlockingTimeExpired,
159}
160
161impl Default for Status {
162    fn default() -> Status {
163        Self::Completed
164    }
165}