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

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

Potentially problematic release.


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

Files changed (332) hide show
  1. lusid/__init__.py +1117 -14
  2. lusid/api/__init__.py +69 -0
  3. lusid/api/abor_api.py +513 -179
  4. lusid/api/abor_configuration_api.py +25 -24
  5. lusid/api/allocations_api.py +12 -20
  6. lusid/api/blocks_api.py +6 -6
  7. lusid/api/calendars_api.py +16 -24
  8. lusid/api/chart_of_accounts_api.py +1745 -441
  9. lusid/api/compliance_api.py +71 -62
  10. lusid/api/configuration_recipe_api.py +1198 -56
  11. lusid/api/corporate_action_sources_api.py +8 -8
  12. lusid/api/custom_entities_api.py +6 -6
  13. lusid/api/cut_label_definitions_api.py +9 -17
  14. lusid/api/data_types_api.py +16 -32
  15. lusid/api/executions_api.py +6 -6
  16. lusid/api/funds_api.py +1119 -0
  17. lusid/api/instrument_event_types_api.py +1287 -0
  18. lusid/api/instruments_api.py +12 -20
  19. lusid/api/legacy_compliance_api.py +12 -12
  20. lusid/api/legal_entities_api.py +12 -12
  21. lusid/api/order_graph_api.py +12 -12
  22. lusid/api/order_instructions_api.py +6 -6
  23. lusid/api/order_management_api.py +495 -14
  24. lusid/api/orders_api.py +16 -24
  25. lusid/api/packages_api.py +6 -6
  26. lusid/api/persons_api.py +16 -24
  27. lusid/api/placements_api.py +12 -12
  28. lusid/api/portfolio_groups_api.py +6 -6
  29. lusid/api/portfolios_api.py +23 -39
  30. lusid/api/property_definitions_api.py +205 -0
  31. lusid/api/queryable_keys_api.py +211 -0
  32. lusid/api/quotes_api.py +20 -36
  33. lusid/api/reconciliations_api.py +410 -1978
  34. lusid/api/schemas_api.py +7 -15
  35. lusid/api/scopes_api.py +151 -0
  36. lusid/api/scripted_translation_api.py +30 -28
  37. lusid/api/staging_rule_set_api.py +885 -0
  38. lusid/api/transaction_configuration_api.py +22 -22
  39. lusid/api/transaction_portfolios_api.py +282 -577
  40. lusid/api_client.py +5 -3
  41. lusid/configuration.py +1 -1
  42. lusid/extensions/__init__.py +10 -7
  43. lusid/extensions/api_client.py +3 -1
  44. lusid/extensions/api_client_factory.py +156 -45
  45. lusid/extensions/api_configuration.py +124 -15
  46. lusid/extensions/configuration_loaders.py +2 -4
  47. lusid/extensions/proxy_config.py +8 -5
  48. lusid/extensions/socket_keep_alive.py +14 -15
  49. lusid/extensions/tcp_keep_alive_connector.py +93 -46
  50. lusid/models/__init__.py +1028 -13
  51. lusid/models/abor.py +9 -2
  52. lusid/models/abor_configuration.py +8 -8
  53. lusid/models/abor_configuration_request.py +9 -9
  54. lusid/models/abor_request.py +1 -1
  55. lusid/models/account.py +6 -1
  56. lusid/models/accumulation_event.py +104 -0
  57. lusid/models/address_key_compliance_parameter.py +5 -12
  58. lusid/models/address_key_list_compliance_parameter.py +3 -3
  59. lusid/models/address_key_option_definition.py +3 -1
  60. lusid/models/amortisation_event.py +4 -6
  61. lusid/models/{underlying_leg.py → asset_leg.py} +15 -15
  62. lusid/models/basket.py +3 -3
  63. lusid/models/block_and_order_id_request.py +78 -0
  64. lusid/models/block_and_orders.py +83 -0
  65. lusid/models/block_and_orders_create_request.py +77 -0
  66. lusid/models/block_and_orders_request.py +134 -0
  67. lusid/models/blocked_order_request.py +130 -0
  68. lusid/models/bond.py +13 -6
  69. lusid/models/bond_coupon_event.py +97 -0
  70. lusid/models/bond_default_event.py +8 -18
  71. lusid/models/bond_principal_event.py +97 -0
  72. lusid/models/book_transactions_request.py +97 -0
  73. lusid/models/bool_compliance_parameter.py +3 -3
  74. lusid/models/bool_list_compliance_parameter.py +3 -3
  75. lusid/models/branch_step.py +101 -0
  76. lusid/models/cap_floor.py +3 -3
  77. lusid/models/cash_dividend_event.py +32 -10
  78. lusid/models/cash_election.py +91 -0
  79. lusid/models/cash_flow_event.py +5 -7
  80. lusid/models/cash_perpetual.py +3 -3
  81. lusid/models/cds_flow_conventions.py +1 -1
  82. lusid/models/cds_index.py +4 -4
  83. lusid/models/check_step.py +110 -0
  84. lusid/models/cleardown_module_details.py +95 -0
  85. lusid/models/cleardown_module_request.py +117 -0
  86. lusid/models/cleardown_module_response.py +139 -0
  87. lusid/models/cleardown_module_rule.py +94 -0
  88. lusid/models/{reconciliation_run_break.py → cleardown_module_rules_updated_response.py} +30 -36
  89. lusid/models/close_event.py +3 -3
  90. lusid/models/close_period_diary_entry_request.py +149 -0
  91. lusid/models/complete_portfolio.py +8 -1
  92. lusid/models/complex_bond.py +4 -4
  93. lusid/models/complex_market_data.py +6 -5
  94. lusid/models/compliance_parameter.py +8 -5
  95. lusid/models/compliance_parameter_type.py +3 -0
  96. lusid/models/compliance_rule_breakdown.py +16 -8
  97. lusid/models/compliance_rule_breakdown_request.py +12 -4
  98. lusid/models/compliance_rule_result_v2.py +85 -0
  99. lusid/models/compliance_step.py +99 -0
  100. lusid/models/compliance_step_type.py +42 -0
  101. lusid/models/compliance_summary_rule_result.py +12 -15
  102. lusid/models/compliance_summary_rule_result_request.py +12 -15
  103. lusid/models/compliance_template_variation.py +12 -2
  104. lusid/models/component_transaction.py +92 -0
  105. lusid/models/composite_dispersion.py +30 -5
  106. lusid/models/compounding.py +4 -4
  107. lusid/models/configuration_recipe.py +10 -19
  108. lusid/models/constant_volatility_surface.py +102 -0
  109. lusid/models/contract_for_difference.py +3 -3
  110. lusid/models/create_derived_property_definition_request.py +3 -3
  111. lusid/models/create_derived_transaction_portfolio_request.py +10 -3
  112. lusid/models/create_property_definition_request.py +12 -5
  113. lusid/models/create_staging_rule_set_request.py +91 -0
  114. lusid/models/create_trade_tickets_response.py +87 -0
  115. lusid/models/create_transaction_portfolio_request.py +16 -3
  116. lusid/models/credit_default_swap.py +4 -4
  117. lusid/models/credit_spread_curve_data.py +4 -4
  118. lusid/models/custom_entity_definition.py +8 -2
  119. lusid/models/custom_entity_type.py +8 -2
  120. lusid/models/cut_label_definition.py +7 -1
  121. lusid/models/data_type.py +7 -1
  122. lusid/models/data_type_summary.py +8 -2
  123. lusid/models/date_time_compliance_parameter.py +3 -3
  124. lusid/models/date_time_list_compliance_parameter.py +3 -3
  125. lusid/models/{upsert_reconciliation_run_request.py → day_month.py} +15 -15
  126. lusid/models/decimal_compliance_parameter.py +3 -3
  127. lusid/models/decimal_list_compliance_parameter.py +3 -3
  128. lusid/models/dialect.py +9 -3
  129. lusid/models/diary_entry.py +1 -1
  130. lusid/models/diary_entry_request.py +1 -1
  131. lusid/models/discount_factor_curve_data.py +3 -3
  132. lusid/models/dividend_option_event.py +129 -0
  133. lusid/models/dividend_reinvestment_event.py +124 -0
  134. lusid/models/election_specification.py +73 -0
  135. lusid/models/eligibility_calculation.py +71 -0
  136. lusid/models/empty_model_options.py +3 -3
  137. lusid/models/equity.py +8 -6
  138. lusid/models/equity_curve_by_prices_data.py +3 -3
  139. lusid/models/equity_model_options.py +3 -3
  140. lusid/models/equity_option.py +3 -3
  141. lusid/models/equity_swap.py +4 -4
  142. lusid/models/equity_vol_surface_data.py +3 -3
  143. lusid/models/exchange_traded_option.py +3 -3
  144. lusid/models/exercise_event.py +5 -7
  145. lusid/models/exotic_instrument.py +3 -3
  146. lusid/models/expiry_event.py +91 -0
  147. lusid/models/filter_predicate_compliance_parameter.py +91 -0
  148. lusid/models/filter_step.py +101 -0
  149. lusid/models/fixed_leg.py +3 -3
  150. lusid/models/fixed_schedule.py +4 -9
  151. lusid/models/flexible_loan.py +105 -0
  152. lusid/models/float_schedule.py +20 -12
  153. lusid/models/floating_leg.py +3 -3
  154. lusid/models/flow_convention_name.py +1 -1
  155. lusid/models/flow_conventions.py +1 -1
  156. lusid/models/forward_rate_agreement.py +3 -3
  157. lusid/models/from_recipe.py +81 -0
  158. lusid/models/fund.py +182 -0
  159. lusid/models/fund_properties.py +115 -0
  160. lusid/models/fund_request.py +165 -0
  161. lusid/models/fund_share_class.py +99 -0
  162. lusid/models/funding_leg.py +3 -3
  163. lusid/models/funding_leg_options.py +3 -3
  164. lusid/models/future.py +3 -3
  165. lusid/models/fx_conventions.py +73 -0
  166. lusid/models/fx_forward.py +8 -6
  167. lusid/models/fx_forward_curve_by_quote_reference.py +4 -4
  168. lusid/models/fx_forward_curve_data.py +3 -3
  169. lusid/models/fx_forward_model_options.py +3 -3
  170. lusid/models/fx_forward_pips_curve_data.py +3 -3
  171. lusid/models/fx_forward_settlement_event.py +136 -0
  172. lusid/models/fx_forward_tenor_curve_data.py +4 -4
  173. lusid/models/fx_forward_tenor_pips_curve_data.py +4 -4
  174. lusid/models/fx_linked_notional_schedule.py +108 -0
  175. lusid/models/fx_option.py +3 -3
  176. lusid/models/fx_rate_schedule.py +3 -3
  177. lusid/models/fx_swap.py +4 -4
  178. lusid/models/fx_vol_surface_data.py +3 -3
  179. lusid/models/{reconciliation_run.py → get_recipe_composer_response.py} +15 -15
  180. lusid/models/group_by_selector_compliance_parameter.py +91 -0
  181. lusid/models/group_by_step.py +101 -0
  182. lusid/models/group_filter_predicate_compliance_parameter.py +91 -0
  183. lusid/models/group_filter_step.py +110 -0
  184. lusid/models/group_of_market_data_key_rules.py +79 -0
  185. lusid/models/index_convention.py +1 -1
  186. lusid/models/index_model_options.py +3 -3
  187. lusid/models/inflation_index_conventions.py +2 -2
  188. lusid/models/inflation_leg.py +3 -3
  189. lusid/models/inflation_linked_bond.py +3 -3
  190. lusid/models/inflation_swap.py +4 -4
  191. lusid/models/informational_error_event.py +3 -3
  192. lusid/models/informational_event.py +4 -6
  193. lusid/models/instrument_event.py +13 -5
  194. lusid/models/instrument_event_configuration.py +74 -0
  195. lusid/models/instrument_event_holder.py +12 -3
  196. lusid/models/instrument_event_type.py +8 -0
  197. lusid/models/instrument_leg.py +3 -3
  198. lusid/models/instrument_list_compliance_parameter.py +3 -3
  199. lusid/models/instrument_payment_diary_leg.py +5 -3
  200. lusid/models/instrument_resolution_detail.py +105 -0
  201. lusid/models/instrument_type.py +2 -0
  202. lusid/models/interest_rate_swap.py +4 -4
  203. lusid/models/interest_rate_swaption.py +3 -3
  204. lusid/models/intermediate_compliance_step.py +110 -0
  205. lusid/models/ir_vol_cube_data.py +3 -3
  206. lusid/models/journal_entry_line.py +34 -3
  207. lusid/models/journal_entry_lines_query_parameters.py +1 -1
  208. lusid/models/label_value_set.py +1 -1
  209. lusid/models/leg_definition.py +16 -3
  210. lusid/models/lineage_member.py +87 -0
  211. lusid/models/lock_period_diary_entry_request.py +91 -0
  212. lusid/models/lusid_instrument.py +7 -5
  213. lusid/models/lusid_trade_ticket.py +8 -1
  214. lusid/models/market_context.py +17 -2
  215. lusid/models/market_data_type.py +1 -0
  216. lusid/models/maturity_event.py +91 -0
  217. lusid/models/model_options.py +5 -6
  218. lusid/models/model_options_type.py +0 -1
  219. lusid/models/model_selection.py +3 -3
  220. lusid/models/move_orders_to_different_blocks_request.py +77 -0
  221. lusid/models/moved_order_to_different_block_response.py +85 -0
  222. lusid/models/movement_type.py +2 -0
  223. lusid/models/multi_currency_amounts.py +71 -0
  224. lusid/models/opaque_market_data.py +3 -3
  225. lusid/models/opaque_model_options.py +3 -3
  226. lusid/models/open_event.py +3 -3
  227. lusid/models/optionality_schedule.py +3 -3
  228. lusid/models/order_graph_block.py +4 -2
  229. lusid/models/order_graph_block_order_detail.py +16 -2
  230. lusid/models/output_transaction.py +9 -2
  231. lusid/models/paged_resource_list_of_cleardown_module_response.py +113 -0
  232. lusid/models/{paged_resource_list_of_reconciliation_run_break.py → paged_resource_list_of_cleardown_module_rule.py} +11 -11
  233. lusid/models/{paged_resource_list_of_reconciliation_run.py → paged_resource_list_of_fund.py} +11 -11
  234. lusid/models/paged_resource_list_of_property_definition.py +113 -0
  235. lusid/models/paged_resource_list_of_staging_rule_set.py +113 -0
  236. lusid/models/paged_resource_list_of_transaction_template.py +113 -0
  237. lusid/models/paged_resource_list_of_transaction_template_specification.py +113 -0
  238. lusid/models/participation_request.py +3 -9
  239. lusid/models/performance_returns_metric.py +1 -1
  240. lusid/models/period_diary_entries_reopened_response.py +104 -0
  241. lusid/models/place_blocks_request.py +77 -0
  242. lusid/models/portfolio.py +15 -2
  243. lusid/models/portfolio_details.py +15 -2
  244. lusid/models/portfolio_group_id_compliance_parameter.py +3 -3
  245. lusid/models/portfolio_group_id_list_compliance_parameter.py +3 -3
  246. lusid/models/portfolio_holding.py +27 -2
  247. lusid/models/portfolio_id_compliance_parameter.py +3 -3
  248. lusid/models/portfolio_id_list_compliance_parameter.py +3 -3
  249. lusid/models/posting_module_rule.py +29 -4
  250. lusid/models/pricing_model.py +2 -1
  251. lusid/models/property_definition.py +17 -4
  252. lusid/models/property_definition_search_result.py +3 -3
  253. lusid/models/property_domain.py +3 -0
  254. lusid/models/property_key_compliance_parameter.py +3 -3
  255. lusid/models/property_key_list_compliance_parameter.py +3 -3
  256. lusid/models/queryable_key.py +124 -0
  257. lusid/models/raw_vendor_event.py +5 -7
  258. lusid/models/re_open_period_diary_entry_request.py +84 -0
  259. lusid/models/recipe_block.py +87 -0
  260. lusid/models/recipe_composer.py +100 -0
  261. lusid/models/{reconciliation_break_id.py → recipe_value.py} +22 -23
  262. lusid/models/recombine_step.py +101 -0
  263. lusid/models/reference_instrument.py +3 -3
  264. lusid/models/relative_date_offset.py +71 -0
  265. lusid/models/repo.py +3 -3
  266. lusid/models/reset_event.py +4 -6
  267. lusid/models/resource_list_of_block_and_orders.py +113 -0
  268. lusid/models/resource_list_of_get_recipe_composer_response.py +113 -0
  269. lusid/models/resource_list_of_moved_order_to_different_block_response.py +113 -0
  270. lusid/models/resource_list_of_queryable_key.py +113 -0
  271. lusid/models/schedule.py +6 -5
  272. lusid/models/schedule_type.py +1 -0
  273. lusid/models/script_map_reference.py +94 -0
  274. lusid/models/security_election.py +86 -0
  275. lusid/models/set_share_class_instruments_request.py +79 -0
  276. lusid/models/side_definition.py +1 -8
  277. lusid/models/sides_definition_request.py +1 -8
  278. lusid/models/simple_cash_flow_loan.py +3 -3
  279. lusid/models/simple_instrument.py +3 -3
  280. lusid/models/staging_rule.py +90 -0
  281. lusid/models/staging_rule_approval_criteria.py +81 -0
  282. lusid/models/staging_rule_match_criteria.py +95 -0
  283. lusid/models/staging_rule_set.py +103 -0
  284. lusid/models/step_schedule.py +3 -3
  285. lusid/models/stock_split_event.py +3 -3
  286. lusid/models/string_compliance_parameter.py +3 -3
  287. lusid/models/string_list_compliance_parameter.py +3 -3
  288. lusid/models/template_field.py +77 -0
  289. lusid/models/term_deposit.py +3 -3
  290. lusid/models/total_return_swap.py +16 -16
  291. lusid/models/transaction_configuration_movement_data.py +3 -3
  292. lusid/models/transaction_configuration_movement_data_request.py +3 -3
  293. lusid/models/transaction_currency_and_amount.py +81 -0
  294. lusid/models/transaction_field_map.py +97 -0
  295. lusid/models/transaction_price.py +3 -3
  296. lusid/models/transaction_price_and_type.py +81 -0
  297. lusid/models/transaction_price_type.py +1 -0
  298. lusid/models/transaction_property_map.py +80 -0
  299. lusid/models/transaction_template.py +100 -0
  300. lusid/models/transaction_template_request.py +79 -0
  301. lusid/models/transaction_template_specification.py +99 -0
  302. lusid/models/transaction_type_alias.py +0 -7
  303. lusid/models/transaction_type_calculation.py +1 -1
  304. lusid/models/transition_event.py +3 -3
  305. lusid/models/translation_context.py +75 -0
  306. lusid/models/translation_script.py +9 -3
  307. lusid/models/trial_balance.py +46 -11
  308. lusid/models/trial_balance_query_parameters.py +15 -6
  309. lusid/models/trigger_event.py +3 -3
  310. lusid/models/units_ratio.py +71 -0
  311. lusid/models/update_staging_rule_set_request.py +91 -0
  312. lusid/models/{compliance_run_summary.py → upsert_compliance_run_summary_result.py} +8 -8
  313. lusid/models/upsert_dialect_request.py +79 -0
  314. lusid/models/upsert_instrument_event_request.py +12 -3
  315. lusid/models/upsert_quote_request.py +1 -1
  316. lusid/models/upsert_recipe_composer_request.py +73 -0
  317. lusid/models/upsert_recipe_request.py +3 -9
  318. lusid/models/upsert_translation_script_request.py +75 -0
  319. lusid/models/valuation_schedule.py +10 -3
  320. lusid/models/weighted_instrument.py +13 -2
  321. lusid/models/weighted_instrument_in_line_lookup_identifiers.py +89 -0
  322. lusid/models/yield_curve_data.py +3 -3
  323. lusid/rest.py +1 -1
  324. {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.470.dist-info}/METADATA +245 -48
  325. {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.470.dist-info}/RECORD +326 -235
  326. {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.470.dist-info}/WHEEL +1 -1
  327. lusid/extensions/api_client_builder.py +0 -138
  328. lusid/models/configuration_recipe_snippet.py +0 -139
  329. lusid/models/je_lines_query_parameters.py +0 -105
  330. lusid/models/look_up_pricing_model_options.py +0 -93
  331. lusid/models/reconciliation_run_id.py +0 -85
  332. lusid/models/upsert_reconciliation_break_request.py +0 -98
@@ -0,0 +1,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, conlist
23
+ from lusid.models.placement_request import PlacementRequest
24
+
25
+ class PlaceBlocksRequest(BaseModel):
26
+ """
27
+ PlaceBlocksRequest
28
+ """
29
+ requests: conlist(PlacementRequest, max_items=100, min_items=1) = Field(..., description="A collection of PlacementRequest.")
30
+ __properties = ["requests"]
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) -> PlaceBlocksRequest:
47
+ """Create an instance of PlaceBlocksRequest 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
+ # override the default output from pydantic by calling `to_dict()` of each item in requests (list)
57
+ _items = []
58
+ if self.requests:
59
+ for _item in self.requests:
60
+ if _item:
61
+ _items.append(_item.to_dict())
62
+ _dict['requests'] = _items
63
+ return _dict
64
+
65
+ @classmethod
66
+ def from_dict(cls, obj: dict) -> PlaceBlocksRequest:
67
+ """Create an instance of PlaceBlocksRequest from a dict"""
68
+ if obj is None:
69
+ return None
70
+
71
+ if not isinstance(obj, dict):
72
+ return PlaceBlocksRequest.parse_obj(obj)
73
+
74
+ _obj = PlaceBlocksRequest.parse_obj({
75
+ "requests": [PlacementRequest.from_dict(_item) for _item in obj.get("requests")] if obj.get("requests") is not None else None
76
+ })
77
+ return _obj
lusid/models/portfolio.py CHANGED
@@ -20,6 +20,7 @@ import json
20
20
  from datetime import datetime
21
21
  from typing import Any, Dict, List, Optional
22
22
  from pydantic import BaseModel, Field, StrictBool, StrictStr, conlist, constr, validator
23
+ from lusid.models.instrument_event_configuration import InstrumentEventConfiguration
23
24
  from lusid.models.link import Link
24
25
  from lusid.models.model_property import ModelProperty
25
26
  from lusid.models.relationship import Relationship
@@ -44,10 +45,12 @@ class Portfolio(BaseModel):
44
45
  relationships: Optional[conlist(Relationship)] = Field(None, description="A set of relationships associated to the portfolio.")
45
46
  instrument_scopes: Optional[conlist(StrictStr)] = Field(None, alias="instrumentScopes", description="The instrument scope resolution strategy of this portfolio.")
46
47
  accounting_method: Optional[StrictStr] = Field(None, alias="accountingMethod", description=". The available values are: Default, AverageCost, FirstInFirstOut, LastInFirstOut, HighestCostFirst, LowestCostFirst")
47
- amortisation_method: Optional[StrictStr] = Field(None, alias="amortisationMethod", description="The amortisation method the portfolio is using in the calculation. This can be 'NoAmortisation', 'StraightLine' or 'EffectiveYield'.")
48
+ amortisation_method: Optional[StrictStr] = Field(None, alias="amortisationMethod", description="The amortisation method used by the portfolio for the calculation. The available values are: NoAmortisation, StraightLine, EffectiveYield, StraightLineSettlementDate, EffectiveYieldSettlementDate")
48
49
  transaction_type_scope: Optional[StrictStr] = Field(None, alias="transactionTypeScope", description="The scope of the transaction types.")
50
+ cash_gain_loss_calculation_date: Optional[StrictStr] = Field(None, alias="cashGainLossCalculationDate", description="The scope of the transaction types.")
51
+ instrument_event_configuration: Optional[InstrumentEventConfiguration] = Field(None, alias="instrumentEventConfiguration")
49
52
  links: Optional[conlist(Link)] = None
50
- __properties = ["href", "id", "type", "displayName", "description", "created", "parentPortfolioId", "version", "isDerived", "baseCurrency", "properties", "relationships", "instrumentScopes", "accountingMethod", "amortisationMethod", "transactionTypeScope", "links"]
53
+ __properties = ["href", "id", "type", "displayName", "description", "created", "parentPortfolioId", "version", "isDerived", "baseCurrency", "properties", "relationships", "instrumentScopes", "accountingMethod", "amortisationMethod", "transactionTypeScope", "cashGainLossCalculationDate", "instrumentEventConfiguration", "links"]
51
54
 
52
55
  @validator('type')
53
56
  def type_validate_enum(cls, value):
@@ -113,6 +116,9 @@ class Portfolio(BaseModel):
113
116
  if _item:
114
117
  _items.append(_item.to_dict())
115
118
  _dict['relationships'] = _items
119
+ # override the default output from pydantic by calling `to_dict()` of instrument_event_configuration
120
+ if self.instrument_event_configuration:
121
+ _dict['instrumentEventConfiguration'] = self.instrument_event_configuration.to_dict()
116
122
  # override the default output from pydantic by calling `to_dict()` of each item in links (list)
117
123
  _items = []
118
124
  if self.links:
@@ -160,6 +166,11 @@ class Portfolio(BaseModel):
160
166
  if self.transaction_type_scope is None and "transaction_type_scope" in self.__fields_set__:
161
167
  _dict['transactionTypeScope'] = None
162
168
 
169
+ # set to None if cash_gain_loss_calculation_date (nullable) is None
170
+ # and __fields_set__ contains the field
171
+ if self.cash_gain_loss_calculation_date is None and "cash_gain_loss_calculation_date" in self.__fields_set__:
172
+ _dict['cashGainLossCalculationDate'] = None
173
+
163
174
  # set to None if links (nullable) is None
164
175
  # and __fields_set__ contains the field
165
176
  if self.links is None and "links" in self.__fields_set__:
@@ -198,6 +209,8 @@ class Portfolio(BaseModel):
198
209
  "accounting_method": obj.get("accountingMethod"),
199
210
  "amortisation_method": obj.get("amortisationMethod"),
200
211
  "transaction_type_scope": obj.get("transactionTypeScope"),
212
+ "cash_gain_loss_calculation_date": obj.get("cashGainLossCalculationDate"),
213
+ "instrument_event_configuration": InstrumentEventConfiguration.from_dict(obj.get("instrumentEventConfiguration")) if obj.get("instrumentEventConfiguration") is not None else None,
201
214
  "links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None
202
215
  })
203
216
  return _obj
@@ -20,6 +20,7 @@ import json
20
20
 
21
21
  from typing import Any, Dict, List, Optional
22
22
  from pydantic import BaseModel, Field, StrictStr, conlist, validator
23
+ from lusid.models.instrument_event_configuration import InstrumentEventConfiguration
23
24
  from lusid.models.link import Link
24
25
  from lusid.models.resource_id import ResourceId
25
26
  from lusid.models.version import Version
@@ -36,10 +37,12 @@ class PortfolioDetails(BaseModel):
36
37
  sub_holding_keys: Optional[conlist(StrictStr)] = Field(None, alias="subHoldingKeys")
37
38
  instrument_scopes: Optional[conlist(StrictStr)] = Field(None, alias="instrumentScopes", description="The resolution strategy used to resolve instruments of transactions/holdings upserted to the transaction portfolio.")
38
39
  accounting_method: Optional[StrictStr] = Field(None, alias="accountingMethod", description=". The available values are: Default, AverageCost, FirstInFirstOut, LastInFirstOut, HighestCostFirst, LowestCostFirst")
39
- amortisation_method: Optional[StrictStr] = Field(None, alias="amortisationMethod", description="The amortisation method the portfolio is using in the calculation. This can be 'NoAmortisation', 'StraightLine' or 'EffectiveYield'.")
40
+ amortisation_method: Optional[StrictStr] = Field(None, alias="amortisationMethod", description="The amortisation method used by the portfolio for the calculation. The available values are: NoAmortisation, StraightLine, EffectiveYield, StraightLineSettlementDate, EffectiveYieldSettlementDate")
40
41
  transaction_type_scope: Optional[StrictStr] = Field(None, alias="transactionTypeScope", description="The scope of the transaction types.")
42
+ cash_gain_loss_calculation_date: Optional[StrictStr] = Field(None, alias="cashGainLossCalculationDate", description="The option when the Cash Gain Loss to be calulated, TransactionDate/SettlementDate. Defaults to SettlementDate.")
43
+ instrument_event_configuration: Optional[InstrumentEventConfiguration] = Field(None, alias="instrumentEventConfiguration")
41
44
  links: Optional[conlist(Link)] = None
42
- __properties = ["href", "originPortfolioId", "version", "baseCurrency", "corporateActionSourceId", "subHoldingKeys", "instrumentScopes", "accountingMethod", "amortisationMethod", "transactionTypeScope", "links"]
45
+ __properties = ["href", "originPortfolioId", "version", "baseCurrency", "corporateActionSourceId", "subHoldingKeys", "instrumentScopes", "accountingMethod", "amortisationMethod", "transactionTypeScope", "cashGainLossCalculationDate", "instrumentEventConfiguration", "links"]
43
46
 
44
47
  @validator('accounting_method')
45
48
  def accounting_method_validate_enum(cls, value):
@@ -84,6 +87,9 @@ class PortfolioDetails(BaseModel):
84
87
  # override the default output from pydantic by calling `to_dict()` of corporate_action_source_id
85
88
  if self.corporate_action_source_id:
86
89
  _dict['corporateActionSourceId'] = self.corporate_action_source_id.to_dict()
90
+ # override the default output from pydantic by calling `to_dict()` of instrument_event_configuration
91
+ if self.instrument_event_configuration:
92
+ _dict['instrumentEventConfiguration'] = self.instrument_event_configuration.to_dict()
87
93
  # override the default output from pydantic by calling `to_dict()` of each item in links (list)
88
94
  _items = []
89
95
  if self.links:
@@ -116,6 +122,11 @@ class PortfolioDetails(BaseModel):
116
122
  if self.transaction_type_scope is None and "transaction_type_scope" in self.__fields_set__:
117
123
  _dict['transactionTypeScope'] = None
118
124
 
125
+ # set to None if cash_gain_loss_calculation_date (nullable) is None
126
+ # and __fields_set__ contains the field
127
+ if self.cash_gain_loss_calculation_date is None and "cash_gain_loss_calculation_date" in self.__fields_set__:
128
+ _dict['cashGainLossCalculationDate'] = None
129
+
119
130
  # set to None if links (nullable) is None
120
131
  # and __fields_set__ contains the field
121
132
  if self.links is None and "links" in self.__fields_set__:
@@ -143,6 +154,8 @@ class PortfolioDetails(BaseModel):
143
154
  "accounting_method": obj.get("accountingMethod"),
144
155
  "amortisation_method": obj.get("amortisationMethod"),
145
156
  "transaction_type_scope": obj.get("transactionTypeScope"),
157
+ "cash_gain_loss_calculation_date": obj.get("cashGainLossCalculationDate"),
158
+ "instrument_event_configuration": InstrumentEventConfiguration.from_dict(obj.get("instrumentEventConfiguration")) if obj.get("instrumentEventConfiguration") is not None else None,
146
159
  "links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None
147
160
  })
148
161
  return _obj
@@ -28,15 +28,15 @@ class PortfolioGroupIdComplianceParameter(ComplianceParameter):
28
28
  PortfolioGroupIdComplianceParameter
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:
@@ -28,15 +28,15 @@ class PortfolioGroupIdListComplianceParameter(ComplianceParameter):
28
28
  PortfolioGroupIdListComplianceParameter
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:
@@ -42,7 +42,12 @@ class PortfolioHolding(BaseModel):
42
42
  currency: Optional[StrictStr] = Field(None, description="The holding currency.")
43
43
  holding_type_name: Optional[StrictStr] = Field(None, alias="holdingTypeName", description="The decoded type of the holding e.g. Position, Balance, CashCommitment, Receivable, ForwardFX etc.")
44
44
  holding_id: Optional[StrictInt] = Field(None, alias="holdingId", description="A single identifier for the holding within the portfolio. The holdingId is constructed from the LusidInstrumentId, sub-holding keys and currrency and is unique within the portfolio.")
45
- __properties = ["instrumentScope", "instrumentUid", "subHoldingKeys", "properties", "holdingType", "units", "settledUnits", "cost", "costPortfolioCcy", "transaction", "currency", "holdingTypeName", "holdingId"]
45
+ notional_cost: Optional[CurrencyAndAmount] = Field(None, alias="notionalCost")
46
+ amortised_cost: Optional[CurrencyAndAmount] = Field(None, alias="amortisedCost")
47
+ amortised_cost_portfolio_ccy: Optional[CurrencyAndAmount] = Field(None, alias="amortisedCostPortfolioCcy")
48
+ variation_margin: Optional[CurrencyAndAmount] = Field(None, alias="variationMargin")
49
+ variation_margin_portfolio_ccy: Optional[CurrencyAndAmount] = Field(None, alias="variationMarginPortfolioCcy")
50
+ __properties = ["instrumentScope", "instrumentUid", "subHoldingKeys", "properties", "holdingType", "units", "settledUnits", "cost", "costPortfolioCcy", "transaction", "currency", "holdingTypeName", "holdingId", "notionalCost", "amortisedCost", "amortisedCostPortfolioCcy", "variationMargin", "variationMarginPortfolioCcy"]
46
51
 
47
52
  class Config:
48
53
  """Pydantic configuration"""
@@ -91,6 +96,21 @@ class PortfolioHolding(BaseModel):
91
96
  # override the default output from pydantic by calling `to_dict()` of transaction
92
97
  if self.transaction:
93
98
  _dict['transaction'] = self.transaction.to_dict()
99
+ # override the default output from pydantic by calling `to_dict()` of notional_cost
100
+ if self.notional_cost:
101
+ _dict['notionalCost'] = self.notional_cost.to_dict()
102
+ # override the default output from pydantic by calling `to_dict()` of amortised_cost
103
+ if self.amortised_cost:
104
+ _dict['amortisedCost'] = self.amortised_cost.to_dict()
105
+ # override the default output from pydantic by calling `to_dict()` of amortised_cost_portfolio_ccy
106
+ if self.amortised_cost_portfolio_ccy:
107
+ _dict['amortisedCostPortfolioCcy'] = self.amortised_cost_portfolio_ccy.to_dict()
108
+ # override the default output from pydantic by calling `to_dict()` of variation_margin
109
+ if self.variation_margin:
110
+ _dict['variationMargin'] = self.variation_margin.to_dict()
111
+ # override the default output from pydantic by calling `to_dict()` of variation_margin_portfolio_ccy
112
+ if self.variation_margin_portfolio_ccy:
113
+ _dict['variationMarginPortfolioCcy'] = self.variation_margin_portfolio_ccy.to_dict()
94
114
  # set to None if instrument_scope (nullable) is None
95
115
  # and __fields_set__ contains the field
96
116
  if self.instrument_scope is None and "instrument_scope" in self.__fields_set__:
@@ -155,6 +175,11 @@ class PortfolioHolding(BaseModel):
155
175
  "transaction": Transaction.from_dict(obj.get("transaction")) if obj.get("transaction") is not None else None,
156
176
  "currency": obj.get("currency"),
157
177
  "holding_type_name": obj.get("holdingTypeName"),
158
- "holding_id": obj.get("holdingId")
178
+ "holding_id": obj.get("holdingId"),
179
+ "notional_cost": CurrencyAndAmount.from_dict(obj.get("notionalCost")) if obj.get("notionalCost") is not None else None,
180
+ "amortised_cost": CurrencyAndAmount.from_dict(obj.get("amortisedCost")) if obj.get("amortisedCost") is not None else None,
181
+ "amortised_cost_portfolio_ccy": CurrencyAndAmount.from_dict(obj.get("amortisedCostPortfolioCcy")) if obj.get("amortisedCostPortfolioCcy") is not None else None,
182
+ "variation_margin": CurrencyAndAmount.from_dict(obj.get("variationMargin")) if obj.get("variationMargin") is not None else None,
183
+ "variation_margin_portfolio_ccy": CurrencyAndAmount.from_dict(obj.get("variationMarginPortfolioCcy")) if obj.get("variationMarginPortfolioCcy") is not None else None
159
184
  })
160
185
  return _obj
@@ -28,15 +28,15 @@ class PortfolioIdComplianceParameter(ComplianceParameter):
28
28
  PortfolioIdComplianceParameter
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:
@@ -28,15 +28,15 @@ class PortfolioIdListComplianceParameter(ComplianceParameter):
28
28
  PortfolioIdListComplianceParameter
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:
@@ -18,7 +18,7 @@ import re # noqa: F401
18
18
  import json
19
19
 
20
20
 
21
- from typing import Any, Dict
21
+ from typing import Any, Dict, Optional
22
22
  from pydantic import BaseModel, Field, constr, validator
23
23
 
24
24
  class PostingModuleRule(BaseModel):
@@ -26,9 +26,10 @@ class PostingModuleRule(BaseModel):
26
26
  A Posting rule # noqa: E501
27
27
  """
28
28
  rule_id: constr(strict=True, max_length=64, min_length=1) = Field(..., alias="ruleId", description="The identifier for the Posting Rule.")
29
- account: constr(strict=True, max_length=512, min_length=1) = Field(..., description="The account to post the Activity credit or debit to.")
29
+ account: Optional[constr(strict=True, max_length=512, min_length=1)] = Field(None, description="The general ledger account to post the Activity credit or debit to.")
30
30
  rule_filter: constr(strict=True, max_length=16384, min_length=1) = Field(..., alias="ruleFilter", description="The filter syntax for the Posting Rule. See https://support.lusid.com/knowledgebase/article/KA-02140 for more information on filter syntax.")
31
- __properties = ["ruleId", "account", "ruleFilter"]
31
+ general_ledger_account_code: Optional[constr(strict=True, max_length=512, min_length=1)] = Field(None, alias="generalLedgerAccountCode", description="The general ledger account to post the Activity credit or debit to.")
32
+ __properties = ["ruleId", "account", "ruleFilter", "generalLedgerAccountCode"]
32
33
 
33
34
  @validator('rule_id')
34
35
  def rule_id_validate_regular_expression(cls, value):
@@ -40,6 +41,9 @@ class PostingModuleRule(BaseModel):
40
41
  @validator('account')
41
42
  def account_validate_regular_expression(cls, value):
42
43
  """Validates the regular expression"""
44
+ if value is None:
45
+ return value
46
+
43
47
  if not re.match(r"^[\s\S]*$", value):
44
48
  raise ValueError(r"must validate the regular expression /^[\s\S]*$/")
45
49
  return value
@@ -51,6 +55,16 @@ class PostingModuleRule(BaseModel):
51
55
  raise ValueError(r"must validate the regular expression /^[\s\S]*$/")
52
56
  return value
53
57
 
58
+ @validator('general_ledger_account_code')
59
+ def general_ledger_account_code_validate_regular_expression(cls, value):
60
+ """Validates the regular expression"""
61
+ if value is None:
62
+ return value
63
+
64
+ if not re.match(r"^[\s\S]*$", value):
65
+ raise ValueError(r"must validate the regular expression /^[\s\S]*$/")
66
+ return value
67
+
54
68
  class Config:
55
69
  """Pydantic configuration"""
56
70
  allow_population_by_field_name = True
@@ -75,6 +89,16 @@ class PostingModuleRule(BaseModel):
75
89
  exclude={
76
90
  },
77
91
  exclude_none=True)
92
+ # set to None if account (nullable) is None
93
+ # and __fields_set__ contains the field
94
+ if self.account is None and "account" in self.__fields_set__:
95
+ _dict['account'] = None
96
+
97
+ # set to None if general_ledger_account_code (nullable) is None
98
+ # and __fields_set__ contains the field
99
+ if self.general_ledger_account_code is None and "general_ledger_account_code" in self.__fields_set__:
100
+ _dict['generalLedgerAccountCode'] = None
101
+
78
102
  return _dict
79
103
 
80
104
  @classmethod
@@ -89,6 +113,7 @@ class PostingModuleRule(BaseModel):
89
113
  _obj = PostingModuleRule.parse_obj({
90
114
  "rule_id": obj.get("ruleId"),
91
115
  "account": obj.get("account"),
92
- "rule_filter": obj.get("ruleFilter")
116
+ "rule_filter": obj.get("ruleFilter"),
117
+ "general_ledger_account_code": obj.get("generalLedgerAccountCode")
93
118
  })
94
119
  return _obj
@@ -46,7 +46,8 @@ class PricingModel(str, Enum):
46
46
  FORWARDFROMCURVEUNDISCOUNTED = 'ForwardFromCurveUndiscounted'
47
47
  BLACKSCHOLESDIGITAL = 'BlackScholesDigital'
48
48
  BJERKSUNDSTENSLAND1993 = 'BjerksundStensland1993'
49
- LOOKUPPRICING = 'LookUpPricing'
49
+ BONDLOOKUPPRICER = 'BondLookupPricer'
50
+ FLEXIBLELOANPRICER = 'FlexibleLoanPricer'
50
51
 
51
52
  @classmethod
52
53
  def from_json(cls, json_str: str) -> PricingModel:
@@ -23,6 +23,7 @@ from pydantic import BaseModel, Field, StrictBool, StrictStr, conlist, validator
23
23
  from lusid.models.link import Link
24
24
  from lusid.models.model_property import ModelProperty
25
25
  from lusid.models.resource_id import ResourceId
26
+ from lusid.models.version import Version
26
27
 
27
28
  class PropertyDefinition(BaseModel):
28
29
  """
@@ -35,7 +36,7 @@ class PropertyDefinition(BaseModel):
35
36
  data_type_id: Optional[ResourceId] = Field(None, alias="dataTypeId")
36
37
  type: Optional[StrictStr] = Field(None, description="The type of the property. The available values are: Label, Metric, Information")
37
38
  unit_schema: Optional[StrictStr] = Field(None, alias="unitSchema", description="The units that can be associated with the property's values. This is defined by the property's data type. The available values are: NoUnits, Basic, Iso4217Currency")
38
- domain: Optional[StrictStr] = Field(None, description="The domain that the property exists in. The available values are: NotDefined, Transaction, Portfolio, Holding, ReferenceHolding, TransactionConfiguration, Instrument, CutLabelDefinition, Analytic, PortfolioGroup, Person, AccessMetadata, Order, UnitResult, MarketData, ConfigurationRecipe, Allocation, Calendar, LegalEntity, Placement, Execution, Block, Participation, Package, OrderInstruction, NextBestAction, CustomEntity, InstrumentEvent, Account, ChartOfAccounts, CustodianAccount, Abor, AborConfiguration, Reconciliation, PropertyDefinition, Compliance, DiaryEntry")
39
+ domain: Optional[StrictStr] = Field(None, description="The domain that the property exists in. The available values are: NotDefined, Transaction, Portfolio, Holding, ReferenceHolding, TransactionConfiguration, Instrument, CutLabelDefinition, Analytic, PortfolioGroup, Person, AccessMetadata, Order, UnitResult, MarketData, ConfigurationRecipe, Allocation, Calendar, LegalEntity, Placement, Execution, Block, Participation, Package, OrderInstruction, NextBestAction, CustomEntity, InstrumentEvent, Account, ChartOfAccounts, CustodianAccount, Abor, AborConfiguration, Fund, Reconciliation, PropertyDefinition, Compliance, DiaryEntry, Leg, DerivedValuation")
39
40
  scope: Optional[StrictStr] = Field(None, description="The scope that the property exists in.")
40
41
  code: Optional[StrictStr] = Field(None, description="The code of the property. Together with the domain and scope this uniquely identifies the property.")
41
42
  value_required: Optional[StrictBool] = Field(None, alias="valueRequired", description="This field is not implemented and should be disregarded.")
@@ -44,9 +45,11 @@ class PropertyDefinition(BaseModel):
44
45
  property_definition_type: Optional[StrictStr] = Field(None, alias="propertyDefinitionType", description="The definition type (DerivedDefinition or Definition). The available values are: ValueProperty, DerivedDefinition")
45
46
  property_description: Optional[StrictStr] = Field(None, alias="propertyDescription", description="A brief description of what a property of this property definition contains.")
46
47
  derivation_formula: Optional[StrictStr] = Field(None, alias="derivationFormula", description="The rule that defines how data is composed for a derived property.")
48
+ collection_type: Optional[StrictStr] = Field(None, alias="collectionType", description="Describes whether a collection property should behave as a set or as an array.")
47
49
  properties: Optional[Dict[str, ModelProperty]] = Field(None, description="Set of unique property definition properties and associated values to store with the property definition. Each property must be from the 'PropertyDefinition' domain.")
50
+ version: Optional[Version] = None
48
51
  links: Optional[conlist(Link)] = None
49
- __properties = ["href", "key", "valueType", "displayName", "dataTypeId", "type", "unitSchema", "domain", "scope", "code", "valueRequired", "lifeTime", "constraintStyle", "propertyDefinitionType", "propertyDescription", "derivationFormula", "properties", "links"]
52
+ __properties = ["href", "key", "valueType", "displayName", "dataTypeId", "type", "unitSchema", "domain", "scope", "code", "valueRequired", "lifeTime", "constraintStyle", "propertyDefinitionType", "propertyDescription", "derivationFormula", "collectionType", "properties", "version", "links"]
50
53
 
51
54
  @validator('value_type')
52
55
  def value_type_validate_enum(cls, value):
@@ -84,8 +87,8 @@ class PropertyDefinition(BaseModel):
84
87
  if value is None:
85
88
  return value
86
89
 
87
- if value not in ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry'):
88
- raise ValueError("must be one of enum values ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry')")
90
+ if value not in ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation'):
91
+ raise ValueError("must be one of enum values ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation')")
89
92
  return value
90
93
 
91
94
  @validator('life_time')
@@ -144,6 +147,9 @@ class PropertyDefinition(BaseModel):
144
147
  if self.properties[_key]:
145
148
  _field_dict[_key] = self.properties[_key].to_dict()
146
149
  _dict['properties'] = _field_dict
150
+ # override the default output from pydantic by calling `to_dict()` of version
151
+ if self.version:
152
+ _dict['version'] = self.version.to_dict()
147
153
  # override the default output from pydantic by calling `to_dict()` of each item in links (list)
148
154
  _items = []
149
155
  if self.links:
@@ -191,6 +197,11 @@ class PropertyDefinition(BaseModel):
191
197
  if self.derivation_formula is None and "derivation_formula" in self.__fields_set__:
192
198
  _dict['derivationFormula'] = None
193
199
 
200
+ # set to None if collection_type (nullable) is None
201
+ # and __fields_set__ contains the field
202
+ if self.collection_type is None and "collection_type" in self.__fields_set__:
203
+ _dict['collectionType'] = None
204
+
194
205
  # set to None if properties (nullable) is None
195
206
  # and __fields_set__ contains the field
196
207
  if self.properties is None and "properties" in self.__fields_set__:
@@ -229,12 +240,14 @@ class PropertyDefinition(BaseModel):
229
240
  "property_definition_type": obj.get("propertyDefinitionType"),
230
241
  "property_description": obj.get("propertyDescription"),
231
242
  "derivation_formula": obj.get("derivationFormula"),
243
+ "collection_type": obj.get("collectionType"),
232
244
  "properties": dict(
233
245
  (_k, ModelProperty.from_dict(_v))
234
246
  for _k, _v in obj.get("properties").items()
235
247
  )
236
248
  if obj.get("properties") is not None
237
249
  else None,
250
+ "version": Version.from_dict(obj.get("version")) if obj.get("version") is not None else None,
238
251
  "links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None
239
252
  })
240
253
  return _obj
@@ -34,7 +34,7 @@ class PropertyDefinitionSearchResult(BaseModel):
34
34
  data_type_id: Optional[ResourceId] = Field(None, alias="dataTypeId")
35
35
  type: Optional[StrictStr] = Field(None, description="The type of the property. The available values are: Label, Metric, Information")
36
36
  unit_schema: Optional[StrictStr] = Field(None, alias="unitSchema", description="The units that can be associated with the property's values. This is defined by the property's data type. The available values are: NoUnits, Basic, Iso4217Currency")
37
- domain: Optional[StrictStr] = Field(None, description="The domain that the property exists in. The available values are: NotDefined, Transaction, Portfolio, Holding, ReferenceHolding, TransactionConfiguration, Instrument, CutLabelDefinition, Analytic, PortfolioGroup, Person, AccessMetadata, Order, UnitResult, MarketData, ConfigurationRecipe, Allocation, Calendar, LegalEntity, Placement, Execution, Block, Participation, Package, OrderInstruction, NextBestAction, CustomEntity, InstrumentEvent, Account, ChartOfAccounts, CustodianAccount, Abor, AborConfiguration, Reconciliation, PropertyDefinition, Compliance, DiaryEntry")
37
+ domain: Optional[StrictStr] = Field(None, description="The domain that the property exists in. The available values are: NotDefined, Transaction, Portfolio, Holding, ReferenceHolding, TransactionConfiguration, Instrument, CutLabelDefinition, Analytic, PortfolioGroup, Person, AccessMetadata, Order, UnitResult, MarketData, ConfigurationRecipe, Allocation, Calendar, LegalEntity, Placement, Execution, Block, Participation, Package, OrderInstruction, NextBestAction, CustomEntity, InstrumentEvent, Account, ChartOfAccounts, CustodianAccount, Abor, AborConfiguration, Fund, Reconciliation, PropertyDefinition, Compliance, DiaryEntry, Leg, DerivedValuation")
38
38
  scope: Optional[StrictStr] = Field(None, description="The scope that the property exists in.")
39
39
  code: Optional[StrictStr] = Field(None, description="The code of the property. Together with the domain and scope this uniquely identifies the property.")
40
40
  value_required: Optional[StrictBool] = Field(None, alias="valueRequired", description="This field is not implemented and should be disregarded.")
@@ -82,8 +82,8 @@ class PropertyDefinitionSearchResult(BaseModel):
82
82
  if value is None:
83
83
  return value
84
84
 
85
- if value not in ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry'):
86
- raise ValueError("must be one of enum values ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry')")
85
+ if value not in ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation'):
86
+ raise ValueError("must be one of enum values ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation')")
87
87
  return value
88
88
 
89
89
  @validator('life_time')
@@ -62,10 +62,13 @@ class PropertyDomain(str, Enum):
62
62
  CUSTODIANACCOUNT = 'CustodianAccount'
63
63
  ABOR = 'Abor'
64
64
  ABORCONFIGURATION = 'AborConfiguration'
65
+ FUND = 'Fund'
65
66
  RECONCILIATION = 'Reconciliation'
66
67
  PROPERTYDEFINITION = 'PropertyDefinition'
67
68
  COMPLIANCE = 'Compliance'
68
69
  DIARYENTRY = 'DiaryEntry'
70
+ LEG = 'Leg'
71
+ DERIVEDVALUATION = 'DerivedValuation'
69
72
 
70
73
  @classmethod
71
74
  def from_json(cls, json_str: str) -> PropertyDomain:
@@ -27,15 +27,15 @@ class PropertyKeyComplianceParameter(ComplianceParameter):
27
27
  PropertyKeyComplianceParameter
28
28
  """
29
29
  value: StrictStr = Field(..., description="The key that uniquely identifies the property. It has the format {domain}/{scope}/{code}.")
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: