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

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

Potentially problematic release.


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

Files changed (319) hide show
  1. lusid/__init__.py +1091 -14
  2. lusid/api/__init__.py +65 -0
  3. lusid/api/abor_api.py +513 -179
  4. lusid/api/abor_configuration_api.py +25 -24
  5. lusid/api/allocations_api.py +12 -20
  6. lusid/api/blocks_api.py +6 -6
  7. lusid/api/calendars_api.py +16 -24
  8. lusid/api/chart_of_accounts_api.py +1745 -441
  9. lusid/api/compliance_api.py +71 -62
  10. lusid/api/configuration_recipe_api.py +1198 -56
  11. lusid/api/corporate_action_sources_api.py +8 -8
  12. lusid/api/custom_entities_api.py +6 -6
  13. lusid/api/cut_label_definitions_api.py +9 -17
  14. lusid/api/data_types_api.py +16 -32
  15. lusid/api/executions_api.py +6 -6
  16. lusid/api/funds_api.py +944 -0
  17. lusid/api/instrument_event_types_api.py +1287 -0
  18. lusid/api/instruments_api.py +12 -20
  19. lusid/api/legacy_compliance_api.py +12 -12
  20. lusid/api/legal_entities_api.py +12 -12
  21. lusid/api/order_graph_api.py +12 -12
  22. lusid/api/order_instructions_api.py +6 -6
  23. lusid/api/order_management_api.py +495 -14
  24. lusid/api/orders_api.py +16 -24
  25. lusid/api/packages_api.py +6 -6
  26. lusid/api/persons_api.py +16 -24
  27. lusid/api/placements_api.py +12 -12
  28. lusid/api/portfolio_groups_api.py +6 -6
  29. lusid/api/portfolios_api.py +23 -39
  30. lusid/api/property_definitions_api.py +205 -0
  31. lusid/api/quotes_api.py +20 -36
  32. lusid/api/reconciliations_api.py +410 -1978
  33. lusid/api/schemas_api.py +7 -15
  34. lusid/api/scopes_api.py +151 -0
  35. lusid/api/scripted_translation_api.py +30 -28
  36. lusid/api/transaction_configuration_api.py +22 -22
  37. lusid/api/transaction_portfolios_api.py +282 -577
  38. lusid/api_client.py +5 -3
  39. lusid/configuration.py +1 -1
  40. lusid/extensions/__init__.py +10 -7
  41. lusid/extensions/api_client.py +3 -1
  42. lusid/extensions/api_client_factory.py +156 -45
  43. lusid/extensions/api_configuration.py +124 -15
  44. lusid/extensions/configuration_loaders.py +2 -4
  45. lusid/extensions/proxy_config.py +8 -5
  46. lusid/extensions/socket_keep_alive.py +14 -15
  47. lusid/extensions/tcp_keep_alive_connector.py +93 -46
  48. lusid/models/__init__.py +1006 -13
  49. lusid/models/abor.py +9 -2
  50. lusid/models/abor_configuration.py +8 -8
  51. lusid/models/abor_configuration_request.py +9 -9
  52. lusid/models/abor_request.py +1 -1
  53. lusid/models/account.py +6 -1
  54. lusid/models/accumulation_event.py +104 -0
  55. lusid/models/address_key_compliance_parameter.py +5 -12
  56. lusid/models/address_key_list_compliance_parameter.py +3 -3
  57. lusid/models/address_key_option_definition.py +3 -1
  58. lusid/models/amortisation_event.py +4 -6
  59. lusid/models/{underlying_leg.py → asset_leg.py} +15 -15
  60. lusid/models/basket.py +3 -3
  61. lusid/models/block_and_order_id_request.py +78 -0
  62. lusid/models/block_and_orders.py +83 -0
  63. lusid/models/block_and_orders_create_request.py +77 -0
  64. lusid/models/block_and_orders_request.py +134 -0
  65. lusid/models/blocked_order_request.py +130 -0
  66. lusid/models/bond.py +13 -6
  67. lusid/models/bond_coupon_event.py +97 -0
  68. lusid/models/bond_default_event.py +8 -18
  69. lusid/models/bond_principal_event.py +97 -0
  70. lusid/models/book_transactions_request.py +97 -0
  71. lusid/models/bool_compliance_parameter.py +3 -3
  72. lusid/models/bool_list_compliance_parameter.py +3 -3
  73. lusid/models/branch_step.py +101 -0
  74. lusid/models/cap_floor.py +3 -3
  75. lusid/models/cash_dividend_event.py +32 -10
  76. lusid/models/cash_election.py +91 -0
  77. lusid/models/cash_flow_event.py +5 -7
  78. lusid/models/cash_perpetual.py +3 -3
  79. lusid/models/cds_flow_conventions.py +1 -1
  80. lusid/models/cds_index.py +4 -4
  81. lusid/models/check_step.py +110 -0
  82. lusid/models/cleardown_module_details.py +95 -0
  83. lusid/models/cleardown_module_request.py +117 -0
  84. lusid/models/cleardown_module_response.py +139 -0
  85. lusid/models/cleardown_module_rule.py +94 -0
  86. lusid/models/{reconciliation_run_break.py → cleardown_module_rules_updated_response.py} +30 -36
  87. lusid/models/close_event.py +3 -3
  88. lusid/models/close_period_diary_entry_request.py +149 -0
  89. lusid/models/complete_portfolio.py +8 -1
  90. lusid/models/complex_bond.py +4 -4
  91. lusid/models/complex_market_data.py +6 -5
  92. lusid/models/compliance_parameter.py +8 -5
  93. lusid/models/compliance_parameter_type.py +3 -0
  94. lusid/models/compliance_rule_breakdown.py +16 -8
  95. lusid/models/compliance_rule_breakdown_request.py +12 -4
  96. lusid/models/compliance_rule_result_v2.py +85 -0
  97. lusid/models/compliance_step.py +99 -0
  98. lusid/models/compliance_step_type.py +42 -0
  99. lusid/models/compliance_summary_rule_result.py +12 -15
  100. lusid/models/compliance_summary_rule_result_request.py +12 -15
  101. lusid/models/compliance_template_variation.py +12 -2
  102. lusid/models/component_transaction.py +92 -0
  103. lusid/models/composite_dispersion.py +30 -5
  104. lusid/models/compounding.py +4 -4
  105. lusid/models/configuration_recipe.py +10 -19
  106. lusid/models/constant_volatility_surface.py +102 -0
  107. lusid/models/contract_for_difference.py +3 -3
  108. lusid/models/create_derived_property_definition_request.py +3 -3
  109. lusid/models/create_derived_transaction_portfolio_request.py +10 -3
  110. lusid/models/create_property_definition_request.py +12 -5
  111. lusid/models/create_trade_tickets_response.py +87 -0
  112. lusid/models/create_transaction_portfolio_request.py +16 -3
  113. lusid/models/credit_default_swap.py +4 -4
  114. lusid/models/credit_spread_curve_data.py +4 -4
  115. lusid/models/custom_entity_definition.py +8 -2
  116. lusid/models/custom_entity_type.py +8 -2
  117. lusid/models/cut_label_definition.py +7 -1
  118. lusid/models/data_type.py +7 -1
  119. lusid/models/data_type_summary.py +8 -2
  120. lusid/models/date_time_compliance_parameter.py +3 -3
  121. lusid/models/date_time_list_compliance_parameter.py +3 -3
  122. lusid/models/{upsert_reconciliation_run_request.py → day_month.py} +15 -15
  123. lusid/models/decimal_compliance_parameter.py +3 -3
  124. lusid/models/decimal_list_compliance_parameter.py +3 -3
  125. lusid/models/dialect.py +9 -3
  126. lusid/models/diary_entry.py +1 -1
  127. lusid/models/diary_entry_request.py +1 -1
  128. lusid/models/discount_factor_curve_data.py +3 -3
  129. lusid/models/dividend_option_event.py +129 -0
  130. lusid/models/dividend_reinvestment_event.py +124 -0
  131. lusid/models/election_specification.py +73 -0
  132. lusid/models/eligibility_calculation.py +71 -0
  133. lusid/models/empty_model_options.py +3 -3
  134. lusid/models/equity.py +8 -6
  135. lusid/models/equity_curve_by_prices_data.py +3 -3
  136. lusid/models/equity_model_options.py +3 -3
  137. lusid/models/equity_option.py +3 -3
  138. lusid/models/equity_swap.py +4 -4
  139. lusid/models/equity_vol_surface_data.py +3 -3
  140. lusid/models/exchange_traded_option.py +3 -3
  141. lusid/models/exercise_event.py +5 -7
  142. lusid/models/exotic_instrument.py +3 -3
  143. lusid/models/filter_predicate_compliance_parameter.py +91 -0
  144. lusid/models/filter_step.py +101 -0
  145. lusid/models/fixed_leg.py +3 -3
  146. lusid/models/fixed_schedule.py +4 -9
  147. lusid/models/flexible_loan.py +105 -0
  148. lusid/models/float_schedule.py +20 -12
  149. lusid/models/floating_leg.py +3 -3
  150. lusid/models/flow_convention_name.py +1 -1
  151. lusid/models/flow_conventions.py +1 -1
  152. lusid/models/forward_rate_agreement.py +3 -3
  153. lusid/models/from_recipe.py +81 -0
  154. lusid/models/fund.py +182 -0
  155. lusid/models/fund_properties.py +115 -0
  156. lusid/models/fund_request.py +165 -0
  157. lusid/models/fund_share_class.py +99 -0
  158. lusid/models/funding_leg.py +3 -3
  159. lusid/models/funding_leg_options.py +3 -3
  160. lusid/models/future.py +3 -3
  161. lusid/models/fx_conventions.py +73 -0
  162. lusid/models/fx_forward.py +8 -6
  163. lusid/models/fx_forward_curve_by_quote_reference.py +4 -4
  164. lusid/models/fx_forward_curve_data.py +3 -3
  165. lusid/models/fx_forward_model_options.py +3 -3
  166. lusid/models/fx_forward_pips_curve_data.py +3 -3
  167. lusid/models/fx_forward_settlement_event.py +136 -0
  168. lusid/models/fx_forward_tenor_curve_data.py +4 -4
  169. lusid/models/fx_forward_tenor_pips_curve_data.py +4 -4
  170. lusid/models/fx_linked_notional_schedule.py +108 -0
  171. lusid/models/fx_option.py +3 -3
  172. lusid/models/fx_rate_schedule.py +3 -3
  173. lusid/models/fx_swap.py +4 -4
  174. lusid/models/fx_vol_surface_data.py +3 -3
  175. lusid/models/{reconciliation_run.py → get_recipe_composer_response.py} +15 -15
  176. lusid/models/group_by_selector_compliance_parameter.py +91 -0
  177. lusid/models/group_by_step.py +101 -0
  178. lusid/models/group_filter_predicate_compliance_parameter.py +91 -0
  179. lusid/models/group_filter_step.py +110 -0
  180. lusid/models/group_of_market_data_key_rules.py +79 -0
  181. lusid/models/index_convention.py +1 -1
  182. lusid/models/index_model_options.py +3 -3
  183. lusid/models/inflation_index_conventions.py +2 -2
  184. lusid/models/inflation_leg.py +3 -3
  185. lusid/models/inflation_linked_bond.py +3 -3
  186. lusid/models/inflation_swap.py +4 -4
  187. lusid/models/informational_error_event.py +3 -3
  188. lusid/models/informational_event.py +4 -6
  189. lusid/models/instrument_event.py +12 -5
  190. lusid/models/instrument_event_configuration.py +74 -0
  191. lusid/models/instrument_event_holder.py +12 -3
  192. lusid/models/instrument_event_type.py +7 -0
  193. lusid/models/instrument_leg.py +3 -3
  194. lusid/models/instrument_list_compliance_parameter.py +3 -3
  195. lusid/models/instrument_payment_diary_leg.py +5 -3
  196. lusid/models/instrument_resolution_detail.py +105 -0
  197. lusid/models/instrument_type.py +2 -0
  198. lusid/models/interest_rate_swap.py +4 -4
  199. lusid/models/interest_rate_swaption.py +3 -3
  200. lusid/models/intermediate_compliance_step.py +110 -0
  201. lusid/models/ir_vol_cube_data.py +3 -3
  202. lusid/models/journal_entry_line.py +34 -3
  203. lusid/models/journal_entry_lines_query_parameters.py +1 -1
  204. lusid/models/label_value_set.py +1 -1
  205. lusid/models/leg_definition.py +16 -3
  206. lusid/models/lineage_member.py +87 -0
  207. lusid/models/lock_period_diary_entry_request.py +91 -0
  208. lusid/models/lusid_instrument.py +7 -5
  209. lusid/models/lusid_trade_ticket.py +8 -1
  210. lusid/models/market_context.py +17 -2
  211. lusid/models/market_data_type.py +1 -0
  212. lusid/models/maturity_event.py +91 -0
  213. lusid/models/model_options.py +5 -6
  214. lusid/models/model_options_type.py +0 -1
  215. lusid/models/model_selection.py +3 -3
  216. lusid/models/move_orders_to_different_blocks_request.py +77 -0
  217. lusid/models/moved_order_to_different_block_response.py +85 -0
  218. lusid/models/movement_type.py +2 -0
  219. lusid/models/multi_currency_amounts.py +71 -0
  220. lusid/models/opaque_market_data.py +3 -3
  221. lusid/models/opaque_model_options.py +3 -3
  222. lusid/models/open_event.py +3 -3
  223. lusid/models/optionality_schedule.py +3 -3
  224. lusid/models/order_graph_block.py +4 -2
  225. lusid/models/order_graph_block_order_detail.py +16 -2
  226. lusid/models/output_transaction.py +9 -2
  227. lusid/models/paged_resource_list_of_cleardown_module_response.py +113 -0
  228. lusid/models/{paged_resource_list_of_reconciliation_run_break.py → paged_resource_list_of_cleardown_module_rule.py} +11 -11
  229. lusid/models/{paged_resource_list_of_reconciliation_run.py → paged_resource_list_of_fund.py} +11 -11
  230. lusid/models/paged_resource_list_of_property_definition.py +113 -0
  231. lusid/models/paged_resource_list_of_transaction_template.py +113 -0
  232. lusid/models/paged_resource_list_of_transaction_template_specification.py +113 -0
  233. lusid/models/participation_request.py +3 -9
  234. lusid/models/performance_returns_metric.py +1 -1
  235. lusid/models/period_diary_entries_reopened_response.py +104 -0
  236. lusid/models/place_blocks_request.py +77 -0
  237. lusid/models/portfolio.py +15 -2
  238. lusid/models/portfolio_details.py +15 -2
  239. lusid/models/portfolio_group_id_compliance_parameter.py +3 -3
  240. lusid/models/portfolio_group_id_list_compliance_parameter.py +3 -3
  241. lusid/models/portfolio_holding.py +27 -2
  242. lusid/models/portfolio_id_compliance_parameter.py +3 -3
  243. lusid/models/portfolio_id_list_compliance_parameter.py +3 -3
  244. lusid/models/posting_module_rule.py +29 -4
  245. lusid/models/pricing_model.py +2 -1
  246. lusid/models/property_definition.py +17 -4
  247. lusid/models/property_definition_search_result.py +3 -3
  248. lusid/models/property_domain.py +2 -0
  249. lusid/models/property_key_compliance_parameter.py +3 -3
  250. lusid/models/property_key_list_compliance_parameter.py +3 -3
  251. lusid/models/raw_vendor_event.py +5 -7
  252. lusid/models/re_open_period_diary_entry_request.py +84 -0
  253. lusid/models/recipe_block.py +87 -0
  254. lusid/models/recipe_composer.py +100 -0
  255. lusid/models/{reconciliation_break_id.py → recipe_value.py} +22 -23
  256. lusid/models/recombine_step.py +101 -0
  257. lusid/models/reference_instrument.py +3 -3
  258. lusid/models/relative_date_offset.py +71 -0
  259. lusid/models/repo.py +3 -3
  260. lusid/models/reset_event.py +4 -6
  261. lusid/models/resource_list_of_block_and_orders.py +113 -0
  262. lusid/models/resource_list_of_get_recipe_composer_response.py +113 -0
  263. lusid/models/resource_list_of_moved_order_to_different_block_response.py +113 -0
  264. lusid/models/schedule.py +6 -5
  265. lusid/models/schedule_type.py +1 -0
  266. lusid/models/script_map_reference.py +94 -0
  267. lusid/models/security_election.py +86 -0
  268. lusid/models/side_definition.py +1 -8
  269. lusid/models/sides_definition_request.py +1 -8
  270. lusid/models/simple_cash_flow_loan.py +3 -3
  271. lusid/models/simple_instrument.py +3 -3
  272. lusid/models/step_schedule.py +3 -3
  273. lusid/models/stock_split_event.py +3 -3
  274. lusid/models/string_compliance_parameter.py +3 -3
  275. lusid/models/string_list_compliance_parameter.py +3 -3
  276. lusid/models/template_field.py +77 -0
  277. lusid/models/term_deposit.py +3 -3
  278. lusid/models/total_return_swap.py +16 -16
  279. lusid/models/transaction_configuration_movement_data.py +3 -3
  280. lusid/models/transaction_configuration_movement_data_request.py +3 -3
  281. lusid/models/transaction_currency_and_amount.py +81 -0
  282. lusid/models/transaction_field_map.py +97 -0
  283. lusid/models/transaction_price.py +3 -3
  284. lusid/models/transaction_price_and_type.py +81 -0
  285. lusid/models/transaction_price_type.py +1 -0
  286. lusid/models/transaction_property_map.py +80 -0
  287. lusid/models/transaction_template.py +100 -0
  288. lusid/models/transaction_template_request.py +79 -0
  289. lusid/models/transaction_template_specification.py +99 -0
  290. lusid/models/transaction_type_alias.py +0 -7
  291. lusid/models/transaction_type_calculation.py +1 -1
  292. lusid/models/transition_event.py +3 -3
  293. lusid/models/translation_context.py +75 -0
  294. lusid/models/translation_script.py +9 -3
  295. lusid/models/trial_balance.py +46 -11
  296. lusid/models/trial_balance_query_parameters.py +15 -6
  297. lusid/models/trigger_event.py +3 -3
  298. lusid/models/units_ratio.py +71 -0
  299. lusid/models/{compliance_run_summary.py → upsert_compliance_run_summary_result.py} +8 -8
  300. lusid/models/upsert_dialect_request.py +79 -0
  301. lusid/models/upsert_instrument_event_request.py +12 -3
  302. lusid/models/upsert_quote_request.py +1 -1
  303. lusid/models/upsert_recipe_composer_request.py +73 -0
  304. lusid/models/upsert_recipe_request.py +3 -9
  305. lusid/models/upsert_translation_script_request.py +75 -0
  306. lusid/models/valuation_schedule.py +10 -3
  307. lusid/models/weighted_instrument.py +13 -2
  308. lusid/models/weighted_instrument_in_line_lookup_identifiers.py +89 -0
  309. lusid/models/yield_curve_data.py +3 -3
  310. lusid/rest.py +1 -1
  311. {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.441.dist-info}/METADATA +227 -48
  312. {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.441.dist-info}/RECORD +313 -235
  313. {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.441.dist-info}/WHEEL +1 -1
  314. lusid/extensions/api_client_builder.py +0 -138
  315. lusid/models/configuration_recipe_snippet.py +0 -139
  316. lusid/models/je_lines_query_parameters.py +0 -105
  317. lusid/models/look_up_pricing_model_options.py +0 -93
  318. lusid/models/reconciliation_run_id.py +0 -85
  319. lusid/models/upsert_reconciliation_break_request.py +0 -98
@@ -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")
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'):
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')")
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")
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'):
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')")
87
87
  return value
88
88
 
89
89
  @validator('life_time')
@@ -62,10 +62,12 @@ 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'
69
71
 
70
72
  @classmethod
71
73
  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:
@@ -28,15 +28,15 @@ class PropertyKeyListComplianceParameter(ComplianceParameter):
28
28
  PropertyKeyListComplianceParameter
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:
@@ -30,16 +30,15 @@ class RawVendorEvent(InstrumentEvent):
30
30
  effective_at: datetime = Field(..., alias="effectiveAt", description="The effective date of the event")
31
31
  event_value: LifeCycleEventValue = Field(..., alias="eventValue")
32
32
  event_type: constr(strict=True, min_length=1) = Field(..., alias="eventType", description="What type of internal event does this represent; reset, exercise, amortisation etc.")
33
- event_status: constr(strict=True, min_length=1) = Field(..., alias="eventStatus", description="What is the event status, is it a known (ie historic) or unknown (ie projected) event?")
34
- instrument_event_type: StrictStr = Field(..., alias="instrumentEventType", description="The Type of Event. The available values are: TransitionEvent, InformationalEvent, OpenEvent, CloseEvent, StockSplitEvent, BondDefaultEvent, CashDividendEvent, AmortisationEvent, CashFlowEvent, ExerciseEvent, ResetEvent, TriggerEvent, RawVendorEvent, InformationalErrorEvent")
33
+ 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")
35
34
  additional_properties: Dict[str, Any] = {}
36
- __properties = ["instrumentEventType", "effectiveAt", "eventValue", "eventType", "eventStatus"]
35
+ __properties = ["instrumentEventType", "effectiveAt", "eventValue", "eventType"]
37
36
 
38
37
  @validator('instrument_event_type')
39
38
  def instrument_event_type_validate_enum(cls, value):
40
39
  """Validates the enum"""
41
- if value not in ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent'):
42
- raise ValueError("must be one of enum values ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent')")
40
+ 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'):
41
+ 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')")
43
42
  return value
44
43
 
45
44
  class Config:
@@ -90,8 +89,7 @@ class RawVendorEvent(InstrumentEvent):
90
89
  "instrument_event_type": obj.get("instrumentEventType"),
91
90
  "effective_at": obj.get("effectiveAt"),
92
91
  "event_value": LifeCycleEventValue.from_dict(obj.get("eventValue")) if obj.get("eventValue") is not None else None,
93
- "event_type": obj.get("eventType"),
94
- "event_status": obj.get("eventStatus")
92
+ "event_type": obj.get("eventType")
95
93
  })
96
94
  # store additional fields in additional_properties
97
95
  for _key in obj.keys():
@@ -0,0 +1,84 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict, Optional
22
+ from pydantic import BaseModel, Field, constr, validator
23
+
24
+ class ReOpenPeriodDiaryEntryRequest(BaseModel):
25
+ """
26
+ A definition for the period you wish to re open # noqa: E501
27
+ """
28
+ diary_entry_code: Optional[constr(strict=True, max_length=64, min_length=0)] = Field(None, alias="diaryEntryCode", description="Unique code assigned to a period. When left blank last period will be used.")
29
+ __properties = ["diaryEntryCode"]
30
+
31
+ @validator('diary_entry_code')
32
+ def diary_entry_code_validate_regular_expression(cls, value):
33
+ """Validates the regular expression"""
34
+ if value is None:
35
+ return value
36
+
37
+ if not re.match(r"^[a-zA-Z0-9\-_]+$", value):
38
+ raise ValueError(r"must validate the regular expression /^[a-zA-Z0-9\-_]+$/")
39
+ return value
40
+
41
+ class Config:
42
+ """Pydantic configuration"""
43
+ allow_population_by_field_name = True
44
+ validate_assignment = True
45
+
46
+ def to_str(self) -> str:
47
+ """Returns the string representation of the model using alias"""
48
+ return pprint.pformat(self.dict(by_alias=True))
49
+
50
+ def to_json(self) -> str:
51
+ """Returns the JSON representation of the model using alias"""
52
+ return json.dumps(self.to_dict())
53
+
54
+ @classmethod
55
+ def from_json(cls, json_str: str) -> ReOpenPeriodDiaryEntryRequest:
56
+ """Create an instance of ReOpenPeriodDiaryEntryRequest from a JSON string"""
57
+ return cls.from_dict(json.loads(json_str))
58
+
59
+ def to_dict(self):
60
+ """Returns the dictionary representation of the model using alias"""
61
+ _dict = self.dict(by_alias=True,
62
+ exclude={
63
+ },
64
+ exclude_none=True)
65
+ # set to None if diary_entry_code (nullable) is None
66
+ # and __fields_set__ contains the field
67
+ if self.diary_entry_code is None and "diary_entry_code" in self.__fields_set__:
68
+ _dict['diaryEntryCode'] = None
69
+
70
+ return _dict
71
+
72
+ @classmethod
73
+ def from_dict(cls, obj: dict) -> ReOpenPeriodDiaryEntryRequest:
74
+ """Create an instance of ReOpenPeriodDiaryEntryRequest from a dict"""
75
+ if obj is None:
76
+ return None
77
+
78
+ if not isinstance(obj, dict):
79
+ return ReOpenPeriodDiaryEntryRequest.parse_obj(obj)
80
+
81
+ _obj = ReOpenPeriodDiaryEntryRequest.parse_obj({
82
+ "diary_entry_code": obj.get("diaryEntryCode")
83
+ })
84
+ return _obj
@@ -0,0 +1,87 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict, Optional
22
+ from pydantic import BaseModel, Field, StrictStr
23
+ from lusid.models.recipe_value import RecipeValue
24
+
25
+ class RecipeBlock(BaseModel):
26
+ """
27
+ An atomic operation used in Recipe composer to compose a Configuration Recipe # noqa: E501
28
+ """
29
+ value: Optional[RecipeValue] = None
30
+ path: Optional[StrictStr] = Field(None, description="Path of the Value that the operation is to be performed on.")
31
+ op: Optional[StrictStr] = Field(None, description="Operation to be performed on the part of the value.")
32
+ __properties = ["value", "path", "op"]
33
+
34
+ class Config:
35
+ """Pydantic configuration"""
36
+ allow_population_by_field_name = True
37
+ validate_assignment = True
38
+
39
+ def to_str(self) -> str:
40
+ """Returns the string representation of the model using alias"""
41
+ return pprint.pformat(self.dict(by_alias=True))
42
+
43
+ def to_json(self) -> str:
44
+ """Returns the JSON representation of the model using alias"""
45
+ return json.dumps(self.to_dict())
46
+
47
+ @classmethod
48
+ def from_json(cls, json_str: str) -> RecipeBlock:
49
+ """Create an instance of RecipeBlock from a JSON string"""
50
+ return cls.from_dict(json.loads(json_str))
51
+
52
+ def to_dict(self):
53
+ """Returns the dictionary representation of the model using alias"""
54
+ _dict = self.dict(by_alias=True,
55
+ exclude={
56
+ },
57
+ exclude_none=True)
58
+ # override the default output from pydantic by calling `to_dict()` of value
59
+ if self.value:
60
+ _dict['value'] = self.value.to_dict()
61
+ # set to None if path (nullable) is None
62
+ # and __fields_set__ contains the field
63
+ if self.path is None and "path" in self.__fields_set__:
64
+ _dict['path'] = None
65
+
66
+ # set to None if op (nullable) is None
67
+ # and __fields_set__ contains the field
68
+ if self.op is None and "op" in self.__fields_set__:
69
+ _dict['op'] = None
70
+
71
+ return _dict
72
+
73
+ @classmethod
74
+ def from_dict(cls, obj: dict) -> RecipeBlock:
75
+ """Create an instance of RecipeBlock from a dict"""
76
+ if obj is None:
77
+ return None
78
+
79
+ if not isinstance(obj, dict):
80
+ return RecipeBlock.parse_obj(obj)
81
+
82
+ _obj = RecipeBlock.parse_obj({
83
+ "value": RecipeValue.from_dict(obj.get("value")) if obj.get("value") is not None else None,
84
+ "path": obj.get("path"),
85
+ "op": obj.get("op")
86
+ })
87
+ return _obj
@@ -0,0 +1,100 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict, List, Optional
22
+ from pydantic import BaseModel, Field, conlist, constr, validator
23
+ from lusid.models.recipe_block import RecipeBlock
24
+
25
+ class RecipeComposer(BaseModel):
26
+ """
27
+ Recipe composer is an object used to dynamically compose Configuration Recipe from atomic operations. # noqa: E501
28
+ """
29
+ scope: constr(strict=True, max_length=64, min_length=1) = Field(..., description="The scope used when updating or inserting the Recipe Composer.")
30
+ code: constr(strict=True, max_length=64, min_length=1) = Field(..., description="User given string name (code) to identify the recipe.")
31
+ operations: Optional[conlist(RecipeBlock)] = Field(None, description="Atomic operations used to compose a Configuration Recipe.")
32
+ __properties = ["scope", "code", "operations"]
33
+
34
+ @validator('scope')
35
+ def scope_validate_regular_expression(cls, value):
36
+ """Validates the regular expression"""
37
+ if not re.match(r"^[a-zA-Z0-9\-_]+$", value):
38
+ raise ValueError(r"must validate the regular expression /^[a-zA-Z0-9\-_]+$/")
39
+ return value
40
+
41
+ @validator('code')
42
+ def code_validate_regular_expression(cls, value):
43
+ """Validates the regular expression"""
44
+ if not re.match(r"^[a-zA-Z0-9\-_]+$", value):
45
+ raise ValueError(r"must validate the regular expression /^[a-zA-Z0-9\-_]+$/")
46
+ return value
47
+
48
+ class Config:
49
+ """Pydantic configuration"""
50
+ allow_population_by_field_name = True
51
+ validate_assignment = True
52
+
53
+ def to_str(self) -> str:
54
+ """Returns the string representation of the model using alias"""
55
+ return pprint.pformat(self.dict(by_alias=True))
56
+
57
+ def to_json(self) -> str:
58
+ """Returns the JSON representation of the model using alias"""
59
+ return json.dumps(self.to_dict())
60
+
61
+ @classmethod
62
+ def from_json(cls, json_str: str) -> RecipeComposer:
63
+ """Create an instance of RecipeComposer from a JSON string"""
64
+ return cls.from_dict(json.loads(json_str))
65
+
66
+ def to_dict(self):
67
+ """Returns the dictionary representation of the model using alias"""
68
+ _dict = self.dict(by_alias=True,
69
+ exclude={
70
+ },
71
+ exclude_none=True)
72
+ # override the default output from pydantic by calling `to_dict()` of each item in operations (list)
73
+ _items = []
74
+ if self.operations:
75
+ for _item in self.operations:
76
+ if _item:
77
+ _items.append(_item.to_dict())
78
+ _dict['operations'] = _items
79
+ # set to None if operations (nullable) is None
80
+ # and __fields_set__ contains the field
81
+ if self.operations is None and "operations" in self.__fields_set__:
82
+ _dict['operations'] = None
83
+
84
+ return _dict
85
+
86
+ @classmethod
87
+ def from_dict(cls, obj: dict) -> RecipeComposer:
88
+ """Create an instance of RecipeComposer from a dict"""
89
+ if obj is None:
90
+ return None
91
+
92
+ if not isinstance(obj, dict):
93
+ return RecipeComposer.parse_obj(obj)
94
+
95
+ _obj = RecipeComposer.parse_obj({
96
+ "scope": obj.get("scope"),
97
+ "code": obj.get("code"),
98
+ "operations": [RecipeBlock.from_dict(_item) for _item in obj.get("operations")] if obj.get("operations") is not None else None
99
+ })
100
+ return _obj
@@ -20,16 +20,16 @@ import json
20
20
 
21
21
  from typing import Any, Dict, Optional
22
22
  from pydantic import BaseModel, Field, StrictStr
23
- from lusid.models.reconciliation_run_id import ReconciliationRunId
23
+ from lusid.models.from_recipe import FromRecipe
24
24
 
25
- class ReconciliationBreakId(BaseModel):
25
+ class RecipeValue(BaseModel):
26
26
  """
27
- ReconciliationBreakId
27
+ Recipe value represents a data that is then used to perform an atomic operation which is then used in composition of Configuration Recipe. This object either includes the data itself (in json form or as simple string) or is a reference where the data can be obtained from (from a Configuration Recipe say). Only one field is to be populated. # noqa: E501
28
28
  """
29
- reconciliation_run: Optional[ReconciliationRunId] = Field(None, alias="reconciliationRun")
30
- break_id: Optional[StrictStr] = Field(None, alias="breakId")
31
- as_string: Optional[StrictStr] = Field(None, alias="asString")
32
- __properties = ["reconciliationRun", "breakId", "asString"]
29
+ as_json: Optional[StrictStr] = Field(None, alias="asJson", description="Field to allow providing a potentially complex json value.")
30
+ as_string: Optional[StrictStr] = Field(None, alias="asString", description="For simple value, a single input value, note complex nested objects are not allowed here.")
31
+ from_recipe: Optional[FromRecipe] = Field(None, alias="fromRecipe")
32
+ __properties = ["asJson", "asString", "fromRecipe"]
33
33
 
34
34
  class Config:
35
35
  """Pydantic configuration"""
@@ -45,24 +45,23 @@ class ReconciliationBreakId(BaseModel):
45
45
  return json.dumps(self.to_dict())
46
46
 
47
47
  @classmethod
48
- def from_json(cls, json_str: str) -> ReconciliationBreakId:
49
- """Create an instance of ReconciliationBreakId from a JSON string"""
48
+ def from_json(cls, json_str: str) -> RecipeValue:
49
+ """Create an instance of RecipeValue from a JSON string"""
50
50
  return cls.from_dict(json.loads(json_str))
51
51
 
52
52
  def to_dict(self):
53
53
  """Returns the dictionary representation of the model using alias"""
54
54
  _dict = self.dict(by_alias=True,
55
55
  exclude={
56
- "as_string",
57
56
  },
58
57
  exclude_none=True)
59
- # override the default output from pydantic by calling `to_dict()` of reconciliation_run
60
- if self.reconciliation_run:
61
- _dict['reconciliationRun'] = self.reconciliation_run.to_dict()
62
- # set to None if break_id (nullable) is None
58
+ # override the default output from pydantic by calling `to_dict()` of from_recipe
59
+ if self.from_recipe:
60
+ _dict['fromRecipe'] = self.from_recipe.to_dict()
61
+ # set to None if as_json (nullable) is None
63
62
  # and __fields_set__ contains the field
64
- if self.break_id is None and "break_id" in self.__fields_set__:
65
- _dict['breakId'] = None
63
+ if self.as_json is None and "as_json" in self.__fields_set__:
64
+ _dict['asJson'] = None
66
65
 
67
66
  # set to None if as_string (nullable) is None
68
67
  # and __fields_set__ contains the field
@@ -72,17 +71,17 @@ class ReconciliationBreakId(BaseModel):
72
71
  return _dict
73
72
 
74
73
  @classmethod
75
- def from_dict(cls, obj: dict) -> ReconciliationBreakId:
76
- """Create an instance of ReconciliationBreakId from a dict"""
74
+ def from_dict(cls, obj: dict) -> RecipeValue:
75
+ """Create an instance of RecipeValue from a dict"""
77
76
  if obj is None:
78
77
  return None
79
78
 
80
79
  if not isinstance(obj, dict):
81
- return ReconciliationBreakId.parse_obj(obj)
80
+ return RecipeValue.parse_obj(obj)
82
81
 
83
- _obj = ReconciliationBreakId.parse_obj({
84
- "reconciliation_run": ReconciliationRunId.from_dict(obj.get("reconciliationRun")) if obj.get("reconciliationRun") is not None else None,
85
- "break_id": obj.get("breakId"),
86
- "as_string": obj.get("asString")
82
+ _obj = RecipeValue.parse_obj({
83
+ "as_json": obj.get("asJson"),
84
+ "as_string": obj.get("asString"),
85
+ "from_recipe": FromRecipe.from_dict(obj.get("fromRecipe")) if obj.get("fromRecipe") is not None else None
87
86
  })
88
87
  return _obj