lusid-sdk 2.1.747__py3-none-any.whl → 2.1.749__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 (279) hide show
  1. lusid/api/entities_api.py +12 -12
  2. lusid/api/transaction_portfolios_api.py +17 -8
  3. lusid/configuration.py +1 -1
  4. lusid/models/access_metadata_operation.py +52 -0
  5. lusid/models/account.py +52 -0
  6. lusid/models/accumulation_event.py +52 -0
  7. lusid/models/address_definition.py +52 -0
  8. lusid/models/address_key_compliance_parameter.py +52 -0
  9. lusid/models/address_key_list.py +52 -0
  10. lusid/models/address_key_list_compliance_parameter.py +52 -0
  11. lusid/models/adjust_global_commitment_event.py +52 -0
  12. lusid/models/aggregate_spec.py +52 -0
  13. lusid/models/aggregation_query.py +104 -0
  14. lusid/models/amortisation_event.py +52 -0
  15. lusid/models/append_fx_forward_curve_by_quote_reference.py +52 -0
  16. lusid/models/append_fx_forward_curve_data.py +52 -0
  17. lusid/models/append_fx_forward_pips_curve_data.py +52 -0
  18. lusid/models/append_fx_forward_tenor_curve_data.py +52 -0
  19. lusid/models/append_fx_forward_tenor_pips_curve_data.py +52 -0
  20. lusid/models/append_market_data.py +52 -0
  21. lusid/models/basket.py +52 -0
  22. lusid/models/bond.py +52 -0
  23. lusid/models/bond_conversion_schedule.py +52 -0
  24. lusid/models/bond_coupon_event.py +52 -0
  25. lusid/models/bond_default_event.py +52 -0
  26. lusid/models/bond_principal_event.py +52 -0
  27. lusid/models/bonus_issue_event.py +52 -0
  28. lusid/models/bool_compliance_parameter.py +52 -0
  29. lusid/models/bool_list_compliance_parameter.py +52 -0
  30. lusid/models/branch_step.py +52 -0
  31. lusid/models/branch_step_request.py +52 -0
  32. lusid/models/calendar_dependency.py +52 -0
  33. lusid/models/call_on_intermediate_securities_event.py +52 -0
  34. lusid/models/cap_floor.py +52 -0
  35. lusid/models/capital_distribution_event.py +52 -0
  36. lusid/models/cash.py +52 -0
  37. lusid/models/cash_dependency.py +52 -0
  38. lusid/models/cash_dividend_event.py +52 -0
  39. lusid/models/cash_flow_event.py +52 -0
  40. lusid/models/cash_flow_value.py +52 -0
  41. lusid/models/cash_flow_value_set.py +52 -0
  42. lusid/models/cash_perpetual.py +52 -0
  43. lusid/models/cds_credit_event.py +52 -0
  44. lusid/models/cds_index.py +52 -0
  45. lusid/models/cdx_credit_event.py +52 -0
  46. lusid/models/change_history.py +52 -0
  47. lusid/models/check_step.py +52 -0
  48. lusid/models/check_step_request.py +52 -0
  49. lusid/models/close_event.py +52 -0
  50. lusid/models/complete_portfolio.py +52 -0
  51. lusid/models/complex_bond.py +52 -0
  52. lusid/models/complex_market_data.py +52 -0
  53. lusid/models/compliance_parameter.py +52 -0
  54. lusid/models/compliance_step.py +52 -0
  55. lusid/models/compliance_step_request.py +52 -0
  56. lusid/models/constant_volatility_surface.py +52 -0
  57. lusid/models/contract_for_difference.py +52 -0
  58. lusid/models/contract_initialisation_event.py +52 -0
  59. lusid/models/create_data_type_request.py +156 -0
  60. lusid/models/create_derived_property_definition_request.py +52 -0
  61. lusid/models/create_derived_transaction_portfolio_request.py +52 -0
  62. lusid/models/create_identifier_definition_request.py +104 -0
  63. lusid/models/create_property_definition_request.py +104 -0
  64. lusid/models/create_simple_position_portfolio_request.py +52 -0
  65. lusid/models/create_transaction_portfolio_request.py +52 -0
  66. lusid/models/credit_default_swap.py +52 -0
  67. lusid/models/credit_premium_cash_flow_event.py +52 -0
  68. lusid/models/credit_spread_curve_data.py +52 -0
  69. lusid/models/curve_options.py +52 -0
  70. lusid/models/data_type.py +156 -0
  71. lusid/models/data_type_summary.py +156 -0
  72. lusid/models/date_time_compliance_parameter.py +52 -0
  73. lusid/models/date_time_list_compliance_parameter.py +52 -0
  74. lusid/models/decimal_compliance_parameter.py +52 -0
  75. lusid/models/decimal_list.py +52 -0
  76. lusid/models/decimal_list_compliance_parameter.py +52 -0
  77. lusid/models/deposit_close_event.py +52 -0
  78. lusid/models/deposit_interest_payment_event.py +52 -0
  79. lusid/models/discount_factor_curve_data.py +52 -0
  80. lusid/models/discounting_dependency.py +52 -0
  81. lusid/models/dividend_option_event.py +52 -0
  82. lusid/models/dividend_reinvestment_event.py +52 -0
  83. lusid/models/drawdown_event.py +52 -0
  84. lusid/models/early_redemption_event.py +52 -0
  85. lusid/models/economic_dependency.py +52 -0
  86. lusid/models/empty_model_options.py +52 -0
  87. lusid/models/equity.py +52 -0
  88. lusid/models/equity_curve_by_prices_data.py +52 -0
  89. lusid/models/equity_curve_dependency.py +52 -0
  90. lusid/models/equity_model_options.py +52 -0
  91. lusid/models/equity_option.py +52 -0
  92. lusid/models/equity_swap.py +52 -0
  93. lusid/models/equity_vol_dependency.py +52 -0
  94. lusid/models/equity_vol_surface_data.py +52 -0
  95. lusid/models/exchange_traded_option.py +52 -0
  96. lusid/models/exercise_event.py +52 -0
  97. lusid/models/exotic_instrument.py +52 -0
  98. lusid/models/expiry_event.py +52 -0
  99. lusid/models/field_schema.py +52 -0
  100. lusid/models/filter_predicate_compliance_parameter.py +52 -0
  101. lusid/models/filter_step.py +52 -0
  102. lusid/models/filter_step_request.py +52 -0
  103. lusid/models/fixed_leg.py +52 -0
  104. lusid/models/fixed_schedule.py +52 -0
  105. lusid/models/flexible_deposit.py +52 -0
  106. lusid/models/flexible_loan.py +52 -0
  107. lusid/models/float_schedule.py +52 -0
  108. lusid/models/floating_leg.py +52 -0
  109. lusid/models/forward_rate_agreement.py +52 -0
  110. lusid/models/fund_id_list.py +52 -0
  111. lusid/models/fund_share_class.py +52 -0
  112. lusid/models/funding_leg.py +52 -0
  113. lusid/models/funding_leg_options.py +52 -0
  114. lusid/models/future.py +52 -0
  115. lusid/models/future_expiry_event.py +52 -0
  116. lusid/models/future_mark_to_market_event.py +52 -0
  117. lusid/models/fx_dependency.py +52 -0
  118. lusid/models/fx_forward.py +52 -0
  119. lusid/models/fx_forward_curve_by_quote_reference.py +52 -0
  120. lusid/models/fx_forward_curve_data.py +52 -0
  121. lusid/models/fx_forward_model_options.py +156 -0
  122. lusid/models/fx_forward_pips_curve_data.py +52 -0
  123. lusid/models/fx_forward_settlement_event.py +52 -0
  124. lusid/models/fx_forward_tenor_curve_data.py +52 -0
  125. lusid/models/fx_forward_tenor_pips_curve_data.py +52 -0
  126. lusid/models/fx_forwards_dependency.py +52 -0
  127. lusid/models/fx_linked_notional_schedule.py +52 -0
  128. lusid/models/fx_option.py +52 -0
  129. lusid/models/fx_rate_schedule.py +52 -0
  130. lusid/models/fx_swap.py +52 -0
  131. lusid/models/fx_vol_dependency.py +52 -0
  132. lusid/models/fx_vol_surface_data.py +52 -0
  133. lusid/models/get_reference_portfolio_constituents_response.py +104 -0
  134. lusid/models/group_by_selector_compliance_parameter.py +52 -0
  135. lusid/models/group_by_step.py +52 -0
  136. lusid/models/group_by_step_request.py +52 -0
  137. lusid/models/group_calculation_compliance_parameter.py +52 -0
  138. lusid/models/group_filter_predicate_compliance_parameter.py +52 -0
  139. lusid/models/group_filter_step.py +52 -0
  140. lusid/models/group_filter_step_request.py +52 -0
  141. lusid/models/holdings_adjustment.py +52 -0
  142. lusid/models/holdings_adjustment_header.py +52 -0
  143. lusid/models/i_unit_definition_dto.py +52 -0
  144. lusid/models/identifier_definition.py +104 -0
  145. lusid/models/index_model_options.py +104 -0
  146. lusid/models/index_projection_dependency.py +52 -0
  147. lusid/models/inflation_fixing_dependency.py +52 -0
  148. lusid/models/inflation_leg.py +52 -0
  149. lusid/models/inflation_linked_bond.py +52 -0
  150. lusid/models/inflation_swap.py +52 -0
  151. lusid/models/informational_error_event.py +52 -0
  152. lusid/models/informational_event.py +52 -0
  153. lusid/models/instrument.py +104 -0
  154. lusid/models/instrument_event.py +52 -0
  155. lusid/models/instrument_leg.py +52 -0
  156. lusid/models/instrument_list.py +52 -0
  157. lusid/models/instrument_list_compliance_parameter.py +52 -0
  158. lusid/models/interest_rate_swap.py +52 -0
  159. lusid/models/interest_rate_swaption.py +52 -0
  160. lusid/models/intermediate_compliance_step.py +52 -0
  161. lusid/models/intermediate_compliance_step_request.py +52 -0
  162. lusid/models/intermediate_securities_distribution_event.py +52 -0
  163. lusid/models/ir_vol_cube_data.py +52 -0
  164. lusid/models/ir_vol_dependency.py +52 -0
  165. lusid/models/life_cycle_event_value.py +52 -0
  166. lusid/models/loan_facility.py +52 -0
  167. lusid/models/loan_interest_repayment_event.py +52 -0
  168. lusid/models/loan_principal_repayment_event.py +52 -0
  169. lusid/models/lusid_instrument.py +52 -0
  170. lusid/models/lusid_trade_ticket.py +52 -0
  171. lusid/models/market_data_key_rule.py +52 -0
  172. lusid/models/market_data_options.py +52 -0
  173. lusid/models/market_data_specific_rule.py +52 -0
  174. lusid/models/market_quote.py +52 -0
  175. lusid/models/mastered_instrument.py +52 -0
  176. lusid/models/match_criterion.py +52 -0
  177. lusid/models/maturity_event.py +52 -0
  178. lusid/models/mbs_coupon_event.py +52 -0
  179. lusid/models/mbs_interest_deferral_event.py +52 -0
  180. lusid/models/mbs_interest_shortfall_event.py +52 -0
  181. lusid/models/mbs_principal_event.py +52 -0
  182. lusid/models/mbs_principal_write_off_event.py +52 -0
  183. lusid/models/merger_event.py +52 -0
  184. lusid/models/model_options.py +52 -0
  185. lusid/models/model_selection.py +104 -0
  186. lusid/models/opaque_dependency.py +52 -0
  187. lusid/models/opaque_market_data.py +52 -0
  188. lusid/models/opaque_model_options.py +52 -0
  189. lusid/models/open_event.py +52 -0
  190. lusid/models/option_exercise_cash_event.py +52 -0
  191. lusid/models/option_exercise_physical_event.py +52 -0
  192. lusid/models/optionality_schedule.py +52 -0
  193. lusid/models/order_by_spec.py +52 -0
  194. lusid/models/output_transaction.py +52 -0
  195. lusid/models/percent_check_step.py +52 -0
  196. lusid/models/percent_check_step_request.py +52 -0
  197. lusid/models/portfolio.py +104 -0
  198. lusid/models/portfolio_details.py +52 -0
  199. lusid/models/portfolio_group_id_compliance_parameter.py +52 -0
  200. lusid/models/portfolio_group_id_list.py +52 -0
  201. lusid/models/portfolio_group_id_list_compliance_parameter.py +52 -0
  202. lusid/models/portfolio_id_compliance_parameter.py +52 -0
  203. lusid/models/portfolio_id_list.py +52 -0
  204. lusid/models/portfolio_id_list_compliance_parameter.py +52 -0
  205. lusid/models/portfolio_result_data_key_rule.py +52 -0
  206. lusid/models/portfolio_search_result.py +52 -0
  207. lusid/models/portfolio_without_href.py +104 -0
  208. lusid/models/property_definition.py +312 -0
  209. lusid/models/property_definition_search_result.py +312 -0
  210. lusid/models/property_filter.py +104 -0
  211. lusid/models/property_key_compliance_parameter.py +52 -0
  212. lusid/models/property_key_list_compliance_parameter.py +52 -0
  213. lusid/models/property_list.py +52 -0
  214. lusid/models/property_list_compliance_parameter.py +52 -0
  215. lusid/models/property_value_equals.py +52 -0
  216. lusid/models/property_value_in.py +52 -0
  217. lusid/models/protection_payout_cash_flow_event.py +52 -0
  218. lusid/models/quote_dependency.py +52 -0
  219. lusid/models/quote_series_id.py +104 -0
  220. lusid/models/raw_vendor_event.py +52 -0
  221. lusid/models/recombine_step.py +52 -0
  222. lusid/models/reconcile_date_time_rule.py +104 -0
  223. lusid/models/reconcile_numeric_rule.py +104 -0
  224. lusid/models/reconcile_string_rule.py +104 -0
  225. lusid/models/reconciliation_rule.py +52 -0
  226. lusid/models/reference_instrument.py +52 -0
  227. lusid/models/reference_list.py +52 -0
  228. lusid/models/repo.py +52 -0
  229. lusid/models/reset_event.py +52 -0
  230. lusid/models/resource_list_of_value_type.py +1 -1
  231. lusid/models/result_data_key_rule.py +52 -0
  232. lusid/models/result_key_rule.py +52 -0
  233. lusid/models/result_value.py +52 -0
  234. lusid/models/result_value0_d.py +52 -0
  235. lusid/models/result_value_bool.py +52 -0
  236. lusid/models/result_value_currency.py +52 -0
  237. lusid/models/result_value_date_time_offset.py +52 -0
  238. lusid/models/result_value_decimal.py +52 -0
  239. lusid/models/result_value_dictionary.py +52 -0
  240. lusid/models/result_value_int.py +52 -0
  241. lusid/models/result_value_string.py +52 -0
  242. lusid/models/reverse_stock_split_event.py +52 -0
  243. lusid/models/schedule.py +52 -0
  244. lusid/models/scrip_dividend_event.py +52 -0
  245. lusid/models/simple_cash_flow_loan.py +52 -0
  246. lusid/models/simple_instrument.py +104 -0
  247. lusid/models/spin_off_event.py +52 -0
  248. lusid/models/step_schedule.py +52 -0
  249. lusid/models/stock_dividend_event.py +52 -0
  250. lusid/models/stock_split_event.py +52 -0
  251. lusid/models/string_compliance_parameter.py +52 -0
  252. lusid/models/string_list.py +52 -0
  253. lusid/models/string_list_compliance_parameter.py +52 -0
  254. lusid/models/sub_holding_key_value_equals.py +52 -0
  255. lusid/models/swap_cash_flow_event.py +52 -0
  256. lusid/models/swap_principal_event.py +52 -0
  257. lusid/models/tender_event.py +52 -0
  258. lusid/models/term_deposit.py +52 -0
  259. lusid/models/term_deposit_interest_event.py +52 -0
  260. lusid/models/term_deposit_principal_event.py +52 -0
  261. lusid/models/total_return_swap.py +52 -0
  262. lusid/models/trade_ticket.py +52 -0
  263. lusid/models/transaction.py +52 -0
  264. lusid/models/transaction_configuration_movement_data.py +52 -0
  265. lusid/models/transaction_configuration_movement_data_request.py +52 -0
  266. lusid/models/transaction_configuration_type_alias.py +52 -0
  267. lusid/models/transaction_price.py +52 -0
  268. lusid/models/transaction_query_parameters.py +52 -0
  269. lusid/models/transition_event.py +52 -0
  270. lusid/models/trigger_event.py +52 -0
  271. lusid/models/update_deposit_amount_event.py +52 -0
  272. lusid/models/upsert_reference_portfolio_constituents_request.py +104 -0
  273. lusid/models/vendor_dependency.py +52 -0
  274. lusid/models/vendor_model_rule.py +52 -0
  275. lusid/models/weekend_mask.py +1 -1
  276. lusid/models/yield_curve_data.py +52 -0
  277. {lusid_sdk-2.1.747.dist-info → lusid_sdk-2.1.749.dist-info}/METADATA +7 -7
  278. {lusid_sdk-2.1.747.dist-info → lusid_sdk-2.1.749.dist-info}/RECORD +279 -279
  279. {lusid_sdk-2.1.747.dist-info → lusid_sdk-2.1.749.dist-info}/WHEEL +0 -0
@@ -37,6 +37,58 @@ class MbsPrincipalEvent(InstrumentEvent):
37
37
  @validator('instrument_event_type')
38
38
  def instrument_event_type_validate_enum(cls, value):
39
39
  """Validates the enum"""
40
+
41
+ # Finbourne have removed enum validation on all models, except for this use case:
42
+ # Workflow and notification application SDK use the property name 'type' as the discriminator on a number of classes.
43
+ # During instantiation, the value of 'type' is checked against the enum values,
44
+
45
+
46
+ # check it's a class that uses the 'type' property as a discriminator
47
+ # list of classes can be found by searching for 'actual_instance: Union[' in the generated code
48
+ if 'MbsPrincipalEvent' not in [
49
+ # For notification application classes
50
+ 'AmazonSqsNotificationType',
51
+ 'AmazonSqsNotificationTypeResponse',
52
+ 'AmazonSqsPrincipalAuthNotificationType',
53
+ 'AmazonSqsPrincipalAuthNotificationTypeResponse',
54
+ 'AzureServiceBusTypeResponse',
55
+ 'AzureServiceBusNotificationType',
56
+ 'EmailNotificationType',
57
+ 'EmailNotificationTypeResponse',
58
+ 'SmsNotificationType',
59
+ 'SmsNotificationTypeResponse',
60
+ 'WebhookNotificationType',
61
+ 'WebhookNotificationTypeResponse',
62
+
63
+ # For workflow application classes
64
+ 'CreateChildTasksAction',
65
+ 'RunWorkerAction',
66
+ 'TriggerParentTaskAction',
67
+ 'CreateChildTasksActionResponse',
68
+ 'RunWorkerActionResponse',
69
+ 'TriggerParentTaskActionResponse',
70
+ 'CreateNewTaskActivity',
71
+ 'UpdateMatchingTasksActivity',
72
+ 'CreateNewTaskActivityResponse',
73
+ 'UpdateMatchingTasksActivityResponse',
74
+ 'Fail',
75
+ 'GroupReconciliation',
76
+ 'HealthCheck',
77
+ 'LuminesceView',
78
+ 'SchedulerJob',
79
+ 'Sleep',
80
+ 'FailResponse',
81
+ 'GroupReconciliationResponse',
82
+ 'HealthCheckResponse',
83
+ 'LuminesceViewResponse',
84
+ 'SchedulerJobResponse',
85
+ 'SleepResponse']:
86
+ return value
87
+
88
+ # Only validate the 'type' property of the class
89
+ if "instrument_event_type" != "type":
90
+ return value
91
+
40
92
  if value not in ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent', 'CallOnIntermediateSecuritiesEvent', 'IntermediateSecuritiesDistributionEvent', 'OptionExercisePhysicalEvent', 'OptionExerciseCashEvent', 'ProtectionPayoutCashFlowEvent', 'TermDepositInterestEvent', 'TermDepositPrincipalEvent', 'EarlyRedemptionEvent', 'FutureMarkToMarketEvent', 'AdjustGlobalCommitmentEvent', 'ContractInitialisationEvent', 'DrawdownEvent', 'LoanInterestRepaymentEvent', 'UpdateDepositAmountEvent', 'LoanPrincipalRepaymentEvent', 'DepositInterestPaymentEvent', 'DepositCloseEvent'):
41
93
  raise ValueError("must be one of enum values ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent', 'CallOnIntermediateSecuritiesEvent', 'IntermediateSecuritiesDistributionEvent', 'OptionExercisePhysicalEvent', 'OptionExerciseCashEvent', 'ProtectionPayoutCashFlowEvent', 'TermDepositInterestEvent', 'TermDepositPrincipalEvent', 'EarlyRedemptionEvent', 'FutureMarkToMarketEvent', 'AdjustGlobalCommitmentEvent', 'ContractInitialisationEvent', 'DrawdownEvent', 'LoanInterestRepaymentEvent', 'UpdateDepositAmountEvent', 'LoanPrincipalRepaymentEvent', 'DepositInterestPaymentEvent', 'DepositCloseEvent')")
42
94
  return value
@@ -37,6 +37,58 @@ class MbsPrincipalWriteOffEvent(InstrumentEvent):
37
37
  @validator('instrument_event_type')
38
38
  def instrument_event_type_validate_enum(cls, value):
39
39
  """Validates the enum"""
40
+
41
+ # Finbourne have removed enum validation on all models, except for this use case:
42
+ # Workflow and notification application SDK use the property name 'type' as the discriminator on a number of classes.
43
+ # During instantiation, the value of 'type' is checked against the enum values,
44
+
45
+
46
+ # check it's a class that uses the 'type' property as a discriminator
47
+ # list of classes can be found by searching for 'actual_instance: Union[' in the generated code
48
+ if 'MbsPrincipalWriteOffEvent' not in [
49
+ # For notification application classes
50
+ 'AmazonSqsNotificationType',
51
+ 'AmazonSqsNotificationTypeResponse',
52
+ 'AmazonSqsPrincipalAuthNotificationType',
53
+ 'AmazonSqsPrincipalAuthNotificationTypeResponse',
54
+ 'AzureServiceBusTypeResponse',
55
+ 'AzureServiceBusNotificationType',
56
+ 'EmailNotificationType',
57
+ 'EmailNotificationTypeResponse',
58
+ 'SmsNotificationType',
59
+ 'SmsNotificationTypeResponse',
60
+ 'WebhookNotificationType',
61
+ 'WebhookNotificationTypeResponse',
62
+
63
+ # For workflow application classes
64
+ 'CreateChildTasksAction',
65
+ 'RunWorkerAction',
66
+ 'TriggerParentTaskAction',
67
+ 'CreateChildTasksActionResponse',
68
+ 'RunWorkerActionResponse',
69
+ 'TriggerParentTaskActionResponse',
70
+ 'CreateNewTaskActivity',
71
+ 'UpdateMatchingTasksActivity',
72
+ 'CreateNewTaskActivityResponse',
73
+ 'UpdateMatchingTasksActivityResponse',
74
+ 'Fail',
75
+ 'GroupReconciliation',
76
+ 'HealthCheck',
77
+ 'LuminesceView',
78
+ 'SchedulerJob',
79
+ 'Sleep',
80
+ 'FailResponse',
81
+ 'GroupReconciliationResponse',
82
+ 'HealthCheckResponse',
83
+ 'LuminesceViewResponse',
84
+ 'SchedulerJobResponse',
85
+ 'SleepResponse']:
86
+ return value
87
+
88
+ # Only validate the 'type' property of the class
89
+ if "instrument_event_type" != "type":
90
+ return value
91
+
40
92
  if value not in ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent', 'CallOnIntermediateSecuritiesEvent', 'IntermediateSecuritiesDistributionEvent', 'OptionExercisePhysicalEvent', 'OptionExerciseCashEvent', 'ProtectionPayoutCashFlowEvent', 'TermDepositInterestEvent', 'TermDepositPrincipalEvent', 'EarlyRedemptionEvent', 'FutureMarkToMarketEvent', 'AdjustGlobalCommitmentEvent', 'ContractInitialisationEvent', 'DrawdownEvent', 'LoanInterestRepaymentEvent', 'UpdateDepositAmountEvent', 'LoanPrincipalRepaymentEvent', 'DepositInterestPaymentEvent', 'DepositCloseEvent'):
41
93
  raise ValueError("must be one of enum values ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent', 'CallOnIntermediateSecuritiesEvent', 'IntermediateSecuritiesDistributionEvent', 'OptionExercisePhysicalEvent', 'OptionExerciseCashEvent', 'ProtectionPayoutCashFlowEvent', 'TermDepositInterestEvent', 'TermDepositPrincipalEvent', 'EarlyRedemptionEvent', 'FutureMarkToMarketEvent', 'AdjustGlobalCommitmentEvent', 'ContractInitialisationEvent', 'DrawdownEvent', 'LoanInterestRepaymentEvent', 'UpdateDepositAmountEvent', 'LoanPrincipalRepaymentEvent', 'DepositInterestPaymentEvent', 'DepositCloseEvent')")
42
94
  return value
@@ -47,6 +47,58 @@ class MergerEvent(InstrumentEvent):
47
47
  @validator('instrument_event_type')
48
48
  def instrument_event_type_validate_enum(cls, value):
49
49
  """Validates the enum"""
50
+
51
+ # Finbourne have removed enum validation on all models, except for this use case:
52
+ # Workflow and notification application SDK use the property name 'type' as the discriminator on a number of classes.
53
+ # During instantiation, the value of 'type' is checked against the enum values,
54
+
55
+
56
+ # check it's a class that uses the 'type' property as a discriminator
57
+ # list of classes can be found by searching for 'actual_instance: Union[' in the generated code
58
+ if 'MergerEvent' not in [
59
+ # For notification application classes
60
+ 'AmazonSqsNotificationType',
61
+ 'AmazonSqsNotificationTypeResponse',
62
+ 'AmazonSqsPrincipalAuthNotificationType',
63
+ 'AmazonSqsPrincipalAuthNotificationTypeResponse',
64
+ 'AzureServiceBusTypeResponse',
65
+ 'AzureServiceBusNotificationType',
66
+ 'EmailNotificationType',
67
+ 'EmailNotificationTypeResponse',
68
+ 'SmsNotificationType',
69
+ 'SmsNotificationTypeResponse',
70
+ 'WebhookNotificationType',
71
+ 'WebhookNotificationTypeResponse',
72
+
73
+ # For workflow application classes
74
+ 'CreateChildTasksAction',
75
+ 'RunWorkerAction',
76
+ 'TriggerParentTaskAction',
77
+ 'CreateChildTasksActionResponse',
78
+ 'RunWorkerActionResponse',
79
+ 'TriggerParentTaskActionResponse',
80
+ 'CreateNewTaskActivity',
81
+ 'UpdateMatchingTasksActivity',
82
+ 'CreateNewTaskActivityResponse',
83
+ 'UpdateMatchingTasksActivityResponse',
84
+ 'Fail',
85
+ 'GroupReconciliation',
86
+ 'HealthCheck',
87
+ 'LuminesceView',
88
+ 'SchedulerJob',
89
+ 'Sleep',
90
+ 'FailResponse',
91
+ 'GroupReconciliationResponse',
92
+ 'HealthCheckResponse',
93
+ 'LuminesceViewResponse',
94
+ 'SchedulerJobResponse',
95
+ 'SleepResponse']:
96
+ return value
97
+
98
+ # Only validate the 'type' property of the class
99
+ if "instrument_event_type" != "type":
100
+ return value
101
+
50
102
  if value not in ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent', 'CallOnIntermediateSecuritiesEvent', 'IntermediateSecuritiesDistributionEvent', 'OptionExercisePhysicalEvent', 'OptionExerciseCashEvent', 'ProtectionPayoutCashFlowEvent', 'TermDepositInterestEvent', 'TermDepositPrincipalEvent', 'EarlyRedemptionEvent', 'FutureMarkToMarketEvent', 'AdjustGlobalCommitmentEvent', 'ContractInitialisationEvent', 'DrawdownEvent', 'LoanInterestRepaymentEvent', 'UpdateDepositAmountEvent', 'LoanPrincipalRepaymentEvent', 'DepositInterestPaymentEvent', 'DepositCloseEvent'):
51
103
  raise ValueError("must be one of enum values ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent', 'CallOnIntermediateSecuritiesEvent', 'IntermediateSecuritiesDistributionEvent', 'OptionExercisePhysicalEvent', 'OptionExerciseCashEvent', 'ProtectionPayoutCashFlowEvent', 'TermDepositInterestEvent', 'TermDepositPrincipalEvent', 'EarlyRedemptionEvent', 'FutureMarkToMarketEvent', 'AdjustGlobalCommitmentEvent', 'ContractInitialisationEvent', 'DrawdownEvent', 'LoanInterestRepaymentEvent', 'UpdateDepositAmountEvent', 'LoanPrincipalRepaymentEvent', 'DepositInterestPaymentEvent', 'DepositCloseEvent')")
52
104
  return value
@@ -32,6 +32,58 @@ class ModelOptions(BaseModel):
32
32
  @validator('model_options_type')
33
33
  def model_options_type_validate_enum(cls, value):
34
34
  """Validates the enum"""
35
+
36
+ # Finbourne have removed enum validation on all models, except for this use case:
37
+ # Workflow and notification application SDK use the property name 'type' as the discriminator on a number of classes.
38
+ # During instantiation, the value of 'type' is checked against the enum values,
39
+
40
+
41
+ # check it's a class that uses the 'type' property as a discriminator
42
+ # list of classes can be found by searching for 'actual_instance: Union[' in the generated code
43
+ if 'ModelOptions' not in [
44
+ # For notification application classes
45
+ 'AmazonSqsNotificationType',
46
+ 'AmazonSqsNotificationTypeResponse',
47
+ 'AmazonSqsPrincipalAuthNotificationType',
48
+ 'AmazonSqsPrincipalAuthNotificationTypeResponse',
49
+ 'AzureServiceBusTypeResponse',
50
+ 'AzureServiceBusNotificationType',
51
+ 'EmailNotificationType',
52
+ 'EmailNotificationTypeResponse',
53
+ 'SmsNotificationType',
54
+ 'SmsNotificationTypeResponse',
55
+ 'WebhookNotificationType',
56
+ 'WebhookNotificationTypeResponse',
57
+
58
+ # For workflow application classes
59
+ 'CreateChildTasksAction',
60
+ 'RunWorkerAction',
61
+ 'TriggerParentTaskAction',
62
+ 'CreateChildTasksActionResponse',
63
+ 'RunWorkerActionResponse',
64
+ 'TriggerParentTaskActionResponse',
65
+ 'CreateNewTaskActivity',
66
+ 'UpdateMatchingTasksActivity',
67
+ 'CreateNewTaskActivityResponse',
68
+ 'UpdateMatchingTasksActivityResponse',
69
+ 'Fail',
70
+ 'GroupReconciliation',
71
+ 'HealthCheck',
72
+ 'LuminesceView',
73
+ 'SchedulerJob',
74
+ 'Sleep',
75
+ 'FailResponse',
76
+ 'GroupReconciliationResponse',
77
+ 'HealthCheckResponse',
78
+ 'LuminesceViewResponse',
79
+ 'SchedulerJobResponse',
80
+ 'SleepResponse']:
81
+ return value
82
+
83
+ # Only validate the 'type' property of the class
84
+ if "model_options_type" != "type":
85
+ return value
86
+
35
87
  if value not in ('Invalid', 'OpaqueModelOptions', 'EmptyModelOptions', 'IndexModelOptions', 'FxForwardModelOptions', 'FundingLegModelOptions', 'EquityModelOptions'):
36
88
  raise ValueError("must be one of enum values ('Invalid', 'OpaqueModelOptions', 'EmptyModelOptions', 'IndexModelOptions', 'FxForwardModelOptions', 'FundingLegModelOptions', 'EquityModelOptions')")
37
89
  return value
@@ -32,6 +32,58 @@ class ModelSelection(BaseModel):
32
32
  @validator('library')
33
33
  def library_validate_enum(cls, value):
34
34
  """Validates the enum"""
35
+
36
+ # Finbourne have removed enum validation on all models, except for this use case:
37
+ # Workflow and notification application SDK use the property name 'type' as the discriminator on a number of classes.
38
+ # During instantiation, the value of 'type' is checked against the enum values,
39
+
40
+
41
+ # check it's a class that uses the 'type' property as a discriminator
42
+ # list of classes can be found by searching for 'actual_instance: Union[' in the generated code
43
+ if 'ModelSelection' not in [
44
+ # For notification application classes
45
+ 'AmazonSqsNotificationType',
46
+ 'AmazonSqsNotificationTypeResponse',
47
+ 'AmazonSqsPrincipalAuthNotificationType',
48
+ 'AmazonSqsPrincipalAuthNotificationTypeResponse',
49
+ 'AzureServiceBusTypeResponse',
50
+ 'AzureServiceBusNotificationType',
51
+ 'EmailNotificationType',
52
+ 'EmailNotificationTypeResponse',
53
+ 'SmsNotificationType',
54
+ 'SmsNotificationTypeResponse',
55
+ 'WebhookNotificationType',
56
+ 'WebhookNotificationTypeResponse',
57
+
58
+ # For workflow application classes
59
+ 'CreateChildTasksAction',
60
+ 'RunWorkerAction',
61
+ 'TriggerParentTaskAction',
62
+ 'CreateChildTasksActionResponse',
63
+ 'RunWorkerActionResponse',
64
+ 'TriggerParentTaskActionResponse',
65
+ 'CreateNewTaskActivity',
66
+ 'UpdateMatchingTasksActivity',
67
+ 'CreateNewTaskActivityResponse',
68
+ 'UpdateMatchingTasksActivityResponse',
69
+ 'Fail',
70
+ 'GroupReconciliation',
71
+ 'HealthCheck',
72
+ 'LuminesceView',
73
+ 'SchedulerJob',
74
+ 'Sleep',
75
+ 'FailResponse',
76
+ 'GroupReconciliationResponse',
77
+ 'HealthCheckResponse',
78
+ 'LuminesceViewResponse',
79
+ 'SchedulerJobResponse',
80
+ 'SleepResponse']:
81
+ return value
82
+
83
+ # Only validate the 'type' property of the class
84
+ if "library" != "type":
85
+ return value
86
+
35
87
  if value not in ('Lusid', 'RefinitivQps', 'RefinitivTracsWeb', 'VolMaster', 'IsdaCds', 'YieldBook', 'LusidCalc'):
36
88
  raise ValueError("must be one of enum values ('Lusid', 'RefinitivQps', 'RefinitivTracsWeb', 'VolMaster', 'IsdaCds', 'YieldBook', 'LusidCalc')")
37
89
  return value
@@ -39,6 +91,58 @@ class ModelSelection(BaseModel):
39
91
  @validator('model')
40
92
  def model_validate_enum(cls, value):
41
93
  """Validates the enum"""
94
+
95
+ # Finbourne have removed enum validation on all models, except for this use case:
96
+ # Workflow and notification application SDK use the property name 'type' as the discriminator on a number of classes.
97
+ # During instantiation, the value of 'type' is checked against the enum values,
98
+
99
+
100
+ # check it's a class that uses the 'type' property as a discriminator
101
+ # list of classes can be found by searching for 'actual_instance: Union[' in the generated code
102
+ if 'ModelSelection' not in [
103
+ # For notification application classes
104
+ 'AmazonSqsNotificationType',
105
+ 'AmazonSqsNotificationTypeResponse',
106
+ 'AmazonSqsPrincipalAuthNotificationType',
107
+ 'AmazonSqsPrincipalAuthNotificationTypeResponse',
108
+ 'AzureServiceBusTypeResponse',
109
+ 'AzureServiceBusNotificationType',
110
+ 'EmailNotificationType',
111
+ 'EmailNotificationTypeResponse',
112
+ 'SmsNotificationType',
113
+ 'SmsNotificationTypeResponse',
114
+ 'WebhookNotificationType',
115
+ 'WebhookNotificationTypeResponse',
116
+
117
+ # For workflow application classes
118
+ 'CreateChildTasksAction',
119
+ 'RunWorkerAction',
120
+ 'TriggerParentTaskAction',
121
+ 'CreateChildTasksActionResponse',
122
+ 'RunWorkerActionResponse',
123
+ 'TriggerParentTaskActionResponse',
124
+ 'CreateNewTaskActivity',
125
+ 'UpdateMatchingTasksActivity',
126
+ 'CreateNewTaskActivityResponse',
127
+ 'UpdateMatchingTasksActivityResponse',
128
+ 'Fail',
129
+ 'GroupReconciliation',
130
+ 'HealthCheck',
131
+ 'LuminesceView',
132
+ 'SchedulerJob',
133
+ 'Sleep',
134
+ 'FailResponse',
135
+ 'GroupReconciliationResponse',
136
+ 'HealthCheckResponse',
137
+ 'LuminesceViewResponse',
138
+ 'SchedulerJobResponse',
139
+ 'SleepResponse']:
140
+ return value
141
+
142
+ # Only validate the 'type' property of the class
143
+ if "model" != "type":
144
+ return value
145
+
42
146
  if value not in ('SimpleStatic', 'Discounting', 'VendorDefault', 'BlackScholes', 'ConstantTimeValueOfMoney', 'Bachelier', 'ForwardWithPoints', 'ForwardWithPointsUndiscounted', 'ForwardSpecifiedRate', 'ForwardSpecifiedRateUndiscounted', 'IndexNav', 'IndexPrice', 'InlinedIndex', 'ForwardFromCurve', 'ForwardFromCurveUndiscounted', 'BlackScholesDigital', 'BjerksundStensland1993', 'BondLookupPricer', 'FlexibleLoanPricer', 'CdsLookupPricer', 'LoanFacilityPricer'):
43
147
  raise ValueError("must be one of enum values ('SimpleStatic', 'Discounting', 'VendorDefault', 'BlackScholes', 'ConstantTimeValueOfMoney', 'Bachelier', 'ForwardWithPoints', 'ForwardWithPointsUndiscounted', 'ForwardSpecifiedRate', 'ForwardSpecifiedRateUndiscounted', 'IndexNav', 'IndexPrice', 'InlinedIndex', 'ForwardFromCurve', 'ForwardFromCurveUndiscounted', 'BlackScholesDigital', 'BjerksundStensland1993', 'BondLookupPricer', 'FlexibleLoanPricer', 'CdsLookupPricer', 'LoanFacilityPricer')")
44
148
  return value
@@ -33,6 +33,58 @@ class OpaqueDependency(EconomicDependency):
33
33
  @validator('dependency_type')
34
34
  def dependency_type_validate_enum(cls, value):
35
35
  """Validates the enum"""
36
+
37
+ # Finbourne have removed enum validation on all models, except for this use case:
38
+ # Workflow and notification application SDK use the property name 'type' as the discriminator on a number of classes.
39
+ # During instantiation, the value of 'type' is checked against the enum values,
40
+
41
+
42
+ # check it's a class that uses the 'type' property as a discriminator
43
+ # list of classes can be found by searching for 'actual_instance: Union[' in the generated code
44
+ if 'OpaqueDependency' not in [
45
+ # For notification application classes
46
+ 'AmazonSqsNotificationType',
47
+ 'AmazonSqsNotificationTypeResponse',
48
+ 'AmazonSqsPrincipalAuthNotificationType',
49
+ 'AmazonSqsPrincipalAuthNotificationTypeResponse',
50
+ 'AzureServiceBusTypeResponse',
51
+ 'AzureServiceBusNotificationType',
52
+ 'EmailNotificationType',
53
+ 'EmailNotificationTypeResponse',
54
+ 'SmsNotificationType',
55
+ 'SmsNotificationTypeResponse',
56
+ 'WebhookNotificationType',
57
+ 'WebhookNotificationTypeResponse',
58
+
59
+ # For workflow application classes
60
+ 'CreateChildTasksAction',
61
+ 'RunWorkerAction',
62
+ 'TriggerParentTaskAction',
63
+ 'CreateChildTasksActionResponse',
64
+ 'RunWorkerActionResponse',
65
+ 'TriggerParentTaskActionResponse',
66
+ 'CreateNewTaskActivity',
67
+ 'UpdateMatchingTasksActivity',
68
+ 'CreateNewTaskActivityResponse',
69
+ 'UpdateMatchingTasksActivityResponse',
70
+ 'Fail',
71
+ 'GroupReconciliation',
72
+ 'HealthCheck',
73
+ 'LuminesceView',
74
+ 'SchedulerJob',
75
+ 'Sleep',
76
+ 'FailResponse',
77
+ 'GroupReconciliationResponse',
78
+ 'HealthCheckResponse',
79
+ 'LuminesceViewResponse',
80
+ 'SchedulerJobResponse',
81
+ 'SleepResponse']:
82
+ return value
83
+
84
+ # Only validate the 'type' property of the class
85
+ if "dependency_type" != "type":
86
+ return value
87
+
36
88
  if value not in ('OpaqueDependency', 'CashDependency', 'DiscountingDependency', 'EquityCurveDependency', 'EquityVolDependency', 'FxDependency', 'FxForwardsDependency', 'FxVolDependency', 'IndexProjectionDependency', 'IrVolDependency', 'QuoteDependency', 'Vendor', 'CalendarDependency', 'InflationFixingDependency'):
37
89
  raise ValueError("must be one of enum values ('OpaqueDependency', 'CashDependency', 'DiscountingDependency', 'EquityCurveDependency', 'EquityVolDependency', 'FxDependency', 'FxForwardsDependency', 'FxVolDependency', 'IndexProjectionDependency', 'IrVolDependency', 'QuoteDependency', 'Vendor', 'CalendarDependency', 'InflationFixingDependency')")
38
90
  return value
@@ -37,6 +37,58 @@ class OpaqueMarketData(ComplexMarketData):
37
37
  @validator('market_data_type')
38
38
  def market_data_type_validate_enum(cls, value):
39
39
  """Validates the enum"""
40
+
41
+ # Finbourne have removed enum validation on all models, except for this use case:
42
+ # Workflow and notification application SDK use the property name 'type' as the discriminator on a number of classes.
43
+ # During instantiation, the value of 'type' is checked against the enum values,
44
+
45
+
46
+ # check it's a class that uses the 'type' property as a discriminator
47
+ # list of classes can be found by searching for 'actual_instance: Union[' in the generated code
48
+ if 'OpaqueMarketData' not in [
49
+ # For notification application classes
50
+ 'AmazonSqsNotificationType',
51
+ 'AmazonSqsNotificationTypeResponse',
52
+ 'AmazonSqsPrincipalAuthNotificationType',
53
+ 'AmazonSqsPrincipalAuthNotificationTypeResponse',
54
+ 'AzureServiceBusTypeResponse',
55
+ 'AzureServiceBusNotificationType',
56
+ 'EmailNotificationType',
57
+ 'EmailNotificationTypeResponse',
58
+ 'SmsNotificationType',
59
+ 'SmsNotificationTypeResponse',
60
+ 'WebhookNotificationType',
61
+ 'WebhookNotificationTypeResponse',
62
+
63
+ # For workflow application classes
64
+ 'CreateChildTasksAction',
65
+ 'RunWorkerAction',
66
+ 'TriggerParentTaskAction',
67
+ 'CreateChildTasksActionResponse',
68
+ 'RunWorkerActionResponse',
69
+ 'TriggerParentTaskActionResponse',
70
+ 'CreateNewTaskActivity',
71
+ 'UpdateMatchingTasksActivity',
72
+ 'CreateNewTaskActivityResponse',
73
+ 'UpdateMatchingTasksActivityResponse',
74
+ 'Fail',
75
+ 'GroupReconciliation',
76
+ 'HealthCheck',
77
+ 'LuminesceView',
78
+ 'SchedulerJob',
79
+ 'Sleep',
80
+ 'FailResponse',
81
+ 'GroupReconciliationResponse',
82
+ 'HealthCheckResponse',
83
+ 'LuminesceViewResponse',
84
+ 'SchedulerJobResponse',
85
+ 'SleepResponse']:
86
+ return value
87
+
88
+ # Only validate the 'type' property of the class
89
+ if "market_data_type" != "type":
90
+ return value
91
+
40
92
  if value not in ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData', 'ConstantVolatilitySurface'):
41
93
  raise ValueError("must be one of enum values ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData', 'ConstantVolatilitySurface')")
42
94
  return value
@@ -34,6 +34,58 @@ class OpaqueModelOptions(ModelOptions):
34
34
  @validator('model_options_type')
35
35
  def model_options_type_validate_enum(cls, value):
36
36
  """Validates the enum"""
37
+
38
+ # Finbourne have removed enum validation on all models, except for this use case:
39
+ # Workflow and notification application SDK use the property name 'type' as the discriminator on a number of classes.
40
+ # During instantiation, the value of 'type' is checked against the enum values,
41
+
42
+
43
+ # check it's a class that uses the 'type' property as a discriminator
44
+ # list of classes can be found by searching for 'actual_instance: Union[' in the generated code
45
+ if 'OpaqueModelOptions' not in [
46
+ # For notification application classes
47
+ 'AmazonSqsNotificationType',
48
+ 'AmazonSqsNotificationTypeResponse',
49
+ 'AmazonSqsPrincipalAuthNotificationType',
50
+ 'AmazonSqsPrincipalAuthNotificationTypeResponse',
51
+ 'AzureServiceBusTypeResponse',
52
+ 'AzureServiceBusNotificationType',
53
+ 'EmailNotificationType',
54
+ 'EmailNotificationTypeResponse',
55
+ 'SmsNotificationType',
56
+ 'SmsNotificationTypeResponse',
57
+ 'WebhookNotificationType',
58
+ 'WebhookNotificationTypeResponse',
59
+
60
+ # For workflow application classes
61
+ 'CreateChildTasksAction',
62
+ 'RunWorkerAction',
63
+ 'TriggerParentTaskAction',
64
+ 'CreateChildTasksActionResponse',
65
+ 'RunWorkerActionResponse',
66
+ 'TriggerParentTaskActionResponse',
67
+ 'CreateNewTaskActivity',
68
+ 'UpdateMatchingTasksActivity',
69
+ 'CreateNewTaskActivityResponse',
70
+ 'UpdateMatchingTasksActivityResponse',
71
+ 'Fail',
72
+ 'GroupReconciliation',
73
+ 'HealthCheck',
74
+ 'LuminesceView',
75
+ 'SchedulerJob',
76
+ 'Sleep',
77
+ 'FailResponse',
78
+ 'GroupReconciliationResponse',
79
+ 'HealthCheckResponse',
80
+ 'LuminesceViewResponse',
81
+ 'SchedulerJobResponse',
82
+ 'SleepResponse']:
83
+ return value
84
+
85
+ # Only validate the 'type' property of the class
86
+ if "model_options_type" != "type":
87
+ return value
88
+
37
89
  if value not in ('Invalid', 'OpaqueModelOptions', 'EmptyModelOptions', 'IndexModelOptions', 'FxForwardModelOptions', 'FundingLegModelOptions', 'EquityModelOptions'):
38
90
  raise ValueError("must be one of enum values ('Invalid', 'OpaqueModelOptions', 'EmptyModelOptions', 'IndexModelOptions', 'FxForwardModelOptions', 'FundingLegModelOptions', 'EquityModelOptions')")
39
91
  return value
@@ -34,6 +34,58 @@ class OpenEvent(InstrumentEvent):
34
34
  @validator('instrument_event_type')
35
35
  def instrument_event_type_validate_enum(cls, value):
36
36
  """Validates the enum"""
37
+
38
+ # Finbourne have removed enum validation on all models, except for this use case:
39
+ # Workflow and notification application SDK use the property name 'type' as the discriminator on a number of classes.
40
+ # During instantiation, the value of 'type' is checked against the enum values,
41
+
42
+
43
+ # check it's a class that uses the 'type' property as a discriminator
44
+ # list of classes can be found by searching for 'actual_instance: Union[' in the generated code
45
+ if 'OpenEvent' not in [
46
+ # For notification application classes
47
+ 'AmazonSqsNotificationType',
48
+ 'AmazonSqsNotificationTypeResponse',
49
+ 'AmazonSqsPrincipalAuthNotificationType',
50
+ 'AmazonSqsPrincipalAuthNotificationTypeResponse',
51
+ 'AzureServiceBusTypeResponse',
52
+ 'AzureServiceBusNotificationType',
53
+ 'EmailNotificationType',
54
+ 'EmailNotificationTypeResponse',
55
+ 'SmsNotificationType',
56
+ 'SmsNotificationTypeResponse',
57
+ 'WebhookNotificationType',
58
+ 'WebhookNotificationTypeResponse',
59
+
60
+ # For workflow application classes
61
+ 'CreateChildTasksAction',
62
+ 'RunWorkerAction',
63
+ 'TriggerParentTaskAction',
64
+ 'CreateChildTasksActionResponse',
65
+ 'RunWorkerActionResponse',
66
+ 'TriggerParentTaskActionResponse',
67
+ 'CreateNewTaskActivity',
68
+ 'UpdateMatchingTasksActivity',
69
+ 'CreateNewTaskActivityResponse',
70
+ 'UpdateMatchingTasksActivityResponse',
71
+ 'Fail',
72
+ 'GroupReconciliation',
73
+ 'HealthCheck',
74
+ 'LuminesceView',
75
+ 'SchedulerJob',
76
+ 'Sleep',
77
+ 'FailResponse',
78
+ 'GroupReconciliationResponse',
79
+ 'HealthCheckResponse',
80
+ 'LuminesceViewResponse',
81
+ 'SchedulerJobResponse',
82
+ 'SleepResponse']:
83
+ return value
84
+
85
+ # Only validate the 'type' property of the class
86
+ if "instrument_event_type" != "type":
87
+ return value
88
+
37
89
  if value not in ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent', 'CallOnIntermediateSecuritiesEvent', 'IntermediateSecuritiesDistributionEvent', 'OptionExercisePhysicalEvent', 'OptionExerciseCashEvent', 'ProtectionPayoutCashFlowEvent', 'TermDepositInterestEvent', 'TermDepositPrincipalEvent', 'EarlyRedemptionEvent', 'FutureMarkToMarketEvent', 'AdjustGlobalCommitmentEvent', 'ContractInitialisationEvent', 'DrawdownEvent', 'LoanInterestRepaymentEvent', 'UpdateDepositAmountEvent', 'LoanPrincipalRepaymentEvent', 'DepositInterestPaymentEvent', 'DepositCloseEvent'):
38
90
  raise ValueError("must be one of enum values ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent', 'CallOnIntermediateSecuritiesEvent', 'IntermediateSecuritiesDistributionEvent', 'OptionExercisePhysicalEvent', 'OptionExerciseCashEvent', 'ProtectionPayoutCashFlowEvent', 'TermDepositInterestEvent', 'TermDepositPrincipalEvent', 'EarlyRedemptionEvent', 'FutureMarkToMarketEvent', 'AdjustGlobalCommitmentEvent', 'ContractInitialisationEvent', 'DrawdownEvent', 'LoanInterestRepaymentEvent', 'UpdateDepositAmountEvent', 'LoanPrincipalRepaymentEvent', 'DepositInterestPaymentEvent', 'DepositCloseEvent')")
39
91
  return value