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 SeriesId = 6,
11 Cash = 50,
12}
13impl IdentifierTypeProto {
14 pub fn as_str_name(&self) -> &'static str {
19 match self {
20 IdentifierTypeProto::UnknownIdentifierType => "UNKNOWN_IDENTIFIER_TYPE",
21 IdentifierTypeProto::ExchTicker => "EXCH_TICKER",
22 IdentifierTypeProto::Isin => "ISIN",
23 IdentifierTypeProto::Cusip => "CUSIP",
24 IdentifierTypeProto::Osi => "OSI",
25 IdentifierTypeProto::Figi => "FIGI",
26 IdentifierTypeProto::SeriesId => "SERIES_ID",
27 IdentifierTypeProto::Cash => "CASH",
28 }
29 }
30 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
32 match value {
33 "UNKNOWN_IDENTIFIER_TYPE" => Some(Self::UnknownIdentifierType),
34 "EXCH_TICKER" => Some(Self::ExchTicker),
35 "ISIN" => Some(Self::Isin),
36 "CUSIP" => Some(Self::Cusip),
37 "OSI" => Some(Self::Osi),
38 "FIGI" => Some(Self::Figi),
39 "SERIES_ID" => Some(Self::SeriesId),
40 "CASH" => Some(Self::Cash),
41 _ => None,
42 }
43 }
44}
45#[allow(clippy::derive_partial_eq_without_eq)]
46#[derive(Clone, PartialEq, ::prost::Message)]
47pub struct IdentifierProto {
48 #[prost(string, tag = "1")]
49 pub object_class: ::prost::alloc::string::String,
50 #[prost(string, tag = "2")]
51 pub version: ::prost::alloc::string::String,
52 #[prost(string, tag = "5")]
54 pub identifier_value: ::prost::alloc::string::String,
55 #[prost(enumeration = "IdentifierTypeProto", tag = "6")]
56 pub identifier_type: i32,
57}
58#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
81#[repr(i32)]
82pub enum ProductTypeProto {
83 ProductTypeUnknown = 0,
84 Tbill = 1,
86 TreasuryNote = 2,
87 TreasuryBond = 3,
88 Tips = 4,
89 TreasuryFrn = 5,
90 Strips = 6,
91 SovereignBond = 7,
92 CorpBond = 8,
93 MuniBond = 9,
94 CommonStock = 20,
96 PreferredStock = 21,
97 Adr = 22,
98 Etf = 23,
99 EquityIndex = 30,
101 BondIndex = 31,
102 CommodityIndex = 32,
103 VixSpot = 33,
104 CpiSeries = 34,
105 SofrSeries = 35,
106 Currency = 40,
108 FxSpot = 41,
109 MoneyMarketFund = 42,
110 Cryptocurrency = 50,
112 Stablecoin = 51,
113 Gold = 60,
115 Silver = 61,
116}
117impl ProductTypeProto {
118 pub fn as_str_name(&self) -> &'static str {
123 match self {
124 ProductTypeProto::ProductTypeUnknown => "PRODUCT_TYPE_UNKNOWN",
125 ProductTypeProto::Tbill => "TBILL",
126 ProductTypeProto::TreasuryNote => "TREASURY_NOTE",
127 ProductTypeProto::TreasuryBond => "TREASURY_BOND",
128 ProductTypeProto::Tips => "TIPS",
129 ProductTypeProto::TreasuryFrn => "TREASURY_FRN",
130 ProductTypeProto::Strips => "STRIPS",
131 ProductTypeProto::SovereignBond => "SOVEREIGN_BOND",
132 ProductTypeProto::CorpBond => "CORP_BOND",
133 ProductTypeProto::MuniBond => "MUNI_BOND",
134 ProductTypeProto::CommonStock => "COMMON_STOCK",
135 ProductTypeProto::PreferredStock => "PREFERRED_STOCK",
136 ProductTypeProto::Adr => "ADR",
137 ProductTypeProto::Etf => "ETF",
138 ProductTypeProto::EquityIndex => "EQUITY_INDEX",
139 ProductTypeProto::BondIndex => "BOND_INDEX",
140 ProductTypeProto::CommodityIndex => "COMMODITY_INDEX",
141 ProductTypeProto::VixSpot => "VIX_SPOT",
142 ProductTypeProto::CpiSeries => "CPI_SERIES",
143 ProductTypeProto::SofrSeries => "SOFR_SERIES",
144 ProductTypeProto::Currency => "CURRENCY",
145 ProductTypeProto::FxSpot => "FX_SPOT",
146 ProductTypeProto::MoneyMarketFund => "MONEY_MARKET_FUND",
147 ProductTypeProto::Cryptocurrency => "CRYPTOCURRENCY",
148 ProductTypeProto::Stablecoin => "STABLECOIN",
149 ProductTypeProto::Gold => "GOLD",
150 ProductTypeProto::Silver => "SILVER",
151 }
152 }
153 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
155 match value {
156 "PRODUCT_TYPE_UNKNOWN" => Some(Self::ProductTypeUnknown),
157 "TBILL" => Some(Self::Tbill),
158 "TREASURY_NOTE" => Some(Self::TreasuryNote),
159 "TREASURY_BOND" => Some(Self::TreasuryBond),
160 "TIPS" => Some(Self::Tips),
161 "TREASURY_FRN" => Some(Self::TreasuryFrn),
162 "STRIPS" => Some(Self::Strips),
163 "SOVEREIGN_BOND" => Some(Self::SovereignBond),
164 "CORP_BOND" => Some(Self::CorpBond),
165 "MUNI_BOND" => Some(Self::MuniBond),
166 "COMMON_STOCK" => Some(Self::CommonStock),
167 "PREFERRED_STOCK" => Some(Self::PreferredStock),
168 "ADR" => Some(Self::Adr),
169 "ETF" => Some(Self::Etf),
170 "EQUITY_INDEX" => Some(Self::EquityIndex),
171 "BOND_INDEX" => Some(Self::BondIndex),
172 "COMMODITY_INDEX" => Some(Self::CommodityIndex),
173 "VIX_SPOT" => Some(Self::VixSpot),
174 "CPI_SERIES" => Some(Self::CpiSeries),
175 "SOFR_SERIES" => Some(Self::SofrSeries),
176 "CURRENCY" => Some(Self::Currency),
177 "FX_SPOT" => Some(Self::FxSpot),
178 "MONEY_MARKET_FUND" => Some(Self::MoneyMarketFund),
179 "CRYPTOCURRENCY" => Some(Self::Cryptocurrency),
180 "STABLECOIN" => Some(Self::Stablecoin),
181 "GOLD" => Some(Self::Gold),
182 "SILVER" => Some(Self::Silver),
183 _ => None,
184 }
185 }
186}
187#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
214#[repr(i32)]
215pub enum InstrumentTypeProto {
216 InstrumentTypeUnknown = 0,
217 InstrumentTypeCash = 1,
218 InstrumentTypeDerivative = 2,
219 InstrumentTypeReferenceIndex = 3,
220}
221impl InstrumentTypeProto {
222 pub fn as_str_name(&self) -> &'static str {
227 match self {
228 InstrumentTypeProto::InstrumentTypeUnknown => "INSTRUMENT_TYPE_UNKNOWN",
229 InstrumentTypeProto::InstrumentTypeCash => "INSTRUMENT_TYPE_CASH",
230 InstrumentTypeProto::InstrumentTypeDerivative => "INSTRUMENT_TYPE_DERIVATIVE",
231 InstrumentTypeProto::InstrumentTypeReferenceIndex => {
232 "INSTRUMENT_TYPE_REFERENCE_INDEX"
233 }
234 }
235 }
236 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
238 match value {
239 "INSTRUMENT_TYPE_UNKNOWN" => Some(Self::InstrumentTypeUnknown),
240 "INSTRUMENT_TYPE_CASH" => Some(Self::InstrumentTypeCash),
241 "INSTRUMENT_TYPE_DERIVATIVE" => Some(Self::InstrumentTypeDerivative),
242 "INSTRUMENT_TYPE_REFERENCE_INDEX" => Some(Self::InstrumentTypeReferenceIndex),
243 _ => None,
244 }
245 }
246}
247#[allow(clippy::derive_partial_eq_without_eq)]
260#[derive(Clone, PartialEq, ::prost::Message)]
261pub struct SecurityIdProto {
262 #[prost(message, optional, tag = "1")]
263 pub uuid: ::core::option::Option<super::util::UuidProto>,
264}
265#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
266#[repr(i32)]
267pub enum SecurityQuantityTypeProto {
268 UnknownQuantityType = 0,
270 OriginalFaceValue = 1,
271 Notional = 2,
272 Units = 3,
273}
274impl SecurityQuantityTypeProto {
275 pub fn as_str_name(&self) -> &'static str {
280 match self {
281 SecurityQuantityTypeProto::UnknownQuantityType => "UNKNOWN_QUANTITY_TYPE",
282 SecurityQuantityTypeProto::OriginalFaceValue => "ORIGINAL_FACE_VALUE",
283 SecurityQuantityTypeProto::Notional => "NOTIONAL",
284 SecurityQuantityTypeProto::Units => "UNITS",
285 }
286 }
287 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
289 match value {
290 "UNKNOWN_QUANTITY_TYPE" => Some(Self::UnknownQuantityType),
291 "ORIGINAL_FACE_VALUE" => Some(Self::OriginalFaceValue),
292 "NOTIONAL" => Some(Self::Notional),
293 "UNITS" => Some(Self::Units),
294 _ => None,
295 }
296 }
297}
298#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
299#[repr(i32)]
300pub enum CouponFrequencyProto {
301 UnknownCouponFrequency = 0,
303 Annually = 1,
304 Semiannually = 2,
305 Quarterly = 3,
306 Monthly = 4,
307 NoCoupon = 5,
308}
309impl CouponFrequencyProto {
310 pub fn as_str_name(&self) -> &'static str {
315 match self {
316 CouponFrequencyProto::UnknownCouponFrequency => "UNKNOWN_COUPON_FREQUENCY",
317 CouponFrequencyProto::Annually => "ANNUALLY",
318 CouponFrequencyProto::Semiannually => "SEMIANNUALLY",
319 CouponFrequencyProto::Quarterly => "QUARTERLY",
320 CouponFrequencyProto::Monthly => "MONTHLY",
321 CouponFrequencyProto::NoCoupon => "NO_COUPON",
322 }
323 }
324 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
326 match value {
327 "UNKNOWN_COUPON_FREQUENCY" => Some(Self::UnknownCouponFrequency),
328 "ANNUALLY" => Some(Self::Annually),
329 "SEMIANNUALLY" => Some(Self::Semiannually),
330 "QUARTERLY" => Some(Self::Quarterly),
331 "MONTHLY" => Some(Self::Monthly),
332 "NO_COUPON" => Some(Self::NoCoupon),
333 _ => None,
334 }
335 }
336}
337#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
338#[repr(i32)]
339pub enum CouponTypeProto {
340 UnknownCouponType = 0,
342 Fixed = 1,
343 Float = 2,
344 Zero = 3,
345}
346impl CouponTypeProto {
347 pub fn as_str_name(&self) -> &'static str {
352 match self {
353 CouponTypeProto::UnknownCouponType => "UNKNOWN_COUPON_TYPE",
354 CouponTypeProto::Fixed => "FIXED",
355 CouponTypeProto::Float => "FLOAT",
356 CouponTypeProto::Zero => "ZERO",
357 }
358 }
359 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
361 match value {
362 "UNKNOWN_COUPON_TYPE" => Some(Self::UnknownCouponType),
363 "FIXED" => Some(Self::Fixed),
364 "FLOAT" => Some(Self::Float),
365 "ZERO" => Some(Self::Zero),
366 _ => None,
367 }
368 }
369}
370#[allow(clippy::derive_partial_eq_without_eq)]
371#[derive(Clone, PartialEq, ::prost::Message)]
372pub struct SecurityProto {
373 #[prost(string, tag = "1")]
374 pub object_class: ::prost::alloc::string::String,
375 #[prost(string, tag = "2")]
376 pub version: ::prost::alloc::string::String,
377 #[prost(message, optional, tag = "5")]
379 pub uuid: ::core::option::Option<super::util::UuidProto>,
380 #[prost(message, optional, tag = "6")]
381 pub as_of: ::core::option::Option<super::util::LocalTimestampProto>,
382 #[prost(bool, tag = "7")]
388 pub is_link: bool,
389 #[prost(message, optional, tag = "8")]
390 pub valid_from: ::core::option::Option<super::util::LocalTimestampProto>,
391 #[prost(message, optional, tag = "9")]
392 pub valid_to: ::core::option::Option<super::util::LocalTimestampProto>,
393 #[prost(enumeration = "ProductTypeProto", tag = "10")]
394 pub product_type: i32,
395 #[prost(enumeration = "InstrumentTypeProto", tag = "16")]
399 pub instrument_type: i32,
400 #[prost(message, repeated, tag = "17")]
406 pub legs: ::prost::alloc::vec::Vec<SecurityIdProto>,
407 #[prost(message, optional, tag = "15")]
414 pub deleted_at: ::core::option::Option<super::util::LocalTimestampProto>,
415 #[prost(string, tag = "11")]
417 pub asset_class: ::prost::alloc::string::String,
418 #[prost(string, tag = "12")]
419 pub issuer_name: ::prost::alloc::string::String,
420 #[prost(message, optional, boxed, tag = "13")]
421 pub settlement_currency: ::core::option::Option<
422 ::prost::alloc::boxed::Box<SecurityProto>,
423 >,
424 #[prost(enumeration = "SecurityQuantityTypeProto", tag = "14")]
425 pub quantity_type: i32,
426 #[prost(message, optional, tag = "40")]
428 pub identifier: ::core::option::Option<IdentifierProto>,
429 #[prost(string, tag = "41")]
430 pub description: ::prost::alloc::string::String,
431 #[prost(message, repeated, tag = "42")]
436 pub identifiers: ::prost::alloc::vec::Vec<IdentifierProto>,
437 #[prost(string, tag = "50")]
439 pub cash_id: ::prost::alloc::string::String,
440 #[prost(message, optional, tag = "60")]
444 pub coupon_rate: ::core::option::Option<super::util::DecimalValueProto>,
445 #[prost(enumeration = "CouponTypeProto", tag = "61")]
446 pub coupon_type: i32,
447 #[prost(enumeration = "CouponFrequencyProto", tag = "62")]
448 pub coupon_frequency: i32,
449 #[prost(message, optional, tag = "63")]
450 pub dated_date: ::core::option::Option<super::util::LocalDateProto>,
451 #[prost(message, optional, tag = "64")]
452 pub face_value: ::core::option::Option<super::util::DecimalValueProto>,
453 #[prost(message, optional, tag = "65")]
454 pub issue_date: ::core::option::Option<super::util::LocalDateProto>,
455 #[prost(message, optional, tag = "66")]
456 pub maturity_date: ::core::option::Option<super::util::LocalDateProto>,
457 #[prost(message, repeated, tag = "67")]
459 pub issuance_info: ::prost::alloc::vec::Vec<bond::IssuanceProto>,
460 #[prost(message, optional, tag = "70")]
464 pub base_cpi: ::core::option::Option<super::util::DecimalValueProto>,
465 #[prost(message, optional, tag = "71")]
467 pub index_date: ::core::option::Option<super::util::LocalDateProto>,
468 #[prost(enumeration = "index::IndexTypeProto", tag = "72")]
470 pub inflation_index_type: i32,
471 #[prost(message, optional, tag = "90")]
475 pub spread: ::core::option::Option<super::util::DecimalValueProto>,
476 #[prost(enumeration = "index::IndexTypeProto", tag = "91")]
478 pub reference_rate_index: i32,
479 #[prost(enumeration = "CouponFrequencyProto", tag = "92")]
481 pub reset_frequency: i32,
482 #[prost(enumeration = "index::IndexTypeProto", tag = "80")]
484 pub index_type: i32,
485 #[prost(
497 oneof = "security_proto::ProductDetails",
498 tags = "200, 201, 202, 203, 204, 205, 206"
499 )]
500 pub product_details: ::core::option::Option<security_proto::ProductDetails>,
501}
502pub mod security_proto {
504 #[allow(clippy::derive_partial_eq_without_eq)]
516 #[derive(Clone, PartialEq, ::prost::Oneof)]
517 pub enum ProductDetails {
518 #[prost(message, tag = "200")]
519 BondDetails(super::BondDetailsProto),
520 #[prost(message, tag = "201")]
521 TipsDetails(super::TipsDetailsProto),
522 #[prost(message, tag = "202")]
523 FrnDetails(super::FrnDetailsProto),
524 #[prost(message, tag = "203")]
525 IndexDetails(super::IndexDetailsProto),
526 #[prost(message, tag = "204")]
527 EquityDetails(super::EquityDetailsProto),
528 #[prost(message, tag = "205")]
529 CashDetails(super::CashDetailsProto),
530 #[prost(message, tag = "206")]
531 FxSpotDetails(::prost::alloc::boxed::Box<super::FxSpotDetailsProto>),
532 }
533}
534#[allow(clippy::derive_partial_eq_without_eq)]
536#[derive(Clone, PartialEq, ::prost::Message)]
537pub struct BondDetailsProto {
538 #[prost(message, optional, tag = "1")]
540 pub coupon_rate: ::core::option::Option<super::util::DecimalValueProto>,
541 #[prost(enumeration = "CouponTypeProto", tag = "2")]
542 pub coupon_type: i32,
543 #[prost(enumeration = "CouponFrequencyProto", tag = "3")]
544 pub coupon_frequency: i32,
545 #[prost(message, optional, tag = "4")]
546 pub dated_date: ::core::option::Option<super::util::LocalDateProto>,
547 #[prost(message, optional, tag = "5")]
548 pub face_value: ::core::option::Option<super::util::DecimalValueProto>,
549 #[prost(message, optional, tag = "6")]
550 pub issue_date: ::core::option::Option<super::util::LocalDateProto>,
551 #[prost(message, optional, tag = "7")]
552 pub maturity_date: ::core::option::Option<super::util::LocalDateProto>,
553 #[prost(message, repeated, tag = "8")]
554 pub issuance_info: ::prost::alloc::vec::Vec<bond::IssuanceProto>,
555}
556#[allow(clippy::derive_partial_eq_without_eq)]
559#[derive(Clone, PartialEq, ::prost::Message)]
560pub struct TipsDetailsProto {
561 #[prost(message, optional, tag = "1")]
563 pub coupon_rate: ::core::option::Option<super::util::DecimalValueProto>,
564 #[prost(enumeration = "CouponTypeProto", tag = "2")]
565 pub coupon_type: i32,
566 #[prost(enumeration = "CouponFrequencyProto", tag = "3")]
567 pub coupon_frequency: i32,
568 #[prost(message, optional, tag = "4")]
569 pub dated_date: ::core::option::Option<super::util::LocalDateProto>,
570 #[prost(message, optional, tag = "5")]
571 pub face_value: ::core::option::Option<super::util::DecimalValueProto>,
572 #[prost(message, optional, tag = "6")]
573 pub issue_date: ::core::option::Option<super::util::LocalDateProto>,
574 #[prost(message, optional, tag = "7")]
575 pub maturity_date: ::core::option::Option<super::util::LocalDateProto>,
576 #[prost(message, repeated, tag = "8")]
577 pub issuance_info: ::prost::alloc::vec::Vec<bond::IssuanceProto>,
578 #[prost(message, optional, tag = "10")]
582 pub base_cpi: ::core::option::Option<super::util::DecimalValueProto>,
583 #[prost(message, optional, tag = "11")]
585 pub index_date: ::core::option::Option<super::util::LocalDateProto>,
586 #[prost(enumeration = "index::IndexTypeProto", tag = "12")]
588 pub inflation_index_type: i32,
589}
590#[allow(clippy::derive_partial_eq_without_eq)]
593#[derive(Clone, PartialEq, ::prost::Message)]
594pub struct FrnDetailsProto {
595 #[prost(message, optional, tag = "1")]
599 pub coupon_rate: ::core::option::Option<super::util::DecimalValueProto>,
600 #[prost(enumeration = "CouponTypeProto", tag = "2")]
601 pub coupon_type: i32,
602 #[prost(enumeration = "CouponFrequencyProto", tag = "3")]
603 pub coupon_frequency: i32,
604 #[prost(message, optional, tag = "4")]
605 pub dated_date: ::core::option::Option<super::util::LocalDateProto>,
606 #[prost(message, optional, tag = "5")]
607 pub face_value: ::core::option::Option<super::util::DecimalValueProto>,
608 #[prost(message, optional, tag = "6")]
609 pub issue_date: ::core::option::Option<super::util::LocalDateProto>,
610 #[prost(message, optional, tag = "7")]
611 pub maturity_date: ::core::option::Option<super::util::LocalDateProto>,
612 #[prost(message, repeated, tag = "8")]
613 pub issuance_info: ::prost::alloc::vec::Vec<bond::IssuanceProto>,
614 #[prost(message, optional, tag = "10")]
618 pub spread: ::core::option::Option<super::util::DecimalValueProto>,
619 #[prost(enumeration = "index::IndexTypeProto", tag = "11")]
621 pub reference_rate_index: i32,
622 #[prost(enumeration = "CouponFrequencyProto", tag = "12")]
624 pub reset_frequency: i32,
625}
626#[allow(clippy::derive_partial_eq_without_eq)]
628#[derive(Clone, PartialEq, ::prost::Message)]
629pub struct IndexDetailsProto {
630 #[prost(enumeration = "index::IndexTypeProto", tag = "1")]
631 pub index_type: i32,
632}
633#[allow(clippy::derive_partial_eq_without_eq)]
639#[derive(Clone, PartialEq, ::prost::Message)]
640pub struct EquityDetailsProto {}
641#[allow(clippy::derive_partial_eq_without_eq)]
643#[derive(Clone, PartialEq, ::prost::Message)]
644pub struct CashDetailsProto {
645 #[prost(string, tag = "1")]
647 pub cash_id: ::prost::alloc::string::String,
648}
649#[allow(clippy::derive_partial_eq_without_eq)]
655#[derive(Clone, PartialEq, ::prost::Message)]
656pub struct FxSpotDetailsProto {
657 #[prost(message, optional, boxed, tag = "1")]
659 pub base_currency: ::core::option::Option<::prost::alloc::boxed::Box<SecurityProto>>,
660 #[prost(message, optional, boxed, tag = "2")]
662 pub quote_currency: ::core::option::Option<
663 ::prost::alloc::boxed::Box<SecurityProto>,
664 >,
665 #[prost(string, tag = "3")]
667 pub convention: ::prost::alloc::string::String,
668}
669#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
689#[repr(i32)]
690pub enum AssetClassProto {
691 UnknownAssetClass = 0,
692 FixedIncome = 1,
693 Equity = 2,
694 CashAssetClass = 3,
695 Index = 4,
699 Volatility = 5,
706 Crypto = 6,
710}
711impl AssetClassProto {
712 pub fn as_str_name(&self) -> &'static str {
717 match self {
718 AssetClassProto::UnknownAssetClass => "UNKNOWN_ASSET_CLASS",
719 AssetClassProto::FixedIncome => "FIXED_INCOME",
720 AssetClassProto::Equity => "EQUITY",
721 AssetClassProto::CashAssetClass => "CASH_ASSET_CLASS",
722 AssetClassProto::Index => "INDEX",
723 AssetClassProto::Volatility => "VOLATILITY",
724 AssetClassProto::Crypto => "CRYPTO",
725 }
726 }
727 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
729 match value {
730 "UNKNOWN_ASSET_CLASS" => Some(Self::UnknownAssetClass),
731 "FIXED_INCOME" => Some(Self::FixedIncome),
732 "EQUITY" => Some(Self::Equity),
733 "CASH_ASSET_CLASS" => Some(Self::CashAssetClass),
734 "INDEX" => Some(Self::Index),
735 "VOLATILITY" => Some(Self::Volatility),
736 "CRYPTO" => Some(Self::Crypto),
737 _ => None,
738 }
739 }
740}
741#[allow(clippy::derive_partial_eq_without_eq)]
755#[derive(Clone, PartialEq, ::prost::Message)]
756pub struct IndexCompositionProto {
757 #[prost(string, tag = "1")]
758 pub object_class: ::prost::alloc::string::String,
759 #[prost(string, tag = "2")]
760 pub version: ::prost::alloc::string::String,
761 #[prost(message, optional, tag = "5")]
763 pub uuid: ::core::option::Option<super::util::UuidProto>,
764 #[prost(message, optional, tag = "6")]
765 pub as_of: ::core::option::Option<super::util::LocalTimestampProto>,
766 #[prost(bool, tag = "7")]
767 pub is_link: bool,
768 #[prost(message, optional, tag = "8")]
769 pub valid_from: ::core::option::Option<super::util::LocalTimestampProto>,
770 #[prost(message, optional, tag = "9")]
771 pub valid_to: ::core::option::Option<super::util::LocalTimestampProto>,
772 #[prost(message, optional, tag = "10")]
775 pub index_security: ::core::option::Option<SecurityProto>,
776 #[prost(message, optional, tag = "11")]
780 pub effective_date: ::core::option::Option<super::util::LocalDateProto>,
781 #[prost(message, repeated, tag = "20")]
783 pub constituents: ::prost::alloc::vec::Vec<IndexConstituentProto>,
784 #[prost(message, optional, tag = "21")]
788 pub index_divisor: ::core::option::Option<super::util::DecimalValueProto>,
789 #[prost(string, tag = "31")]
791 pub notes: ::prost::alloc::string::String,
792}
793#[allow(clippy::derive_partial_eq_without_eq)]
795#[derive(Clone, PartialEq, ::prost::Message)]
796pub struct IndexConstituentProto {
797 #[prost(message, optional, tag = "1")]
800 pub security: ::core::option::Option<SecurityProto>,
801 #[prost(message, optional, tag = "2")]
805 pub weight: ::core::option::Option<super::util::DecimalValueProto>,
806 #[prost(message, optional, tag = "3")]
809 pub shares_in_index: ::core::option::Option<super::util::DecimalValueProto>,
810 #[prost(string, tag = "5")]
812 pub currency: ::prost::alloc::string::String,
813}
814#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
815#[repr(i32)]
816pub enum TenorTypeProto {
817 UnknownTenorType = 0,
818 Perpetual = 1,
819 Term = 2,
820}
821impl TenorTypeProto {
822 pub fn as_str_name(&self) -> &'static str {
827 match self {
828 TenorTypeProto::UnknownTenorType => "UNKNOWN_TENOR_TYPE",
829 TenorTypeProto::Perpetual => "PERPETUAL",
830 TenorTypeProto::Term => "TERM",
831 }
832 }
833 pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
835 match value {
836 "UNKNOWN_TENOR_TYPE" => Some(Self::UnknownTenorType),
837 "PERPETUAL" => Some(Self::Perpetual),
838 "TERM" => Some(Self::Term),
839 _ => None,
840 }
841 }
842}
843#[allow(clippy::derive_partial_eq_without_eq)]
844#[derive(Clone, PartialEq, ::prost::Message)]
845pub struct TenorProto {
846 #[prost(string, tag = "1")]
847 pub object_class: ::prost::alloc::string::String,
848 #[prost(string, tag = "2")]
849 pub version: ::prost::alloc::string::String,
850 #[prost(string, tag = "5")]
851 pub term_value: ::prost::alloc::string::String,
852 #[prost(enumeration = "TenorTypeProto", tag = "6")]
853 pub tenor_type: i32,
854}