rust_types/ledger_models/
security.rs

1#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2#[repr(i32)]
3pub enum IdentifierTypeProto {
4    UnknownIdentifierType = 0,
5    ExchTicker = 1,
6    Isin = 2,
7    Cusip = 3,
8    Osi = 4,
9    Figi = 5,
10    Cash = 50,
11}
12impl IdentifierTypeProto {
13    /// String value of the enum field names used in the ProtoBuf definition.
14    ///
15    /// The values are not transformed in any way and thus are considered stable
16    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
17    pub fn as_str_name(&self) -> &'static str {
18        match self {
19            IdentifierTypeProto::UnknownIdentifierType => "UNKNOWN_IDENTIFIER_TYPE",
20            IdentifierTypeProto::ExchTicker => "EXCH_TICKER",
21            IdentifierTypeProto::Isin => "ISIN",
22            IdentifierTypeProto::Cusip => "CUSIP",
23            IdentifierTypeProto::Osi => "OSI",
24            IdentifierTypeProto::Figi => "FIGI",
25            IdentifierTypeProto::Cash => "CASH",
26        }
27    }
28}
29#[derive(Clone, PartialEq, ::prost::Message)]
30pub struct IdentifierProto {
31    #[prost(string, tag = "1")]
32    pub object_class: ::prost::alloc::string::String,
33    #[prost(string, tag = "2")]
34    pub version: ::prost::alloc::string::String,
35    /// Primary Key
36    #[prost(string, tag = "5")]
37    pub identifier_value: ::prost::alloc::string::String,
38    #[prost(enumeration = "IdentifierTypeProto", tag = "6")]
39    pub identifier_type: i32,
40}
41#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
42#[repr(i32)]
43pub enum SecurityTypeProto {
44    /// Maps to Security
45    UnknownSecurityType = 0,
46    CashSecurity = 1,
47    EquitySecurity = 2,
48    BondSecurity = 3,
49    Tips = 4,
50    Frn = 5,
51}
52impl SecurityTypeProto {
53    /// String value of the enum field names used in the ProtoBuf definition.
54    ///
55    /// The values are not transformed in any way and thus are considered stable
56    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
57    pub fn as_str_name(&self) -> &'static str {
58        match self {
59            SecurityTypeProto::UnknownSecurityType => "UNKNOWN_SECURITY_TYPE",
60            SecurityTypeProto::CashSecurity => "CASH_SECURITY",
61            SecurityTypeProto::EquitySecurity => "EQUITY_SECURITY",
62            SecurityTypeProto::BondSecurity => "BOND_SECURITY",
63            SecurityTypeProto::Tips => "TIPS",
64            SecurityTypeProto::Frn => "FRN",
65        }
66    }
67}
68#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
69#[repr(i32)]
70pub enum SecurityQuantityTypeProto {
71    /// Maps to Security
72    UnknownQuantityType = 0,
73    OriginalFaceValue = 1,
74    Notional = 2,
75    Units = 3,
76}
77impl SecurityQuantityTypeProto {
78    /// String value of the enum field names used in the ProtoBuf definition.
79    ///
80    /// The values are not transformed in any way and thus are considered stable
81    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
82    pub fn as_str_name(&self) -> &'static str {
83        match self {
84            SecurityQuantityTypeProto::UnknownQuantityType => "UNKNOWN_QUANTITY_TYPE",
85            SecurityQuantityTypeProto::OriginalFaceValue => "ORIGINAL_FACE_VALUE",
86            SecurityQuantityTypeProto::Notional => "NOTIONAL",
87            SecurityQuantityTypeProto::Units => "UNITS",
88        }
89    }
90}
91#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
92#[repr(i32)]
93pub enum CouponFrequencyProto {
94    /// Maps to Security
95    UnknownCouponFrequency = 0,
96    Annually = 1,
97    Semiannually = 2,
98    Quarterly = 3,
99    Monthly = 4,
100    NoCoupon = 5,
101}
102impl CouponFrequencyProto {
103    /// String value of the enum field names used in the ProtoBuf definition.
104    ///
105    /// The values are not transformed in any way and thus are considered stable
106    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
107    pub fn as_str_name(&self) -> &'static str {
108        match self {
109            CouponFrequencyProto::UnknownCouponFrequency => "UNKNOWN_COUPON_FREQUENCY",
110            CouponFrequencyProto::Annually => "ANNUALLY",
111            CouponFrequencyProto::Semiannually => "SEMIANNUALLY",
112            CouponFrequencyProto::Quarterly => "QUARTERLY",
113            CouponFrequencyProto::Monthly => "MONTHLY",
114            CouponFrequencyProto::NoCoupon => "NO_COUPON",
115        }
116    }
117}
118#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
119#[repr(i32)]
120pub enum CouponTypeProto {
121    /// Maps to Security
122    UnknownCouponType = 0,
123    Fixed = 1,
124    Float = 2,
125    Zero = 3,
126}
127impl CouponTypeProto {
128    /// String value of the enum field names used in the ProtoBuf definition.
129    ///
130    /// The values are not transformed in any way and thus are considered stable
131    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
132    pub fn as_str_name(&self) -> &'static str {
133        match self {
134            CouponTypeProto::UnknownCouponType => "UNKNOWN_COUPON_TYPE",
135            CouponTypeProto::Fixed => "FIXED",
136            CouponTypeProto::Float => "FLOAT",
137            CouponTypeProto::Zero => "ZERO",
138        }
139    }
140}
141#[derive(Clone, PartialEq, ::prost::Message)]
142pub struct SecurityProto {
143    #[prost(string, tag = "1")]
144    pub object_class: ::prost::alloc::string::String,
145    #[prost(string, tag = "2")]
146    pub version: ::prost::alloc::string::String,
147    /// Primary Key
148    #[prost(message, optional, tag = "5")]
149    pub uuid: ::core::option::Option<super::util::UuidProto>,
150    #[prost(message, optional, tag = "6")]
151    pub as_of: ::core::option::Option<super::util::LocalTimestampProto>,
152    #[prost(bool, tag = "7")]
153    pub is_link: bool,
154    #[prost(enumeration = "SecurityTypeProto", tag = "10")]
155    pub security_type: i32,
156    /// Biz fields
157    #[prost(string, tag = "11")]
158    pub asset_class: ::prost::alloc::string::String,
159    #[prost(string, tag = "12")]
160    pub issuer_name: ::prost::alloc::string::String,
161    #[prost(message, optional, boxed, tag = "13")]
162    pub settlement_currency: ::core::option::Option<
163        ::prost::alloc::boxed::Box<SecurityProto>,
164    >,
165    #[prost(enumeration = "SecurityQuantityTypeProto", tag = "14")]
166    pub quantity_type: i32,
167    #[prost(message, optional, tag = "40")]
168    pub identifier: ::core::option::Option<IdentifierProto>,
169    #[prost(string, tag = "41")]
170    pub description: ::prost::alloc::string::String,
171    /// Cash Security fields
172    #[prost(string, tag = "50")]
173    pub cash_id: ::prost::alloc::string::String,
174    /// Bond Security fields
175    #[prost(message, optional, tag = "60")]
176    pub coupon_rate: ::core::option::Option<super::util::DecimalValueProto>,
177    #[prost(enumeration = "CouponTypeProto", tag = "61")]
178    pub coupon_type: i32,
179    #[prost(enumeration = "CouponFrequencyProto", tag = "62")]
180    pub coupon_frequency: i32,
181    #[prost(message, optional, tag = "63")]
182    pub dated_date: ::core::option::Option<super::util::LocalDateProto>,
183    #[prost(message, optional, tag = "64")]
184    pub face_value: ::core::option::Option<super::util::DecimalValueProto>,
185    #[prost(message, optional, tag = "65")]
186    pub issue_date: ::core::option::Option<super::util::LocalDateProto>,
187    #[prost(message, optional, tag = "66")]
188    pub maturity_date: ::core::option::Option<super::util::LocalDateProto>,
189}
190#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
191#[repr(i32)]
192pub enum TenorTypeProto {
193    UnknownTenorType = 0,
194    Perpetual = 1,
195    Term = 2,
196}
197impl TenorTypeProto {
198    /// String value of the enum field names used in the ProtoBuf definition.
199    ///
200    /// The values are not transformed in any way and thus are considered stable
201    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
202    pub fn as_str_name(&self) -> &'static str {
203        match self {
204            TenorTypeProto::UnknownTenorType => "UNKNOWN_TENOR_TYPE",
205            TenorTypeProto::Perpetual => "PERPETUAL",
206            TenorTypeProto::Term => "TERM",
207        }
208    }
209}
210#[derive(Clone, PartialEq, ::prost::Message)]
211pub struct TenorProto {
212    #[prost(string, tag = "1")]
213    pub object_class: ::prost::alloc::string::String,
214    #[prost(string, tag = "2")]
215    pub version: ::prost::alloc::string::String,
216    #[prost(string, tag = "5")]
217    pub term_value: ::prost::alloc::string::String,
218    #[prost(enumeration = "TenorTypeProto", tag = "6")]
219    pub tenor_type: i32,
220}
221#[derive(Clone, PartialEq, ::prost::Message)]
222pub struct SecurityRequestProto {
223    #[prost(string, tag = "1")]
224    pub object_class: ::prost::alloc::string::String,
225    #[prost(string, tag = "2")]
226    pub version: ::prost::alloc::string::String,
227    #[prost(enumeration = "super::util::RequestOperationTypeProto", tag = "10")]
228    pub operation_type: i32,
229    #[prost(message, optional, tag = "20")]
230    pub create_security_input: ::core::option::Option<SecurityProto>,
231    #[prost(message, repeated, tag = "21")]
232    pub uuids: ::prost::alloc::vec::Vec<super::util::UuidProto>,
233    #[prost(message, optional, tag = "22")]
234    pub search_security_input: ::core::option::Option<
235        super::position::PositionFilterProto,
236    >,
237}
238#[derive(Clone, PartialEq, ::prost::Message)]
239pub struct SecurityResponseProto {
240    #[prost(string, tag = "1")]
241    pub object_class: ::prost::alloc::string::String,
242    #[prost(string, tag = "2")]
243    pub version: ::prost::alloc::string::String,
244    #[prost(message, optional, tag = "20")]
245    pub create_security_request: ::core::option::Option<SecurityRequestProto>,
246    #[prost(message, repeated, tag = "30")]
247    pub security_response: ::prost::alloc::vec::Vec<SecurityProto>,
248}