lusid-sdk 2.0.50b0__py3-none-any.whl → 2.0.455__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 (323) hide show
  1. lusid/__init__.py +1099 -14
  2. lusid/api/__init__.py +67 -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/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/transaction_configuration_api.py +22 -22
  38. lusid/api/transaction_portfolios_api.py +282 -577
  39. lusid/api_client.py +5 -3
  40. lusid/configuration.py +1 -1
  41. lusid/extensions/__init__.py +10 -7
  42. lusid/extensions/api_client.py +3 -1
  43. lusid/extensions/api_client_factory.py +156 -45
  44. lusid/extensions/api_configuration.py +124 -15
  45. lusid/extensions/configuration_loaders.py +2 -4
  46. lusid/extensions/proxy_config.py +8 -5
  47. lusid/extensions/socket_keep_alive.py +14 -15
  48. lusid/extensions/tcp_keep_alive_connector.py +93 -46
  49. lusid/models/__init__.py +1012 -13
  50. lusid/models/abor.py +9 -2
  51. lusid/models/abor_configuration.py +8 -8
  52. lusid/models/abor_configuration_request.py +9 -9
  53. lusid/models/abor_request.py +1 -1
  54. lusid/models/account.py +6 -1
  55. lusid/models/accumulation_event.py +104 -0
  56. lusid/models/address_key_compliance_parameter.py +5 -12
  57. lusid/models/address_key_list_compliance_parameter.py +3 -3
  58. lusid/models/address_key_option_definition.py +3 -1
  59. lusid/models/amortisation_event.py +4 -6
  60. lusid/models/{underlying_leg.py → asset_leg.py} +15 -15
  61. lusid/models/basket.py +3 -3
  62. lusid/models/block_and_order_id_request.py +78 -0
  63. lusid/models/block_and_orders.py +83 -0
  64. lusid/models/block_and_orders_create_request.py +77 -0
  65. lusid/models/block_and_orders_request.py +134 -0
  66. lusid/models/blocked_order_request.py +130 -0
  67. lusid/models/bond.py +13 -6
  68. lusid/models/bond_coupon_event.py +97 -0
  69. lusid/models/bond_default_event.py +8 -18
  70. lusid/models/bond_principal_event.py +97 -0
  71. lusid/models/book_transactions_request.py +97 -0
  72. lusid/models/bool_compliance_parameter.py +3 -3
  73. lusid/models/bool_list_compliance_parameter.py +3 -3
  74. lusid/models/branch_step.py +101 -0
  75. lusid/models/cap_floor.py +3 -3
  76. lusid/models/cash_dividend_event.py +32 -10
  77. lusid/models/cash_election.py +91 -0
  78. lusid/models/cash_flow_event.py +5 -7
  79. lusid/models/cash_perpetual.py +3 -3
  80. lusid/models/cds_flow_conventions.py +1 -1
  81. lusid/models/cds_index.py +4 -4
  82. lusid/models/check_step.py +110 -0
  83. lusid/models/cleardown_module_details.py +95 -0
  84. lusid/models/cleardown_module_request.py +117 -0
  85. lusid/models/cleardown_module_response.py +139 -0
  86. lusid/models/cleardown_module_rule.py +94 -0
  87. lusid/models/{reconciliation_run_break.py → cleardown_module_rules_updated_response.py} +30 -36
  88. lusid/models/close_event.py +3 -3
  89. lusid/models/close_period_diary_entry_request.py +149 -0
  90. lusid/models/complete_portfolio.py +8 -1
  91. lusid/models/complex_bond.py +4 -4
  92. lusid/models/complex_market_data.py +6 -5
  93. lusid/models/compliance_parameter.py +8 -5
  94. lusid/models/compliance_parameter_type.py +3 -0
  95. lusid/models/compliance_rule_breakdown.py +16 -8
  96. lusid/models/compliance_rule_breakdown_request.py +12 -4
  97. lusid/models/compliance_rule_result_v2.py +85 -0
  98. lusid/models/compliance_step.py +99 -0
  99. lusid/models/compliance_step_type.py +42 -0
  100. lusid/models/compliance_summary_rule_result.py +12 -15
  101. lusid/models/compliance_summary_rule_result_request.py +12 -15
  102. lusid/models/compliance_template_variation.py +12 -2
  103. lusid/models/component_transaction.py +92 -0
  104. lusid/models/composite_dispersion.py +30 -5
  105. lusid/models/compounding.py +4 -4
  106. lusid/models/configuration_recipe.py +10 -19
  107. lusid/models/constant_volatility_surface.py +102 -0
  108. lusid/models/contract_for_difference.py +3 -3
  109. lusid/models/create_derived_property_definition_request.py +3 -3
  110. lusid/models/create_derived_transaction_portfolio_request.py +10 -3
  111. lusid/models/create_property_definition_request.py +12 -5
  112. lusid/models/create_trade_tickets_response.py +87 -0
  113. lusid/models/create_transaction_portfolio_request.py +16 -3
  114. lusid/models/credit_default_swap.py +4 -4
  115. lusid/models/credit_spread_curve_data.py +4 -4
  116. lusid/models/custom_entity_definition.py +8 -2
  117. lusid/models/custom_entity_type.py +8 -2
  118. lusid/models/cut_label_definition.py +7 -1
  119. lusid/models/data_type.py +7 -1
  120. lusid/models/data_type_summary.py +8 -2
  121. lusid/models/date_time_compliance_parameter.py +3 -3
  122. lusid/models/date_time_list_compliance_parameter.py +3 -3
  123. lusid/models/{upsert_reconciliation_run_request.py → day_month.py} +15 -15
  124. lusid/models/decimal_compliance_parameter.py +3 -3
  125. lusid/models/decimal_list_compliance_parameter.py +3 -3
  126. lusid/models/dialect.py +9 -3
  127. lusid/models/diary_entry.py +1 -1
  128. lusid/models/diary_entry_request.py +1 -1
  129. lusid/models/discount_factor_curve_data.py +3 -3
  130. lusid/models/dividend_option_event.py +129 -0
  131. lusid/models/dividend_reinvestment_event.py +124 -0
  132. lusid/models/election_specification.py +73 -0
  133. lusid/models/eligibility_calculation.py +71 -0
  134. lusid/models/empty_model_options.py +3 -3
  135. lusid/models/equity.py +8 -6
  136. lusid/models/equity_curve_by_prices_data.py +3 -3
  137. lusid/models/equity_model_options.py +3 -3
  138. lusid/models/equity_option.py +3 -3
  139. lusid/models/equity_swap.py +4 -4
  140. lusid/models/equity_vol_surface_data.py +3 -3
  141. lusid/models/exchange_traded_option.py +3 -3
  142. lusid/models/exercise_event.py +5 -7
  143. lusid/models/exotic_instrument.py +3 -3
  144. lusid/models/expiry_event.py +91 -0
  145. lusid/models/filter_predicate_compliance_parameter.py +91 -0
  146. lusid/models/filter_step.py +101 -0
  147. lusid/models/fixed_leg.py +3 -3
  148. lusid/models/fixed_schedule.py +4 -9
  149. lusid/models/flexible_loan.py +105 -0
  150. lusid/models/float_schedule.py +20 -12
  151. lusid/models/floating_leg.py +3 -3
  152. lusid/models/flow_convention_name.py +1 -1
  153. lusid/models/flow_conventions.py +1 -1
  154. lusid/models/forward_rate_agreement.py +3 -3
  155. lusid/models/from_recipe.py +81 -0
  156. lusid/models/fund.py +182 -0
  157. lusid/models/fund_properties.py +115 -0
  158. lusid/models/fund_request.py +165 -0
  159. lusid/models/fund_share_class.py +99 -0
  160. lusid/models/funding_leg.py +3 -3
  161. lusid/models/funding_leg_options.py +3 -3
  162. lusid/models/future.py +3 -3
  163. lusid/models/fx_conventions.py +73 -0
  164. lusid/models/fx_forward.py +8 -6
  165. lusid/models/fx_forward_curve_by_quote_reference.py +4 -4
  166. lusid/models/fx_forward_curve_data.py +3 -3
  167. lusid/models/fx_forward_model_options.py +3 -3
  168. lusid/models/fx_forward_pips_curve_data.py +3 -3
  169. lusid/models/fx_forward_settlement_event.py +136 -0
  170. lusid/models/fx_forward_tenor_curve_data.py +4 -4
  171. lusid/models/fx_forward_tenor_pips_curve_data.py +4 -4
  172. lusid/models/fx_linked_notional_schedule.py +108 -0
  173. lusid/models/fx_option.py +3 -3
  174. lusid/models/fx_rate_schedule.py +3 -3
  175. lusid/models/fx_swap.py +4 -4
  176. lusid/models/fx_vol_surface_data.py +3 -3
  177. lusid/models/{reconciliation_run.py → get_recipe_composer_response.py} +15 -15
  178. lusid/models/group_by_selector_compliance_parameter.py +91 -0
  179. lusid/models/group_by_step.py +101 -0
  180. lusid/models/group_filter_predicate_compliance_parameter.py +91 -0
  181. lusid/models/group_filter_step.py +110 -0
  182. lusid/models/group_of_market_data_key_rules.py +79 -0
  183. lusid/models/index_convention.py +1 -1
  184. lusid/models/index_model_options.py +3 -3
  185. lusid/models/inflation_index_conventions.py +2 -2
  186. lusid/models/inflation_leg.py +3 -3
  187. lusid/models/inflation_linked_bond.py +3 -3
  188. lusid/models/inflation_swap.py +4 -4
  189. lusid/models/informational_error_event.py +3 -3
  190. lusid/models/informational_event.py +4 -6
  191. lusid/models/instrument_event.py +13 -5
  192. lusid/models/instrument_event_configuration.py +74 -0
  193. lusid/models/instrument_event_holder.py +12 -3
  194. lusid/models/instrument_event_type.py +8 -0
  195. lusid/models/instrument_leg.py +3 -3
  196. lusid/models/instrument_list_compliance_parameter.py +3 -3
  197. lusid/models/instrument_payment_diary_leg.py +5 -3
  198. lusid/models/instrument_resolution_detail.py +105 -0
  199. lusid/models/instrument_type.py +2 -0
  200. lusid/models/interest_rate_swap.py +4 -4
  201. lusid/models/interest_rate_swaption.py +3 -3
  202. lusid/models/intermediate_compliance_step.py +110 -0
  203. lusid/models/ir_vol_cube_data.py +3 -3
  204. lusid/models/journal_entry_line.py +34 -3
  205. lusid/models/journal_entry_lines_query_parameters.py +1 -1
  206. lusid/models/label_value_set.py +1 -1
  207. lusid/models/leg_definition.py +16 -3
  208. lusid/models/lineage_member.py +87 -0
  209. lusid/models/lock_period_diary_entry_request.py +91 -0
  210. lusid/models/lusid_instrument.py +7 -5
  211. lusid/models/lusid_trade_ticket.py +8 -1
  212. lusid/models/market_context.py +17 -2
  213. lusid/models/market_data_type.py +1 -0
  214. lusid/models/maturity_event.py +91 -0
  215. lusid/models/model_options.py +5 -6
  216. lusid/models/model_options_type.py +0 -1
  217. lusid/models/model_selection.py +3 -3
  218. lusid/models/move_orders_to_different_blocks_request.py +77 -0
  219. lusid/models/moved_order_to_different_block_response.py +85 -0
  220. lusid/models/movement_type.py +2 -0
  221. lusid/models/multi_currency_amounts.py +71 -0
  222. lusid/models/opaque_market_data.py +3 -3
  223. lusid/models/opaque_model_options.py +3 -3
  224. lusid/models/open_event.py +3 -3
  225. lusid/models/optionality_schedule.py +3 -3
  226. lusid/models/order_graph_block.py +4 -2
  227. lusid/models/order_graph_block_order_detail.py +16 -2
  228. lusid/models/output_transaction.py +9 -2
  229. lusid/models/paged_resource_list_of_cleardown_module_response.py +113 -0
  230. lusid/models/{paged_resource_list_of_reconciliation_run_break.py → paged_resource_list_of_cleardown_module_rule.py} +11 -11
  231. lusid/models/{paged_resource_list_of_reconciliation_run.py → paged_resource_list_of_fund.py} +11 -11
  232. lusid/models/paged_resource_list_of_property_definition.py +113 -0
  233. lusid/models/paged_resource_list_of_transaction_template.py +113 -0
  234. lusid/models/paged_resource_list_of_transaction_template_specification.py +113 -0
  235. lusid/models/participation_request.py +3 -9
  236. lusid/models/performance_returns_metric.py +1 -1
  237. lusid/models/period_diary_entries_reopened_response.py +104 -0
  238. lusid/models/place_blocks_request.py +77 -0
  239. lusid/models/portfolio.py +15 -2
  240. lusid/models/portfolio_details.py +15 -2
  241. lusid/models/portfolio_group_id_compliance_parameter.py +3 -3
  242. lusid/models/portfolio_group_id_list_compliance_parameter.py +3 -3
  243. lusid/models/portfolio_holding.py +27 -2
  244. lusid/models/portfolio_id_compliance_parameter.py +3 -3
  245. lusid/models/portfolio_id_list_compliance_parameter.py +3 -3
  246. lusid/models/posting_module_rule.py +29 -4
  247. lusid/models/pricing_model.py +2 -1
  248. lusid/models/property_definition.py +17 -4
  249. lusid/models/property_definition_search_result.py +3 -3
  250. lusid/models/property_domain.py +2 -0
  251. lusid/models/property_key_compliance_parameter.py +3 -3
  252. lusid/models/property_key_list_compliance_parameter.py +3 -3
  253. lusid/models/queryable_key.py +124 -0
  254. lusid/models/raw_vendor_event.py +5 -7
  255. lusid/models/re_open_period_diary_entry_request.py +84 -0
  256. lusid/models/recipe_block.py +87 -0
  257. lusid/models/recipe_composer.py +100 -0
  258. lusid/models/{reconciliation_break_id.py → recipe_value.py} +22 -23
  259. lusid/models/recombine_step.py +101 -0
  260. lusid/models/reference_instrument.py +3 -3
  261. lusid/models/relative_date_offset.py +71 -0
  262. lusid/models/repo.py +3 -3
  263. lusid/models/reset_event.py +4 -6
  264. lusid/models/resource_list_of_block_and_orders.py +113 -0
  265. lusid/models/resource_list_of_get_recipe_composer_response.py +113 -0
  266. lusid/models/resource_list_of_moved_order_to_different_block_response.py +113 -0
  267. lusid/models/resource_list_of_queryable_key.py +113 -0
  268. lusid/models/schedule.py +6 -5
  269. lusid/models/schedule_type.py +1 -0
  270. lusid/models/script_map_reference.py +94 -0
  271. lusid/models/security_election.py +86 -0
  272. lusid/models/side_definition.py +1 -8
  273. lusid/models/sides_definition_request.py +1 -8
  274. lusid/models/simple_cash_flow_loan.py +3 -3
  275. lusid/models/simple_instrument.py +3 -3
  276. lusid/models/step_schedule.py +3 -3
  277. lusid/models/stock_split_event.py +3 -3
  278. lusid/models/string_compliance_parameter.py +3 -3
  279. lusid/models/string_list_compliance_parameter.py +3 -3
  280. lusid/models/template_field.py +77 -0
  281. lusid/models/term_deposit.py +3 -3
  282. lusid/models/total_return_swap.py +16 -16
  283. lusid/models/transaction_configuration_movement_data.py +3 -3
  284. lusid/models/transaction_configuration_movement_data_request.py +3 -3
  285. lusid/models/transaction_currency_and_amount.py +81 -0
  286. lusid/models/transaction_field_map.py +97 -0
  287. lusid/models/transaction_price.py +3 -3
  288. lusid/models/transaction_price_and_type.py +81 -0
  289. lusid/models/transaction_price_type.py +1 -0
  290. lusid/models/transaction_property_map.py +80 -0
  291. lusid/models/transaction_template.py +100 -0
  292. lusid/models/transaction_template_request.py +79 -0
  293. lusid/models/transaction_template_specification.py +99 -0
  294. lusid/models/transaction_type_alias.py +0 -7
  295. lusid/models/transaction_type_calculation.py +1 -1
  296. lusid/models/transition_event.py +3 -3
  297. lusid/models/translation_context.py +75 -0
  298. lusid/models/translation_script.py +9 -3
  299. lusid/models/trial_balance.py +46 -11
  300. lusid/models/trial_balance_query_parameters.py +15 -6
  301. lusid/models/trigger_event.py +3 -3
  302. lusid/models/units_ratio.py +71 -0
  303. lusid/models/{compliance_run_summary.py → upsert_compliance_run_summary_result.py} +8 -8
  304. lusid/models/upsert_dialect_request.py +79 -0
  305. lusid/models/upsert_instrument_event_request.py +12 -3
  306. lusid/models/upsert_quote_request.py +1 -1
  307. lusid/models/upsert_recipe_composer_request.py +73 -0
  308. lusid/models/upsert_recipe_request.py +3 -9
  309. lusid/models/upsert_translation_script_request.py +75 -0
  310. lusid/models/valuation_schedule.py +10 -3
  311. lusid/models/weighted_instrument.py +13 -2
  312. lusid/models/weighted_instrument_in_line_lookup_identifiers.py +89 -0
  313. lusid/models/yield_curve_data.py +3 -3
  314. lusid/rest.py +1 -1
  315. {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.455.dist-info}/METADATA +231 -48
  316. {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.455.dist-info}/RECORD +317 -235
  317. {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.455.dist-info}/WHEEL +1 -1
  318. lusid/extensions/api_client_builder.py +0 -138
  319. lusid/models/configuration_recipe_snippet.py +0 -139
  320. lusid/models/je_lines_query_parameters.py +0 -105
  321. lusid/models/look_up_pricing_model_options.py +0 -93
  322. lusid/models/reconciliation_run_id.py +0 -85
  323. lusid/models/upsert_reconciliation_break_request.py +0 -98
@@ -0,0 +1,113 @@
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
+ from lusid.models.link import Link
24
+ from lusid.models.moved_order_to_different_block_response import MovedOrderToDifferentBlockResponse
25
+
26
+ class ResourceListOfMovedOrderToDifferentBlockResponse(BaseModel):
27
+ """
28
+ ResourceListOfMovedOrderToDifferentBlockResponse
29
+ """
30
+ values: conlist(MovedOrderToDifferentBlockResponse) = Field(...)
31
+ href: Optional[StrictStr] = None
32
+ links: Optional[conlist(Link)] = None
33
+ next_page: Optional[StrictStr] = Field(None, alias="nextPage")
34
+ previous_page: Optional[StrictStr] = Field(None, alias="previousPage")
35
+ __properties = ["values", "href", "links", "nextPage", "previousPage"]
36
+
37
+ class Config:
38
+ """Pydantic configuration"""
39
+ allow_population_by_field_name = True
40
+ validate_assignment = True
41
+
42
+ def to_str(self) -> str:
43
+ """Returns the string representation of the model using alias"""
44
+ return pprint.pformat(self.dict(by_alias=True))
45
+
46
+ def to_json(self) -> str:
47
+ """Returns the JSON representation of the model using alias"""
48
+ return json.dumps(self.to_dict())
49
+
50
+ @classmethod
51
+ def from_json(cls, json_str: str) -> ResourceListOfMovedOrderToDifferentBlockResponse:
52
+ """Create an instance of ResourceListOfMovedOrderToDifferentBlockResponse from a JSON string"""
53
+ return cls.from_dict(json.loads(json_str))
54
+
55
+ def to_dict(self):
56
+ """Returns the dictionary representation of the model using alias"""
57
+ _dict = self.dict(by_alias=True,
58
+ exclude={
59
+ },
60
+ exclude_none=True)
61
+ # override the default output from pydantic by calling `to_dict()` of each item in values (list)
62
+ _items = []
63
+ if self.values:
64
+ for _item in self.values:
65
+ if _item:
66
+ _items.append(_item.to_dict())
67
+ _dict['values'] = _items
68
+ # override the default output from pydantic by calling `to_dict()` of each item in links (list)
69
+ _items = []
70
+ if self.links:
71
+ for _item in self.links:
72
+ if _item:
73
+ _items.append(_item.to_dict())
74
+ _dict['links'] = _items
75
+ # set to None if href (nullable) is None
76
+ # and __fields_set__ contains the field
77
+ if self.href is None and "href" in self.__fields_set__:
78
+ _dict['href'] = None
79
+
80
+ # set to None if links (nullable) is None
81
+ # and __fields_set__ contains the field
82
+ if self.links is None and "links" in self.__fields_set__:
83
+ _dict['links'] = None
84
+
85
+ # set to None if next_page (nullable) is None
86
+ # and __fields_set__ contains the field
87
+ if self.next_page is None and "next_page" in self.__fields_set__:
88
+ _dict['nextPage'] = None
89
+
90
+ # set to None if previous_page (nullable) is None
91
+ # and __fields_set__ contains the field
92
+ if self.previous_page is None and "previous_page" in self.__fields_set__:
93
+ _dict['previousPage'] = None
94
+
95
+ return _dict
96
+
97
+ @classmethod
98
+ def from_dict(cls, obj: dict) -> ResourceListOfMovedOrderToDifferentBlockResponse:
99
+ """Create an instance of ResourceListOfMovedOrderToDifferentBlockResponse from a dict"""
100
+ if obj is None:
101
+ return None
102
+
103
+ if not isinstance(obj, dict):
104
+ return ResourceListOfMovedOrderToDifferentBlockResponse.parse_obj(obj)
105
+
106
+ _obj = ResourceListOfMovedOrderToDifferentBlockResponse.parse_obj({
107
+ "values": [MovedOrderToDifferentBlockResponse.from_dict(_item) for _item in obj.get("values")] if obj.get("values") is not None else None,
108
+ "href": obj.get("href"),
109
+ "links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None,
110
+ "next_page": obj.get("nextPage"),
111
+ "previous_page": obj.get("previousPage")
112
+ })
113
+ return _obj
@@ -0,0 +1,113 @@
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
+ from lusid.models.link import Link
24
+ from lusid.models.queryable_key import QueryableKey
25
+
26
+ class ResourceListOfQueryableKey(BaseModel):
27
+ """
28
+ ResourceListOfQueryableKey
29
+ """
30
+ values: conlist(QueryableKey) = Field(...)
31
+ href: Optional[StrictStr] = None
32
+ links: Optional[conlist(Link)] = None
33
+ next_page: Optional[StrictStr] = Field(None, alias="nextPage")
34
+ previous_page: Optional[StrictStr] = Field(None, alias="previousPage")
35
+ __properties = ["values", "href", "links", "nextPage", "previousPage"]
36
+
37
+ class Config:
38
+ """Pydantic configuration"""
39
+ allow_population_by_field_name = True
40
+ validate_assignment = True
41
+
42
+ def to_str(self) -> str:
43
+ """Returns the string representation of the model using alias"""
44
+ return pprint.pformat(self.dict(by_alias=True))
45
+
46
+ def to_json(self) -> str:
47
+ """Returns the JSON representation of the model using alias"""
48
+ return json.dumps(self.to_dict())
49
+
50
+ @classmethod
51
+ def from_json(cls, json_str: str) -> ResourceListOfQueryableKey:
52
+ """Create an instance of ResourceListOfQueryableKey from a JSON string"""
53
+ return cls.from_dict(json.loads(json_str))
54
+
55
+ def to_dict(self):
56
+ """Returns the dictionary representation of the model using alias"""
57
+ _dict = self.dict(by_alias=True,
58
+ exclude={
59
+ },
60
+ exclude_none=True)
61
+ # override the default output from pydantic by calling `to_dict()` of each item in values (list)
62
+ _items = []
63
+ if self.values:
64
+ for _item in self.values:
65
+ if _item:
66
+ _items.append(_item.to_dict())
67
+ _dict['values'] = _items
68
+ # override the default output from pydantic by calling `to_dict()` of each item in links (list)
69
+ _items = []
70
+ if self.links:
71
+ for _item in self.links:
72
+ if _item:
73
+ _items.append(_item.to_dict())
74
+ _dict['links'] = _items
75
+ # set to None if href (nullable) is None
76
+ # and __fields_set__ contains the field
77
+ if self.href is None and "href" in self.__fields_set__:
78
+ _dict['href'] = None
79
+
80
+ # set to None if links (nullable) is None
81
+ # and __fields_set__ contains the field
82
+ if self.links is None and "links" in self.__fields_set__:
83
+ _dict['links'] = None
84
+
85
+ # set to None if next_page (nullable) is None
86
+ # and __fields_set__ contains the field
87
+ if self.next_page is None and "next_page" in self.__fields_set__:
88
+ _dict['nextPage'] = None
89
+
90
+ # set to None if previous_page (nullable) is None
91
+ # and __fields_set__ contains the field
92
+ if self.previous_page is None and "previous_page" in self.__fields_set__:
93
+ _dict['previousPage'] = None
94
+
95
+ return _dict
96
+
97
+ @classmethod
98
+ def from_dict(cls, obj: dict) -> ResourceListOfQueryableKey:
99
+ """Create an instance of ResourceListOfQueryableKey from a dict"""
100
+ if obj is None:
101
+ return None
102
+
103
+ if not isinstance(obj, dict):
104
+ return ResourceListOfQueryableKey.parse_obj(obj)
105
+
106
+ _obj = ResourceListOfQueryableKey.parse_obj({
107
+ "values": [QueryableKey.from_dict(_item) for _item in obj.get("values")] if obj.get("values") is not None else None,
108
+ "href": obj.get("href"),
109
+ "links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None,
110
+ "next_page": obj.get("nextPage"),
111
+ "previous_page": obj.get("previousPage")
112
+ })
113
+ return _obj
lusid/models/schedule.py CHANGED
@@ -26,14 +26,14 @@ class Schedule(BaseModel):
26
26
  """
27
27
  Base class for representing schedules in LUSID. This base class should not be directly instantiated; each supported ScheduleType has a corresponding inherited class. # noqa: E501
28
28
  """
29
- schedule_type: StrictStr = Field(..., alias="scheduleType", description="The available values are: FixedSchedule, FloatSchedule, OptionalitySchedule, StepSchedule, Exercise, FxRateSchedule, Invalid")
29
+ schedule_type: StrictStr = Field(..., alias="scheduleType", description="The available values are: FixedSchedule, FloatSchedule, OptionalitySchedule, StepSchedule, Exercise, FxRateSchedule, FxLinkedNotionalSchedule, Invalid")
30
30
  __properties = ["scheduleType"]
31
31
 
32
32
  @validator('schedule_type')
33
33
  def schedule_type_validate_enum(cls, value):
34
34
  """Validates the enum"""
35
- if value not in ('FixedSchedule', 'FloatSchedule', 'OptionalitySchedule', 'StepSchedule', 'Exercise', 'FxRateSchedule', 'Invalid'):
36
- raise ValueError("must be one of enum values ('FixedSchedule', 'FloatSchedule', 'OptionalitySchedule', 'StepSchedule', 'Exercise', 'FxRateSchedule', 'Invalid')")
35
+ if value not in ('FixedSchedule', 'FloatSchedule', 'OptionalitySchedule', 'StepSchedule', 'Exercise', 'FxRateSchedule', 'FxLinkedNotionalSchedule', 'Invalid'):
36
+ raise ValueError("must be one of enum values ('FixedSchedule', 'FloatSchedule', 'OptionalitySchedule', 'StepSchedule', 'Exercise', 'FxRateSchedule', 'FxLinkedNotionalSchedule', 'Invalid')")
37
37
  return value
38
38
 
39
39
  class Config:
@@ -48,6 +48,7 @@ class Schedule(BaseModel):
48
48
  __discriminator_value_class_map = {
49
49
  'FixedSchedule': 'FixedSchedule',
50
50
  'FloatSchedule': 'FloatSchedule',
51
+ 'FxLinkedNotionalSchedule': 'FxLinkedNotionalSchedule',
51
52
  'FxRateSchedule': 'FxRateSchedule',
52
53
  'OptionalitySchedule': 'OptionalitySchedule',
53
54
  'StepSchedule': 'StepSchedule'
@@ -71,7 +72,7 @@ class Schedule(BaseModel):
71
72
  return json.dumps(self.to_dict())
72
73
 
73
74
  @classmethod
74
- def from_json(cls, json_str: str) -> Union(FixedSchedule, FloatSchedule, FxRateSchedule, OptionalitySchedule, StepSchedule):
75
+ def from_json(cls, json_str: str) -> Union(FixedSchedule, FloatSchedule, FxLinkedNotionalSchedule, FxRateSchedule, OptionalitySchedule, StepSchedule):
75
76
  """Create an instance of Schedule from a JSON string"""
76
77
  return cls.from_dict(json.loads(json_str))
77
78
 
@@ -84,7 +85,7 @@ class Schedule(BaseModel):
84
85
  return _dict
85
86
 
86
87
  @classmethod
87
- def from_dict(cls, obj: dict) -> Union(FixedSchedule, FloatSchedule, FxRateSchedule, OptionalitySchedule, StepSchedule):
88
+ def from_dict(cls, obj: dict) -> Union(FixedSchedule, FloatSchedule, FxLinkedNotionalSchedule, FxRateSchedule, OptionalitySchedule, StepSchedule):
88
89
  """Create an instance of Schedule from a dict"""
89
90
  # look up the object type based on discriminator mapping
90
91
  object_type = cls.get_discriminator_value(obj)
@@ -35,6 +35,7 @@ class ScheduleType(str, Enum):
35
35
  STEPSCHEDULE = 'StepSchedule'
36
36
  EXERCISE = 'Exercise'
37
37
  FXRATESCHEDULE = 'FxRateSchedule'
38
+ FXLINKEDNOTIONALSCHEDULE = 'FxLinkedNotionalSchedule'
38
39
  INVALID = 'Invalid'
39
40
 
40
41
  @classmethod
@@ -0,0 +1,94 @@
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
22
+ from pydantic import BaseModel, Field, constr, validator
23
+
24
+ class ScriptMapReference(BaseModel):
25
+ """
26
+ Provides information about the location of a script map within the configuration store # noqa: E501
27
+ """
28
+ scope: constr(strict=True, max_length=64, min_length=1) = Field(..., description="The scope of the configuration store entry where the translation map is located.")
29
+ code: constr(strict=True, max_length=64, min_length=1) = Field(..., description="The code of the configuration store entry where the translation map is located.")
30
+ key: constr(strict=True, max_length=256, min_length=1) = Field(..., description="The key of the configuration store entry where the translation map is located.")
31
+ __properties = ["scope", "code", "key"]
32
+
33
+ @validator('scope')
34
+ def scope_validate_regular_expression(cls, value):
35
+ """Validates the regular expression"""
36
+ if not re.match(r"^[a-zA-Z0-9\-_]+$", value):
37
+ raise ValueError(r"must validate the regular expression /^[a-zA-Z0-9\-_]+$/")
38
+ return value
39
+
40
+ @validator('code')
41
+ def code_validate_regular_expression(cls, value):
42
+ """Validates the regular expression"""
43
+ if not re.match(r"^[a-zA-Z0-9\-_]+$", value):
44
+ raise ValueError(r"must validate the regular expression /^[a-zA-Z0-9\-_]+$/")
45
+ return value
46
+
47
+ @validator('key')
48
+ def key_validate_regular_expression(cls, value):
49
+ """Validates the regular expression"""
50
+ if not re.match(r"^[a-zA-Z0-9\-_]+$", value):
51
+ raise ValueError(r"must validate the regular expression /^[a-zA-Z0-9\-_]+$/")
52
+ return value
53
+
54
+ class Config:
55
+ """Pydantic configuration"""
56
+ allow_population_by_field_name = True
57
+ validate_assignment = True
58
+
59
+ def to_str(self) -> str:
60
+ """Returns the string representation of the model using alias"""
61
+ return pprint.pformat(self.dict(by_alias=True))
62
+
63
+ def to_json(self) -> str:
64
+ """Returns the JSON representation of the model using alias"""
65
+ return json.dumps(self.to_dict())
66
+
67
+ @classmethod
68
+ def from_json(cls, json_str: str) -> ScriptMapReference:
69
+ """Create an instance of ScriptMapReference from a JSON string"""
70
+ return cls.from_dict(json.loads(json_str))
71
+
72
+ def to_dict(self):
73
+ """Returns the dictionary representation of the model using alias"""
74
+ _dict = self.dict(by_alias=True,
75
+ exclude={
76
+ },
77
+ exclude_none=True)
78
+ return _dict
79
+
80
+ @classmethod
81
+ def from_dict(cls, obj: dict) -> ScriptMapReference:
82
+ """Create an instance of ScriptMapReference from a dict"""
83
+ if obj is None:
84
+ return None
85
+
86
+ if not isinstance(obj, dict):
87
+ return ScriptMapReference.parse_obj(obj)
88
+
89
+ _obj = ScriptMapReference.parse_obj({
90
+ "scope": obj.get("scope"),
91
+ "code": obj.get("code"),
92
+ "key": obj.get("key")
93
+ })
94
+ return _obj
@@ -0,0 +1,86 @@
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, Union
22
+ from pydantic import BaseModel, Field, StrictBool, StrictFloat, StrictInt, constr
23
+ from lusid.models.units_ratio import UnitsRatio
24
+
25
+ class SecurityElection(BaseModel):
26
+ """
27
+ Security election for Events that result in equity # noqa: E501
28
+ """
29
+ election_key: constr(strict=True, min_length=1) = Field(..., alias="electionKey", description="Unique key associated to this election.")
30
+ is_chosen: Optional[StrictBool] = Field(None, alias="isChosen", description="Is this the election that has been explicitly chosen from multiple options.")
31
+ is_default: Optional[StrictBool] = Field(None, alias="isDefault", description="Is this election automatically applied in the absence of an election having been made. May only be true for one election if multiple are provided.")
32
+ price: Optional[Union[StrictFloat, StrictInt]] = Field(None, description="Price per unit of the security. At least one of UnitsRatio or Price must be provided. Price must non-zero.")
33
+ units_ratio: Optional[UnitsRatio] = Field(None, alias="unitsRatio")
34
+ __properties = ["electionKey", "isChosen", "isDefault", "price", "unitsRatio"]
35
+
36
+ class Config:
37
+ """Pydantic configuration"""
38
+ allow_population_by_field_name = True
39
+ validate_assignment = True
40
+
41
+ def to_str(self) -> str:
42
+ """Returns the string representation of the model using alias"""
43
+ return pprint.pformat(self.dict(by_alias=True))
44
+
45
+ def to_json(self) -> str:
46
+ """Returns the JSON representation of the model using alias"""
47
+ return json.dumps(self.to_dict())
48
+
49
+ @classmethod
50
+ def from_json(cls, json_str: str) -> SecurityElection:
51
+ """Create an instance of SecurityElection from a JSON string"""
52
+ return cls.from_dict(json.loads(json_str))
53
+
54
+ def to_dict(self):
55
+ """Returns the dictionary representation of the model using alias"""
56
+ _dict = self.dict(by_alias=True,
57
+ exclude={
58
+ },
59
+ exclude_none=True)
60
+ # override the default output from pydantic by calling `to_dict()` of units_ratio
61
+ if self.units_ratio:
62
+ _dict['unitsRatio'] = self.units_ratio.to_dict()
63
+ # set to None if price (nullable) is None
64
+ # and __fields_set__ contains the field
65
+ if self.price is None and "price" in self.__fields_set__:
66
+ _dict['price'] = None
67
+
68
+ return _dict
69
+
70
+ @classmethod
71
+ def from_dict(cls, obj: dict) -> SecurityElection:
72
+ """Create an instance of SecurityElection from a dict"""
73
+ if obj is None:
74
+ return None
75
+
76
+ if not isinstance(obj, dict):
77
+ return SecurityElection.parse_obj(obj)
78
+
79
+ _obj = SecurityElection.parse_obj({
80
+ "election_key": obj.get("electionKey"),
81
+ "is_chosen": obj.get("isChosen"),
82
+ "is_default": obj.get("isDefault"),
83
+ "price": obj.get("price"),
84
+ "units_ratio": UnitsRatio.from_dict(obj.get("unitsRatio")) if obj.get("unitsRatio") is not None else None
85
+ })
86
+ 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, conlist, constr, validator
22
+ from pydantic import BaseModel, Field, conlist, constr
23
23
  from lusid.models.link import Link
24
24
 
25
25
  class SideDefinition(BaseModel):
@@ -36,13 +36,6 @@ class SideDefinition(BaseModel):
36
36
  links: Optional[conlist(Link)] = None
37
37
  __properties = ["side", "security", "currency", "rate", "units", "amount", "notionalAmount", "links"]
38
38
 
39
- @validator('side')
40
- def side_validate_regular_expression(cls, value):
41
- """Validates the regular expression"""
42
- if not re.match(r"^[a-zA-Z0-9\-_]+$", value):
43
- raise ValueError(r"must validate the regular expression /^[a-zA-Z0-9\-_]+$/")
44
- return value
45
-
46
39
  class Config:
47
40
  """Pydantic configuration"""
48
41
  allow_population_by_field_name = True
@@ -19,7 +19,7 @@ import json
19
19
 
20
20
 
21
21
  from typing import Any, Dict
22
- from pydantic import BaseModel, Field, constr, validator
22
+ from pydantic import BaseModel, Field, constr
23
23
  from lusid.models.side_definition_request import SideDefinitionRequest
24
24
 
25
25
  class SidesDefinitionRequest(BaseModel):
@@ -30,13 +30,6 @@ class SidesDefinitionRequest(BaseModel):
30
30
  side_request: SideDefinitionRequest = Field(..., alias="sideRequest")
31
31
  __properties = ["side", "sideRequest"]
32
32
 
33
- @validator('side')
34
- def side_validate_regular_expression(cls, value):
35
- """Validates the regular expression"""
36
- if not re.match(r"^[a-zA-Z0-9\-_]+$", value):
37
- raise ValueError(r"must validate the regular expression /^[a-zA-Z0-9\-_]+$/")
38
- return value
39
-
40
33
  class Config:
41
34
  """Pydantic configuration"""
42
35
  allow_population_by_field_name = True
@@ -31,15 +31,15 @@ class SimpleCashFlowLoan(LusidInstrument):
31
31
  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.")
32
32
  dom_ccy: StrictStr = Field(..., alias="domCcy", description="The domestic currency of the instrument.")
33
33
  periods: conlist(LoanPeriod) = Field(..., description="Periods of the underlying loan")
34
- 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")
34
+ 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")
35
35
  additional_properties: Dict[str, Any] = {}
36
36
  __properties = ["instrumentType", "startDate", "maturityDate", "domCcy", "periods"]
37
37
 
38
38
  @validator('instrument_type')
39
39
  def instrument_type_validate_enum(cls, value):
40
40
  """Validates the enum"""
41
- 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'):
42
- 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')")
41
+ 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'):
42
+ 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')")
43
43
  return value
44
44
 
45
45
  class Config:
@@ -31,7 +31,7 @@ class SimpleInstrument(LusidInstrument):
31
31
  asset_class: StrictStr = Field(..., alias="assetClass", description="The available values are: InterestRates, FX, Inflation, Equities, Credit, Commodities, Money, Unknown")
32
32
  fgn_ccys: Optional[conlist(StrictStr)] = Field(None, alias="fgnCcys", description="The set of foreign currencies, if any (optional).")
33
33
  simple_instrument_type: constr(strict=True, min_length=1) = Field(..., alias="simpleInstrumentType", description="The Instrument type of the simple instrument.")
34
- 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")
34
+ 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")
35
35
  additional_properties: Dict[str, Any] = {}
36
36
  __properties = ["instrumentType", "maturityDate", "domCcy", "assetClass", "fgnCcys", "simpleInstrumentType"]
37
37
 
@@ -45,8 +45,8 @@ class SimpleInstrument(LusidInstrument):
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:
@@ -30,15 +30,15 @@ class StepSchedule(Schedule):
30
30
  level_type: constr(strict=True, min_length=1) = Field(..., alias="levelType", description="The type of shift or adjustment that the quantity represents. Supported string (enumeration) values are: [Absolute, AbsoluteShift, Percentage, AbsolutePercentage].")
31
31
  step_schedule_type: constr(strict=True, min_length=1) = Field(..., alias="stepScheduleType", description="The type of step that this schedule is for. Supported string (enumeration) values are: [Coupon, Notional, Spread].")
32
32
  steps: conlist(LevelStep) = Field(..., description="The level steps which are applied.")
33
- schedule_type: StrictStr = Field(..., alias="scheduleType", description="The available values are: FixedSchedule, FloatSchedule, OptionalitySchedule, StepSchedule, Exercise, FxRateSchedule, Invalid")
33
+ schedule_type: StrictStr = Field(..., alias="scheduleType", description="The available values are: FixedSchedule, FloatSchedule, OptionalitySchedule, StepSchedule, Exercise, FxRateSchedule, FxLinkedNotionalSchedule, Invalid")
34
34
  additional_properties: Dict[str, Any] = {}
35
35
  __properties = ["scheduleType", "levelType", "stepScheduleType", "steps"]
36
36
 
37
37
  @validator('schedule_type')
38
38
  def schedule_type_validate_enum(cls, value):
39
39
  """Validates the enum"""
40
- if value not in ('FixedSchedule', 'FloatSchedule', 'OptionalitySchedule', 'StepSchedule', 'Exercise', 'FxRateSchedule', 'Invalid'):
41
- raise ValueError("must be one of enum values ('FixedSchedule', 'FloatSchedule', 'OptionalitySchedule', 'StepSchedule', 'Exercise', 'FxRateSchedule', 'Invalid')")
40
+ if value not in ('FixedSchedule', 'FloatSchedule', 'OptionalitySchedule', 'StepSchedule', 'Exercise', 'FxRateSchedule', 'FxLinkedNotionalSchedule', 'Invalid'):
41
+ raise ValueError("must be one of enum values ('FixedSchedule', 'FloatSchedule', 'OptionalitySchedule', 'StepSchedule', 'Exercise', 'FxRateSchedule', 'FxLinkedNotionalSchedule', 'Invalid')")
42
42
  return value
43
43
 
44
44
  class Config:
@@ -29,15 +29,15 @@ class StockSplitEvent(InstrumentEvent):
29
29
  equity_split_ratio: Union[StrictFloat, StrictInt] = Field(..., alias="equitySplitRatio", description="This number describes the rate at which the company will be dividing their current shares outstanding. It is displayed as new shares per old.")
30
30
  payment_date: datetime = Field(..., alias="paymentDate", description="Date on which the stock-split takes effect.")
31
31
  record_date: datetime = Field(..., alias="recordDate", description="Date you have to be the holder of record in order to participate in the tender.")
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", "equitySplitRatio", "paymentDate", "recordDate"]
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:
@@ -27,15 +27,15 @@ class StringComplianceParameter(ComplianceParameter):
27
27
  StringComplianceParameter
28
28
  """
29
29
  value: constr(strict=True, min_length=1) = Field(...)
30
- 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")
30
+ 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")
31
31
  additional_properties: Dict[str, Any] = {}
32
32
  __properties = ["complianceParameterType", "value"]
33
33
 
34
34
  @validator('compliance_parameter_type')
35
35
  def compliance_parameter_type_validate_enum(cls, value):
36
36
  """Validates the enum"""
37
- if value not in ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter'):
38
- 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')")
37
+ if value not in ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter'):
38
+ 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')")
39
39
  return value
40
40
 
41
41
  class Config: