lusid-sdk 2.0.50b0__py3-none-any.whl → 2.0.432__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 (318) 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 +122 -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/paged_resource_list_of_cleardown_module_response.py +113 -0
  227. lusid/models/{paged_resource_list_of_reconciliation_run_break.py → paged_resource_list_of_cleardown_module_rule.py} +11 -11
  228. lusid/models/{paged_resource_list_of_reconciliation_run.py → paged_resource_list_of_fund.py} +11 -11
  229. lusid/models/paged_resource_list_of_property_definition.py +113 -0
  230. lusid/models/paged_resource_list_of_transaction_template.py +113 -0
  231. lusid/models/paged_resource_list_of_transaction_template_specification.py +113 -0
  232. lusid/models/participation_request.py +3 -9
  233. lusid/models/performance_returns_metric.py +1 -1
  234. lusid/models/period_diary_entries_reopened_response.py +104 -0
  235. lusid/models/place_blocks_request.py +77 -0
  236. lusid/models/portfolio.py +15 -2
  237. lusid/models/portfolio_details.py +15 -2
  238. lusid/models/portfolio_group_id_compliance_parameter.py +3 -3
  239. lusid/models/portfolio_group_id_list_compliance_parameter.py +3 -3
  240. lusid/models/portfolio_holding.py +27 -2
  241. lusid/models/portfolio_id_compliance_parameter.py +3 -3
  242. lusid/models/portfolio_id_list_compliance_parameter.py +3 -3
  243. lusid/models/posting_module_rule.py +29 -4
  244. lusid/models/pricing_model.py +2 -1
  245. lusid/models/property_definition.py +17 -4
  246. lusid/models/property_definition_search_result.py +3 -3
  247. lusid/models/property_domain.py +2 -0
  248. lusid/models/property_key_compliance_parameter.py +3 -3
  249. lusid/models/property_key_list_compliance_parameter.py +3 -3
  250. lusid/models/raw_vendor_event.py +5 -7
  251. lusid/models/re_open_period_diary_entry_request.py +84 -0
  252. lusid/models/recipe_block.py +87 -0
  253. lusid/models/recipe_composer.py +100 -0
  254. lusid/models/{reconciliation_break_id.py → recipe_value.py} +22 -23
  255. lusid/models/recombine_step.py +101 -0
  256. lusid/models/reference_instrument.py +3 -3
  257. lusid/models/relative_date_offset.py +71 -0
  258. lusid/models/repo.py +3 -3
  259. lusid/models/reset_event.py +4 -6
  260. lusid/models/resource_list_of_block_and_orders.py +113 -0
  261. lusid/models/resource_list_of_get_recipe_composer_response.py +113 -0
  262. lusid/models/resource_list_of_moved_order_to_different_block_response.py +113 -0
  263. lusid/models/schedule.py +6 -5
  264. lusid/models/schedule_type.py +1 -0
  265. lusid/models/script_map_reference.py +94 -0
  266. lusid/models/security_election.py +86 -0
  267. lusid/models/side_definition.py +1 -8
  268. lusid/models/sides_definition_request.py +1 -8
  269. lusid/models/simple_cash_flow_loan.py +3 -3
  270. lusid/models/simple_instrument.py +3 -3
  271. lusid/models/step_schedule.py +3 -3
  272. lusid/models/stock_split_event.py +3 -3
  273. lusid/models/string_compliance_parameter.py +3 -3
  274. lusid/models/string_list_compliance_parameter.py +3 -3
  275. lusid/models/template_field.py +77 -0
  276. lusid/models/term_deposit.py +3 -3
  277. lusid/models/total_return_swap.py +16 -16
  278. lusid/models/transaction_configuration_movement_data.py +3 -3
  279. lusid/models/transaction_configuration_movement_data_request.py +3 -3
  280. lusid/models/transaction_currency_and_amount.py +81 -0
  281. lusid/models/transaction_field_map.py +97 -0
  282. lusid/models/transaction_price.py +3 -3
  283. lusid/models/transaction_price_and_type.py +81 -0
  284. lusid/models/transaction_price_type.py +1 -0
  285. lusid/models/transaction_property_map.py +80 -0
  286. lusid/models/transaction_template.py +100 -0
  287. lusid/models/transaction_template_request.py +79 -0
  288. lusid/models/transaction_template_specification.py +99 -0
  289. lusid/models/transaction_type_alias.py +0 -7
  290. lusid/models/transaction_type_calculation.py +1 -1
  291. lusid/models/transition_event.py +3 -3
  292. lusid/models/translation_context.py +75 -0
  293. lusid/models/translation_script.py +9 -3
  294. lusid/models/trial_balance.py +46 -11
  295. lusid/models/trial_balance_query_parameters.py +15 -6
  296. lusid/models/trigger_event.py +3 -3
  297. lusid/models/units_ratio.py +71 -0
  298. lusid/models/{compliance_run_summary.py → upsert_compliance_run_summary_result.py} +8 -8
  299. lusid/models/upsert_dialect_request.py +79 -0
  300. lusid/models/upsert_instrument_event_request.py +12 -3
  301. lusid/models/upsert_quote_request.py +1 -1
  302. lusid/models/upsert_recipe_composer_request.py +73 -0
  303. lusid/models/upsert_recipe_request.py +3 -9
  304. lusid/models/upsert_translation_script_request.py +75 -0
  305. lusid/models/valuation_schedule.py +10 -3
  306. lusid/models/weighted_instrument.py +13 -2
  307. lusid/models/weighted_instrument_in_line_lookup_identifiers.py +89 -0
  308. lusid/models/yield_curve_data.py +3 -3
  309. lusid/rest.py +1 -1
  310. {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.432.dist-info}/METADATA +227 -48
  311. {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.432.dist-info}/RECORD +312 -234
  312. {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.432.dist-info}/WHEEL +1 -1
  313. lusid/extensions/api_client_builder.py +0 -138
  314. lusid/models/configuration_recipe_snippet.py +0 -139
  315. lusid/models/je_lines_query_parameters.py +0 -105
  316. lusid/models/look_up_pricing_model_options.py +0 -93
  317. lusid/models/reconciliation_run_id.py +0 -85
  318. lusid/models/upsert_reconciliation_break_request.py +0 -98
@@ -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")
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'):
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:
@@ -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:
@@ -28,15 +28,15 @@ class StringListComplianceParameter(ComplianceParameter):
28
28
  StringListComplianceParameter
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:
@@ -0,0 +1,77 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict, List
22
+ from pydantic import BaseModel, Field, StrictStr, conlist, constr
23
+
24
+ class TemplateField(BaseModel):
25
+ """
26
+ TemplateField
27
+ """
28
+ field_name: constr(strict=True, min_length=1) = Field(..., alias="fieldName")
29
+ specificity: constr(strict=True, min_length=1) = Field(...)
30
+ description: constr(strict=True, min_length=1) = Field(...)
31
+ type: constr(strict=True, min_length=1) = Field(...)
32
+ usage: conlist(StrictStr) = Field(...)
33
+ __properties = ["fieldName", "specificity", "description", "type", "usage"]
34
+
35
+ class Config:
36
+ """Pydantic configuration"""
37
+ allow_population_by_field_name = True
38
+ validate_assignment = True
39
+
40
+ def to_str(self) -> str:
41
+ """Returns the string representation of the model using alias"""
42
+ return pprint.pformat(self.dict(by_alias=True))
43
+
44
+ def to_json(self) -> str:
45
+ """Returns the JSON representation of the model using alias"""
46
+ return json.dumps(self.to_dict())
47
+
48
+ @classmethod
49
+ def from_json(cls, json_str: str) -> TemplateField:
50
+ """Create an instance of TemplateField from a JSON string"""
51
+ return cls.from_dict(json.loads(json_str))
52
+
53
+ def to_dict(self):
54
+ """Returns the dictionary representation of the model using alias"""
55
+ _dict = self.dict(by_alias=True,
56
+ exclude={
57
+ },
58
+ exclude_none=True)
59
+ return _dict
60
+
61
+ @classmethod
62
+ def from_dict(cls, obj: dict) -> TemplateField:
63
+ """Create an instance of TemplateField from a dict"""
64
+ if obj is None:
65
+ return None
66
+
67
+ if not isinstance(obj, dict):
68
+ return TemplateField.parse_obj(obj)
69
+
70
+ _obj = TemplateField.parse_obj({
71
+ "field_name": obj.get("fieldName"),
72
+ "specificity": obj.get("specificity"),
73
+ "description": obj.get("description"),
74
+ "type": obj.get("type"),
75
+ "usage": obj.get("usage")
76
+ })
77
+ return _obj
@@ -33,15 +33,15 @@ class TermDeposit(LusidInstrument):
33
33
  flow_convention: FlowConventions = Field(..., alias="flowConvention")
34
34
  rate: Union[StrictFloat, StrictInt] = Field(..., description="The fixed rate for the term deposit. Specified as a decimal, e.g 0.03 is meant to be 3% interest")
35
35
  dom_ccy: Optional[StrictStr] = Field(None, alias="domCcy", description="The domestic currency of the instrument. This should be the same as the Currency set on the FlowConventions. You do not need to populate this field for Term Deposits in LUSID as all functionality is driven by the Currency set on the FlowConventions. LUSID will not store values saved on this field.")
36
- 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")
36
+ 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")
37
37
  additional_properties: Dict[str, Any] = {}
38
38
  __properties = ["instrumentType", "startDate", "maturityDate", "contractSize", "flowConvention", "rate", "domCcy"]
39
39
 
40
40
  @validator('instrument_type')
41
41
  def instrument_type_validate_enum(cls, value):
42
42
  """Validates the enum"""
43
- 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'):
44
- 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')")
43
+ 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'):
44
+ 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')")
45
45
  return value
46
46
 
47
47
  class Config:
@@ -20,27 +20,27 @@ import json
20
20
  from datetime import datetime
21
21
  from typing import Any, Dict
22
22
  from pydantic import Field, StrictStr, validator
23
+ from lusid.models.asset_leg import AssetLeg
23
24
  from lusid.models.instrument_leg import InstrumentLeg
24
25
  from lusid.models.lusid_instrument import LusidInstrument
25
- from lusid.models.underlying_leg import UnderlyingLeg
26
26
 
27
27
  class TotalReturnSwap(LusidInstrument):
28
28
  """
29
- A swap in which one party makes payments based on leg rates (fixed or floating) while the other party makes payments based on the return of an underlying instrument. The underlying instrument can be provided as an inline economic definition or as a reference instrument pointing to an already upserted instrument. A reference instrument in this case would consist of instrument scope, instrument id and instrument id type (ISIN, LUID etc.) # noqa: E501
29
+ A swap in which one party makes payments based on leg rates (fixed or floating) while the other party makes payments based on the return of an underlying instrument. The underlying instrument can be provided as an inline economic definition or as a reference instrument pointing to an already upserted instrument. A reference instrument in this case would consist of instrument scope, instrument id and instrument id type (ISIN, LUID etc.). 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 | AssetLeg | Cash flows relating to the returns generated by an underlying bond. | | 2 | FundingLeg | The funding leg of the swap. | # 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
- payment_leg: InstrumentLeg = Field(..., alias="paymentLeg")
34
- underlying_leg: UnderlyingLeg = Field(..., alias="underlyingLeg")
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")
33
+ asset_leg: AssetLeg = Field(..., alias="assetLeg")
34
+ funding_leg: InstrumentLeg = Field(..., alias="fundingLeg")
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
- __properties = ["instrumentType", "startDate", "maturityDate", "paymentLeg", "underlyingLeg"]
37
+ __properties = ["instrumentType", "startDate", "maturityDate", "assetLeg", "fundingLeg"]
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:
@@ -68,12 +68,12 @@ class TotalReturnSwap(LusidInstrument):
68
68
  "additional_properties"
69
69
  },
70
70
  exclude_none=True)
71
- # override the default output from pydantic by calling `to_dict()` of payment_leg
72
- if self.payment_leg:
73
- _dict['paymentLeg'] = self.payment_leg.to_dict()
74
- # override the default output from pydantic by calling `to_dict()` of underlying_leg
75
- if self.underlying_leg:
76
- _dict['underlyingLeg'] = self.underlying_leg.to_dict()
71
+ # override the default output from pydantic by calling `to_dict()` of asset_leg
72
+ if self.asset_leg:
73
+ _dict['assetLeg'] = self.asset_leg.to_dict()
74
+ # override the default output from pydantic by calling `to_dict()` of funding_leg
75
+ if self.funding_leg:
76
+ _dict['fundingLeg'] = self.funding_leg.to_dict()
77
77
  # puts key-value pairs in additional_properties in the top level
78
78
  if self.additional_properties is not None:
79
79
  for _key, _value in self.additional_properties.items():
@@ -94,8 +94,8 @@ class TotalReturnSwap(LusidInstrument):
94
94
  "instrument_type": obj.get("instrumentType"),
95
95
  "start_date": obj.get("startDate"),
96
96
  "maturity_date": obj.get("maturityDate"),
97
- "payment_leg": InstrumentLeg.from_dict(obj.get("paymentLeg")) if obj.get("paymentLeg") is not None else None,
98
- "underlying_leg": UnderlyingLeg.from_dict(obj.get("underlyingLeg")) if obj.get("underlyingLeg") is not None else None
97
+ "asset_leg": AssetLeg.from_dict(obj.get("assetLeg")) if obj.get("assetLeg") is not None else None,
98
+ "funding_leg": InstrumentLeg.from_dict(obj.get("fundingLeg")) if obj.get("fundingLeg") is not None else None
99
99
  })
100
100
  # store additional fields in additional_properties
101
101
  for _key in obj.keys():
@@ -27,7 +27,7 @@ class TransactionConfigurationMovementData(BaseModel):
27
27
  """
28
28
  TransactionConfigurationMovementData
29
29
  """
30
- movement_types: StrictStr = Field(..., alias="movementTypes", description=". The available values are: Settlement, Traded, StockMovement, FutureCash, Commitment, Receivable, CashSettlement, CashForward, CashCommitment, CashReceivable, Accrual, CashAccrual, ForwardFx, CashFxForward, UnsettledCashTypes, Carry, CarryAsPnl, VariationMargin")
30
+ movement_types: StrictStr = Field(..., alias="movementTypes", description=". The available values are: Settlement, Traded, StockMovement, FutureCash, Commitment, Receivable, CashSettlement, CashForward, CashCommitment, CashReceivable, Accrual, CashAccrual, ForwardFx, CashFxForward, UnsettledCashTypes, Carry, CarryAsPnl, VariationMargin, Capital, Fee")
31
31
  side: constr(strict=True, min_length=1) = Field(..., description="The Side determines which of the fields from our transaction are used to generate the Movement. Side1 means the 'security' side of the transaction, ie the Instrument and Units; Side2 means the 'cash' side, ie the Total Consideration")
32
32
  direction: StrictInt = Field(..., description=" A multiplier to apply to Transaction amounts; the values are -1 to indicate to reverse the signs and 1 to indicate to use the signed values from the Transaction directly. For a typical Transaction with unsigned values, 1 means increase, -1 means decrease")
33
33
  properties: Optional[Dict[str, PerpetualProperty]] = Field(None, description="The properties associated with the underlying Movement")
@@ -39,8 +39,8 @@ class TransactionConfigurationMovementData(BaseModel):
39
39
  @validator('movement_types')
40
40
  def movement_types_validate_enum(cls, value):
41
41
  """Validates the enum"""
42
- if value not in ('Settlement', 'Traded', 'StockMovement', 'FutureCash', 'Commitment', 'Receivable', 'CashSettlement', 'CashForward', 'CashCommitment', 'CashReceivable', 'Accrual', 'CashAccrual', 'ForwardFx', 'CashFxForward', 'UnsettledCashTypes', 'Carry', 'CarryAsPnl', 'VariationMargin'):
43
- raise ValueError("must be one of enum values ('Settlement', 'Traded', 'StockMovement', 'FutureCash', 'Commitment', 'Receivable', 'CashSettlement', 'CashForward', 'CashCommitment', 'CashReceivable', 'Accrual', 'CashAccrual', 'ForwardFx', 'CashFxForward', 'UnsettledCashTypes', 'Carry', 'CarryAsPnl', 'VariationMargin')")
42
+ if value not in ('Settlement', 'Traded', 'StockMovement', 'FutureCash', 'Commitment', 'Receivable', 'CashSettlement', 'CashForward', 'CashCommitment', 'CashReceivable', 'Accrual', 'CashAccrual', 'ForwardFx', 'CashFxForward', 'UnsettledCashTypes', 'Carry', 'CarryAsPnl', 'VariationMargin', 'Capital', 'Fee'):
43
+ raise ValueError("must be one of enum values ('Settlement', 'Traded', 'StockMovement', 'FutureCash', 'Commitment', 'Receivable', 'CashSettlement', 'CashForward', 'CashCommitment', 'CashReceivable', 'Accrual', 'CashAccrual', 'ForwardFx', 'CashFxForward', 'UnsettledCashTypes', 'Carry', 'CarryAsPnl', 'VariationMargin', 'Capital', 'Fee')")
44
44
  return value
45
45
 
46
46
  class Config:
@@ -27,7 +27,7 @@ class TransactionConfigurationMovementDataRequest(BaseModel):
27
27
  """
28
28
  TransactionConfigurationMovementDataRequest
29
29
  """
30
- movement_types: StrictStr = Field(..., alias="movementTypes", description=". The available values are: Settlement, Traded, StockMovement, FutureCash, Commitment, Receivable, CashSettlement, CashForward, CashCommitment, CashReceivable, Accrual, CashAccrual, ForwardFx, CashFxForward, UnsettledCashTypes, Carry, CarryAsPnl, VariationMargin")
30
+ movement_types: StrictStr = Field(..., alias="movementTypes", description=". The available values are: Settlement, Traded, StockMovement, FutureCash, Commitment, Receivable, CashSettlement, CashForward, CashCommitment, CashReceivable, Accrual, CashAccrual, ForwardFx, CashFxForward, UnsettledCashTypes, Carry, CarryAsPnl, VariationMargin, Capital, Fee")
31
31
  side: constr(strict=True, min_length=1) = Field(..., description="The movement side")
32
32
  direction: StrictInt = Field(..., description="The movement direction")
33
33
  properties: Optional[Dict[str, PerpetualProperty]] = Field(None, description="The properties associated with the underlying Movement.")
@@ -39,8 +39,8 @@ class TransactionConfigurationMovementDataRequest(BaseModel):
39
39
  @validator('movement_types')
40
40
  def movement_types_validate_enum(cls, value):
41
41
  """Validates the enum"""
42
- if value not in ('Settlement', 'Traded', 'StockMovement', 'FutureCash', 'Commitment', 'Receivable', 'CashSettlement', 'CashForward', 'CashCommitment', 'CashReceivable', 'Accrual', 'CashAccrual', 'ForwardFx', 'CashFxForward', 'UnsettledCashTypes', 'Carry', 'CarryAsPnl', 'VariationMargin'):
43
- raise ValueError("must be one of enum values ('Settlement', 'Traded', 'StockMovement', 'FutureCash', 'Commitment', 'Receivable', 'CashSettlement', 'CashForward', 'CashCommitment', 'CashReceivable', 'Accrual', 'CashAccrual', 'ForwardFx', 'CashFxForward', 'UnsettledCashTypes', 'Carry', 'CarryAsPnl', 'VariationMargin')")
42
+ if value not in ('Settlement', 'Traded', 'StockMovement', 'FutureCash', 'Commitment', 'Receivable', 'CashSettlement', 'CashForward', 'CashCommitment', 'CashReceivable', 'Accrual', 'CashAccrual', 'ForwardFx', 'CashFxForward', 'UnsettledCashTypes', 'Carry', 'CarryAsPnl', 'VariationMargin', 'Capital', 'Fee'):
43
+ raise ValueError("must be one of enum values ('Settlement', 'Traded', 'StockMovement', 'FutureCash', 'Commitment', 'Receivable', 'CashSettlement', 'CashForward', 'CashCommitment', 'CashReceivable', 'Accrual', 'CashAccrual', 'ForwardFx', 'CashFxForward', 'UnsettledCashTypes', 'Carry', 'CarryAsPnl', 'VariationMargin', 'Capital', 'Fee')")
44
44
  return value
45
45
 
46
46
  class Config:
@@ -0,0 +1,81 @@
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, constr
23
+
24
+ class TransactionCurrencyAndAmount(BaseModel):
25
+ """
26
+ TransactionCurrencyAndAmount
27
+ """
28
+ currency: Optional[constr(strict=True, max_length=1024, min_length=0)] = None
29
+ amount: Optional[constr(strict=True, max_length=1024, min_length=0)] = None
30
+ __properties = ["currency", "amount"]
31
+
32
+ class Config:
33
+ """Pydantic configuration"""
34
+ allow_population_by_field_name = True
35
+ validate_assignment = True
36
+
37
+ def to_str(self) -> str:
38
+ """Returns the string representation of the model using alias"""
39
+ return pprint.pformat(self.dict(by_alias=True))
40
+
41
+ def to_json(self) -> str:
42
+ """Returns the JSON representation of the model using alias"""
43
+ return json.dumps(self.to_dict())
44
+
45
+ @classmethod
46
+ def from_json(cls, json_str: str) -> TransactionCurrencyAndAmount:
47
+ """Create an instance of TransactionCurrencyAndAmount from a JSON string"""
48
+ return cls.from_dict(json.loads(json_str))
49
+
50
+ def to_dict(self):
51
+ """Returns the dictionary representation of the model using alias"""
52
+ _dict = self.dict(by_alias=True,
53
+ exclude={
54
+ },
55
+ exclude_none=True)
56
+ # set to None if currency (nullable) is None
57
+ # and __fields_set__ contains the field
58
+ if self.currency is None and "currency" in self.__fields_set__:
59
+ _dict['currency'] = None
60
+
61
+ # set to None if amount (nullable) is None
62
+ # and __fields_set__ contains the field
63
+ if self.amount is None and "amount" in self.__fields_set__:
64
+ _dict['amount'] = None
65
+
66
+ return _dict
67
+
68
+ @classmethod
69
+ def from_dict(cls, obj: dict) -> TransactionCurrencyAndAmount:
70
+ """Create an instance of TransactionCurrencyAndAmount from a dict"""
71
+ if obj is None:
72
+ return None
73
+
74
+ if not isinstance(obj, dict):
75
+ return TransactionCurrencyAndAmount.parse_obj(obj)
76
+
77
+ _obj = TransactionCurrencyAndAmount.parse_obj({
78
+ "currency": obj.get("currency"),
79
+ "amount": obj.get("amount")
80
+ })
81
+ return _obj