lusid-sdk 2.1.405__py3-none-any.whl → 2.1.537__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.
Files changed (294) hide show
  1. lusid/__init__.py +142 -8
  2. lusid/api/__init__.py +2 -2
  3. lusid/api/abor_api.py +126 -133
  4. lusid/api/abor_configuration_api.py +46 -45
  5. lusid/api/address_key_definition_api.py +28 -27
  6. lusid/api/aggregation_api.py +37 -36
  7. lusid/api/allocations_api.py +39 -38
  8. lusid/api/amortisation_rule_sets_api.py +55 -54
  9. lusid/api/application_metadata_api.py +28 -27
  10. lusid/api/blocks_api.py +37 -36
  11. lusid/api/calendars_api.py +469 -111
  12. lusid/api/chart_of_accounts_api.py +454 -279
  13. lusid/api/complex_market_data_api.py +37 -36
  14. lusid/api/compliance_api.py +136 -135
  15. lusid/api/configuration_recipe_api.py +100 -99
  16. lusid/api/conventions_api.py +109 -108
  17. lusid/api/corporate_action_sources_api.py +82 -81
  18. lusid/api/counterparties_api.py +73 -72
  19. lusid/api/custom_entities_api.py +102 -101
  20. lusid/api/custom_entity_definitions_api.py +37 -36
  21. lusid/api/custom_entity_types_api.py +37 -36
  22. lusid/api/cut_label_definitions_api.py +46 -45
  23. lusid/api/data_types_api.py +248 -72
  24. lusid/api/derived_transaction_portfolios_api.py +19 -18
  25. lusid/api/entities_api.py +431 -46
  26. lusid/api/executions_api.py +37 -36
  27. lusid/api/fee_types_api.py +55 -54
  28. lusid/api/{fund_configurations_api.py → fund_configuration_api.py} +222 -46
  29. lusid/api/funds_api.py +337 -162
  30. lusid/api/group_reconciliations_api.py +2182 -63
  31. lusid/api/instrument_event_types_api.py +64 -63
  32. lusid/api/instrument_events_api.py +46 -45
  33. lusid/api/instruments_api.py +374 -186
  34. lusid/api/legacy_compliance_api.py +73 -72
  35. lusid/api/legal_entities_api.py +167 -166
  36. lusid/api/order_graph_api.py +32 -31
  37. lusid/api/order_instructions_api.py +37 -36
  38. lusid/api/order_management_api.py +251 -90
  39. lusid/api/orders_api.py +37 -36
  40. lusid/api/packages_api.py +37 -36
  41. lusid/api/participations_api.py +37 -36
  42. lusid/api/persons_api.py +163 -162
  43. lusid/api/placements_api.py +37 -36
  44. lusid/api/portfolio_groups_api.py +235 -234
  45. lusid/api/portfolios_api.py +307 -309
  46. lusid/api/property_definitions_api.py +100 -99
  47. lusid/api/queryable_keys_api.py +10 -9
  48. lusid/api/quotes_api.py +82 -81
  49. lusid/api/reconciliations_api.py +136 -135
  50. lusid/api/reference_lists_api.py +39 -38
  51. lusid/api/reference_portfolio_api.py +213 -36
  52. lusid/api/relation_definitions_api.py +28 -27
  53. lusid/api/relations_api.py +19 -18
  54. lusid/api/relationship_definitions_api.py +46 -45
  55. lusid/api/relationships_api.py +19 -18
  56. lusid/api/schemas_api.py +37 -36
  57. lusid/api/scopes_api.py +19 -18
  58. lusid/api/scripted_translation_api.py +73 -72
  59. lusid/api/search_api.py +37 -36
  60. lusid/api/sequences_api.py +37 -36
  61. lusid/api/staged_modifications_api.py +37 -36
  62. lusid/api/staging_rule_set_api.py +46 -45
  63. lusid/api/structured_result_data_api.py +82 -81
  64. lusid/api/system_configuration_api.py +64 -63
  65. lusid/api/tax_rule_sets_api.py +46 -45
  66. lusid/api/transaction_configuration_api.py +100 -99
  67. lusid/api/transaction_fees_api.py +46 -45
  68. lusid/api/transaction_portfolios_api.py +771 -328
  69. lusid/api/translation_api.py +19 -18
  70. lusid/api/workspace_api.py +181 -180
  71. lusid/api_client.py +26 -17
  72. lusid/configuration.py +87 -2
  73. lusid/extensions/api_client.py +25 -17
  74. lusid/extensions/api_client_factory.py +14 -5
  75. lusid/extensions/api_configuration.py +50 -1
  76. lusid/extensions/configuration_loaders.py +39 -11
  77. lusid/extensions/configuration_options.py +67 -0
  78. lusid/extensions/rest.py +78 -26
  79. lusid/extensions/retry.py +109 -37
  80. lusid/models/__init__.py +140 -6
  81. lusid/models/access_metadata_value.py +1 -1
  82. lusid/models/accounting_method.py +7 -0
  83. lusid/models/accumulation_event.py +3 -3
  84. lusid/models/address_key_list.py +3 -3
  85. lusid/models/amortisation_event.py +3 -3
  86. lusid/models/amount.py +69 -0
  87. lusid/models/applicable_instrument_event.py +7 -2
  88. lusid/models/asset_leg.py +1 -1
  89. lusid/models/basket.py +3 -3
  90. lusid/models/batch_update_user_review_for_comparison_result_request.py +81 -0
  91. lusid/models/batch_update_user_review_for_comparison_result_response.py +146 -0
  92. lusid/models/batch_upsert_dates_for_calendar_response.py +146 -0
  93. lusid/models/batch_upsert_portfolio_access_metadata_request.py +27 -17
  94. lusid/models/batch_upsert_portfolio_access_metadata_response.py +56 -16
  95. lusid/models/{metadata_key_value.py → batch_upsert_portfolio_access_metadata_response_item.py} +15 -9
  96. lusid/models/bond.py +3 -3
  97. lusid/models/bond_coupon_event.py +10 -5
  98. lusid/models/bond_default_event.py +3 -3
  99. lusid/models/bond_principal_event.py +10 -5
  100. lusid/models/bonus_issue_event.py +166 -0
  101. lusid/models/{component_rule.py → break_code_source.py} +17 -21
  102. lusid/models/call_on_intermediate_securities_event.py +139 -0
  103. lusid/models/cancel_order_and_move_remaining_result.py +84 -0
  104. lusid/models/cancel_orders_and_move_remaining_request.py +83 -0
  105. lusid/models/cancel_orders_and_move_remaining_response.py +153 -0
  106. lusid/models/cap_floor.py +3 -3
  107. lusid/models/capital_distribution_event.py +3 -3
  108. lusid/models/cash.py +3 -3
  109. lusid/models/cash_dividend_event.py +3 -3
  110. lusid/models/cash_flow_event.py +3 -3
  111. lusid/models/cash_perpetual.py +3 -3
  112. lusid/models/cds_credit_event.py +6 -6
  113. lusid/models/cds_index.py +3 -3
  114. lusid/models/cdx_credit_event.py +6 -6
  115. lusid/models/change_interval.py +123 -0
  116. lusid/models/change_interval_with_order_management_detail.py +3 -3
  117. lusid/models/close_event.py +3 -3
  118. lusid/models/comparison_attribute_value_pair.py +71 -0
  119. lusid/models/complex_bond.py +3 -3
  120. lusid/models/component_transaction.py +10 -3
  121. lusid/models/contract_for_difference.py +3 -3
  122. lusid/models/create_derived_transaction_portfolio_request.py +3 -3
  123. lusid/models/create_group_reconciliation_definition_request.py +113 -0
  124. lusid/models/create_staging_rule_set_request.py +1 -6
  125. lusid/models/create_transaction_portfolio_request.py +3 -3
  126. lusid/models/credit_default_swap.py +3 -3
  127. lusid/models/credit_premium_cash_flow_event.py +3 -3
  128. lusid/models/custodian_account_request.py +1 -1
  129. lusid/models/custom_entity_entity.py +146 -0
  130. lusid/models/custom_entity_response.py +7 -1
  131. lusid/models/decimal_list.py +3 -3
  132. lusid/models/delete_instrument_properties_response.py +7 -1
  133. lusid/models/delete_instrument_response.py +7 -1
  134. lusid/models/delete_instruments_response.py +22 -1
  135. lusid/models/deleted_entity_response.py +7 -1
  136. lusid/models/diary_entry_request.py +10 -1
  137. lusid/models/dividend_option_event.py +3 -3
  138. lusid/models/dividend_reinvestment_event.py +9 -4
  139. lusid/models/effective_range.py +71 -0
  140. lusid/models/equity.py +3 -3
  141. lusid/models/equity_option.py +22 -7
  142. lusid/models/equity_swap.py +3 -3
  143. lusid/models/exchange_traded_option.py +3 -3
  144. lusid/models/exchange_traded_option_contract_details.py +1 -1
  145. lusid/models/exercise_event.py +3 -3
  146. lusid/models/exotic_instrument.py +3 -3
  147. lusid/models/expiry_event.py +3 -3
  148. lusid/models/fee.py +17 -10
  149. lusid/models/fee_request.py +20 -13
  150. lusid/models/fee_type.py +4 -4
  151. lusid/models/fee_type_request.py +3 -3
  152. lusid/models/fixed_leg.py +3 -3
  153. lusid/models/fixed_schedule.py +3 -3
  154. lusid/models/flexible_loan.py +3 -3
  155. lusid/models/float_schedule.py +4 -4
  156. lusid/models/floating_leg.py +3 -3
  157. lusid/models/flow_conventions.py +7 -1
  158. lusid/models/forward_rate_agreement.py +3 -3
  159. lusid/models/fund_configuration.py +44 -17
  160. lusid/models/fund_configuration_request.py +31 -19
  161. lusid/models/fund_id_list.py +99 -0
  162. lusid/models/fund_share_class.py +23 -8
  163. lusid/models/funding_leg.py +3 -3
  164. lusid/models/future.py +3 -3
  165. lusid/models/future_expiry_event.py +3 -3
  166. lusid/models/fx_forward.py +3 -3
  167. lusid/models/fx_forward_settlement_event.py +3 -3
  168. lusid/models/fx_option.py +3 -3
  169. lusid/models/fx_swap.py +3 -3
  170. lusid/models/group_reconciliation_aggregate_attribute_rule.py +2 -2
  171. lusid/models/group_reconciliation_aggregate_attribute_values.py +86 -0
  172. lusid/models/group_reconciliation_aggregate_comparison_rule_operand.py +1 -1
  173. lusid/models/group_reconciliation_comparison_result.py +148 -0
  174. lusid/models/group_reconciliation_core_attribute_values.py +86 -0
  175. lusid/models/group_reconciliation_core_comparison_rule_operand.py +1 -1
  176. lusid/models/group_reconciliation_date_pair.py +81 -0
  177. lusid/models/group_reconciliation_dates.py +78 -0
  178. lusid/models/group_reconciliation_definition.py +136 -0
  179. lusid/models/group_reconciliation_definition_comparison_ruleset_ids.py +83 -0
  180. lusid/models/group_reconciliation_definition_currencies.py +71 -0
  181. lusid/models/group_reconciliation_definition_portfolio_entity_ids.py +86 -0
  182. lusid/models/group_reconciliation_definition_recipe_ids.py +78 -0
  183. lusid/models/group_reconciliation_instance_id.py +71 -0
  184. lusid/models/group_reconciliation_result_statuses.py +89 -0
  185. lusid/models/group_reconciliation_result_types.py +96 -0
  186. lusid/models/group_reconciliation_review_statuses.py +96 -0
  187. lusid/models/group_reconciliation_run_details.py +76 -0
  188. lusid/models/group_reconciliation_run_request.py +75 -0
  189. lusid/models/{metadata_key_value_response.py → group_reconciliation_run_response.py} +20 -29
  190. lusid/models/group_reconciliation_summary.py +121 -0
  191. lusid/models/group_reconciliation_user_review.py +112 -0
  192. lusid/models/group_reconciliation_user_review_add.py +88 -0
  193. lusid/models/group_reconciliation_user_review_break_code.py +80 -0
  194. lusid/models/group_reconciliation_user_review_comment.py +80 -0
  195. lusid/models/group_reconciliation_user_review_match_key.py +80 -0
  196. lusid/models/group_reconciliation_user_review_remove.py +88 -0
  197. lusid/models/holding_contributor.py +11 -4
  198. lusid/models/holding_ids_request.py +69 -0
  199. lusid/models/inflation_leg.py +3 -3
  200. lusid/models/inflation_linked_bond.py +3 -3
  201. lusid/models/inflation_swap.py +3 -3
  202. lusid/models/informational_error_event.py +3 -3
  203. lusid/models/informational_event.py +3 -3
  204. lusid/models/instrument.py +7 -1
  205. lusid/models/instrument_definition.py +8 -2
  206. lusid/models/instrument_event.py +17 -5
  207. lusid/models/instrument_event_holder.py +9 -1
  208. lusid/models/instrument_event_type.py +12 -0
  209. lusid/models/instrument_leg.py +3 -3
  210. lusid/models/instrument_list.py +3 -3
  211. lusid/models/instrument_type.py +2 -0
  212. lusid/models/interest_rate_swap.py +3 -3
  213. lusid/models/interest_rate_swaption.py +3 -3
  214. lusid/models/intermediate_securities_distribution_event.py +140 -0
  215. lusid/models/lapse_election.py +73 -0
  216. lusid/models/loan_facility.py +97 -0
  217. lusid/models/lusid_instrument.py +7 -5
  218. lusid/models/market_data_key_rule.py +5 -3
  219. lusid/models/market_data_specific_rule.py +5 -3
  220. lusid/models/mastered_instrument.py +139 -0
  221. lusid/models/maturity_event.py +3 -3
  222. lusid/models/mbs_coupon_event.py +102 -0
  223. lusid/models/mbs_interest_deferral_event.py +102 -0
  224. lusid/models/mbs_interest_shortfall_event.py +102 -0
  225. lusid/models/mbs_principal_event.py +102 -0
  226. lusid/models/mbs_principal_write_off_event.py +102 -0
  227. lusid/models/merger_event.py +22 -22
  228. lusid/models/new_instrument.py +1 -1
  229. lusid/models/open_event.py +3 -3
  230. lusid/models/option_exercise_cash_event.py +144 -0
  231. lusid/models/option_exercise_election.py +73 -0
  232. lusid/models/option_exercise_physical_event.py +149 -0
  233. lusid/models/output_transaction.py +9 -2
  234. lusid/models/paged_resource_list_of_group_reconciliation_comparison_result.py +113 -0
  235. lusid/models/paged_resource_list_of_group_reconciliation_comparison_ruleset.py +113 -0
  236. lusid/models/paged_resource_list_of_group_reconciliation_definition.py +113 -0
  237. lusid/models/portfolio.py +3 -3
  238. lusid/models/portfolio_details.py +3 -3
  239. lusid/models/portfolio_group_id_list.py +3 -3
  240. lusid/models/portfolio_id_list.py +3 -3
  241. lusid/models/portfolio_without_href.py +3 -3
  242. lusid/models/pricing_options.py +8 -2
  243. lusid/models/property_list.py +3 -3
  244. lusid/models/protection_payout_cash_flow_event.py +102 -0
  245. lusid/models/raw_vendor_event.py +3 -3
  246. lusid/models/reference_instrument.py +3 -3
  247. lusid/models/reference_list.py +6 -5
  248. lusid/models/reference_list_type.py +1 -0
  249. lusid/models/repo.py +3 -3
  250. lusid/models/reset_event.py +3 -3
  251. lusid/models/resource_list_of_change_interval.py +113 -0
  252. lusid/models/resource_list_of_output_transaction.py +113 -0
  253. lusid/models/return_zero_pv_options.py +69 -0
  254. lusid/models/reverse_stock_split_event.py +21 -7
  255. lusid/models/scrip_dividend_event.py +3 -3
  256. lusid/models/settlement_cycle.py +79 -0
  257. lusid/models/share_class_dealing_breakdown.py +3 -2
  258. lusid/models/share_class_details.py +18 -1
  259. lusid/models/simple_cash_flow_loan.py +3 -3
  260. lusid/models/simple_instrument.py +3 -3
  261. lusid/models/simple_rounding_convention.py +76 -0
  262. lusid/models/spin_off_event.py +3 -3
  263. lusid/models/staged_modification_effective_range.py +2 -2
  264. lusid/models/stock_dividend_event.py +20 -6
  265. lusid/models/stock_split_event.py +3 -3
  266. lusid/models/string_list.py +3 -3
  267. lusid/models/swap_cash_flow_event.py +3 -3
  268. lusid/models/swap_principal_event.py +3 -3
  269. lusid/models/target_tax_lot.py +23 -2
  270. lusid/models/target_tax_lot_request.py +23 -2
  271. lusid/models/tender_event.py +172 -0
  272. lusid/models/term_deposit.py +3 -3
  273. lusid/models/total_return_swap.py +4 -4
  274. lusid/models/transaction.py +9 -2
  275. lusid/models/transaction_date_windows.py +85 -0
  276. lusid/models/transaction_price.py +3 -3
  277. lusid/models/transaction_price_type.py +2 -0
  278. lusid/models/transaction_request.py +9 -2
  279. lusid/models/transition_event.py +3 -3
  280. lusid/models/trigger_event.py +3 -3
  281. lusid/models/update_fee_type_request.py +4 -4
  282. lusid/models/update_group_reconciliation_comparison_ruleset_request.py +91 -0
  283. lusid/models/update_group_reconciliation_definition_request.py +107 -0
  284. lusid/models/update_reference_data_request.py +87 -0
  285. lusid/models/update_staging_rule_set_request.py +1 -6
  286. lusid/models/upsert_custom_entities_response.py +20 -1
  287. lusid/models/upsert_reference_portfolio_constituent_properties_request.py +84 -0
  288. lusid/models/upsert_reference_portfolio_constituent_properties_response.py +115 -0
  289. lusid/models/valuation_point_data_query_parameters.py +3 -3
  290. lusid/models/valuation_point_data_response.py +8 -13
  291. lusid/rest.py +70 -20
  292. {lusid_sdk-2.1.405.dist-info → lusid_sdk-2.1.537.dist-info}/METADATA +118 -26
  293. {lusid_sdk-2.1.405.dist-info → lusid_sdk-2.1.537.dist-info}/RECORD +294 -226
  294. {lusid_sdk-2.1.405.dist-info → lusid_sdk-2.1.537.dist-info}/WHEEL +0 -0
@@ -18,8 +18,8 @@ import re # noqa: F401
18
18
  import json
19
19
 
20
20
  from datetime import datetime
21
- from typing import Any, Dict, Optional, Union
22
- from pydantic.v1 import BaseModel, Field, StrictFloat, StrictInt, constr, validator
21
+ from typing import Any, Dict, List, Optional, Union
22
+ from pydantic.v1 import BaseModel, Field, StrictFloat, StrictInt, StrictStr, conlist, constr, validator
23
23
  from lusid.models.day_month import DayMonth
24
24
  from lusid.models.model_property import ModelProperty
25
25
  from lusid.models.resource_id import ResourceId
@@ -29,23 +29,24 @@ class FeeRequest(BaseModel):
29
29
  FeeRequest
30
30
  """
31
31
  code: constr(strict=True, max_length=64, min_length=1) = Field(..., description="The code of the Fee.")
32
- fee_type: ResourceId = Field(..., alias="feeType")
33
- name: constr(strict=True, max_length=256, min_length=1) = Field(..., description="The name of the Fee.")
32
+ fee_type_id: ResourceId = Field(..., alias="feeTypeId")
33
+ display_name: constr(strict=True, max_length=256, min_length=1) = Field(..., alias="displayName", description="The name of the Fee.")
34
34
  description: Optional[constr(strict=True, max_length=1024, min_length=0)] = Field(None, description="A description for the Fee.")
35
35
  origin: Optional[constr(strict=True, max_length=512, min_length=1)] = Field(None, description="The origin or source of the Fee accrual.")
36
- calculation_base: Optional[constr(strict=True, max_length=1024, min_length=0)] = Field(None, alias="calculationBase", description="The calculation base for the Fee that is calculated using a percentage. (TotalAnnualAccrualAmount and CalculationBase cannot both be present)")
36
+ calculation_base: Optional[constr(strict=True, max_length=1024, min_length=0)] = Field(None, alias="calculationBase", description="The calculation base for a Fee that is calculated using a percentage (TotalAnnualAccrualAmount and CalculationBase cannot both be present). When the Fee is a ShareClass Fee (i.e: when ShareClasses contains at least one value), each of the following would be a valid CalculationBase: \"10000.00\", \"ShareClass.GAV\", \"ShareClass.GAV - ShareClass.Fees[ShareClassFeeCode1].Amount\", \"ShareClass.Fees[ShareClassFeeCode1].CalculationBase\". When the Fee is a NonShareClassSpecific Fee (i.e: when ShareClasses contains no values), each of the following would be a valid CalculationBase: \"10000.00\", \"GAV\", \"GAV - Fees[NonClassSpecificFeeCode1].Amount\", \"Fees[NonClassSpecificFeeCode1].CalculationBase\". ")
37
37
  accrual_currency: constr(strict=True, max_length=3, min_length=0) = Field(..., alias="accrualCurrency", description="The accrual currency.")
38
38
  treatment: constr(strict=True, min_length=1) = Field(..., description="The accrual period of the Fee; 'Monthly' or 'Daily'.")
39
39
  total_annual_accrual_amount: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="totalAnnualAccrualAmount", description="The total annual accrued amount for the Fee. (TotalAnnualAccrualAmount and CalculationBase cannot both be present)")
40
40
  fee_rate_percentage: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="feeRatePercentage", description="The fee rate percentage. (Required when CalculationBase is present and not compatible with TotalAnnualAccrualAmount)")
41
41
  payable_frequency: constr(strict=True, min_length=1) = Field(..., alias="payableFrequency", description="The payable frequency for the Fee; 'Annually', 'Quarterly' or 'Monthly'.")
42
- business_day_convention: constr(strict=True, min_length=1) = Field(..., alias="businessDayConvention", description="The business day convention to use for Fee calculations on weekends. Supported string values are: [Previous, P, Following, F].")
42
+ business_day_convention: constr(strict=True, min_length=1) = Field(..., alias="businessDayConvention", description="The business day convention to use for Fee calculations on weekends or holidays. Supported string values are: [Previous, P, Following, F, None].")
43
43
  start_date: datetime = Field(..., alias="startDate", description="The start date of the Fee.")
44
44
  end_date: Optional[datetime] = Field(None, alias="endDate", description="The end date of the Fee.")
45
45
  anchor_date: Optional[DayMonth] = Field(None, alias="anchorDate")
46
46
  properties: Optional[Dict[str, ModelProperty]] = Field(None, description="The Fee properties. These will be from the 'Fee' domain.")
47
47
  portfolio_id: Optional[ResourceId] = Field(None, alias="portfolioId")
48
- __properties = ["code", "feeType", "name", "description", "origin", "calculationBase", "accrualCurrency", "treatment", "totalAnnualAccrualAmount", "feeRatePercentage", "payableFrequency", "businessDayConvention", "startDate", "endDate", "anchorDate", "properties", "portfolioId"]
48
+ share_classes: Optional[conlist(StrictStr)] = Field(None, alias="shareClasses", description="The short codes of the ShareClasses that the Fee should be applied to. Optional: if this is null or empty, then the Fee will be divided between all the ShareClasses of the Fund according to the capital ratio.")
49
+ __properties = ["code", "feeTypeId", "displayName", "description", "origin", "calculationBase", "accrualCurrency", "treatment", "totalAnnualAccrualAmount", "feeRatePercentage", "payableFrequency", "businessDayConvention", "startDate", "endDate", "anchorDate", "properties", "portfolioId", "shareClasses"]
49
50
 
50
51
  @validator('code')
51
52
  def code_validate_regular_expression(cls, value):
@@ -88,9 +89,9 @@ class FeeRequest(BaseModel):
88
89
  exclude={
89
90
  },
90
91
  exclude_none=True)
91
- # override the default output from pydantic by calling `to_dict()` of fee_type
92
- if self.fee_type:
93
- _dict['feeType'] = self.fee_type.to_dict()
92
+ # override the default output from pydantic by calling `to_dict()` of fee_type_id
93
+ if self.fee_type_id:
94
+ _dict['feeTypeId'] = self.fee_type_id.to_dict()
94
95
  # override the default output from pydantic by calling `to_dict()` of anchor_date
95
96
  if self.anchor_date:
96
97
  _dict['anchorDate'] = self.anchor_date.to_dict()
@@ -139,6 +140,11 @@ class FeeRequest(BaseModel):
139
140
  if self.properties is None and "properties" in self.__fields_set__:
140
141
  _dict['properties'] = None
141
142
 
143
+ # set to None if share_classes (nullable) is None
144
+ # and __fields_set__ contains the field
145
+ if self.share_classes is None and "share_classes" in self.__fields_set__:
146
+ _dict['shareClasses'] = None
147
+
142
148
  return _dict
143
149
 
144
150
  @classmethod
@@ -152,8 +158,8 @@ class FeeRequest(BaseModel):
152
158
 
153
159
  _obj = FeeRequest.parse_obj({
154
160
  "code": obj.get("code"),
155
- "fee_type": ResourceId.from_dict(obj.get("feeType")) if obj.get("feeType") is not None else None,
156
- "name": obj.get("name"),
161
+ "fee_type_id": ResourceId.from_dict(obj.get("feeTypeId")) if obj.get("feeTypeId") is not None else None,
162
+ "display_name": obj.get("displayName"),
157
163
  "description": obj.get("description"),
158
164
  "origin": obj.get("origin"),
159
165
  "calculation_base": obj.get("calculationBase"),
@@ -172,6 +178,7 @@ class FeeRequest(BaseModel):
172
178
  )
173
179
  if obj.get("properties") is not None
174
180
  else None,
175
- "portfolio_id": ResourceId.from_dict(obj.get("portfolioId")) if obj.get("portfolioId") is not None else None
181
+ "portfolio_id": ResourceId.from_dict(obj.get("portfolioId")) if obj.get("portfolioId") is not None else None,
182
+ "share_classes": obj.get("shareClasses")
176
183
  })
177
184
  return _obj
lusid/models/fee_type.py CHANGED
@@ -31,12 +31,12 @@ class FeeType(BaseModel):
31
31
  """
32
32
  href: Optional[StrictStr] = Field(None, description="The specific Uniform Resource Identifier (URI) for this resource at the requested effective and asAt datetime.")
33
33
  id: ResourceId = Field(...)
34
- name: constr(strict=True, min_length=1) = Field(..., description="The name of the fee type.")
34
+ display_name: constr(strict=True, min_length=1) = Field(..., alias="displayName", description="The name of the fee type.")
35
35
  description: constr(strict=True, min_length=1) = Field(..., description="The description of the fee type.")
36
- component_transactions: conlist(ComponentTransaction) = Field(..., alias="componentTransactions", description="A set of component transactions that relate to the fee type.")
36
+ component_transactions: conlist(ComponentTransaction) = Field(..., alias="componentTransactions", description="A set of component transactions that relate to the fee type to be created.")
37
37
  version: Optional[Version] = None
38
38
  links: Optional[conlist(Link)] = None
39
- __properties = ["href", "id", "name", "description", "componentTransactions", "version", "links"]
39
+ __properties = ["href", "id", "displayName", "description", "componentTransactions", "version", "links"]
40
40
 
41
41
  class Config:
42
42
  """Pydantic configuration"""
@@ -106,7 +106,7 @@ class FeeType(BaseModel):
106
106
  _obj = FeeType.parse_obj({
107
107
  "href": obj.get("href"),
108
108
  "id": ResourceId.from_dict(obj.get("id")) if obj.get("id") is not None else None,
109
- "name": obj.get("name"),
109
+ "display_name": obj.get("displayName"),
110
110
  "description": obj.get("description"),
111
111
  "component_transactions": [ComponentTransaction.from_dict(_item) for _item in obj.get("componentTransactions")] if obj.get("componentTransactions") is not None else None,
112
112
  "version": Version.from_dict(obj.get("version")) if obj.get("version") is not None else None,
@@ -27,10 +27,10 @@ class FeeTypeRequest(BaseModel):
27
27
  FeeTypeRequest
28
28
  """
29
29
  code: constr(strict=True, max_length=64, min_length=1) = Field(...)
30
- name: constr(strict=True, max_length=256, min_length=1) = Field(..., description="The name of the fee type.")
30
+ display_name: constr(strict=True, max_length=256, min_length=1) = Field(..., alias="displayName", description="The name of the fee type.")
31
31
  description: Optional[constr(strict=True, max_length=1024, min_length=0)] = Field(None, description="The description of the fee type.")
32
32
  component_transactions: conlist(ComponentTransaction, max_items=1000) = Field(..., alias="componentTransactions", description="A set of component transactions that relate to the fee type to be created.")
33
- __properties = ["code", "name", "description", "componentTransactions"]
33
+ __properties = ["code", "displayName", "description", "componentTransactions"]
34
34
 
35
35
  @validator('code')
36
36
  def code_validate_regular_expression(cls, value):
@@ -98,7 +98,7 @@ class FeeTypeRequest(BaseModel):
98
98
 
99
99
  _obj = FeeTypeRequest.parse_obj({
100
100
  "code": obj.get("code"),
101
- "name": obj.get("name"),
101
+ "display_name": obj.get("displayName"),
102
102
  "description": obj.get("description"),
103
103
  "component_transactions": [ComponentTransaction.from_dict(_item) for _item in obj.get("componentTransactions")] if obj.get("componentTransactions") is not None else None
104
104
  })
lusid/models/fixed_leg.py CHANGED
@@ -33,15 +33,15 @@ class FixedLeg(InstrumentLeg):
33
33
  leg_definition: LegDefinition = Field(..., alias="legDefinition")
34
34
  notional: Union[StrictFloat, StrictInt] = Field(...)
35
35
  overrides: Optional[FixedLegAllOfOverrides] = None
36
- instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash")
36
+ instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash, MasteredInstrument, LoanFacility")
37
37
  additional_properties: Dict[str, Any] = {}
38
38
  __properties = ["instrumentType", "startDate", "maturityDate", "legDefinition", "notional", "overrides"]
39
39
 
40
40
  @validator('instrument_type')
41
41
  def instrument_type_validate_enum(cls, value):
42
42
  """Validates the enum"""
43
- if value not in ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan', 'UnsettledCash', 'Cash'):
44
- raise ValueError("must be one of enum values ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan', 'UnsettledCash', 'Cash')")
43
+ if value not in ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan', 'UnsettledCash', 'Cash', 'MasteredInstrument', 'LoanFacility'):
44
+ raise ValueError("must be one of enum values ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan', 'UnsettledCash', 'Cash', 'MasteredInstrument', 'LoanFacility')")
45
45
  return value
46
46
 
47
47
  class Config:
@@ -29,15 +29,15 @@ class FixedSchedule(Schedule):
29
29
  """
30
30
  Schedule for fixed coupon payments # noqa: E501
31
31
  """
32
- start_date: datetime = Field(..., alias="startDate", description="Date to start generate from")
33
- maturity_date: datetime = Field(..., alias="maturityDate", description="Date to generate to")
32
+ start_date: datetime = Field(..., alias="startDate", description="Date from which LUSID starts generating the payment schedule.")
33
+ maturity_date: datetime = Field(..., alias="maturityDate", description="Last date of the payment generation schedule. May not necessarily be the maturity date of the underlying instrument (e.g. in case the instrument has multiple payment schedules).")
34
34
  flow_conventions: Optional[FlowConventions] = Field(None, alias="flowConventions")
35
35
  coupon_rate: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="couponRate", description="Coupon rate given as a fraction.")
36
36
  convention_name: Optional[FlowConventionName] = Field(None, alias="conventionName")
37
37
  ex_dividend_days: Optional[StrictInt] = Field(None, alias="exDividendDays", description="Optional. Number of calendar days in the ex-dividend period. If the settlement date falls in the ex-dividend period then the coupon paid is zero and the accrued interest is negative. If set, this must be a non-negative number. If not set, or set to 0, then there is no ex-dividend period. NOTE: This field is deprecated. If you wish to set the ExDividendDays on a bond, please use the ExDividendConfiguration.")
38
38
  notional: Optional[Union[StrictFloat, StrictInt]] = Field(None, description="Scaling factor, the quantity outstanding on which the rate will be paid.")
39
39
  payment_currency: StrictStr = Field(..., alias="paymentCurrency", description="Payment currency. This does not have to be the same as the nominal bond or observation/reset currency.")
40
- stub_type: Optional[StrictStr] = Field(None, alias="stubType", description="StubType required of the schedule Supported string (enumeration) values are: [ShortFront, ShortBack, LongBack, LongFront, Both].")
40
+ stub_type: Optional[StrictStr] = Field(None, alias="stubType", description="When a payment schedule doesn't have regular payment intervals just because of the first and/or last coupons of the schedule, we call those irregular coupons stubs. This configuration specifies what type of stub is used when building the schedule Supported values are: None = this is a regular payment schedule with no stubs. DO NOT use it with irregular schedules or you will get incorrect and unexpected behaviour. ShortFront = this is an irregular payment schedule where only the first coupon is irregular, and covers a payment period that is shorter than the regular payment period. ShortBack = this is an irregular payment schedule where only the last coupon is irregular, and covers a payment period that is shorter than the regular payment period. LongFront = this is an irregular payment schedule where only the first coupon is irregular, and covers a payment period that is longer than the regular payment period. LongBack = this is an irregular payment schedule where only the last coupon is irregular, and covers a payment period that is longer than the regular payment period. Both = this is an irregular payment schedule where both the first and the last coupons are irregular, and the length of these periods is calculated based on the first coupon payment date that should have been explicitly set.")
41
41
  ex_dividend_configuration: Optional[ExDividendConfiguration] = Field(None, alias="exDividendConfiguration")
42
42
  schedule_type: StrictStr = Field(..., alias="scheduleType", description="The available values are: FixedSchedule, FloatSchedule, OptionalitySchedule, StepSchedule, Exercise, FxRateSchedule, FxLinkedNotionalSchedule, BondConversionSchedule, Invalid")
43
43
  additional_properties: Dict[str, Any] = {}
@@ -31,15 +31,15 @@ class FlexibleLoan(LusidInstrument):
31
31
  maturity_date: datetime = Field(..., alias="maturityDate", description="The final maturity date of the instrument. This means the last date on which the instruments makes a payment of any amount. For the avoidance of doubt, that is not necessarily prior to its last sensitivity date for the purposes of risk; e.g. instruments such as Constant Maturity Swaps (CMS) often have sensitivities to rates that may well be observed or set prior to the maturity date, but refer to a termination date beyond it.")
32
32
  dom_ccy: StrictStr = Field(..., alias="domCcy", description="The domestic currency of the instrument.")
33
33
  schedules: conlist(Schedule) = Field(..., description="Repayment schedules for the loan.")
34
- instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash")
34
+ instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash, MasteredInstrument, LoanFacility")
35
35
  additional_properties: Dict[str, Any] = {}
36
36
  __properties = ["instrumentType", "startDate", "maturityDate", "domCcy", "schedules"]
37
37
 
38
38
  @validator('instrument_type')
39
39
  def instrument_type_validate_enum(cls, value):
40
40
  """Validates the enum"""
41
- if value not in ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan', 'UnsettledCash', 'Cash'):
42
- raise ValueError("must be one of enum values ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan', 'UnsettledCash', 'Cash')")
41
+ if value not in ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan', 'UnsettledCash', 'Cash', 'MasteredInstrument', 'LoanFacility'):
42
+ raise ValueError("must be one of enum values ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan', 'UnsettledCash', 'Cash', 'MasteredInstrument', 'LoanFacility')")
43
43
  return value
44
44
 
45
45
  class Config:
@@ -29,10 +29,10 @@ from lusid.models.schedule import Schedule
29
29
 
30
30
  class FloatSchedule(Schedule):
31
31
  """
32
- Schedule for fixed coupon payments # noqa: E501
32
+ Schedule for floating rate coupon payments. # noqa: E501
33
33
  """
34
- start_date: Optional[datetime] = Field(None, alias="startDate", description="Date to start generate from")
35
- maturity_date: Optional[datetime] = Field(None, alias="maturityDate", description="Date to generate to")
34
+ start_date: Optional[datetime] = Field(None, alias="startDate", description="Date from which LUSID starts generating the payment schedule.")
35
+ maturity_date: Optional[datetime] = Field(None, alias="maturityDate", description="Last date of the payment generation schedule. May not necessarily be the maturity date of the underlying instrument (e.g. in case the instrument has multiple payment schedules).")
36
36
  flow_conventions: Optional[FlowConventions] = Field(None, alias="flowConventions")
37
37
  convention_name: Optional[FlowConventionName] = Field(None, alias="conventionName")
38
38
  ex_dividend_days: Optional[StrictInt] = Field(None, alias="exDividendDays", description="Optional. Number of calendar days in the ex-dividend period. If the settlement date falls in the ex-dividend period then the coupon paid is zero and the accrued interest is negative. If set, this must be a non-negative number. If not set, or set to 0, then there is no ex-dividend period. NOTE: This field is deprecated. If you wish to set the ExDividendDays on a bond, please use the ExDividendConfiguration.")
@@ -41,7 +41,7 @@ class FloatSchedule(Schedule):
41
41
  notional: Optional[Union[StrictFloat, StrictInt]] = Field(None, description="Scaling factor, the quantity outstanding on which the rate will be paid.")
42
42
  payment_currency: StrictStr = Field(..., alias="paymentCurrency", description="Payment currency. This does not have to be the same as the nominal bond or observation/reset currency.")
43
43
  spread: Optional[Union[StrictFloat, StrictInt]] = Field(None, description="Spread over floating rate given as a fraction.")
44
- stub_type: Optional[StrictStr] = Field(None, alias="stubType", description="StubType required of the schedule Supported string (enumeration) values are: [ShortFront, ShortBack, LongBack, LongFront, Both].")
44
+ stub_type: Optional[StrictStr] = Field(None, alias="stubType", description="When a payment schedule doesn't have regular payment intervals just because of the first and/or last coupons of the schedule, we call those irregular coupons stubs. This configuration specifies what type of stub is used when building the schedule Supported values are: None = this is a regular payment schedule with no stubs. DO NOT use it with irregular schedules or you will get incorrect and unexpected behaviour. ShortFront = this is an irregular payment schedule where only the first coupon is irregular, and covers a payment period that is shorter than the regular payment period. ShortBack = this is an irregular payment schedule where only the last coupon is irregular, and covers a payment period that is shorter than the regular payment period. LongFront = this is an irregular payment schedule where only the first coupon is irregular, and covers a payment period that is longer than the regular payment period. LongBack = this is an irregular payment schedule where only the last coupon is irregular, and covers a payment period that is longer than the regular payment period. Both = this is an irregular payment schedule where both the first and the last coupons are irregular, and the length of these periods is calculated based on the first coupon payment date that should have been explicitly set.")
45
45
  ex_dividend_configuration: Optional[ExDividendConfiguration] = Field(None, alias="exDividendConfiguration")
46
46
  compounding: Optional[Compounding] = None
47
47
  reset_convention: Optional[constr(strict=True, max_length=16, min_length=0)] = Field(None, alias="resetConvention", description="Control how resets are generated relative to payment convention(s). Supported string (enumeration) values are: [InAdvance, InArrears].")
@@ -35,15 +35,15 @@ class FloatingLeg(InstrumentLeg):
35
35
  overrides: Optional[FixedLegAllOfOverrides] = None
36
36
  cap_rate: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="capRate", description="The maximum floating rate which a cashflow can accrue.")
37
37
  floor_rate: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="floorRate", description="The minimum floating rate which a cashflow can accrue.")
38
- instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash")
38
+ instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash, MasteredInstrument, LoanFacility")
39
39
  additional_properties: Dict[str, Any] = {}
40
40
  __properties = ["instrumentType", "startDate", "maturityDate", "legDefinition", "notional", "overrides", "capRate", "floorRate"]
41
41
 
42
42
  @validator('instrument_type')
43
43
  def instrument_type_validate_enum(cls, value):
44
44
  """Validates the enum"""
45
- if value not in ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan', 'UnsettledCash', 'Cash'):
46
- raise ValueError("must be one of enum values ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan', 'UnsettledCash', 'Cash')")
45
+ if value not in ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan', 'UnsettledCash', 'Cash', 'MasteredInstrument', 'LoanFacility'):
46
+ raise ValueError("must be one of enum values ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan', 'UnsettledCash', 'Cash', 'MasteredInstrument', 'LoanFacility')")
47
47
  return value
48
48
 
49
49
  class Config:
@@ -20,6 +20,7 @@ import json
20
20
 
21
21
  from typing import Any, Dict, List, Optional
22
22
  from pydantic.v1 import BaseModel, Field, StrictBool, StrictInt, StrictStr, conlist, constr, validator
23
+ from lusid.models.relative_date_offset import RelativeDateOffset
23
24
 
24
25
  class FlowConventions(BaseModel):
25
26
  """
@@ -37,9 +38,10 @@ class FlowConventions(BaseModel):
37
38
  accrual_date_adjustment: Optional[constr(strict=True, max_length=50, min_length=0)] = Field(None, alias="accrualDateAdjustment", description="Indicates if the accrual dates are adjusted using the business day convention. The default value is 'Adjusted'. Supported string (enumeration) values are: [Adjusted, Unadjusted].")
38
39
  business_day_convention: Optional[StrictStr] = Field(None, alias="businessDayConvention", description="When generating a set of dates, what convention should be used for adjusting dates that coincide with a non-business day. Supported string (enumeration) values are: [NoAdjustment, None, Previous, P, Following, F, ModifiedPrevious, MP, ModifiedFollowing, MF, HalfMonthModifiedFollowing, Nearest].")
39
40
  accrual_day_count_convention: Optional[constr(strict=True, max_length=50, min_length=0)] = Field(None, alias="accrualDayCountConvention", description="Optional, if not set the main DayCountConvention is used for all accrual calculations. This only needs to be set when accrual uses a different day count to the coupon calculation.")
41
+ coupon_payment_lag: Optional[RelativeDateOffset] = Field(None, alias="couponPaymentLag")
40
42
  scope: Optional[constr(strict=True, max_length=256, min_length=1)] = Field(None, description="The scope used when updating or inserting the convention.")
41
43
  code: Optional[constr(strict=True, max_length=256, min_length=1)] = Field(None, description="The code of the convention.")
42
- __properties = ["currency", "paymentFrequency", "dayCountConvention", "rollConvention", "paymentCalendars", "resetCalendars", "settleDays", "resetDays", "leapDaysIncluded", "accrualDateAdjustment", "businessDayConvention", "accrualDayCountConvention", "scope", "code"]
44
+ __properties = ["currency", "paymentFrequency", "dayCountConvention", "rollConvention", "paymentCalendars", "resetCalendars", "settleDays", "resetDays", "leapDaysIncluded", "accrualDateAdjustment", "businessDayConvention", "accrualDayCountConvention", "couponPaymentLag", "scope", "code"]
43
45
 
44
46
  @validator('scope')
45
47
  def scope_validate_regular_expression(cls, value):
@@ -85,6 +87,9 @@ class FlowConventions(BaseModel):
85
87
  exclude={
86
88
  },
87
89
  exclude_none=True)
90
+ # override the default output from pydantic by calling `to_dict()` of coupon_payment_lag
91
+ if self.coupon_payment_lag:
92
+ _dict['couponPaymentLag'] = self.coupon_payment_lag.to_dict()
88
93
  # set to None if leap_days_included (nullable) is None
89
94
  # and __fields_set__ contains the field
90
95
  if self.leap_days_included is None and "leap_days_included" in self.__fields_set__:
@@ -139,6 +144,7 @@ class FlowConventions(BaseModel):
139
144
  "accrual_date_adjustment": obj.get("accrualDateAdjustment"),
140
145
  "business_day_convention": obj.get("businessDayConvention"),
141
146
  "accrual_day_count_convention": obj.get("accrualDayCountConvention"),
147
+ "coupon_payment_lag": RelativeDateOffset.from_dict(obj.get("couponPaymentLag")) if obj.get("couponPaymentLag") is not None else None,
142
148
  "scope": obj.get("scope"),
143
149
  "code": obj.get("code")
144
150
  })
@@ -34,15 +34,15 @@ class ForwardRateAgreement(LusidInstrument):
34
34
  fra_rate: Union[StrictFloat, StrictInt] = Field(..., alias="fraRate", description="The rate at which the FRA is traded.")
35
35
  notional: Union[StrictFloat, StrictInt] = Field(..., description="The amount for which the FRA is traded.")
36
36
  index_convention: Optional[IndexConvention] = Field(None, alias="indexConvention")
37
- instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash")
37
+ instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash, MasteredInstrument, LoanFacility")
38
38
  additional_properties: Dict[str, Any] = {}
39
39
  __properties = ["instrumentType", "startDate", "maturityDate", "domCcy", "fixingDate", "fraRate", "notional", "indexConvention"]
40
40
 
41
41
  @validator('instrument_type')
42
42
  def instrument_type_validate_enum(cls, value):
43
43
  """Validates the enum"""
44
- if value not in ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan', 'UnsettledCash', 'Cash'):
45
- raise ValueError("must be one of enum values ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan', 'UnsettledCash', 'Cash')")
44
+ if value not in ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan', 'UnsettledCash', 'Cash', 'MasteredInstrument', 'LoanFacility'):
45
+ raise ValueError("must be one of enum values ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan', 'UnsettledCash', 'Cash', 'MasteredInstrument', 'LoanFacility')")
46
46
  return value
47
47
 
48
48
  class Config:
@@ -20,7 +20,7 @@ import json
20
20
 
21
21
  from typing import Any, Dict, List, Optional
22
22
  from pydantic.v1 import BaseModel, Field, StrictStr, conlist
23
- from lusid.models.component_rule import ComponentRule
23
+ from lusid.models.component_filter import ComponentFilter
24
24
  from lusid.models.link import Link
25
25
  from lusid.models.model_property import ModelProperty
26
26
  from lusid.models.resource_id import ResourceId
@@ -34,13 +34,13 @@ class FundConfiguration(BaseModel):
34
34
  id: ResourceId = Field(...)
35
35
  display_name: Optional[StrictStr] = Field(None, alias="displayName", description="The name of the FundConfiguration.")
36
36
  description: Optional[StrictStr] = Field(None, description="A description for the FundConfiguration.")
37
- dealing_rule: Optional[ComponentRule] = Field(None, alias="dealingRule")
38
- pnl_rule: Optional[ComponentRule] = Field(None, alias="pnlRule")
39
- back_out_rule: Optional[ComponentRule] = Field(None, alias="backOutRule")
37
+ dealing_filters: Optional[conlist(ComponentFilter)] = Field(None, alias="dealingFilters", description="The set of filters used to decide which JE lines are included in the dealing.")
38
+ pnl_filters: Optional[conlist(ComponentFilter)] = Field(None, alias="pnlFilters", description="The set of filters used to decide which JE lines are included in the PnL.")
39
+ back_out_filters: Optional[conlist(ComponentFilter)] = Field(None, alias="backOutFilters", description="The set of filters used to decide which JE lines are included in the back outs.")
40
40
  properties: Optional[Dict[str, ModelProperty]] = Field(None, description="A set of properties for the Fund Configuration.")
41
41
  version: Optional[Version] = None
42
42
  links: Optional[conlist(Link)] = None
43
- __properties = ["href", "id", "displayName", "description", "dealingRule", "pnlRule", "backOutRule", "properties", "version", "links"]
43
+ __properties = ["href", "id", "displayName", "description", "dealingFilters", "pnlFilters", "backOutFilters", "properties", "version", "links"]
44
44
 
45
45
  class Config:
46
46
  """Pydantic configuration"""
@@ -69,15 +69,27 @@ class FundConfiguration(BaseModel):
69
69
  # override the default output from pydantic by calling `to_dict()` of id
70
70
  if self.id:
71
71
  _dict['id'] = self.id.to_dict()
72
- # override the default output from pydantic by calling `to_dict()` of dealing_rule
73
- if self.dealing_rule:
74
- _dict['dealingRule'] = self.dealing_rule.to_dict()
75
- # override the default output from pydantic by calling `to_dict()` of pnl_rule
76
- if self.pnl_rule:
77
- _dict['pnlRule'] = self.pnl_rule.to_dict()
78
- # override the default output from pydantic by calling `to_dict()` of back_out_rule
79
- if self.back_out_rule:
80
- _dict['backOutRule'] = self.back_out_rule.to_dict()
72
+ # override the default output from pydantic by calling `to_dict()` of each item in dealing_filters (list)
73
+ _items = []
74
+ if self.dealing_filters:
75
+ for _item in self.dealing_filters:
76
+ if _item:
77
+ _items.append(_item.to_dict())
78
+ _dict['dealingFilters'] = _items
79
+ # override the default output from pydantic by calling `to_dict()` of each item in pnl_filters (list)
80
+ _items = []
81
+ if self.pnl_filters:
82
+ for _item in self.pnl_filters:
83
+ if _item:
84
+ _items.append(_item.to_dict())
85
+ _dict['pnlFilters'] = _items
86
+ # override the default output from pydantic by calling `to_dict()` of each item in back_out_filters (list)
87
+ _items = []
88
+ if self.back_out_filters:
89
+ for _item in self.back_out_filters:
90
+ if _item:
91
+ _items.append(_item.to_dict())
92
+ _dict['backOutFilters'] = _items
81
93
  # override the default output from pydantic by calling `to_dict()` of each value in properties (dict)
82
94
  _field_dict = {}
83
95
  if self.properties:
@@ -110,6 +122,21 @@ class FundConfiguration(BaseModel):
110
122
  if self.description is None and "description" in self.__fields_set__:
111
123
  _dict['description'] = None
112
124
 
125
+ # set to None if dealing_filters (nullable) is None
126
+ # and __fields_set__ contains the field
127
+ if self.dealing_filters is None and "dealing_filters" in self.__fields_set__:
128
+ _dict['dealingFilters'] = None
129
+
130
+ # set to None if pnl_filters (nullable) is None
131
+ # and __fields_set__ contains the field
132
+ if self.pnl_filters is None and "pnl_filters" in self.__fields_set__:
133
+ _dict['pnlFilters'] = None
134
+
135
+ # set to None if back_out_filters (nullable) is None
136
+ # and __fields_set__ contains the field
137
+ if self.back_out_filters is None and "back_out_filters" in self.__fields_set__:
138
+ _dict['backOutFilters'] = None
139
+
113
140
  # set to None if properties (nullable) is None
114
141
  # and __fields_set__ contains the field
115
142
  if self.properties is None and "properties" in self.__fields_set__:
@@ -136,9 +163,9 @@ class FundConfiguration(BaseModel):
136
163
  "id": ResourceId.from_dict(obj.get("id")) if obj.get("id") is not None else None,
137
164
  "display_name": obj.get("displayName"),
138
165
  "description": obj.get("description"),
139
- "dealing_rule": ComponentRule.from_dict(obj.get("dealingRule")) if obj.get("dealingRule") is not None else None,
140
- "pnl_rule": ComponentRule.from_dict(obj.get("pnlRule")) if obj.get("pnlRule") is not None else None,
141
- "back_out_rule": ComponentRule.from_dict(obj.get("backOutRule")) if obj.get("backOutRule") is not None else None,
166
+ "dealing_filters": [ComponentFilter.from_dict(_item) for _item in obj.get("dealingFilters")] if obj.get("dealingFilters") is not None else None,
167
+ "pnl_filters": [ComponentFilter.from_dict(_item) for _item in obj.get("pnlFilters")] if obj.get("pnlFilters") is not None else None,
168
+ "back_out_filters": [ComponentFilter.from_dict(_item) for _item in obj.get("backOutFilters")] if obj.get("backOutFilters") is not None else None,
142
169
  "properties": dict(
143
170
  (_k, ModelProperty.from_dict(_v))
144
171
  for _k, _v in obj.get("properties").items()
@@ -18,9 +18,9 @@ import re # noqa: F401
18
18
  import json
19
19
 
20
20
 
21
- from typing import Any, Dict, Optional
22
- from pydantic.v1 import BaseModel, Field, constr, validator
23
- from lusid.models.component_rule import ComponentRule
21
+ from typing import Any, Dict, List, Optional
22
+ from pydantic.v1 import BaseModel, Field, conlist, constr, validator
23
+ from lusid.models.component_filter import ComponentFilter
24
24
  from lusid.models.model_property import ModelProperty
25
25
 
26
26
  class FundConfigurationRequest(BaseModel):
@@ -30,11 +30,11 @@ class FundConfigurationRequest(BaseModel):
30
30
  code: constr(strict=True, max_length=64, min_length=1) = Field(...)
31
31
  display_name: Optional[constr(strict=True, max_length=256, min_length=1)] = Field(None, alias="displayName", description="The name of the Fund.")
32
32
  description: Optional[constr(strict=True, max_length=1024, min_length=0)] = Field(None, description="A description for the Fund.")
33
- dealing_rule: ComponentRule = Field(..., alias="dealingRule")
34
- pnl_rule: ComponentRule = Field(..., alias="pnlRule")
35
- back_out_rule: ComponentRule = Field(..., alias="backOutRule")
33
+ dealing_filters: conlist(ComponentFilter) = Field(..., alias="dealingFilters", description="The set of filters used to decide which JE lines are included in the dealing.")
34
+ pnl_filters: conlist(ComponentFilter) = Field(..., alias="pnlFilters", description="The set of filters used to decide which JE lines are included in the PnL.")
35
+ back_out_filters: conlist(ComponentFilter) = Field(..., alias="backOutFilters", description="The set of filters used to decide which JE lines are included in the back outs.")
36
36
  properties: Optional[Dict[str, ModelProperty]] = Field(None, description="A set of properties for the Fund Configuration.")
37
- __properties = ["code", "displayName", "description", "dealingRule", "pnlRule", "backOutRule", "properties"]
37
+ __properties = ["code", "displayName", "description", "dealingFilters", "pnlFilters", "backOutFilters", "properties"]
38
38
 
39
39
  @validator('code')
40
40
  def code_validate_regular_expression(cls, value):
@@ -77,15 +77,27 @@ class FundConfigurationRequest(BaseModel):
77
77
  exclude={
78
78
  },
79
79
  exclude_none=True)
80
- # override the default output from pydantic by calling `to_dict()` of dealing_rule
81
- if self.dealing_rule:
82
- _dict['dealingRule'] = self.dealing_rule.to_dict()
83
- # override the default output from pydantic by calling `to_dict()` of pnl_rule
84
- if self.pnl_rule:
85
- _dict['pnlRule'] = self.pnl_rule.to_dict()
86
- # override the default output from pydantic by calling `to_dict()` of back_out_rule
87
- if self.back_out_rule:
88
- _dict['backOutRule'] = self.back_out_rule.to_dict()
80
+ # override the default output from pydantic by calling `to_dict()` of each item in dealing_filters (list)
81
+ _items = []
82
+ if self.dealing_filters:
83
+ for _item in self.dealing_filters:
84
+ if _item:
85
+ _items.append(_item.to_dict())
86
+ _dict['dealingFilters'] = _items
87
+ # override the default output from pydantic by calling `to_dict()` of each item in pnl_filters (list)
88
+ _items = []
89
+ if self.pnl_filters:
90
+ for _item in self.pnl_filters:
91
+ if _item:
92
+ _items.append(_item.to_dict())
93
+ _dict['pnlFilters'] = _items
94
+ # override the default output from pydantic by calling `to_dict()` of each item in back_out_filters (list)
95
+ _items = []
96
+ if self.back_out_filters:
97
+ for _item in self.back_out_filters:
98
+ if _item:
99
+ _items.append(_item.to_dict())
100
+ _dict['backOutFilters'] = _items
89
101
  # override the default output from pydantic by calling `to_dict()` of each value in properties (dict)
90
102
  _field_dict = {}
91
103
  if self.properties:
@@ -123,9 +135,9 @@ class FundConfigurationRequest(BaseModel):
123
135
  "code": obj.get("code"),
124
136
  "display_name": obj.get("displayName"),
125
137
  "description": obj.get("description"),
126
- "dealing_rule": ComponentRule.from_dict(obj.get("dealingRule")) if obj.get("dealingRule") is not None else None,
127
- "pnl_rule": ComponentRule.from_dict(obj.get("pnlRule")) if obj.get("pnlRule") is not None else None,
128
- "back_out_rule": ComponentRule.from_dict(obj.get("backOutRule")) if obj.get("backOutRule") is not None else None,
138
+ "dealing_filters": [ComponentFilter.from_dict(_item) for _item in obj.get("dealingFilters")] if obj.get("dealingFilters") is not None else None,
139
+ "pnl_filters": [ComponentFilter.from_dict(_item) for _item in obj.get("pnlFilters")] if obj.get("pnlFilters") is not None else None,
140
+ "back_out_filters": [ComponentFilter.from_dict(_item) for _item in obj.get("backOutFilters")] if obj.get("backOutFilters") is not None else None,
129
141
  "properties": dict(
130
142
  (_k, ModelProperty.from_dict(_v))
131
143
  for _k, _v in obj.get("properties").items()