lusid-sdk 2.0.50b0__py3-none-any.whl → 2.0.438__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 (319) hide show
  1. lusid/__init__.py +1091 -14
  2. lusid/api/__init__.py +65 -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 +944 -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/quotes_api.py +20 -36
  32. lusid/api/reconciliations_api.py +410 -1978
  33. lusid/api/schemas_api.py +7 -15
  34. lusid/api/scopes_api.py +151 -0
  35. lusid/api/scripted_translation_api.py +30 -28
  36. lusid/api/transaction_configuration_api.py +22 -22
  37. lusid/api/transaction_portfolios_api.py +282 -577
  38. lusid/api_client.py +5 -3
  39. lusid/configuration.py +1 -1
  40. lusid/extensions/__init__.py +10 -7
  41. lusid/extensions/api_client.py +3 -1
  42. lusid/extensions/api_client_factory.py +156 -45
  43. lusid/extensions/api_configuration.py +124 -15
  44. lusid/extensions/configuration_loaders.py +2 -4
  45. lusid/extensions/proxy_config.py +8 -5
  46. lusid/extensions/socket_keep_alive.py +14 -15
  47. lusid/extensions/tcp_keep_alive_connector.py +93 -46
  48. lusid/models/__init__.py +1006 -13
  49. lusid/models/abor.py +9 -2
  50. lusid/models/abor_configuration.py +8 -8
  51. lusid/models/abor_configuration_request.py +9 -9
  52. lusid/models/abor_request.py +1 -1
  53. lusid/models/account.py +6 -1
  54. lusid/models/accumulation_event.py +104 -0
  55. lusid/models/address_key_compliance_parameter.py +5 -12
  56. lusid/models/address_key_list_compliance_parameter.py +3 -3
  57. lusid/models/address_key_option_definition.py +3 -1
  58. lusid/models/amortisation_event.py +4 -6
  59. lusid/models/{underlying_leg.py → asset_leg.py} +15 -15
  60. lusid/models/basket.py +3 -3
  61. lusid/models/block_and_order_id_request.py +78 -0
  62. lusid/models/block_and_orders.py +83 -0
  63. lusid/models/block_and_orders_create_request.py +77 -0
  64. lusid/models/block_and_orders_request.py +134 -0
  65. lusid/models/blocked_order_request.py +130 -0
  66. lusid/models/bond.py +13 -6
  67. lusid/models/bond_coupon_event.py +97 -0
  68. lusid/models/bond_default_event.py +8 -18
  69. lusid/models/bond_principal_event.py +97 -0
  70. lusid/models/book_transactions_request.py +97 -0
  71. lusid/models/bool_compliance_parameter.py +3 -3
  72. lusid/models/bool_list_compliance_parameter.py +3 -3
  73. lusid/models/branch_step.py +101 -0
  74. lusid/models/cap_floor.py +3 -3
  75. lusid/models/cash_dividend_event.py +32 -10
  76. lusid/models/cash_election.py +91 -0
  77. lusid/models/cash_flow_event.py +5 -7
  78. lusid/models/cash_perpetual.py +3 -3
  79. lusid/models/cds_flow_conventions.py +1 -1
  80. lusid/models/cds_index.py +4 -4
  81. lusid/models/check_step.py +110 -0
  82. lusid/models/cleardown_module_details.py +95 -0
  83. lusid/models/cleardown_module_request.py +117 -0
  84. lusid/models/cleardown_module_response.py +139 -0
  85. lusid/models/cleardown_module_rule.py +94 -0
  86. lusid/models/{reconciliation_run_break.py → cleardown_module_rules_updated_response.py} +30 -36
  87. lusid/models/close_event.py +3 -3
  88. lusid/models/close_period_diary_entry_request.py +149 -0
  89. lusid/models/complete_portfolio.py +8 -1
  90. lusid/models/complex_bond.py +4 -4
  91. lusid/models/complex_market_data.py +6 -5
  92. lusid/models/compliance_parameter.py +8 -5
  93. lusid/models/compliance_parameter_type.py +3 -0
  94. lusid/models/compliance_rule_breakdown.py +16 -8
  95. lusid/models/compliance_rule_breakdown_request.py +12 -4
  96. lusid/models/compliance_rule_result_v2.py +85 -0
  97. lusid/models/compliance_step.py +99 -0
  98. lusid/models/compliance_step_type.py +42 -0
  99. lusid/models/compliance_summary_rule_result.py +12 -15
  100. lusid/models/compliance_summary_rule_result_request.py +12 -15
  101. lusid/models/compliance_template_variation.py +12 -2
  102. lusid/models/component_transaction.py +92 -0
  103. lusid/models/composite_dispersion.py +30 -5
  104. lusid/models/compounding.py +4 -4
  105. lusid/models/configuration_recipe.py +10 -19
  106. lusid/models/constant_volatility_surface.py +102 -0
  107. lusid/models/contract_for_difference.py +3 -3
  108. lusid/models/create_derived_property_definition_request.py +3 -3
  109. lusid/models/create_derived_transaction_portfolio_request.py +10 -3
  110. lusid/models/create_property_definition_request.py +12 -5
  111. lusid/models/create_trade_tickets_response.py +87 -0
  112. lusid/models/create_transaction_portfolio_request.py +16 -3
  113. lusid/models/credit_default_swap.py +4 -4
  114. lusid/models/credit_spread_curve_data.py +4 -4
  115. lusid/models/custom_entity_definition.py +8 -2
  116. lusid/models/custom_entity_type.py +8 -2
  117. lusid/models/cut_label_definition.py +7 -1
  118. lusid/models/data_type.py +7 -1
  119. lusid/models/data_type_summary.py +8 -2
  120. lusid/models/date_time_compliance_parameter.py +3 -3
  121. lusid/models/date_time_list_compliance_parameter.py +3 -3
  122. lusid/models/{upsert_reconciliation_run_request.py → day_month.py} +15 -15
  123. lusid/models/decimal_compliance_parameter.py +3 -3
  124. lusid/models/decimal_list_compliance_parameter.py +3 -3
  125. lusid/models/dialect.py +9 -3
  126. lusid/models/diary_entry.py +1 -1
  127. lusid/models/diary_entry_request.py +1 -1
  128. lusid/models/discount_factor_curve_data.py +3 -3
  129. lusid/models/dividend_option_event.py +129 -0
  130. lusid/models/dividend_reinvestment_event.py +124 -0
  131. lusid/models/election_specification.py +73 -0
  132. lusid/models/eligibility_calculation.py +71 -0
  133. lusid/models/empty_model_options.py +3 -3
  134. lusid/models/equity.py +8 -6
  135. lusid/models/equity_curve_by_prices_data.py +3 -3
  136. lusid/models/equity_model_options.py +3 -3
  137. lusid/models/equity_option.py +3 -3
  138. lusid/models/equity_swap.py +4 -4
  139. lusid/models/equity_vol_surface_data.py +3 -3
  140. lusid/models/exchange_traded_option.py +3 -3
  141. lusid/models/exercise_event.py +5 -7
  142. lusid/models/exotic_instrument.py +3 -3
  143. lusid/models/filter_predicate_compliance_parameter.py +91 -0
  144. lusid/models/filter_step.py +101 -0
  145. lusid/models/fixed_leg.py +3 -3
  146. lusid/models/fixed_schedule.py +4 -9
  147. lusid/models/flexible_loan.py +105 -0
  148. lusid/models/float_schedule.py +20 -12
  149. lusid/models/floating_leg.py +3 -3
  150. lusid/models/flow_convention_name.py +1 -1
  151. lusid/models/flow_conventions.py +1 -1
  152. lusid/models/forward_rate_agreement.py +3 -3
  153. lusid/models/from_recipe.py +81 -0
  154. lusid/models/fund.py +182 -0
  155. lusid/models/fund_properties.py +115 -0
  156. lusid/models/fund_request.py +165 -0
  157. lusid/models/fund_share_class.py +99 -0
  158. lusid/models/funding_leg.py +3 -3
  159. lusid/models/funding_leg_options.py +3 -3
  160. lusid/models/future.py +3 -3
  161. lusid/models/fx_conventions.py +73 -0
  162. lusid/models/fx_forward.py +8 -6
  163. lusid/models/fx_forward_curve_by_quote_reference.py +4 -4
  164. lusid/models/fx_forward_curve_data.py +3 -3
  165. lusid/models/fx_forward_model_options.py +3 -3
  166. lusid/models/fx_forward_pips_curve_data.py +3 -3
  167. lusid/models/fx_forward_settlement_event.py +136 -0
  168. lusid/models/fx_forward_tenor_curve_data.py +4 -4
  169. lusid/models/fx_forward_tenor_pips_curve_data.py +4 -4
  170. lusid/models/fx_linked_notional_schedule.py +108 -0
  171. lusid/models/fx_option.py +3 -3
  172. lusid/models/fx_rate_schedule.py +3 -3
  173. lusid/models/fx_swap.py +4 -4
  174. lusid/models/fx_vol_surface_data.py +3 -3
  175. lusid/models/{reconciliation_run.py → get_recipe_composer_response.py} +15 -15
  176. lusid/models/group_by_selector_compliance_parameter.py +91 -0
  177. lusid/models/group_by_step.py +101 -0
  178. lusid/models/group_filter_predicate_compliance_parameter.py +91 -0
  179. lusid/models/group_filter_step.py +110 -0
  180. lusid/models/group_of_market_data_key_rules.py +79 -0
  181. lusid/models/index_convention.py +1 -1
  182. lusid/models/index_model_options.py +3 -3
  183. lusid/models/inflation_index_conventions.py +2 -2
  184. lusid/models/inflation_leg.py +3 -3
  185. lusid/models/inflation_linked_bond.py +3 -3
  186. lusid/models/inflation_swap.py +4 -4
  187. lusid/models/informational_error_event.py +3 -3
  188. lusid/models/informational_event.py +4 -6
  189. lusid/models/instrument_event.py +12 -5
  190. lusid/models/instrument_event_configuration.py +74 -0
  191. lusid/models/instrument_event_holder.py +12 -3
  192. lusid/models/instrument_event_type.py +7 -0
  193. lusid/models/instrument_leg.py +3 -3
  194. lusid/models/instrument_list_compliance_parameter.py +3 -3
  195. lusid/models/instrument_payment_diary_leg.py +5 -3
  196. lusid/models/instrument_resolution_detail.py +105 -0
  197. lusid/models/instrument_type.py +2 -0
  198. lusid/models/interest_rate_swap.py +4 -4
  199. lusid/models/interest_rate_swaption.py +3 -3
  200. lusid/models/intermediate_compliance_step.py +110 -0
  201. lusid/models/ir_vol_cube_data.py +3 -3
  202. lusid/models/journal_entry_line.py +34 -3
  203. lusid/models/journal_entry_lines_query_parameters.py +1 -1
  204. lusid/models/label_value_set.py +1 -1
  205. lusid/models/leg_definition.py +16 -3
  206. lusid/models/lineage_member.py +87 -0
  207. lusid/models/lock_period_diary_entry_request.py +91 -0
  208. lusid/models/lusid_instrument.py +7 -5
  209. lusid/models/lusid_trade_ticket.py +8 -1
  210. lusid/models/market_context.py +17 -2
  211. lusid/models/market_data_type.py +1 -0
  212. lusid/models/maturity_event.py +91 -0
  213. lusid/models/model_options.py +5 -6
  214. lusid/models/model_options_type.py +0 -1
  215. lusid/models/model_selection.py +3 -3
  216. lusid/models/move_orders_to_different_blocks_request.py +77 -0
  217. lusid/models/moved_order_to_different_block_response.py +85 -0
  218. lusid/models/movement_type.py +2 -0
  219. lusid/models/multi_currency_amounts.py +71 -0
  220. lusid/models/opaque_market_data.py +3 -3
  221. lusid/models/opaque_model_options.py +3 -3
  222. lusid/models/open_event.py +3 -3
  223. lusid/models/optionality_schedule.py +3 -3
  224. lusid/models/order_graph_block.py +4 -2
  225. lusid/models/order_graph_block_order_detail.py +16 -2
  226. lusid/models/output_transaction.py +9 -2
  227. lusid/models/paged_resource_list_of_cleardown_module_response.py +113 -0
  228. lusid/models/{paged_resource_list_of_reconciliation_run_break.py → paged_resource_list_of_cleardown_module_rule.py} +11 -11
  229. lusid/models/{paged_resource_list_of_reconciliation_run.py → paged_resource_list_of_fund.py} +11 -11
  230. lusid/models/paged_resource_list_of_property_definition.py +113 -0
  231. lusid/models/paged_resource_list_of_transaction_template.py +113 -0
  232. lusid/models/paged_resource_list_of_transaction_template_specification.py +113 -0
  233. lusid/models/participation_request.py +3 -9
  234. lusid/models/performance_returns_metric.py +1 -1
  235. lusid/models/period_diary_entries_reopened_response.py +104 -0
  236. lusid/models/place_blocks_request.py +77 -0
  237. lusid/models/portfolio.py +15 -2
  238. lusid/models/portfolio_details.py +15 -2
  239. lusid/models/portfolio_group_id_compliance_parameter.py +3 -3
  240. lusid/models/portfolio_group_id_list_compliance_parameter.py +3 -3
  241. lusid/models/portfolio_holding.py +27 -2
  242. lusid/models/portfolio_id_compliance_parameter.py +3 -3
  243. lusid/models/portfolio_id_list_compliance_parameter.py +3 -3
  244. lusid/models/posting_module_rule.py +29 -4
  245. lusid/models/pricing_model.py +2 -1
  246. lusid/models/property_definition.py +17 -4
  247. lusid/models/property_definition_search_result.py +3 -3
  248. lusid/models/property_domain.py +2 -0
  249. lusid/models/property_key_compliance_parameter.py +3 -3
  250. lusid/models/property_key_list_compliance_parameter.py +3 -3
  251. lusid/models/raw_vendor_event.py +5 -7
  252. lusid/models/re_open_period_diary_entry_request.py +84 -0
  253. lusid/models/recipe_block.py +87 -0
  254. lusid/models/recipe_composer.py +100 -0
  255. lusid/models/{reconciliation_break_id.py → recipe_value.py} +22 -23
  256. lusid/models/recombine_step.py +101 -0
  257. lusid/models/reference_instrument.py +3 -3
  258. lusid/models/relative_date_offset.py +71 -0
  259. lusid/models/repo.py +3 -3
  260. lusid/models/reset_event.py +4 -6
  261. lusid/models/resource_list_of_block_and_orders.py +113 -0
  262. lusid/models/resource_list_of_get_recipe_composer_response.py +113 -0
  263. lusid/models/resource_list_of_moved_order_to_different_block_response.py +113 -0
  264. lusid/models/schedule.py +6 -5
  265. lusid/models/schedule_type.py +1 -0
  266. lusid/models/script_map_reference.py +94 -0
  267. lusid/models/security_election.py +86 -0
  268. lusid/models/side_definition.py +1 -8
  269. lusid/models/sides_definition_request.py +1 -8
  270. lusid/models/simple_cash_flow_loan.py +3 -3
  271. lusid/models/simple_instrument.py +3 -3
  272. lusid/models/step_schedule.py +3 -3
  273. lusid/models/stock_split_event.py +3 -3
  274. lusid/models/string_compliance_parameter.py +3 -3
  275. lusid/models/string_list_compliance_parameter.py +3 -3
  276. lusid/models/template_field.py +77 -0
  277. lusid/models/term_deposit.py +3 -3
  278. lusid/models/total_return_swap.py +16 -16
  279. lusid/models/transaction_configuration_movement_data.py +3 -3
  280. lusid/models/transaction_configuration_movement_data_request.py +3 -3
  281. lusid/models/transaction_currency_and_amount.py +81 -0
  282. lusid/models/transaction_field_map.py +97 -0
  283. lusid/models/transaction_price.py +3 -3
  284. lusid/models/transaction_price_and_type.py +81 -0
  285. lusid/models/transaction_price_type.py +1 -0
  286. lusid/models/transaction_property_map.py +80 -0
  287. lusid/models/transaction_template.py +100 -0
  288. lusid/models/transaction_template_request.py +79 -0
  289. lusid/models/transaction_template_specification.py +99 -0
  290. lusid/models/transaction_type_alias.py +0 -7
  291. lusid/models/transaction_type_calculation.py +1 -1
  292. lusid/models/transition_event.py +3 -3
  293. lusid/models/translation_context.py +75 -0
  294. lusid/models/translation_script.py +9 -3
  295. lusid/models/trial_balance.py +46 -11
  296. lusid/models/trial_balance_query_parameters.py +15 -6
  297. lusid/models/trigger_event.py +3 -3
  298. lusid/models/units_ratio.py +71 -0
  299. lusid/models/{compliance_run_summary.py → upsert_compliance_run_summary_result.py} +8 -8
  300. lusid/models/upsert_dialect_request.py +79 -0
  301. lusid/models/upsert_instrument_event_request.py +12 -3
  302. lusid/models/upsert_quote_request.py +1 -1
  303. lusid/models/upsert_recipe_composer_request.py +73 -0
  304. lusid/models/upsert_recipe_request.py +3 -9
  305. lusid/models/upsert_translation_script_request.py +75 -0
  306. lusid/models/valuation_schedule.py +10 -3
  307. lusid/models/weighted_instrument.py +13 -2
  308. lusid/models/weighted_instrument_in_line_lookup_identifiers.py +89 -0
  309. lusid/models/yield_curve_data.py +3 -3
  310. lusid/rest.py +1 -1
  311. {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.438.dist-info}/METADATA +227 -48
  312. {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.438.dist-info}/RECORD +313 -235
  313. {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.438.dist-info}/WHEEL +1 -1
  314. lusid/extensions/api_client_builder.py +0 -138
  315. lusid/models/configuration_recipe_snippet.py +0 -139
  316. lusid/models/je_lines_query_parameters.py +0 -105
  317. lusid/models/look_up_pricing_model_options.py +0 -93
  318. lusid/models/reconciliation_run_id.py +0 -85
  319. lusid/models/upsert_reconciliation_break_request.py +0 -98
@@ -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")
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'):
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')")
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")
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'):
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')")
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")
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'):
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')")
37
37
  return value
38
38
 
39
39
  class Config:
@@ -46,14 +46,21 @@ 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
+ 'FxForwardSettlementEvent': 'FxForwardSettlementEvent',
55
61
  'InformationalErrorEvent': 'InformationalErrorEvent',
56
62
  'InformationalEvent': 'InformationalEvent',
63
+ 'MaturityEvent': 'MaturityEvent',
57
64
  'OpenEvent': 'OpenEvent',
58
65
  'RawVendorEvent': 'RawVendorEvent',
59
66
  'ResetEvent': 'ResetEvent',
@@ -80,7 +87,7 @@ class InstrumentEvent(BaseModel):
80
87
  return json.dumps(self.to_dict())
81
88
 
82
89
  @classmethod
83
- def from_json(cls, json_str: str) -> Union(AmortisationEvent, BondDefaultEvent, CashDividendEvent, CashFlowEvent, CloseEvent, ExerciseEvent, InformationalErrorEvent, InformationalEvent, OpenEvent, RawVendorEvent, ResetEvent, StockSplitEvent, TransitionEvent, TriggerEvent):
90
+ def from_json(cls, json_str: str) -> Union(AccumulationEvent, AmortisationEvent, BondCouponEvent, BondDefaultEvent, BondPrincipalEvent, CashDividendEvent, CashFlowEvent, CloseEvent, DividendOptionEvent, DividendReinvestmentEvent, ExerciseEvent, FxForwardSettlementEvent, InformationalErrorEvent, InformationalEvent, MaturityEvent, OpenEvent, RawVendorEvent, ResetEvent, StockSplitEvent, TransitionEvent, TriggerEvent):
84
91
  """Create an instance of InstrumentEvent from a JSON string"""
85
92
  return cls.from_dict(json.loads(json_str))
86
93
 
@@ -93,7 +100,7 @@ class InstrumentEvent(BaseModel):
93
100
  return _dict
94
101
 
95
102
  @classmethod
96
- def from_dict(cls, obj: dict) -> Union(AmortisationEvent, BondDefaultEvent, CashDividendEvent, CashFlowEvent, CloseEvent, ExerciseEvent, InformationalErrorEvent, InformationalEvent, OpenEvent, RawVendorEvent, ResetEvent, StockSplitEvent, TransitionEvent, TriggerEvent):
103
+ def from_dict(cls, obj: dict) -> Union(AccumulationEvent, AmortisationEvent, BondCouponEvent, BondDefaultEvent, BondPrincipalEvent, CashDividendEvent, CashFlowEvent, CloseEvent, DividendOptionEvent, DividendReinvestmentEvent, ExerciseEvent, FxForwardSettlementEvent, InformationalErrorEvent, InformationalEvent, MaturityEvent, OpenEvent, RawVendorEvent, ResetEvent, StockSplitEvent, TransitionEvent, TriggerEvent):
97
104
  """Create an instance of InstrumentEvent from a dict"""
98
105
  # look up the object type based on discriminator mapping
99
106
  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,13 @@ 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'
46
53
 
47
54
  @classmethod
48
55
  def from_json(cls, json_str: str) -> InstrumentEventType:
@@ -27,15 +27,15 @@ class InstrumentLeg(LusidInstrument):
27
27
  """
28
28
  Base class for representing instrument legs in LUSID. An instrument leg describes a set of cashflows that are paid at a set of points in time according to some set of conventions. This base class should not be directly instantiated; only its inheritors should be used. # noqa: E501
29
29
  """
30
- 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")
30
+ 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")
31
31
  additional_properties: Dict[str, Any] = {}
32
32
  __properties = ["instrumentType"]
33
33
 
34
34
  @validator('instrument_type')
35
35
  def instrument_type_validate_enum(cls, value):
36
36
  """Validates the enum"""
37
- 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'):
38
- 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')")
37
+ 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'):
38
+ 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')")
39
39
  return value
40
40
 
41
41
  class Config:
@@ -28,15 +28,15 @@ class InstrumentListComplianceParameter(ComplianceParameter):
28
28
  InstrumentListComplianceParameter
29
29
  """
30
30
  value: ResourceId = Field(...)
31
- compliance_parameter_type: StrictStr = Field(..., alias="complianceParameterType", description="The parameter type. The available values are: BoolComplianceParameter, StringComplianceParameter, DecimalComplianceParameter, DateTimeComplianceParameter, PropertyKeyComplianceParameter, AddressKeyComplianceParameter, PortfolioIdComplianceParameter, PortfolioGroupIdComplianceParameter, StringListComplianceParameter, BoolListComplianceParameter, DateTimeListComplianceParameter, DecimalListComplianceParameter, PropertyKeyListComplianceParameter, AddressKeyListComplianceParameter, PortfolioIdListComplianceParameter, PortfolioGroupIdListComplianceParameter, InstrumentListComplianceParameter")
31
+ compliance_parameter_type: StrictStr = Field(..., alias="complianceParameterType", description="The parameter type. The available values are: BoolComplianceParameter, StringComplianceParameter, DecimalComplianceParameter, DateTimeComplianceParameter, PropertyKeyComplianceParameter, AddressKeyComplianceParameter, PortfolioIdComplianceParameter, PortfolioGroupIdComplianceParameter, StringListComplianceParameter, BoolListComplianceParameter, DateTimeListComplianceParameter, DecimalListComplianceParameter, PropertyKeyListComplianceParameter, AddressKeyListComplianceParameter, PortfolioIdListComplianceParameter, PortfolioGroupIdListComplianceParameter, InstrumentListComplianceParameter, FilterPredicateComplianceParameter, GroupFilterPredicateComplianceParameter, GroupBySelectorComplianceParameter")
32
32
  additional_properties: Dict[str, Any] = {}
33
33
  __properties = ["complianceParameterType", "value"]
34
34
 
35
35
  @validator('compliance_parameter_type')
36
36
  def compliance_parameter_type_validate_enum(cls, value):
37
37
  """Validates the enum"""
38
- if value not in ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter'):
39
- raise ValueError("must be one of enum values ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter')")
38
+ if value not in ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter'):
39
+ raise ValueError("must be one of enum values ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter')")
40
40
  return value
41
41
 
42
42
  class Config:
@@ -19,16 +19,17 @@ import json
19
19
 
20
20
 
21
21
  from typing import Any, Dict, List, Optional
22
- from pydantic import BaseModel, Field, StrictStr, conlist
22
+ from pydantic import BaseModel, Field, StrictInt, StrictStr, conlist
23
23
  from lusid.models.instrument_payment_diary_row import InstrumentPaymentDiaryRow
24
24
 
25
25
  class InstrumentPaymentDiaryLeg(BaseModel):
26
26
  """
27
27
  A leg containing a set of cashflows. # noqa: E501
28
28
  """
29
- leg_id: Optional[StrictStr] = Field(None, alias="legId", description="Identifier for the leg of a payment diary.")
29
+ leg_index: Optional[StrictInt] = Field(None, alias="legIndex", description="Index (integer) for the leg of a payment diary.")
30
+ leg_id: Optional[StrictStr] = Field(None, alias="legId", description="Identifier string for the leg of a payment diary.")
30
31
  rows: Optional[conlist(InstrumentPaymentDiaryRow)] = Field(None, description="List of individual cashflows within the payment diary.")
31
- __properties = ["legId", "rows"]
32
+ __properties = ["legIndex", "legId", "rows"]
32
33
 
33
34
  class Config:
34
35
  """Pydantic configuration"""
@@ -83,6 +84,7 @@ class InstrumentPaymentDiaryLeg(BaseModel):
83
84
  return InstrumentPaymentDiaryLeg.parse_obj(obj)
84
85
 
85
86
  _obj = InstrumentPaymentDiaryLeg.parse_obj({
87
+ "leg_index": obj.get("legIndex"),
86
88
  "leg_id": obj.get("legId"),
87
89
  "rows": [InstrumentPaymentDiaryRow.from_dict(_item) for _item in obj.get("rows")] if obj.get("rows") is not None else None
88
90
  })
@@ -0,0 +1,105 @@
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, Optional
22
+ from pydantic import BaseModel, Field, StrictStr, constr, validator
23
+
24
+ class InstrumentResolutionDetail(BaseModel):
25
+ """
26
+ InstrumentResolutionDetail
27
+ """
28
+ instrument_identifiers: Dict[str, StrictStr] = Field(..., alias="instrumentIdentifiers", description="Unique instrument identifiers")
29
+ lusid_instrument_id: Optional[constr(strict=True, max_length=64, min_length=1)] = Field(None, alias="lusidInstrumentId", description="LUSID's internal unique instrument identifier, resolved from the instrument identifiers")
30
+ instrument_scope: Optional[constr(strict=True, max_length=64, min_length=1)] = Field(None, alias="instrumentScope", description="The scope in which the instrument lies.")
31
+ __properties = ["instrumentIdentifiers", "lusidInstrumentId", "instrumentScope"]
32
+
33
+ @validator('lusid_instrument_id')
34
+ def lusid_instrument_id_validate_regular_expression(cls, value):
35
+ """Validates the regular expression"""
36
+ if value is None:
37
+ return value
38
+
39
+ if not re.match(r"^[a-zA-Z0-9\-_]+$", value):
40
+ raise ValueError(r"must validate the regular expression /^[a-zA-Z0-9\-_]+$/")
41
+ return value
42
+
43
+ @validator('instrument_scope')
44
+ def instrument_scope_validate_regular_expression(cls, value):
45
+ """Validates the regular expression"""
46
+ if value is None:
47
+ return value
48
+
49
+ if not re.match(r"^[a-zA-Z0-9\-_]+$", value):
50
+ raise ValueError(r"must validate the regular expression /^[a-zA-Z0-9\-_]+$/")
51
+ return value
52
+
53
+ class Config:
54
+ """Pydantic configuration"""
55
+ allow_population_by_field_name = True
56
+ validate_assignment = True
57
+
58
+ def to_str(self) -> str:
59
+ """Returns the string representation of the model using alias"""
60
+ return pprint.pformat(self.dict(by_alias=True))
61
+
62
+ def to_json(self) -> str:
63
+ """Returns the JSON representation of the model using alias"""
64
+ return json.dumps(self.to_dict())
65
+
66
+ @classmethod
67
+ def from_json(cls, json_str: str) -> InstrumentResolutionDetail:
68
+ """Create an instance of InstrumentResolutionDetail from a JSON string"""
69
+ return cls.from_dict(json.loads(json_str))
70
+
71
+ def to_dict(self):
72
+ """Returns the dictionary representation of the model using alias"""
73
+ _dict = self.dict(by_alias=True,
74
+ exclude={
75
+ "lusid_instrument_id",
76
+ "instrument_scope",
77
+ },
78
+ exclude_none=True)
79
+ # set to None if lusid_instrument_id (nullable) is None
80
+ # and __fields_set__ contains the field
81
+ if self.lusid_instrument_id is None and "lusid_instrument_id" in self.__fields_set__:
82
+ _dict['lusidInstrumentId'] = None
83
+
84
+ # set to None if instrument_scope (nullable) is None
85
+ # and __fields_set__ contains the field
86
+ if self.instrument_scope is None and "instrument_scope" in self.__fields_set__:
87
+ _dict['instrumentScope'] = None
88
+
89
+ return _dict
90
+
91
+ @classmethod
92
+ def from_dict(cls, obj: dict) -> InstrumentResolutionDetail:
93
+ """Create an instance of InstrumentResolutionDetail from a dict"""
94
+ if obj is None:
95
+ return None
96
+
97
+ if not isinstance(obj, dict):
98
+ return InstrumentResolutionDetail.parse_obj(obj)
99
+
100
+ _obj = InstrumentResolutionDetail.parse_obj({
101
+ "instrument_identifiers": obj.get("instrumentIdentifiers"),
102
+ "lusid_instrument_id": obj.get("lusidInstrumentId"),
103
+ "instrument_scope": obj.get("instrumentScope")
104
+ })
105
+ return _obj
@@ -65,6 +65,8 @@ class InstrumentType(str, Enum):
65
65
  SIMPLECASHFLOWLOAN = 'SimpleCashFlowLoan'
66
66
  TOTALRETURNSWAP = 'TotalReturnSwap'
67
67
  INFLATIONLEG = 'InflationLeg'
68
+ FUNDSHARECLASS = 'FundShareClass'
69
+ FLEXIBLELOAN = 'FlexibleLoan'
68
70
 
69
71
  @classmethod
70
72
  def from_json(cls, json_str: str) -> InstrumentType: