lusid-sdk 2.0.50b0__py3-none-any.whl → 2.0.470__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of lusid-sdk might be problematic. Click here for more details.

Files changed (332) hide show
  1. lusid/__init__.py +1117 -14
  2. lusid/api/__init__.py +69 -0
  3. lusid/api/abor_api.py +513 -179
  4. lusid/api/abor_configuration_api.py +25 -24
  5. lusid/api/allocations_api.py +12 -20
  6. lusid/api/blocks_api.py +6 -6
  7. lusid/api/calendars_api.py +16 -24
  8. lusid/api/chart_of_accounts_api.py +1745 -441
  9. lusid/api/compliance_api.py +71 -62
  10. lusid/api/configuration_recipe_api.py +1198 -56
  11. lusid/api/corporate_action_sources_api.py +8 -8
  12. lusid/api/custom_entities_api.py +6 -6
  13. lusid/api/cut_label_definitions_api.py +9 -17
  14. lusid/api/data_types_api.py +16 -32
  15. lusid/api/executions_api.py +6 -6
  16. lusid/api/funds_api.py +1119 -0
  17. lusid/api/instrument_event_types_api.py +1287 -0
  18. lusid/api/instruments_api.py +12 -20
  19. lusid/api/legacy_compliance_api.py +12 -12
  20. lusid/api/legal_entities_api.py +12 -12
  21. lusid/api/order_graph_api.py +12 -12
  22. lusid/api/order_instructions_api.py +6 -6
  23. lusid/api/order_management_api.py +495 -14
  24. lusid/api/orders_api.py +16 -24
  25. lusid/api/packages_api.py +6 -6
  26. lusid/api/persons_api.py +16 -24
  27. lusid/api/placements_api.py +12 -12
  28. lusid/api/portfolio_groups_api.py +6 -6
  29. lusid/api/portfolios_api.py +23 -39
  30. lusid/api/property_definitions_api.py +205 -0
  31. lusid/api/queryable_keys_api.py +211 -0
  32. lusid/api/quotes_api.py +20 -36
  33. lusid/api/reconciliations_api.py +410 -1978
  34. lusid/api/schemas_api.py +7 -15
  35. lusid/api/scopes_api.py +151 -0
  36. lusid/api/scripted_translation_api.py +30 -28
  37. lusid/api/staging_rule_set_api.py +885 -0
  38. lusid/api/transaction_configuration_api.py +22 -22
  39. lusid/api/transaction_portfolios_api.py +282 -577
  40. lusid/api_client.py +5 -3
  41. lusid/configuration.py +1 -1
  42. lusid/extensions/__init__.py +10 -7
  43. lusid/extensions/api_client.py +3 -1
  44. lusid/extensions/api_client_factory.py +156 -45
  45. lusid/extensions/api_configuration.py +124 -15
  46. lusid/extensions/configuration_loaders.py +2 -4
  47. lusid/extensions/proxy_config.py +8 -5
  48. lusid/extensions/socket_keep_alive.py +14 -15
  49. lusid/extensions/tcp_keep_alive_connector.py +93 -46
  50. lusid/models/__init__.py +1028 -13
  51. lusid/models/abor.py +9 -2
  52. lusid/models/abor_configuration.py +8 -8
  53. lusid/models/abor_configuration_request.py +9 -9
  54. lusid/models/abor_request.py +1 -1
  55. lusid/models/account.py +6 -1
  56. lusid/models/accumulation_event.py +104 -0
  57. lusid/models/address_key_compliance_parameter.py +5 -12
  58. lusid/models/address_key_list_compliance_parameter.py +3 -3
  59. lusid/models/address_key_option_definition.py +3 -1
  60. lusid/models/amortisation_event.py +4 -6
  61. lusid/models/{underlying_leg.py → asset_leg.py} +15 -15
  62. lusid/models/basket.py +3 -3
  63. lusid/models/block_and_order_id_request.py +78 -0
  64. lusid/models/block_and_orders.py +83 -0
  65. lusid/models/block_and_orders_create_request.py +77 -0
  66. lusid/models/block_and_orders_request.py +134 -0
  67. lusid/models/blocked_order_request.py +130 -0
  68. lusid/models/bond.py +13 -6
  69. lusid/models/bond_coupon_event.py +97 -0
  70. lusid/models/bond_default_event.py +8 -18
  71. lusid/models/bond_principal_event.py +97 -0
  72. lusid/models/book_transactions_request.py +97 -0
  73. lusid/models/bool_compliance_parameter.py +3 -3
  74. lusid/models/bool_list_compliance_parameter.py +3 -3
  75. lusid/models/branch_step.py +101 -0
  76. lusid/models/cap_floor.py +3 -3
  77. lusid/models/cash_dividend_event.py +32 -10
  78. lusid/models/cash_election.py +91 -0
  79. lusid/models/cash_flow_event.py +5 -7
  80. lusid/models/cash_perpetual.py +3 -3
  81. lusid/models/cds_flow_conventions.py +1 -1
  82. lusid/models/cds_index.py +4 -4
  83. lusid/models/check_step.py +110 -0
  84. lusid/models/cleardown_module_details.py +95 -0
  85. lusid/models/cleardown_module_request.py +117 -0
  86. lusid/models/cleardown_module_response.py +139 -0
  87. lusid/models/cleardown_module_rule.py +94 -0
  88. lusid/models/{reconciliation_run_break.py → cleardown_module_rules_updated_response.py} +30 -36
  89. lusid/models/close_event.py +3 -3
  90. lusid/models/close_period_diary_entry_request.py +149 -0
  91. lusid/models/complete_portfolio.py +8 -1
  92. lusid/models/complex_bond.py +4 -4
  93. lusid/models/complex_market_data.py +6 -5
  94. lusid/models/compliance_parameter.py +8 -5
  95. lusid/models/compliance_parameter_type.py +3 -0
  96. lusid/models/compliance_rule_breakdown.py +16 -8
  97. lusid/models/compliance_rule_breakdown_request.py +12 -4
  98. lusid/models/compliance_rule_result_v2.py +85 -0
  99. lusid/models/compliance_step.py +99 -0
  100. lusid/models/compliance_step_type.py +42 -0
  101. lusid/models/compliance_summary_rule_result.py +12 -15
  102. lusid/models/compliance_summary_rule_result_request.py +12 -15
  103. lusid/models/compliance_template_variation.py +12 -2
  104. lusid/models/component_transaction.py +92 -0
  105. lusid/models/composite_dispersion.py +30 -5
  106. lusid/models/compounding.py +4 -4
  107. lusid/models/configuration_recipe.py +10 -19
  108. lusid/models/constant_volatility_surface.py +102 -0
  109. lusid/models/contract_for_difference.py +3 -3
  110. lusid/models/create_derived_property_definition_request.py +3 -3
  111. lusid/models/create_derived_transaction_portfolio_request.py +10 -3
  112. lusid/models/create_property_definition_request.py +12 -5
  113. lusid/models/create_staging_rule_set_request.py +91 -0
  114. lusid/models/create_trade_tickets_response.py +87 -0
  115. lusid/models/create_transaction_portfolio_request.py +16 -3
  116. lusid/models/credit_default_swap.py +4 -4
  117. lusid/models/credit_spread_curve_data.py +4 -4
  118. lusid/models/custom_entity_definition.py +8 -2
  119. lusid/models/custom_entity_type.py +8 -2
  120. lusid/models/cut_label_definition.py +7 -1
  121. lusid/models/data_type.py +7 -1
  122. lusid/models/data_type_summary.py +8 -2
  123. lusid/models/date_time_compliance_parameter.py +3 -3
  124. lusid/models/date_time_list_compliance_parameter.py +3 -3
  125. lusid/models/{upsert_reconciliation_run_request.py → day_month.py} +15 -15
  126. lusid/models/decimal_compliance_parameter.py +3 -3
  127. lusid/models/decimal_list_compliance_parameter.py +3 -3
  128. lusid/models/dialect.py +9 -3
  129. lusid/models/diary_entry.py +1 -1
  130. lusid/models/diary_entry_request.py +1 -1
  131. lusid/models/discount_factor_curve_data.py +3 -3
  132. lusid/models/dividend_option_event.py +129 -0
  133. lusid/models/dividend_reinvestment_event.py +124 -0
  134. lusid/models/election_specification.py +73 -0
  135. lusid/models/eligibility_calculation.py +71 -0
  136. lusid/models/empty_model_options.py +3 -3
  137. lusid/models/equity.py +8 -6
  138. lusid/models/equity_curve_by_prices_data.py +3 -3
  139. lusid/models/equity_model_options.py +3 -3
  140. lusid/models/equity_option.py +3 -3
  141. lusid/models/equity_swap.py +4 -4
  142. lusid/models/equity_vol_surface_data.py +3 -3
  143. lusid/models/exchange_traded_option.py +3 -3
  144. lusid/models/exercise_event.py +5 -7
  145. lusid/models/exotic_instrument.py +3 -3
  146. lusid/models/expiry_event.py +91 -0
  147. lusid/models/filter_predicate_compliance_parameter.py +91 -0
  148. lusid/models/filter_step.py +101 -0
  149. lusid/models/fixed_leg.py +3 -3
  150. lusid/models/fixed_schedule.py +4 -9
  151. lusid/models/flexible_loan.py +105 -0
  152. lusid/models/float_schedule.py +20 -12
  153. lusid/models/floating_leg.py +3 -3
  154. lusid/models/flow_convention_name.py +1 -1
  155. lusid/models/flow_conventions.py +1 -1
  156. lusid/models/forward_rate_agreement.py +3 -3
  157. lusid/models/from_recipe.py +81 -0
  158. lusid/models/fund.py +182 -0
  159. lusid/models/fund_properties.py +115 -0
  160. lusid/models/fund_request.py +165 -0
  161. lusid/models/fund_share_class.py +99 -0
  162. lusid/models/funding_leg.py +3 -3
  163. lusid/models/funding_leg_options.py +3 -3
  164. lusid/models/future.py +3 -3
  165. lusid/models/fx_conventions.py +73 -0
  166. lusid/models/fx_forward.py +8 -6
  167. lusid/models/fx_forward_curve_by_quote_reference.py +4 -4
  168. lusid/models/fx_forward_curve_data.py +3 -3
  169. lusid/models/fx_forward_model_options.py +3 -3
  170. lusid/models/fx_forward_pips_curve_data.py +3 -3
  171. lusid/models/fx_forward_settlement_event.py +136 -0
  172. lusid/models/fx_forward_tenor_curve_data.py +4 -4
  173. lusid/models/fx_forward_tenor_pips_curve_data.py +4 -4
  174. lusid/models/fx_linked_notional_schedule.py +108 -0
  175. lusid/models/fx_option.py +3 -3
  176. lusid/models/fx_rate_schedule.py +3 -3
  177. lusid/models/fx_swap.py +4 -4
  178. lusid/models/fx_vol_surface_data.py +3 -3
  179. lusid/models/{reconciliation_run.py → get_recipe_composer_response.py} +15 -15
  180. lusid/models/group_by_selector_compliance_parameter.py +91 -0
  181. lusid/models/group_by_step.py +101 -0
  182. lusid/models/group_filter_predicate_compliance_parameter.py +91 -0
  183. lusid/models/group_filter_step.py +110 -0
  184. lusid/models/group_of_market_data_key_rules.py +79 -0
  185. lusid/models/index_convention.py +1 -1
  186. lusid/models/index_model_options.py +3 -3
  187. lusid/models/inflation_index_conventions.py +2 -2
  188. lusid/models/inflation_leg.py +3 -3
  189. lusid/models/inflation_linked_bond.py +3 -3
  190. lusid/models/inflation_swap.py +4 -4
  191. lusid/models/informational_error_event.py +3 -3
  192. lusid/models/informational_event.py +4 -6
  193. lusid/models/instrument_event.py +13 -5
  194. lusid/models/instrument_event_configuration.py +74 -0
  195. lusid/models/instrument_event_holder.py +12 -3
  196. lusid/models/instrument_event_type.py +8 -0
  197. lusid/models/instrument_leg.py +3 -3
  198. lusid/models/instrument_list_compliance_parameter.py +3 -3
  199. lusid/models/instrument_payment_diary_leg.py +5 -3
  200. lusid/models/instrument_resolution_detail.py +105 -0
  201. lusid/models/instrument_type.py +2 -0
  202. lusid/models/interest_rate_swap.py +4 -4
  203. lusid/models/interest_rate_swaption.py +3 -3
  204. lusid/models/intermediate_compliance_step.py +110 -0
  205. lusid/models/ir_vol_cube_data.py +3 -3
  206. lusid/models/journal_entry_line.py +34 -3
  207. lusid/models/journal_entry_lines_query_parameters.py +1 -1
  208. lusid/models/label_value_set.py +1 -1
  209. lusid/models/leg_definition.py +16 -3
  210. lusid/models/lineage_member.py +87 -0
  211. lusid/models/lock_period_diary_entry_request.py +91 -0
  212. lusid/models/lusid_instrument.py +7 -5
  213. lusid/models/lusid_trade_ticket.py +8 -1
  214. lusid/models/market_context.py +17 -2
  215. lusid/models/market_data_type.py +1 -0
  216. lusid/models/maturity_event.py +91 -0
  217. lusid/models/model_options.py +5 -6
  218. lusid/models/model_options_type.py +0 -1
  219. lusid/models/model_selection.py +3 -3
  220. lusid/models/move_orders_to_different_blocks_request.py +77 -0
  221. lusid/models/moved_order_to_different_block_response.py +85 -0
  222. lusid/models/movement_type.py +2 -0
  223. lusid/models/multi_currency_amounts.py +71 -0
  224. lusid/models/opaque_market_data.py +3 -3
  225. lusid/models/opaque_model_options.py +3 -3
  226. lusid/models/open_event.py +3 -3
  227. lusid/models/optionality_schedule.py +3 -3
  228. lusid/models/order_graph_block.py +4 -2
  229. lusid/models/order_graph_block_order_detail.py +16 -2
  230. lusid/models/output_transaction.py +9 -2
  231. lusid/models/paged_resource_list_of_cleardown_module_response.py +113 -0
  232. lusid/models/{paged_resource_list_of_reconciliation_run_break.py → paged_resource_list_of_cleardown_module_rule.py} +11 -11
  233. lusid/models/{paged_resource_list_of_reconciliation_run.py → paged_resource_list_of_fund.py} +11 -11
  234. lusid/models/paged_resource_list_of_property_definition.py +113 -0
  235. lusid/models/paged_resource_list_of_staging_rule_set.py +113 -0
  236. lusid/models/paged_resource_list_of_transaction_template.py +113 -0
  237. lusid/models/paged_resource_list_of_transaction_template_specification.py +113 -0
  238. lusid/models/participation_request.py +3 -9
  239. lusid/models/performance_returns_metric.py +1 -1
  240. lusid/models/period_diary_entries_reopened_response.py +104 -0
  241. lusid/models/place_blocks_request.py +77 -0
  242. lusid/models/portfolio.py +15 -2
  243. lusid/models/portfolio_details.py +15 -2
  244. lusid/models/portfolio_group_id_compliance_parameter.py +3 -3
  245. lusid/models/portfolio_group_id_list_compliance_parameter.py +3 -3
  246. lusid/models/portfolio_holding.py +27 -2
  247. lusid/models/portfolio_id_compliance_parameter.py +3 -3
  248. lusid/models/portfolio_id_list_compliance_parameter.py +3 -3
  249. lusid/models/posting_module_rule.py +29 -4
  250. lusid/models/pricing_model.py +2 -1
  251. lusid/models/property_definition.py +17 -4
  252. lusid/models/property_definition_search_result.py +3 -3
  253. lusid/models/property_domain.py +3 -0
  254. lusid/models/property_key_compliance_parameter.py +3 -3
  255. lusid/models/property_key_list_compliance_parameter.py +3 -3
  256. lusid/models/queryable_key.py +124 -0
  257. lusid/models/raw_vendor_event.py +5 -7
  258. lusid/models/re_open_period_diary_entry_request.py +84 -0
  259. lusid/models/recipe_block.py +87 -0
  260. lusid/models/recipe_composer.py +100 -0
  261. lusid/models/{reconciliation_break_id.py → recipe_value.py} +22 -23
  262. lusid/models/recombine_step.py +101 -0
  263. lusid/models/reference_instrument.py +3 -3
  264. lusid/models/relative_date_offset.py +71 -0
  265. lusid/models/repo.py +3 -3
  266. lusid/models/reset_event.py +4 -6
  267. lusid/models/resource_list_of_block_and_orders.py +113 -0
  268. lusid/models/resource_list_of_get_recipe_composer_response.py +113 -0
  269. lusid/models/resource_list_of_moved_order_to_different_block_response.py +113 -0
  270. lusid/models/resource_list_of_queryable_key.py +113 -0
  271. lusid/models/schedule.py +6 -5
  272. lusid/models/schedule_type.py +1 -0
  273. lusid/models/script_map_reference.py +94 -0
  274. lusid/models/security_election.py +86 -0
  275. lusid/models/set_share_class_instruments_request.py +79 -0
  276. lusid/models/side_definition.py +1 -8
  277. lusid/models/sides_definition_request.py +1 -8
  278. lusid/models/simple_cash_flow_loan.py +3 -3
  279. lusid/models/simple_instrument.py +3 -3
  280. lusid/models/staging_rule.py +90 -0
  281. lusid/models/staging_rule_approval_criteria.py +81 -0
  282. lusid/models/staging_rule_match_criteria.py +95 -0
  283. lusid/models/staging_rule_set.py +103 -0
  284. lusid/models/step_schedule.py +3 -3
  285. lusid/models/stock_split_event.py +3 -3
  286. lusid/models/string_compliance_parameter.py +3 -3
  287. lusid/models/string_list_compliance_parameter.py +3 -3
  288. lusid/models/template_field.py +77 -0
  289. lusid/models/term_deposit.py +3 -3
  290. lusid/models/total_return_swap.py +16 -16
  291. lusid/models/transaction_configuration_movement_data.py +3 -3
  292. lusid/models/transaction_configuration_movement_data_request.py +3 -3
  293. lusid/models/transaction_currency_and_amount.py +81 -0
  294. lusid/models/transaction_field_map.py +97 -0
  295. lusid/models/transaction_price.py +3 -3
  296. lusid/models/transaction_price_and_type.py +81 -0
  297. lusid/models/transaction_price_type.py +1 -0
  298. lusid/models/transaction_property_map.py +80 -0
  299. lusid/models/transaction_template.py +100 -0
  300. lusid/models/transaction_template_request.py +79 -0
  301. lusid/models/transaction_template_specification.py +99 -0
  302. lusid/models/transaction_type_alias.py +0 -7
  303. lusid/models/transaction_type_calculation.py +1 -1
  304. lusid/models/transition_event.py +3 -3
  305. lusid/models/translation_context.py +75 -0
  306. lusid/models/translation_script.py +9 -3
  307. lusid/models/trial_balance.py +46 -11
  308. lusid/models/trial_balance_query_parameters.py +15 -6
  309. lusid/models/trigger_event.py +3 -3
  310. lusid/models/units_ratio.py +71 -0
  311. lusid/models/update_staging_rule_set_request.py +91 -0
  312. lusid/models/{compliance_run_summary.py → upsert_compliance_run_summary_result.py} +8 -8
  313. lusid/models/upsert_dialect_request.py +79 -0
  314. lusid/models/upsert_instrument_event_request.py +12 -3
  315. lusid/models/upsert_quote_request.py +1 -1
  316. lusid/models/upsert_recipe_composer_request.py +73 -0
  317. lusid/models/upsert_recipe_request.py +3 -9
  318. lusid/models/upsert_translation_script_request.py +75 -0
  319. lusid/models/valuation_schedule.py +10 -3
  320. lusid/models/weighted_instrument.py +13 -2
  321. lusid/models/weighted_instrument_in_line_lookup_identifiers.py +89 -0
  322. lusid/models/yield_curve_data.py +3 -3
  323. lusid/rest.py +1 -1
  324. {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.470.dist-info}/METADATA +245 -48
  325. {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.470.dist-info}/RECORD +326 -235
  326. {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.470.dist-info}/WHEEL +1 -1
  327. lusid/extensions/api_client_builder.py +0 -138
  328. lusid/models/configuration_recipe_snippet.py +0 -139
  329. lusid/models/je_lines_query_parameters.py +0 -105
  330. lusid/models/look_up_pricing_model_options.py +0 -93
  331. lusid/models/reconciliation_run_id.py +0 -85
  332. lusid/models/upsert_reconciliation_break_request.py +0 -98
@@ -0,0 +1,110 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict, List
22
+ from pydantic import Field, StrictStr, conlist, constr, validator
23
+ from lusid.models.compliance_step import ComplianceStep
24
+ from lusid.models.compliance_template_parameter import ComplianceTemplateParameter
25
+
26
+ class GroupFilterStep(ComplianceStep):
27
+ """
28
+ GroupFilterStep
29
+ """
30
+ label: constr(strict=True, min_length=1) = Field(..., description="The label of the compliance step")
31
+ limit_check_parameters: conlist(ComplianceTemplateParameter) = Field(..., alias="limitCheckParameters", description="Parameters required for an absolute limit check")
32
+ warning_check_parameters: conlist(ComplianceTemplateParameter) = Field(..., alias="warningCheckParameters", description="Parameters required for a warning limit check")
33
+ compliance_step_type: StrictStr = Field(..., alias="complianceStepType", description=". The available values are: FilterStep, GroupByStep, GroupFilterStep, BranchStep, RecombineStep, CheckStep")
34
+ additional_properties: Dict[str, Any] = {}
35
+ __properties = ["complianceStepType", "label", "limitCheckParameters", "warningCheckParameters"]
36
+
37
+ @validator('compliance_step_type')
38
+ def compliance_step_type_validate_enum(cls, value):
39
+ """Validates the enum"""
40
+ if value not in ('FilterStep', 'GroupByStep', 'GroupFilterStep', 'BranchStep', 'RecombineStep', 'CheckStep'):
41
+ raise ValueError("must be one of enum values ('FilterStep', 'GroupByStep', 'GroupFilterStep', 'BranchStep', 'RecombineStep', 'CheckStep')")
42
+ return value
43
+
44
+ class Config:
45
+ """Pydantic configuration"""
46
+ allow_population_by_field_name = True
47
+ validate_assignment = True
48
+
49
+ def to_str(self) -> str:
50
+ """Returns the string representation of the model using alias"""
51
+ return pprint.pformat(self.dict(by_alias=True))
52
+
53
+ def to_json(self) -> str:
54
+ """Returns the JSON representation of the model using alias"""
55
+ return json.dumps(self.to_dict())
56
+
57
+ @classmethod
58
+ def from_json(cls, json_str: str) -> GroupFilterStep:
59
+ """Create an instance of GroupFilterStep from a JSON string"""
60
+ return cls.from_dict(json.loads(json_str))
61
+
62
+ def to_dict(self):
63
+ """Returns the dictionary representation of the model using alias"""
64
+ _dict = self.dict(by_alias=True,
65
+ exclude={
66
+ "additional_properties"
67
+ },
68
+ exclude_none=True)
69
+ # override the default output from pydantic by calling `to_dict()` of each item in limit_check_parameters (list)
70
+ _items = []
71
+ if self.limit_check_parameters:
72
+ for _item in self.limit_check_parameters:
73
+ if _item:
74
+ _items.append(_item.to_dict())
75
+ _dict['limitCheckParameters'] = _items
76
+ # override the default output from pydantic by calling `to_dict()` of each item in warning_check_parameters (list)
77
+ _items = []
78
+ if self.warning_check_parameters:
79
+ for _item in self.warning_check_parameters:
80
+ if _item:
81
+ _items.append(_item.to_dict())
82
+ _dict['warningCheckParameters'] = _items
83
+ # puts key-value pairs in additional_properties in the top level
84
+ if self.additional_properties is not None:
85
+ for _key, _value in self.additional_properties.items():
86
+ _dict[_key] = _value
87
+
88
+ return _dict
89
+
90
+ @classmethod
91
+ def from_dict(cls, obj: dict) -> GroupFilterStep:
92
+ """Create an instance of GroupFilterStep from a dict"""
93
+ if obj is None:
94
+ return None
95
+
96
+ if not isinstance(obj, dict):
97
+ return GroupFilterStep.parse_obj(obj)
98
+
99
+ _obj = GroupFilterStep.parse_obj({
100
+ "compliance_step_type": obj.get("complianceStepType"),
101
+ "label": obj.get("label"),
102
+ "limit_check_parameters": [ComplianceTemplateParameter.from_dict(_item) for _item in obj.get("limitCheckParameters")] if obj.get("limitCheckParameters") is not None else None,
103
+ "warning_check_parameters": [ComplianceTemplateParameter.from_dict(_item) for _item in obj.get("warningCheckParameters")] if obj.get("warningCheckParameters") is not None else None
104
+ })
105
+ # store additional fields in additional_properties
106
+ for _key in obj.keys():
107
+ if _key not in cls.__properties:
108
+ _obj.additional_properties[_key] = obj.get(_key)
109
+
110
+ return _obj
@@ -0,0 +1,79 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict, List
22
+ from pydantic import BaseModel, Field, conlist, constr
23
+ from lusid.models.market_data_key_rule import MarketDataKeyRule
24
+
25
+ class GroupOfMarketDataKeyRules(BaseModel):
26
+ """
27
+ Represents a collection of MarketDataKeyRules that should be resolved together when resolving market data. That is, market data resolution will always attempt to resolve with all rules in the group before deciding what market data to return. # noqa: E501
28
+ """
29
+ market_data_key_rule_group_operation: constr(strict=True, min_length=1) = Field(..., alias="marketDataKeyRuleGroupOperation", description="The operation that will be used to process the collection of market data items and failures found on resolution into a single market data item or failure to be used. Supported values: [FirstLatest, AverageOfQuotesFound, AverageOfAllQuotes, FirstMinimum, FirstMaximum]")
30
+ market_rules: conlist(MarketDataKeyRule) = Field(..., alias="marketRules", description="The rules that should be grouped together in market data resolution.")
31
+ __properties = ["marketDataKeyRuleGroupOperation", "marketRules"]
32
+
33
+ class Config:
34
+ """Pydantic configuration"""
35
+ allow_population_by_field_name = True
36
+ validate_assignment = True
37
+
38
+ def to_str(self) -> str:
39
+ """Returns the string representation of the model using alias"""
40
+ return pprint.pformat(self.dict(by_alias=True))
41
+
42
+ def to_json(self) -> str:
43
+ """Returns the JSON representation of the model using alias"""
44
+ return json.dumps(self.to_dict())
45
+
46
+ @classmethod
47
+ def from_json(cls, json_str: str) -> GroupOfMarketDataKeyRules:
48
+ """Create an instance of GroupOfMarketDataKeyRules from a JSON string"""
49
+ return cls.from_dict(json.loads(json_str))
50
+
51
+ def to_dict(self):
52
+ """Returns the dictionary representation of the model using alias"""
53
+ _dict = self.dict(by_alias=True,
54
+ exclude={
55
+ },
56
+ exclude_none=True)
57
+ # override the default output from pydantic by calling `to_dict()` of each item in market_rules (list)
58
+ _items = []
59
+ if self.market_rules:
60
+ for _item in self.market_rules:
61
+ if _item:
62
+ _items.append(_item.to_dict())
63
+ _dict['marketRules'] = _items
64
+ return _dict
65
+
66
+ @classmethod
67
+ def from_dict(cls, obj: dict) -> GroupOfMarketDataKeyRules:
68
+ """Create an instance of GroupOfMarketDataKeyRules from a dict"""
69
+ if obj is None:
70
+ return None
71
+
72
+ if not isinstance(obj, dict):
73
+ return GroupOfMarketDataKeyRules.parse_obj(obj)
74
+
75
+ _obj = GroupOfMarketDataKeyRules.parse_obj({
76
+ "market_data_key_rule_group_operation": obj.get("marketDataKeyRuleGroupOperation"),
77
+ "market_rules": [MarketDataKeyRule.from_dict(_item) for _item in obj.get("marketRules")] if obj.get("marketRules") is not None else None
78
+ })
79
+ return _obj
@@ -27,7 +27,7 @@ class IndexConvention(BaseModel):
27
27
  """
28
28
  fixing_reference: constr(strict=True, max_length=64, min_length=0) = Field(..., alias="fixingReference", description="The reference rate name for fixings.")
29
29
  publication_day_lag: StrictInt = Field(..., alias="publicationDayLag", description="Number of days between spot and publication of the rate.")
30
- payment_tenor: constr(strict=True, max_length=32, min_length=0) = Field(..., alias="paymentTenor", description="The tenor of the payment. For an OIS index this is always 1 day. For other indices, e.g. LIBOR it will have a variable tenor typically between 1 day and 1 year.")
30
+ payment_tenor: constr(strict=True, max_length=32, min_length=0) = Field(..., alias="paymentTenor", description="The tenor of the payment. For an OIS index this is always 1 day. For other indices, e.g. LIBOR it will have a variable tenor typically between 1 day and 1 year. For more information on tenors, see [knowledge base article KA-02097](https://support.lusid.com/knowledgebase/article/KA-02097)")
31
31
  day_count_convention: constr(strict=True, max_length=32, min_length=0) = Field(..., alias="dayCountConvention", description="when calculating the fraction of a year between two dates, what convention is used to represent the number of days in a year and difference between them. For more information on day counts, see [knowledge base article KA-01798](https://support.lusid.com/knowledgebase/article/KA-01798) Supported string (enumeration) values are: [Actual360, Act360, MoneyMarket, Actual365, Act365, Thirty360, ThirtyU360, Bond, ThirtyE360, EuroBond, ActualActual, ActAct, ActActIsda, ActActIsma, ActActIcma, OneOne, Act364, Act365F, Act365L, Act365_25, Act252, Bus252, NL360, NL365].")
32
32
  currency: StrictStr = Field(..., description="Currency of the index convention.")
33
33
  index_name: Optional[constr(strict=True, max_length=16, min_length=0)] = Field(None, alias="indexName", description="The name of the index for which this represents the conventions of. For instance, \"SOFR\", \"LIBOR\", \"EURIBOR\", etc. Defaults to \"INDEX\" if not specified.")
@@ -27,7 +27,7 @@ class IndexModelOptions(ModelOptions):
27
27
  IndexModelOptions
28
28
  """
29
29
  portfolio_scaling: StrictStr = Field(..., alias="portfolioScaling", description="The available values are: Sum, AbsoluteSum, Unity")
30
- model_options_type: StrictStr = Field(..., alias="modelOptionsType", description="The available values are: Invalid, OpaqueModelOptions, EmptyModelOptions, IndexModelOptions, FxForwardModelOptions, FundingLegModelOptions, EquityModelOptions, LookUpPricingModelOptions")
30
+ model_options_type: StrictStr = Field(..., alias="modelOptionsType", description="The available values are: Invalid, OpaqueModelOptions, EmptyModelOptions, IndexModelOptions, FxForwardModelOptions, FundingLegModelOptions, EquityModelOptions")
31
31
  additional_properties: Dict[str, Any] = {}
32
32
  __properties = ["modelOptionsType", "portfolioScaling"]
33
33
 
@@ -41,8 +41,8 @@ class IndexModelOptions(ModelOptions):
41
41
  @validator('model_options_type')
42
42
  def model_options_type_validate_enum(cls, value):
43
43
  """Validates the enum"""
44
- if value not in ('Invalid', 'OpaqueModelOptions', 'EmptyModelOptions', 'IndexModelOptions', 'FxForwardModelOptions', 'FundingLegModelOptions', 'EquityModelOptions', 'LookUpPricingModelOptions'):
45
- raise ValueError("must be one of enum values ('Invalid', 'OpaqueModelOptions', 'EmptyModelOptions', 'IndexModelOptions', 'FxForwardModelOptions', 'FundingLegModelOptions', 'EquityModelOptions', 'LookUpPricingModelOptions')")
44
+ if value not in ('Invalid', 'OpaqueModelOptions', 'EmptyModelOptions', 'IndexModelOptions', 'FxForwardModelOptions', 'FundingLegModelOptions', 'EquityModelOptions'):
45
+ raise ValueError("must be one of enum values ('Invalid', 'OpaqueModelOptions', 'EmptyModelOptions', 'IndexModelOptions', 'FxForwardModelOptions', 'FundingLegModelOptions', 'EquityModelOptions')")
46
46
  return value
47
47
 
48
48
  class Config:
@@ -27,9 +27,9 @@ class InflationIndexConventions(BaseModel):
27
27
  """
28
28
  inflation_index_name: constr(strict=True, max_length=50, min_length=0) = Field(..., alias="inflationIndexName", description="Name of the index, e.g. UKRPI.")
29
29
  currency: StrictStr = Field(..., description="Currency of the inflation index convention.")
30
- observation_lag: constr(strict=True, max_length=32, min_length=0) = Field(..., alias="observationLag", description="Observation lag. This is a string that must have units of Month. This field is typically 3 or 4 months, but can vary, older bonds and swaps have 8 months lag. For Bonds with a calculation type of Ratio, this property, if set, must be 0Invalid.")
30
+ observation_lag: constr(strict=True, max_length=32, min_length=0) = Field(..., alias="observationLag", description="Observation lag. This is a string that must have units of Month. This field is typically 3 or 4 months, but can vary, older bonds and swaps have 8 months lag. For Bonds with a calculation type of Ratio, this property, if set, must be 0Invalid. For more information on tenors, see [knowledge base article KA-02097](https://support.lusid.com/knowledgebase/article/KA-02097)")
31
31
  inflation_interpolation: Optional[constr(strict=True, max_length=32, min_length=0)] = Field(None, alias="inflationInterpolation", description="Inflation Interpolation. This is optional and defaults to Linear if not set. Supported string (enumeration) values are: [Linear, Flat].")
32
- inflation_frequency: Optional[constr(strict=True, max_length=32, min_length=0)] = Field(None, alias="inflationFrequency", description="Frequency of inflation updated. Optional and defaults to Monthly which is the most common. However both Australian and New Zealand inflation is published Quarterly. Only tenors of 1M or 3M are supported.")
32
+ inflation_frequency: Optional[constr(strict=True, max_length=32, min_length=0)] = Field(None, alias="inflationFrequency", description="Frequency of inflation updated. Optional and defaults to Monthly which is the most common. However both Australian and New Zealand inflation is published Quarterly. Only tenors of 1M or 3M are supported. For more information on tenors, see [knowledge base article KA-02097](https://support.lusid.com/knowledgebase/article/KA-02097)")
33
33
  inflation_roll_day: Optional[StrictInt] = Field(None, alias="inflationRollDay", description="Day of the month that inflation rolls from one month to the next. This is optional and defaults to 1, which is the typically value for the majority of inflation bonds (exceptions include Japan which rolls on the 10th and some LatAm bonds which roll on the 15th).")
34
34
  __properties = ["inflationIndexName", "currency", "observationLag", "inflationInterpolation", "inflationFrequency", "inflationRollDay"]
35
35
 
@@ -38,15 +38,15 @@ class InflationLeg(LusidInstrument):
38
38
  inflation_index_conventions: InflationIndexConventions = Field(..., alias="inflationIndexConventions")
39
39
  notional: Union[StrictFloat, StrictInt] = Field(..., description="The notional")
40
40
  pay_receive: Optional[constr(strict=True, max_length=32, min_length=0)] = Field(None, alias="payReceive", description="PayReceive flag for the inflation leg. This field is optional and defaults to Pay. Supported string (enumeration) values are: [Pay, Receive].")
41
- instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg")
41
+ instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan")
42
42
  additional_properties: Dict[str, Any] = {}
43
43
  __properties = ["instrumentType", "startDate", "maturityDate", "flowConventions", "baseCPI", "calculationType", "capRate", "floorRate", "inflationIndexConventions", "notional", "payReceive"]
44
44
 
45
45
  @validator('instrument_type')
46
46
  def instrument_type_validate_enum(cls, value):
47
47
  """Validates the enum"""
48
- if value not in ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg'):
49
- raise ValueError("must be one of enum values ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg')")
48
+ if value not in ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan'):
49
+ raise ValueError("must be one of enum values ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan')")
50
50
  return value
51
51
 
52
52
  class Config:
@@ -44,15 +44,15 @@ class InflationLinkedBond(LusidInstrument):
44
44
  principal_protection: Optional[StrictBool] = Field(None, alias="principalProtection", description="If true then the principal is protected in that the redemption amount will be at least the face value (Principal). This is typically set to true for inflation linked bonds issued by the United States and France (for example). This is typically set to false for inflation linked bonds issued by the United Kingdom (post 2005). For other sovereigns this can vary from issue to issue. If not set this property defaults to true. This is sometimes referred to as Deflation protection or an inflation floor of 0%.")
45
45
  stub_type: Optional[StrictStr] = Field(None, alias="stubType", description="StubType. Most Inflation linked bonds have a ShortFront stub type so this is the default, however in some cases with a long front stub LongFront should be selected. StubType Both is not supported for InflationLinkedBonds. Supported string (enumeration) values are: [ShortFront, ShortBack, LongBack, LongFront, Both].")
46
46
  rounding_conventions: Optional[conlist(RoundingConvention)] = Field(None, alias="roundingConventions", description="Rounding conventions for analytics, if any.")
47
- instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg")
47
+ instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan")
48
48
  additional_properties: Dict[str, Any] = {}
49
49
  __properties = ["instrumentType", "startDate", "maturityDate", "flowConventions", "inflationIndexConventions", "couponRate", "identifiers", "baseCPI", "baseCPIDate", "calculationType", "exDividendDays", "indexPrecision", "principal", "principalProtection", "stubType", "roundingConventions"]
50
50
 
51
51
  @validator('instrument_type')
52
52
  def instrument_type_validate_enum(cls, value):
53
53
  """Validates the enum"""
54
- if value not in ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg'):
55
- raise ValueError("must be one of enum values ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg')")
54
+ if value not in ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan'):
55
+ raise ValueError("must be one of enum values ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan')")
56
56
  return value
57
57
 
58
58
  class Config:
@@ -26,21 +26,21 @@ from lusid.models.lusid_instrument import LusidInstrument
26
26
 
27
27
  class InflationSwap(LusidInstrument):
28
28
  """
29
- LUSID representation of an Inflation Swap. The implementation supports the following swap types: * Zero Coupon inflation swap, with a single payment at maturity. * LPI Swap (capped and floored) * Year on Year inflation swap # noqa: E501
29
+ LUSID representation of an Inflation Swap. The implementation supports the following swap types: * Zero Coupon inflation swap, with a single payment at maturity. * LPI Swap (capped and floored) * Year on Year inflation swap This instrument has multiple legs, to see how legs are used in LUSID see [knowledge base article KA-02252](https://support.lusid.com/knowledgebase/article/KA-02252). | Leg Index | Leg Identifier | Description | | --------- | -------------- | ----------- | | 1 | InflationLeg | Cash flows with a rate relating to an underlying inflation index. | | 2 | FixedLeg | Cash flows with a fixed rate. | # noqa: E501
30
30
  """
31
31
  start_date: datetime = Field(..., alias="startDate", description="The start date of the instrument. This is normally synonymous with the trade-date.")
32
32
  maturity_date: datetime = Field(..., alias="maturityDate", description="The final maturity date of the instrument. This means the last date on which the instruments makes a payment of any amount. For the avoidance of doubt, that is not necessarily prior to its last sensitivity date for the purposes of risk; e.g. instruments such as Constant Maturity Swaps (CMS) often have sensitivities to rates that may well be observed or set prior to the maturity date, but refer to a termination date beyond it.")
33
33
  inflation_leg: InflationLeg = Field(..., alias="inflationLeg")
34
34
  fixed_leg: FixedLeg = Field(..., alias="fixedLeg")
35
- instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg")
35
+ instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan")
36
36
  additional_properties: Dict[str, Any] = {}
37
37
  __properties = ["instrumentType", "startDate", "maturityDate", "inflationLeg", "fixedLeg"]
38
38
 
39
39
  @validator('instrument_type')
40
40
  def instrument_type_validate_enum(cls, value):
41
41
  """Validates the enum"""
42
- if value not in ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg'):
43
- raise ValueError("must be one of enum values ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg')")
42
+ if value not in ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan'):
43
+ raise ValueError("must be one of enum values ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan')")
44
44
  return value
45
45
 
46
46
  class Config:
@@ -29,15 +29,15 @@ class InformationalErrorEvent(InstrumentEvent):
29
29
  error_detail: constr(strict=True, min_length=1) = Field(..., alias="errorDetail", description="The details of the error")
30
30
  error_reason: constr(strict=True, min_length=1) = Field(..., alias="errorReason", description="The error reason")
31
31
  effective_at: datetime = Field(..., alias="effectiveAt", description="The effective date of the evaulation")
32
- instrument_event_type: StrictStr = Field(..., alias="instrumentEventType", description="The Type of Event. The available values are: TransitionEvent, InformationalEvent, OpenEvent, CloseEvent, StockSplitEvent, BondDefaultEvent, CashDividendEvent, AmortisationEvent, CashFlowEvent, ExerciseEvent, ResetEvent, TriggerEvent, RawVendorEvent, InformationalErrorEvent")
32
+ instrument_event_type: StrictStr = Field(..., alias="instrumentEventType", description="The Type of Event. The available values are: TransitionEvent, InformationalEvent, OpenEvent, CloseEvent, StockSplitEvent, BondDefaultEvent, CashDividendEvent, AmortisationEvent, CashFlowEvent, ExerciseEvent, ResetEvent, TriggerEvent, RawVendorEvent, InformationalErrorEvent, BondCouponEvent, DividendReinvestmentEvent, AccumulationEvent, BondPrincipalEvent, DividendOptionEvent, MaturityEvent, FxForwardSettlementEvent, ExpiryEvent")
33
33
  additional_properties: Dict[str, Any] = {}
34
34
  __properties = ["instrumentEventType", "errorDetail", "errorReason", "effectiveAt"]
35
35
 
36
36
  @validator('instrument_event_type')
37
37
  def instrument_event_type_validate_enum(cls, value):
38
38
  """Validates the enum"""
39
- if value not in ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent'):
40
- raise ValueError("must be one of enum values ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent')")
39
+ if value not in ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent'):
40
+ raise ValueError("must be one of enum values ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent')")
41
41
  return value
42
42
 
43
43
  class Config:
@@ -28,19 +28,18 @@ class InformationalEvent(InstrumentEvent):
28
28
  A generic event derived from the economic definition of an instrument. This should be considered purely informational; any data provided by this event is not guaranteed to be processable by LUSID. # noqa: E501
29
29
  """
30
30
  event_type: constr(strict=True, min_length=1) = Field(..., alias="eventType", description="What type of internal event does this represent; reset, exercise, amortisation etc.")
31
- event_status: constr(strict=True, min_length=1) = Field(..., alias="eventStatus", description="What is the event status, is it a known (ie historic) or unknown (ie projected) event?")
32
31
  anchor_date: datetime = Field(..., alias="anchorDate", description="In the case of a point event, the single date on which the event occurs. In the case of an event which is spread over a window, e.g. a barrier or American option, the start of that window.")
33
32
  event_window_end: Optional[datetime] = Field(None, alias="eventWindowEnd", description="In the case of a point event this is identical to the anchor date. In the case of an event that is spread over a window, this is the end of that window.")
34
33
  diagnostics: Optional[ResultValueDictionary] = None
35
- instrument_event_type: StrictStr = Field(..., alias="instrumentEventType", description="The Type of Event. The available values are: TransitionEvent, InformationalEvent, OpenEvent, CloseEvent, StockSplitEvent, BondDefaultEvent, CashDividendEvent, AmortisationEvent, CashFlowEvent, ExerciseEvent, ResetEvent, TriggerEvent, RawVendorEvent, InformationalErrorEvent")
34
+ instrument_event_type: StrictStr = Field(..., alias="instrumentEventType", description="The Type of Event. The available values are: TransitionEvent, InformationalEvent, OpenEvent, CloseEvent, StockSplitEvent, BondDefaultEvent, CashDividendEvent, AmortisationEvent, CashFlowEvent, ExerciseEvent, ResetEvent, TriggerEvent, RawVendorEvent, InformationalErrorEvent, BondCouponEvent, DividendReinvestmentEvent, AccumulationEvent, BondPrincipalEvent, DividendOptionEvent, MaturityEvent, FxForwardSettlementEvent, ExpiryEvent")
36
35
  additional_properties: Dict[str, Any] = {}
37
- __properties = ["instrumentEventType", "eventType", "eventStatus", "anchorDate", "eventWindowEnd", "diagnostics"]
36
+ __properties = ["instrumentEventType", "eventType", "anchorDate", "eventWindowEnd", "diagnostics"]
38
37
 
39
38
  @validator('instrument_event_type')
40
39
  def instrument_event_type_validate_enum(cls, value):
41
40
  """Validates the enum"""
42
- if value not in ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent'):
43
- raise ValueError("must be one of enum values ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent')")
41
+ if value not in ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent'):
42
+ raise ValueError("must be one of enum values ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent')")
44
43
  return value
45
44
 
46
45
  class Config:
@@ -92,7 +91,6 @@ class InformationalEvent(InstrumentEvent):
92
91
  _obj = InformationalEvent.parse_obj({
93
92
  "instrument_event_type": obj.get("instrumentEventType"),
94
93
  "event_type": obj.get("eventType"),
95
- "event_status": obj.get("eventStatus"),
96
94
  "anchor_date": obj.get("anchorDate"),
97
95
  "event_window_end": obj.get("eventWindowEnd"),
98
96
  "diagnostics": ResultValueDictionary.from_dict(obj.get("diagnostics")) if obj.get("diagnostics") is not None else None
@@ -26,14 +26,14 @@ class InstrumentEvent(BaseModel):
26
26
  """
27
27
  Base class for representing instrument events in LUSID, such as dividends, stock splits, and option exercises. This base class should not be directly instantiated; each supported InstrumentEventType has a corresponding inherited class. # noqa: E501
28
28
  """
29
- instrument_event_type: StrictStr = Field(..., alias="instrumentEventType", description="The Type of Event. The available values are: TransitionEvent, InformationalEvent, OpenEvent, CloseEvent, StockSplitEvent, BondDefaultEvent, CashDividendEvent, AmortisationEvent, CashFlowEvent, ExerciseEvent, ResetEvent, TriggerEvent, RawVendorEvent, InformationalErrorEvent")
29
+ instrument_event_type: StrictStr = Field(..., alias="instrumentEventType", description="The Type of Event. The available values are: TransitionEvent, InformationalEvent, OpenEvent, CloseEvent, StockSplitEvent, BondDefaultEvent, CashDividendEvent, AmortisationEvent, CashFlowEvent, ExerciseEvent, ResetEvent, TriggerEvent, RawVendorEvent, InformationalErrorEvent, BondCouponEvent, DividendReinvestmentEvent, AccumulationEvent, BondPrincipalEvent, DividendOptionEvent, MaturityEvent, FxForwardSettlementEvent, ExpiryEvent")
30
30
  __properties = ["instrumentEventType"]
31
31
 
32
32
  @validator('instrument_event_type')
33
33
  def instrument_event_type_validate_enum(cls, value):
34
34
  """Validates the enum"""
35
- if value not in ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent'):
36
- raise ValueError("must be one of enum values ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent')")
35
+ if value not in ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent'):
36
+ raise ValueError("must be one of enum values ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent')")
37
37
  return value
38
38
 
39
39
  class Config:
@@ -46,14 +46,22 @@ class InstrumentEvent(BaseModel):
46
46
 
47
47
  # discriminator mappings
48
48
  __discriminator_value_class_map = {
49
+ 'AccumulationEvent': 'AccumulationEvent',
49
50
  'AmortisationEvent': 'AmortisationEvent',
51
+ 'BondCouponEvent': 'BondCouponEvent',
50
52
  'BondDefaultEvent': 'BondDefaultEvent',
53
+ 'BondPrincipalEvent': 'BondPrincipalEvent',
51
54
  'CashDividendEvent': 'CashDividendEvent',
52
55
  'CashFlowEvent': 'CashFlowEvent',
53
56
  'CloseEvent': 'CloseEvent',
57
+ 'DividendOptionEvent': 'DividendOptionEvent',
58
+ 'DividendReinvestmentEvent': 'DividendReinvestmentEvent',
54
59
  'ExerciseEvent': 'ExerciseEvent',
60
+ 'ExpiryEvent': 'ExpiryEvent',
61
+ 'FxForwardSettlementEvent': 'FxForwardSettlementEvent',
55
62
  'InformationalErrorEvent': 'InformationalErrorEvent',
56
63
  'InformationalEvent': 'InformationalEvent',
64
+ 'MaturityEvent': 'MaturityEvent',
57
65
  'OpenEvent': 'OpenEvent',
58
66
  'RawVendorEvent': 'RawVendorEvent',
59
67
  'ResetEvent': 'ResetEvent',
@@ -80,7 +88,7 @@ class InstrumentEvent(BaseModel):
80
88
  return json.dumps(self.to_dict())
81
89
 
82
90
  @classmethod
83
- def from_json(cls, json_str: str) -> Union(AmortisationEvent, BondDefaultEvent, CashDividendEvent, CashFlowEvent, CloseEvent, ExerciseEvent, InformationalErrorEvent, InformationalEvent, OpenEvent, RawVendorEvent, ResetEvent, StockSplitEvent, TransitionEvent, TriggerEvent):
91
+ def from_json(cls, json_str: str) -> Union(AccumulationEvent, AmortisationEvent, BondCouponEvent, BondDefaultEvent, BondPrincipalEvent, CashDividendEvent, CashFlowEvent, CloseEvent, DividendOptionEvent, DividendReinvestmentEvent, ExerciseEvent, ExpiryEvent, FxForwardSettlementEvent, InformationalErrorEvent, InformationalEvent, MaturityEvent, OpenEvent, RawVendorEvent, ResetEvent, StockSplitEvent, TransitionEvent, TriggerEvent):
84
92
  """Create an instance of InstrumentEvent from a JSON string"""
85
93
  return cls.from_dict(json.loads(json_str))
86
94
 
@@ -93,7 +101,7 @@ class InstrumentEvent(BaseModel):
93
101
  return _dict
94
102
 
95
103
  @classmethod
96
- def from_dict(cls, obj: dict) -> Union(AmortisationEvent, BondDefaultEvent, CashDividendEvent, CashFlowEvent, CloseEvent, ExerciseEvent, InformationalErrorEvent, InformationalEvent, OpenEvent, RawVendorEvent, ResetEvent, StockSplitEvent, TransitionEvent, TriggerEvent):
104
+ def from_dict(cls, obj: dict) -> Union(AccumulationEvent, AmortisationEvent, BondCouponEvent, BondDefaultEvent, BondPrincipalEvent, CashDividendEvent, CashFlowEvent, CloseEvent, DividendOptionEvent, DividendReinvestmentEvent, ExerciseEvent, ExpiryEvent, FxForwardSettlementEvent, InformationalErrorEvent, InformationalEvent, MaturityEvent, OpenEvent, RawVendorEvent, ResetEvent, StockSplitEvent, TransitionEvent, TriggerEvent):
97
105
  """Create an instance of InstrumentEvent from a dict"""
98
106
  # look up the object type based on discriminator mapping
99
107
  object_type = cls.get_discriminator_value(obj)
@@ -0,0 +1,74 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict, List, Optional
22
+ from pydantic import BaseModel, Field, StrictStr, conlist
23
+
24
+ class InstrumentEventConfiguration(BaseModel):
25
+ """
26
+ InstrumentEventConfiguration
27
+ """
28
+ transaction_template_scopes: Optional[conlist(StrictStr)] = Field(None, alias="transactionTemplateScopes")
29
+ __properties = ["transactionTemplateScopes"]
30
+
31
+ class Config:
32
+ """Pydantic configuration"""
33
+ allow_population_by_field_name = True
34
+ validate_assignment = True
35
+
36
+ def to_str(self) -> str:
37
+ """Returns the string representation of the model using alias"""
38
+ return pprint.pformat(self.dict(by_alias=True))
39
+
40
+ def to_json(self) -> str:
41
+ """Returns the JSON representation of the model using alias"""
42
+ return json.dumps(self.to_dict())
43
+
44
+ @classmethod
45
+ def from_json(cls, json_str: str) -> InstrumentEventConfiguration:
46
+ """Create an instance of InstrumentEventConfiguration from a JSON string"""
47
+ return cls.from_dict(json.loads(json_str))
48
+
49
+ def to_dict(self):
50
+ """Returns the dictionary representation of the model using alias"""
51
+ _dict = self.dict(by_alias=True,
52
+ exclude={
53
+ },
54
+ exclude_none=True)
55
+ # set to None if transaction_template_scopes (nullable) is None
56
+ # and __fields_set__ contains the field
57
+ if self.transaction_template_scopes is None and "transaction_template_scopes" in self.__fields_set__:
58
+ _dict['transactionTemplateScopes'] = None
59
+
60
+ return _dict
61
+
62
+ @classmethod
63
+ def from_dict(cls, obj: dict) -> InstrumentEventConfiguration:
64
+ """Create an instance of InstrumentEventConfiguration from a dict"""
65
+ if obj is None:
66
+ return None
67
+
68
+ if not isinstance(obj, dict):
69
+ return InstrumentEventConfiguration.parse_obj(obj)
70
+
71
+ _obj = InstrumentEventConfiguration.parse_obj({
72
+ "transaction_template_scopes": obj.get("transactionTemplateScopes")
73
+ })
74
+ return _obj
@@ -19,7 +19,7 @@ import json
19
19
 
20
20
 
21
21
  from typing import Any, Dict, List, Optional
22
- from pydantic import BaseModel, Field, StrictStr, conlist, constr, validator
22
+ from pydantic import BaseModel, Field, StrictInt, StrictStr, conlist, constr, validator
23
23
  from lusid.models.event_date_range import EventDateRange
24
24
  from lusid.models.instrument_event import InstrumentEvent
25
25
  from lusid.models.perpetual_property import PerpetualProperty
@@ -38,7 +38,9 @@ class InstrumentEventHolder(BaseModel):
38
38
  event_date_range: EventDateRange = Field(..., alias="eventDateRange")
39
39
  instrument_event: InstrumentEvent = Field(..., alias="instrumentEvent")
40
40
  properties: Optional[conlist(PerpetualProperty)] = Field(None, description="The properties attached to this instrument event.")
41
- __properties = ["instrumentEventId", "corporateActionSourceId", "instrumentIdentifiers", "lusidInstrumentId", "instrumentScope", "description", "eventDateRange", "instrumentEvent", "properties"]
41
+ sequence_number: Optional[StrictInt] = Field(None, alias="sequenceNumber", description="The order of the instrument event relative others on the same date (0 being processed first). Must be non negative.")
42
+ participation_type: Optional[StrictStr] = Field('Mandatory', alias="participationType", description="Is participation in this event Mandatory, MandatoryWithChoices, or Voluntary.")
43
+ __properties = ["instrumentEventId", "corporateActionSourceId", "instrumentIdentifiers", "lusidInstrumentId", "instrumentScope", "description", "eventDateRange", "instrumentEvent", "properties", "sequenceNumber", "participationType"]
42
44
 
43
45
  @validator('instrument_event_id')
44
46
  def instrument_event_id_validate_regular_expression(cls, value):
@@ -99,6 +101,11 @@ class InstrumentEventHolder(BaseModel):
99
101
  if self.properties is None and "properties" in self.__fields_set__:
100
102
  _dict['properties'] = None
101
103
 
104
+ # set to None if participation_type (nullable) is None
105
+ # and __fields_set__ contains the field
106
+ if self.participation_type is None and "participation_type" in self.__fields_set__:
107
+ _dict['participationType'] = None
108
+
102
109
  return _dict
103
110
 
104
111
  @classmethod
@@ -119,6 +126,8 @@ class InstrumentEventHolder(BaseModel):
119
126
  "description": obj.get("description"),
120
127
  "event_date_range": EventDateRange.from_dict(obj.get("eventDateRange")) if obj.get("eventDateRange") is not None else None,
121
128
  "instrument_event": InstrumentEvent.from_dict(obj.get("instrumentEvent")) if obj.get("instrumentEvent") is not None else None,
122
- "properties": [PerpetualProperty.from_dict(_item) for _item in obj.get("properties")] if obj.get("properties") is not None else None
129
+ "properties": [PerpetualProperty.from_dict(_item) for _item in obj.get("properties")] if obj.get("properties") is not None else None,
130
+ "sequence_number": obj.get("sequenceNumber"),
131
+ "participation_type": obj.get("participationType") if obj.get("participationType") is not None else 'Mandatory'
123
132
  })
124
133
  return _obj
@@ -43,6 +43,14 @@ class InstrumentEventType(str, Enum):
43
43
  TRIGGEREVENT = 'TriggerEvent'
44
44
  RAWVENDOREVENT = 'RawVendorEvent'
45
45
  INFORMATIONALERROREVENT = 'InformationalErrorEvent'
46
+ BONDCOUPONEVENT = 'BondCouponEvent'
47
+ DIVIDENDREINVESTMENTEVENT = 'DividendReinvestmentEvent'
48
+ ACCUMULATIONEVENT = 'AccumulationEvent'
49
+ BONDPRINCIPALEVENT = 'BondPrincipalEvent'
50
+ DIVIDENDOPTIONEVENT = 'DividendOptionEvent'
51
+ MATURITYEVENT = 'MaturityEvent'
52
+ FXFORWARDSETTLEMENTEVENT = 'FxForwardSettlementEvent'
53
+ EXPIRYEVENT = 'ExpiryEvent'
46
54
 
47
55
  @classmethod
48
56
  def from_json(cls, json_str: str) -> InstrumentEventType: