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

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

Potentially problematic release.


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

Files changed (317) hide show
  1. lusid/__init__.py +92 -13
  2. lusid/api/__init__.py +2 -0
  3. lusid/api/abor_api.py +513 -179
  4. lusid/api/abor_configuration_api.py +25 -24
  5. lusid/api/allocations_api.py +12 -20
  6. lusid/api/blocks_api.py +6 -6
  7. lusid/api/calendars_api.py +16 -24
  8. lusid/api/chart_of_accounts_api.py +1745 -441
  9. lusid/api/compliance_api.py +71 -62
  10. lusid/api/configuration_recipe_api.py +1198 -56
  11. lusid/api/corporate_action_sources_api.py +8 -8
  12. lusid/api/custom_entities_api.py +6 -6
  13. lusid/api/cut_label_definitions_api.py +9 -17
  14. lusid/api/data_types_api.py +16 -32
  15. lusid/api/executions_api.py +6 -6
  16. lusid/api/funds_api.py +944 -0
  17. lusid/api/instrument_event_types_api.py +1287 -0
  18. lusid/api/instruments_api.py +12 -20
  19. lusid/api/legacy_compliance_api.py +12 -12
  20. lusid/api/legal_entities_api.py +12 -12
  21. lusid/api/order_graph_api.py +12 -12
  22. lusid/api/order_instructions_api.py +6 -6
  23. lusid/api/order_management_api.py +495 -14
  24. lusid/api/orders_api.py +16 -24
  25. lusid/api/packages_api.py +6 -6
  26. lusid/api/persons_api.py +16 -24
  27. lusid/api/placements_api.py +12 -12
  28. lusid/api/portfolio_groups_api.py +6 -6
  29. lusid/api/portfolios_api.py +23 -39
  30. lusid/api/property_definitions_api.py +205 -0
  31. lusid/api/quotes_api.py +20 -36
  32. lusid/api/reconciliations_api.py +410 -1978
  33. lusid/api/schemas_api.py +7 -15
  34. lusid/api/scopes_api.py +151 -0
  35. lusid/api/scripted_translation_api.py +30 -28
  36. lusid/api/transaction_configuration_api.py +22 -22
  37. lusid/api/transaction_portfolios_api.py +282 -577
  38. lusid/api_client.py +5 -3
  39. lusid/configuration.py +1 -1
  40. lusid/extensions/__init__.py +1 -9
  41. lusid/extensions/api_client.py +3 -1
  42. lusid/extensions/api_client_factory.py +156 -45
  43. lusid/extensions/api_configuration.py +124 -15
  44. lusid/extensions/configuration_loaders.py +2 -4
  45. lusid/extensions/proxy_config.py +8 -5
  46. lusid/extensions/socket_keep_alive.py +14 -15
  47. lusid/extensions/tcp_keep_alive_connector.py +93 -46
  48. lusid/models/__init__.py +90 -13
  49. lusid/models/abor.py +9 -2
  50. lusid/models/abor_configuration.py +8 -8
  51. lusid/models/abor_configuration_request.py +9 -9
  52. lusid/models/abor_request.py +1 -1
  53. lusid/models/account.py +6 -1
  54. lusid/models/accumulation_event.py +104 -0
  55. lusid/models/address_key_compliance_parameter.py +5 -12
  56. lusid/models/address_key_list_compliance_parameter.py +3 -3
  57. lusid/models/address_key_option_definition.py +3 -1
  58. lusid/models/amortisation_event.py +4 -6
  59. lusid/models/{underlying_leg.py → asset_leg.py} +15 -15
  60. lusid/models/basket.py +3 -3
  61. lusid/models/block_and_order_id_request.py +78 -0
  62. lusid/models/block_and_orders.py +83 -0
  63. lusid/models/block_and_orders_create_request.py +77 -0
  64. lusid/models/block_and_orders_request.py +134 -0
  65. lusid/models/blocked_order_request.py +130 -0
  66. lusid/models/bond.py +13 -6
  67. lusid/models/bond_coupon_event.py +97 -0
  68. lusid/models/bond_default_event.py +8 -18
  69. lusid/models/bond_principal_event.py +97 -0
  70. lusid/models/book_transactions_request.py +97 -0
  71. lusid/models/bool_compliance_parameter.py +3 -3
  72. lusid/models/bool_list_compliance_parameter.py +3 -3
  73. lusid/models/branch_step.py +101 -0
  74. lusid/models/cap_floor.py +3 -3
  75. lusid/models/cash_dividend_event.py +32 -10
  76. lusid/models/cash_election.py +91 -0
  77. lusid/models/cash_flow_event.py +5 -7
  78. lusid/models/cash_perpetual.py +3 -3
  79. lusid/models/cds_flow_conventions.py +1 -1
  80. lusid/models/cds_index.py +4 -4
  81. lusid/models/check_step.py +110 -0
  82. lusid/models/cleardown_module_details.py +95 -0
  83. lusid/models/cleardown_module_request.py +117 -0
  84. lusid/models/cleardown_module_response.py +139 -0
  85. lusid/models/cleardown_module_rule.py +94 -0
  86. lusid/models/{reconciliation_run_break.py → cleardown_module_rules_updated_response.py} +30 -36
  87. lusid/models/close_event.py +3 -3
  88. lusid/models/close_period_diary_entry_request.py +149 -0
  89. lusid/models/complete_portfolio.py +8 -1
  90. lusid/models/complex_bond.py +4 -4
  91. lusid/models/complex_market_data.py +6 -5
  92. lusid/models/compliance_parameter.py +8 -5
  93. lusid/models/compliance_parameter_type.py +3 -0
  94. lusid/models/compliance_rule_breakdown.py +16 -8
  95. lusid/models/compliance_rule_breakdown_request.py +12 -4
  96. lusid/models/compliance_rule_result_v2.py +85 -0
  97. lusid/models/compliance_step.py +99 -0
  98. lusid/models/compliance_step_type.py +42 -0
  99. lusid/models/compliance_summary_rule_result.py +12 -15
  100. lusid/models/compliance_summary_rule_result_request.py +12 -15
  101. lusid/models/compliance_template_variation.py +12 -2
  102. lusid/models/component_transaction.py +92 -0
  103. lusid/models/composite_dispersion.py +30 -5
  104. lusid/models/compounding.py +4 -4
  105. lusid/models/configuration_recipe.py +10 -19
  106. lusid/models/constant_volatility_surface.py +102 -0
  107. lusid/models/contract_for_difference.py +3 -3
  108. lusid/models/create_derived_property_definition_request.py +3 -3
  109. lusid/models/create_derived_transaction_portfolio_request.py +10 -3
  110. lusid/models/create_property_definition_request.py +12 -5
  111. lusid/models/create_trade_tickets_response.py +87 -0
  112. lusid/models/create_transaction_portfolio_request.py +16 -3
  113. lusid/models/credit_default_swap.py +4 -4
  114. lusid/models/credit_spread_curve_data.py +4 -4
  115. lusid/models/custom_entity_definition.py +8 -2
  116. lusid/models/custom_entity_type.py +8 -2
  117. lusid/models/cut_label_definition.py +7 -1
  118. lusid/models/data_type.py +7 -1
  119. lusid/models/data_type_summary.py +8 -2
  120. lusid/models/date_time_compliance_parameter.py +3 -3
  121. lusid/models/date_time_list_compliance_parameter.py +3 -3
  122. lusid/models/{upsert_reconciliation_run_request.py → day_month.py} +15 -15
  123. lusid/models/decimal_compliance_parameter.py +3 -3
  124. lusid/models/decimal_list_compliance_parameter.py +3 -3
  125. lusid/models/dialect.py +9 -3
  126. lusid/models/diary_entry.py +1 -1
  127. lusid/models/diary_entry_request.py +1 -1
  128. lusid/models/discount_factor_curve_data.py +3 -3
  129. lusid/models/dividend_option_event.py +129 -0
  130. lusid/models/dividend_reinvestment_event.py +122 -0
  131. lusid/models/election_specification.py +73 -0
  132. lusid/models/eligibility_calculation.py +71 -0
  133. lusid/models/empty_model_options.py +3 -3
  134. lusid/models/equity.py +8 -6
  135. lusid/models/equity_curve_by_prices_data.py +3 -3
  136. lusid/models/equity_model_options.py +3 -3
  137. lusid/models/equity_option.py +3 -3
  138. lusid/models/equity_swap.py +4 -4
  139. lusid/models/equity_vol_surface_data.py +3 -3
  140. lusid/models/exchange_traded_option.py +3 -3
  141. lusid/models/exercise_event.py +5 -7
  142. lusid/models/exotic_instrument.py +3 -3
  143. lusid/models/filter_predicate_compliance_parameter.py +91 -0
  144. lusid/models/filter_step.py +101 -0
  145. lusid/models/fixed_leg.py +3 -3
  146. lusid/models/fixed_schedule.py +4 -9
  147. lusid/models/flexible_loan.py +105 -0
  148. lusid/models/float_schedule.py +20 -12
  149. lusid/models/floating_leg.py +3 -3
  150. lusid/models/flow_convention_name.py +1 -1
  151. lusid/models/flow_conventions.py +1 -1
  152. lusid/models/forward_rate_agreement.py +3 -3
  153. lusid/models/from_recipe.py +81 -0
  154. lusid/models/fund.py +182 -0
  155. lusid/models/fund_properties.py +115 -0
  156. lusid/models/fund_request.py +165 -0
  157. lusid/models/fund_share_class.py +99 -0
  158. lusid/models/funding_leg.py +3 -3
  159. lusid/models/funding_leg_options.py +3 -3
  160. lusid/models/future.py +3 -3
  161. lusid/models/fx_conventions.py +73 -0
  162. lusid/models/fx_forward.py +8 -6
  163. lusid/models/fx_forward_curve_by_quote_reference.py +4 -4
  164. lusid/models/fx_forward_curve_data.py +3 -3
  165. lusid/models/fx_forward_model_options.py +3 -3
  166. lusid/models/fx_forward_pips_curve_data.py +3 -3
  167. lusid/models/fx_forward_settlement_event.py +136 -0
  168. lusid/models/fx_forward_tenor_curve_data.py +4 -4
  169. lusid/models/fx_forward_tenor_pips_curve_data.py +4 -4
  170. lusid/models/fx_linked_notional_schedule.py +108 -0
  171. lusid/models/fx_option.py +3 -3
  172. lusid/models/fx_rate_schedule.py +3 -3
  173. lusid/models/fx_swap.py +4 -4
  174. lusid/models/fx_vol_surface_data.py +3 -3
  175. lusid/models/{reconciliation_run.py → get_recipe_composer_response.py} +15 -15
  176. lusid/models/group_by_selector_compliance_parameter.py +91 -0
  177. lusid/models/group_by_step.py +101 -0
  178. lusid/models/group_filter_predicate_compliance_parameter.py +91 -0
  179. lusid/models/group_filter_step.py +110 -0
  180. lusid/models/group_of_market_data_key_rules.py +79 -0
  181. lusid/models/index_convention.py +1 -1
  182. lusid/models/index_model_options.py +3 -3
  183. lusid/models/inflation_index_conventions.py +2 -2
  184. lusid/models/inflation_leg.py +3 -3
  185. lusid/models/inflation_linked_bond.py +3 -3
  186. lusid/models/inflation_swap.py +4 -4
  187. lusid/models/informational_error_event.py +3 -3
  188. lusid/models/informational_event.py +4 -6
  189. lusid/models/instrument_event.py +12 -5
  190. lusid/models/instrument_event_configuration.py +74 -0
  191. lusid/models/instrument_event_holder.py +12 -3
  192. lusid/models/instrument_event_type.py +7 -0
  193. lusid/models/instrument_leg.py +3 -3
  194. lusid/models/instrument_list_compliance_parameter.py +3 -3
  195. lusid/models/instrument_payment_diary_leg.py +5 -3
  196. lusid/models/instrument_resolution_detail.py +105 -0
  197. lusid/models/instrument_type.py +2 -0
  198. lusid/models/interest_rate_swap.py +4 -4
  199. lusid/models/interest_rate_swaption.py +3 -3
  200. lusid/models/intermediate_compliance_step.py +110 -0
  201. lusid/models/ir_vol_cube_data.py +3 -3
  202. lusid/models/journal_entry_line.py +34 -3
  203. lusid/models/journal_entry_lines_query_parameters.py +1 -1
  204. lusid/models/label_value_set.py +1 -1
  205. lusid/models/leg_definition.py +16 -3
  206. lusid/models/lineage_member.py +87 -0
  207. lusid/models/lock_period_diary_entry_request.py +91 -0
  208. lusid/models/lusid_instrument.py +7 -5
  209. lusid/models/lusid_trade_ticket.py +8 -1
  210. lusid/models/market_context.py +17 -2
  211. lusid/models/market_data_type.py +1 -0
  212. lusid/models/maturity_event.py +91 -0
  213. lusid/models/model_options.py +5 -6
  214. lusid/models/model_options_type.py +0 -1
  215. lusid/models/model_selection.py +3 -3
  216. lusid/models/move_orders_to_different_blocks_request.py +77 -0
  217. lusid/models/moved_order_to_different_block_response.py +85 -0
  218. lusid/models/movement_type.py +2 -0
  219. lusid/models/multi_currency_amounts.py +71 -0
  220. lusid/models/opaque_market_data.py +3 -3
  221. lusid/models/opaque_model_options.py +3 -3
  222. lusid/models/open_event.py +3 -3
  223. lusid/models/optionality_schedule.py +3 -3
  224. lusid/models/order_graph_block.py +4 -2
  225. lusid/models/order_graph_block_order_detail.py +16 -2
  226. lusid/models/paged_resource_list_of_cleardown_module_response.py +113 -0
  227. lusid/models/{paged_resource_list_of_reconciliation_run_break.py → paged_resource_list_of_cleardown_module_rule.py} +11 -11
  228. lusid/models/{paged_resource_list_of_reconciliation_run.py → paged_resource_list_of_fund.py} +11 -11
  229. lusid/models/paged_resource_list_of_property_definition.py +113 -0
  230. lusid/models/paged_resource_list_of_transaction_template.py +113 -0
  231. lusid/models/paged_resource_list_of_transaction_template_specification.py +113 -0
  232. lusid/models/participation_request.py +3 -9
  233. lusid/models/performance_returns_metric.py +1 -1
  234. lusid/models/period_diary_entries_reopened_response.py +104 -0
  235. lusid/models/place_blocks_request.py +77 -0
  236. lusid/models/portfolio.py +15 -2
  237. lusid/models/portfolio_details.py +15 -2
  238. lusid/models/portfolio_group_id_compliance_parameter.py +3 -3
  239. lusid/models/portfolio_group_id_list_compliance_parameter.py +3 -3
  240. lusid/models/portfolio_holding.py +27 -2
  241. lusid/models/portfolio_id_compliance_parameter.py +3 -3
  242. lusid/models/portfolio_id_list_compliance_parameter.py +3 -3
  243. lusid/models/posting_module_rule.py +29 -4
  244. lusid/models/pricing_model.py +2 -1
  245. lusid/models/property_definition.py +17 -4
  246. lusid/models/property_definition_search_result.py +3 -3
  247. lusid/models/property_domain.py +2 -0
  248. lusid/models/property_key_compliance_parameter.py +3 -3
  249. lusid/models/property_key_list_compliance_parameter.py +3 -3
  250. lusid/models/raw_vendor_event.py +5 -7
  251. lusid/models/re_open_period_diary_entry_request.py +84 -0
  252. lusid/models/recipe_block.py +87 -0
  253. lusid/models/recipe_composer.py +100 -0
  254. lusid/models/{reconciliation_break_id.py → recipe_value.py} +22 -23
  255. lusid/models/recombine_step.py +101 -0
  256. lusid/models/reference_instrument.py +3 -3
  257. lusid/models/relative_date_offset.py +71 -0
  258. lusid/models/repo.py +3 -3
  259. lusid/models/reset_event.py +4 -6
  260. lusid/models/resource_list_of_block_and_orders.py +113 -0
  261. lusid/models/resource_list_of_get_recipe_composer_response.py +113 -0
  262. lusid/models/resource_list_of_moved_order_to_different_block_response.py +113 -0
  263. lusid/models/schedule.py +6 -5
  264. lusid/models/schedule_type.py +1 -0
  265. lusid/models/script_map_reference.py +94 -0
  266. lusid/models/security_election.py +86 -0
  267. lusid/models/side_definition.py +1 -8
  268. lusid/models/sides_definition_request.py +1 -8
  269. lusid/models/simple_cash_flow_loan.py +3 -3
  270. lusid/models/simple_instrument.py +3 -3
  271. lusid/models/step_schedule.py +3 -3
  272. lusid/models/stock_split_event.py +3 -3
  273. lusid/models/string_compliance_parameter.py +3 -3
  274. lusid/models/string_list_compliance_parameter.py +3 -3
  275. lusid/models/template_field.py +77 -0
  276. lusid/models/term_deposit.py +3 -3
  277. lusid/models/total_return_swap.py +16 -16
  278. lusid/models/transaction_configuration_movement_data.py +3 -3
  279. lusid/models/transaction_configuration_movement_data_request.py +3 -3
  280. lusid/models/transaction_currency_and_amount.py +81 -0
  281. lusid/models/transaction_field_map.py +97 -0
  282. lusid/models/transaction_price.py +3 -3
  283. lusid/models/transaction_price_and_type.py +81 -0
  284. lusid/models/transaction_price_type.py +1 -0
  285. lusid/models/transaction_property_map.py +80 -0
  286. lusid/models/transaction_template.py +100 -0
  287. lusid/models/transaction_template_request.py +79 -0
  288. lusid/models/transaction_template_specification.py +99 -0
  289. lusid/models/transaction_type_alias.py +0 -7
  290. lusid/models/transaction_type_calculation.py +1 -1
  291. lusid/models/transition_event.py +3 -3
  292. lusid/models/translation_context.py +75 -0
  293. lusid/models/translation_script.py +9 -3
  294. lusid/models/trial_balance.py +46 -11
  295. lusid/models/trial_balance_query_parameters.py +15 -6
  296. lusid/models/trigger_event.py +3 -3
  297. lusid/models/units_ratio.py +71 -0
  298. lusid/models/{compliance_run_summary.py → upsert_compliance_run_summary_result.py} +8 -8
  299. lusid/models/upsert_dialect_request.py +79 -0
  300. lusid/models/upsert_instrument_event_request.py +12 -3
  301. lusid/models/upsert_quote_request.py +1 -1
  302. lusid/models/upsert_recipe_composer_request.py +73 -0
  303. lusid/models/upsert_recipe_request.py +3 -9
  304. lusid/models/upsert_translation_script_request.py +75 -0
  305. lusid/models/valuation_schedule.py +10 -3
  306. lusid/models/weighted_instrument.py +13 -2
  307. lusid/models/weighted_instrument_in_line_lookup_identifiers.py +89 -0
  308. lusid/models/yield_curve_data.py +3 -3
  309. {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.430.dist-info}/METADATA +227 -48
  310. {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.430.dist-info}/RECORD +311 -233
  311. {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.430.dist-info}/WHEEL +1 -1
  312. lusid/extensions/api_client_builder.py +0 -138
  313. lusid/models/configuration_recipe_snippet.py +0 -139
  314. lusid/models/je_lines_query_parameters.py +0 -105
  315. lusid/models/look_up_pricing_model_options.py +0 -93
  316. lusid/models/reconciliation_run_id.py +0 -85
  317. lusid/models/upsert_reconciliation_break_request.py +0 -98
@@ -0,0 +1,73 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict
22
+ from pydantic import BaseModel, Field, StrictStr, constr
23
+
24
+ class FxConventions(BaseModel):
25
+ """
26
+ The conventions for the calculation of FX fixings, where the fixing rate is expected to be the amount of DomCcy per unit of FgnCcy. As an example, assume the required fixing is the WM/R 4pm mid closing rate for the USD amount per 1 EUR. This is published with RIC EURUSDFIXM=WM, which would be the FixingReference, with FgnCcy EUR and DomCcy USD. # noqa: E501
27
+ """
28
+ fgn_ccy: StrictStr = Field(..., alias="fgnCcy", description="The foreign currency")
29
+ dom_ccy: StrictStr = Field(..., alias="domCcy", description="The domestic currency")
30
+ fixing_reference: constr(strict=True, max_length=64, min_length=0) = Field(..., alias="fixingReference", description="The reference name used to find the desired quote")
31
+ __properties = ["fgnCcy", "domCcy", "fixingReference"]
32
+
33
+ class Config:
34
+ """Pydantic configuration"""
35
+ allow_population_by_field_name = True
36
+ validate_assignment = True
37
+
38
+ def to_str(self) -> str:
39
+ """Returns the string representation of the model using alias"""
40
+ return pprint.pformat(self.dict(by_alias=True))
41
+
42
+ def to_json(self) -> str:
43
+ """Returns the JSON representation of the model using alias"""
44
+ return json.dumps(self.to_dict())
45
+
46
+ @classmethod
47
+ def from_json(cls, json_str: str) -> FxConventions:
48
+ """Create an instance of FxConventions from a JSON string"""
49
+ return cls.from_dict(json.loads(json_str))
50
+
51
+ def to_dict(self):
52
+ """Returns the dictionary representation of the model using alias"""
53
+ _dict = self.dict(by_alias=True,
54
+ exclude={
55
+ },
56
+ exclude_none=True)
57
+ return _dict
58
+
59
+ @classmethod
60
+ def from_dict(cls, obj: dict) -> FxConventions:
61
+ """Create an instance of FxConventions from a dict"""
62
+ if obj is None:
63
+ return None
64
+
65
+ if not isinstance(obj, dict):
66
+ return FxConventions.parse_obj(obj)
67
+
68
+ _obj = FxConventions.parse_obj({
69
+ "fgn_ccy": obj.get("fgnCcy"),
70
+ "dom_ccy": obj.get("domCcy"),
71
+ "fixing_reference": obj.get("fixingReference")
72
+ })
73
+ return _obj
@@ -24,7 +24,7 @@ from lusid.models.lusid_instrument import LusidInstrument
24
24
 
25
25
  class FxForward(LusidInstrument):
26
26
  """
27
- LUSID representation of an FX Forward. Including FX Spot and Non-Deliverable Forwards. # noqa: E501
27
+ LUSID representation of an FX Forward. Including FX Spot and Non-Deliverable Forwards. This instrument has multiple legs, to see how legs are used in LUSID see [knowledge base article KA-02252](https://support.lusid.com/knowledgebase/article/KA-02252). | Leg Index | Leg Identifier | Description | | --------- | -------------- | ----------- | | 1 | DomesticLeg | Cash flows in the domestic currency of the forward. | | 2 | ForeignLeg | Cash flows in the foreign currency of the forward (not present for non-deliverable forwards). | # noqa: E501
28
28
  """
29
29
  start_date: datetime = Field(..., alias="startDate", description="The start date of the instrument. This is normally synonymous with the trade-date.")
30
30
  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.")
@@ -36,15 +36,16 @@ class FxForward(LusidInstrument):
36
36
  is_ndf: Optional[StrictBool] = Field(None, alias="isNdf", description="Is the contract an Fx-Forward of \"Non-Deliverable\" type, meaning a single payment in the domestic currency based on the change in fx-rate vs a reference rate is used.")
37
37
  fixing_date: Optional[datetime] = Field(None, alias="fixingDate", description="The fixing date.")
38
38
  settlement_ccy: Optional[StrictStr] = Field(None, alias="settlementCcy", description="The settlement currency. If provided, present value will be calculated in settlement currency, otherwise the domestic currency. Applies only to non-deliverable FX Forwards.")
39
- 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")
39
+ booked_as_spot: Optional[StrictBool] = Field(None, alias="bookedAsSpot", description="Boolean flag for FX Forward transactions booked with Spot settlement. This will default to False if not provided. For information purposes only, this does not impact LUSID valuation, analytics, cashflows or events, but may be used by third party vendors.")
40
+ 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")
40
41
  additional_properties: Dict[str, Any] = {}
41
- __properties = ["instrumentType", "startDate", "maturityDate", "domAmount", "domCcy", "fgnAmount", "fgnCcy", "refSpotRate", "isNdf", "fixingDate", "settlementCcy"]
42
+ __properties = ["instrumentType", "startDate", "maturityDate", "domAmount", "domCcy", "fgnAmount", "fgnCcy", "refSpotRate", "isNdf", "fixingDate", "settlementCcy", "bookedAsSpot"]
42
43
 
43
44
  @validator('instrument_type')
44
45
  def instrument_type_validate_enum(cls, value):
45
46
  """Validates the enum"""
46
- 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'):
47
- 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')")
47
+ 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'):
48
+ 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')")
48
49
  return value
49
50
 
50
51
  class Config:
@@ -104,7 +105,8 @@ class FxForward(LusidInstrument):
104
105
  "ref_spot_rate": obj.get("refSpotRate"),
105
106
  "is_ndf": obj.get("isNdf"),
106
107
  "fixing_date": obj.get("fixingDate"),
107
- "settlement_ccy": obj.get("settlementCcy")
108
+ "settlement_ccy": obj.get("settlementCcy"),
109
+ "booked_as_spot": obj.get("bookedAsSpot")
108
110
  })
109
111
  # store additional fields in additional_properties
110
112
  for _key in obj.keys():
@@ -30,21 +30,21 @@ class FxForwardCurveByQuoteReference(ComplexMarketData):
30
30
  """
31
31
  dom_ccy: StrictStr = Field(..., alias="domCcy", description="Domestic currency of the fx forward")
32
32
  fgn_ccy: StrictStr = Field(..., alias="fgnCcy", description="Foreign currency of the fx forward")
33
- tenors: conlist(StrictStr) = Field(..., description="Tenors for which the forward rates apply")
33
+ tenors: conlist(StrictStr) = Field(..., description="Tenors for which the forward rates apply. For more information on tenors, see [knowledge base article KA-02097](https://support.lusid.com/knowledgebase/article/KA-02097)")
34
34
  quote_references: conlist(Dict[str, StrictStr]) = Field(..., alias="quoteReferences", description="For each tenor, a collection of identifiers. These will be looked up in the LUSID Quote Store to resolve the actual rates. Accepts an array of Dictionary<string, string>. The keys of each dictionary must be chosen from the following enumeration: [LusidInstrumentId, Isin, Sedol, Cusip, ClientInternal, Figi, RIC, QuotePermId, REDCode, BBGId, ICECode]. For example: <br /> \"quoteReferences\": [{\"ClientInternal\": \"SomeIdentifierForFirstTenor\"},{\"ClientInternal\": \"SomeIdentifierForSecondTenor\"}")
35
35
  lineage: Optional[constr(strict=True, max_length=1024, min_length=0)] = Field(None, description="Description of the complex market data's lineage e.g. 'FundAccountant_GreenQuality'.")
36
36
  market_data_options: Optional[MarketDataOptions] = Field(None, alias="marketDataOptions")
37
37
  calendars: Optional[conlist(FxTenorConvention)] = Field(None, description="The list of conventions that should be used when interpreting tenors as dates.")
38
38
  spot_days_calculation_type: Optional[StrictStr] = Field(None, alias="spotDaysCalculationType", description="Configures how to calculate the spot date from the build date using the Calendars provided. Supported string (enumeration) values are: [ SingleCalendar, UnionCalendars ]")
39
- market_data_type: StrictStr = Field(..., alias="marketDataType", description="The available values are: DiscountFactorCurveData, EquityVolSurfaceData, FxVolSurfaceData, IrVolCubeData, OpaqueMarketData, YieldCurveData, FxForwardCurveData, FxForwardPipsCurveData, FxForwardTenorCurveData, FxForwardTenorPipsCurveData, FxForwardCurveByQuoteReference, CreditSpreadCurveData, EquityCurveByPricesData")
39
+ market_data_type: StrictStr = Field(..., alias="marketDataType", description="The available values are: DiscountFactorCurveData, EquityVolSurfaceData, FxVolSurfaceData, IrVolCubeData, OpaqueMarketData, YieldCurveData, FxForwardCurveData, FxForwardPipsCurveData, FxForwardTenorCurveData, FxForwardTenorPipsCurveData, FxForwardCurveByQuoteReference, CreditSpreadCurveData, EquityCurveByPricesData, ConstantVolatilitySurface")
40
40
  additional_properties: Dict[str, Any] = {}
41
41
  __properties = ["marketDataType", "domCcy", "fgnCcy", "tenors", "quoteReferences", "lineage", "marketDataOptions", "calendars", "spotDaysCalculationType"]
42
42
 
43
43
  @validator('market_data_type')
44
44
  def market_data_type_validate_enum(cls, value):
45
45
  """Validates the enum"""
46
- if value not in ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData'):
47
- raise ValueError("must be one of enum values ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData')")
46
+ if value not in ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData', 'ConstantVolatilitySurface'):
47
+ raise ValueError("must be one of enum values ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData', 'ConstantVolatilitySurface')")
48
48
  return value
49
49
 
50
50
  class Config:
@@ -34,15 +34,15 @@ class FxForwardCurveData(ComplexMarketData):
34
34
  rates: conlist(Union[StrictFloat, StrictInt]) = Field(..., description="Rates provided for the fx forward (price in FgnCcy per unit of DomCcy)")
35
35
  lineage: Optional[constr(strict=True, max_length=1024, min_length=0)] = Field(None, description="Description of the complex market data's lineage e.g. 'FundAccountant_GreenQuality'.")
36
36
  market_data_options: Optional[MarketDataOptions] = Field(None, alias="marketDataOptions")
37
- market_data_type: StrictStr = Field(..., alias="marketDataType", description="The available values are: DiscountFactorCurveData, EquityVolSurfaceData, FxVolSurfaceData, IrVolCubeData, OpaqueMarketData, YieldCurveData, FxForwardCurveData, FxForwardPipsCurveData, FxForwardTenorCurveData, FxForwardTenorPipsCurveData, FxForwardCurveByQuoteReference, CreditSpreadCurveData, EquityCurveByPricesData")
37
+ market_data_type: StrictStr = Field(..., alias="marketDataType", description="The available values are: DiscountFactorCurveData, EquityVolSurfaceData, FxVolSurfaceData, IrVolCubeData, OpaqueMarketData, YieldCurveData, FxForwardCurveData, FxForwardPipsCurveData, FxForwardTenorCurveData, FxForwardTenorPipsCurveData, FxForwardCurveByQuoteReference, CreditSpreadCurveData, EquityCurveByPricesData, ConstantVolatilitySurface")
38
38
  additional_properties: Dict[str, Any] = {}
39
39
  __properties = ["marketDataType", "baseDate", "domCcy", "fgnCcy", "dates", "rates", "lineage", "marketDataOptions"]
40
40
 
41
41
  @validator('market_data_type')
42
42
  def market_data_type_validate_enum(cls, value):
43
43
  """Validates the enum"""
44
- if value not in ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData'):
45
- raise ValueError("must be one of enum values ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData')")
44
+ if value not in ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData', 'ConstantVolatilitySurface'):
45
+ raise ValueError("must be one of enum values ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData', 'ConstantVolatilitySurface')")
46
46
  return value
47
47
 
48
48
  class Config:
@@ -29,7 +29,7 @@ class FxForwardModelOptions(ModelOptions):
29
29
  forward_rate_observable_type: StrictStr = Field(..., alias="forwardRateObservableType", description="The available values are: ForwardPoints, ForwardRate, RatesCurve, FxForwardCurve, Invalid")
30
30
  discounting_method: StrictStr = Field(..., alias="discountingMethod", description="The available values are: Standard, ConstantTimeValueOfMoney, Invalid")
31
31
  convert_to_report_ccy: StrictBool = Field(..., alias="convertToReportCcy", description="Convert all FX flows to the report currency By setting this all FX forwards will be priced using Forward Curves that have Report Currency as the base.")
32
- model_options_type: StrictStr = Field(..., alias="modelOptionsType", description="The available values are: Invalid, OpaqueModelOptions, EmptyModelOptions, IndexModelOptions, FxForwardModelOptions, FundingLegModelOptions, EquityModelOptions, LookUpPricingModelOptions")
32
+ model_options_type: StrictStr = Field(..., alias="modelOptionsType", description="The available values are: Invalid, OpaqueModelOptions, EmptyModelOptions, IndexModelOptions, FxForwardModelOptions, FundingLegModelOptions, EquityModelOptions")
33
33
  additional_properties: Dict[str, Any] = {}
34
34
  __properties = ["modelOptionsType", "forwardRateObservableType", "discountingMethod", "convertToReportCcy"]
35
35
 
@@ -50,8 +50,8 @@ class FxForwardModelOptions(ModelOptions):
50
50
  @validator('model_options_type')
51
51
  def model_options_type_validate_enum(cls, value):
52
52
  """Validates the enum"""
53
- if value not in ('Invalid', 'OpaqueModelOptions', 'EmptyModelOptions', 'IndexModelOptions', 'FxForwardModelOptions', 'FundingLegModelOptions', 'EquityModelOptions', 'LookUpPricingModelOptions'):
54
- raise ValueError("must be one of enum values ('Invalid', 'OpaqueModelOptions', 'EmptyModelOptions', 'IndexModelOptions', 'FxForwardModelOptions', 'FundingLegModelOptions', 'EquityModelOptions', 'LookUpPricingModelOptions')")
53
+ if value not in ('Invalid', 'OpaqueModelOptions', 'EmptyModelOptions', 'IndexModelOptions', 'FxForwardModelOptions', 'FundingLegModelOptions', 'EquityModelOptions'):
54
+ raise ValueError("must be one of enum values ('Invalid', 'OpaqueModelOptions', 'EmptyModelOptions', 'IndexModelOptions', 'FxForwardModelOptions', 'FundingLegModelOptions', 'EquityModelOptions')")
55
55
  return value
56
56
 
57
57
  class Config:
@@ -34,15 +34,15 @@ class FxForwardPipsCurveData(ComplexMarketData):
34
34
  pip_rates: conlist(Union[StrictFloat, StrictInt]) = Field(..., alias="pipRates", description="Rates provided for the fx forward (price in FgnCcy per unit of DomCcy), expressed in pips")
35
35
  lineage: Optional[constr(strict=True, max_length=1024, min_length=0)] = Field(None, description="Description of the complex market data's lineage e.g. 'FundAccountant_GreenQuality'.")
36
36
  market_data_options: Optional[MarketDataOptions] = Field(None, alias="marketDataOptions")
37
- market_data_type: StrictStr = Field(..., alias="marketDataType", description="The available values are: DiscountFactorCurveData, EquityVolSurfaceData, FxVolSurfaceData, IrVolCubeData, OpaqueMarketData, YieldCurveData, FxForwardCurveData, FxForwardPipsCurveData, FxForwardTenorCurveData, FxForwardTenorPipsCurveData, FxForwardCurveByQuoteReference, CreditSpreadCurveData, EquityCurveByPricesData")
37
+ market_data_type: StrictStr = Field(..., alias="marketDataType", description="The available values are: DiscountFactorCurveData, EquityVolSurfaceData, FxVolSurfaceData, IrVolCubeData, OpaqueMarketData, YieldCurveData, FxForwardCurveData, FxForwardPipsCurveData, FxForwardTenorCurveData, FxForwardTenorPipsCurveData, FxForwardCurveByQuoteReference, CreditSpreadCurveData, EquityCurveByPricesData, ConstantVolatilitySurface")
38
38
  additional_properties: Dict[str, Any] = {}
39
39
  __properties = ["marketDataType", "baseDate", "domCcy", "fgnCcy", "dates", "pipRates", "lineage", "marketDataOptions"]
40
40
 
41
41
  @validator('market_data_type')
42
42
  def market_data_type_validate_enum(cls, value):
43
43
  """Validates the enum"""
44
- if value not in ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData'):
45
- raise ValueError("must be one of enum values ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData')")
44
+ if value not in ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData', 'ConstantVolatilitySurface'):
45
+ raise ValueError("must be one of enum values ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData', 'ConstantVolatilitySurface')")
46
46
  return value
47
47
 
48
48
  class Config:
@@ -0,0 +1,136 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from datetime import datetime
21
+ from typing import Any, Dict, Optional, Union
22
+ from pydantic import Field, StrictBool, StrictFloat, StrictInt, StrictStr, validator
23
+ from lusid.models.instrument_event import InstrumentEvent
24
+
25
+ class FxForwardSettlementEvent(InstrumentEvent):
26
+ """
27
+ Settlement for FX Forward, including NDF and deliverable. # noqa: E501
28
+ """
29
+ maturity_date: datetime = Field(..., alias="maturityDate", description="Maturity date of the forward")
30
+ dom_amount_per_unit: Union[StrictFloat, StrictInt] = Field(..., alias="domAmountPerUnit", description="Amount per unit in the DomCcy (domestic currency)")
31
+ dom_ccy: StrictStr = Field(..., alias="domCcy", description="The domestic currency of the forward")
32
+ fgn_amount_per_unit: Union[StrictFloat, StrictInt] = Field(..., alias="fgnAmountPerUnit", description="Amount per unit in the FgnCcy (foreign currency)")
33
+ fgn_ccy: StrictStr = Field(..., alias="fgnCcy", description="The foreign currency of the forward.")
34
+ is_ndf: StrictBool = Field(..., alias="isNdf", description="Is this settlement corresponding to a deliverable forward, or an NDF")
35
+ fixing_date: Optional[datetime] = Field(None, alias="fixingDate", description="Optional. Required if the event is an NDF (i.e. if IsNdf = true). Date of the FxRate fixings.")
36
+ settlement_ccy: Optional[StrictStr] = Field(None, alias="settlementCcy", description="Optional. Required if the event is an NDF (i.e. if IsNdf = true). May be set to either DomCcy or FgnCcy, or a third currency.")
37
+ cash_flow_per_unit: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="cashFlowPerUnit", description="Optional. Required if the event is an NDF (i.e. if IsNdf = true). CashFlow per unit. Paid in the SettlementCcy.")
38
+ domestic_to_foreign_rate: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="domesticToForeignRate", description="Domestic currency to foreign currency FX rate. Not required, only used to override quotes.")
39
+ domestic_to_settlement_rate: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="domesticToSettlementRate", description="Domestic currency to settlement currency FX rate Not required, only used to override quotes.")
40
+ instrument_event_type: StrictStr = Field(..., alias="instrumentEventType", description="The Type of Event. The available values are: TransitionEvent, InformationalEvent, OpenEvent, CloseEvent, StockSplitEvent, BondDefaultEvent, CashDividendEvent, AmortisationEvent, CashFlowEvent, ExerciseEvent, ResetEvent, TriggerEvent, RawVendorEvent, InformationalErrorEvent, BondCouponEvent, DividendReinvestmentEvent, AccumulationEvent, BondPrincipalEvent, DividendOptionEvent, MaturityEvent, FxForwardSettlementEvent")
41
+ additional_properties: Dict[str, Any] = {}
42
+ __properties = ["instrumentEventType", "maturityDate", "domAmountPerUnit", "domCcy", "fgnAmountPerUnit", "fgnCcy", "isNdf", "fixingDate", "settlementCcy", "cashFlowPerUnit", "domesticToForeignRate", "domesticToSettlementRate"]
43
+
44
+ @validator('instrument_event_type')
45
+ def instrument_event_type_validate_enum(cls, value):
46
+ """Validates the enum"""
47
+ 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'):
48
+ 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')")
49
+ return value
50
+
51
+ class Config:
52
+ """Pydantic configuration"""
53
+ allow_population_by_field_name = True
54
+ validate_assignment = True
55
+
56
+ def to_str(self) -> str:
57
+ """Returns the string representation of the model using alias"""
58
+ return pprint.pformat(self.dict(by_alias=True))
59
+
60
+ def to_json(self) -> str:
61
+ """Returns the JSON representation of the model using alias"""
62
+ return json.dumps(self.to_dict())
63
+
64
+ @classmethod
65
+ def from_json(cls, json_str: str) -> FxForwardSettlementEvent:
66
+ """Create an instance of FxForwardSettlementEvent from a JSON string"""
67
+ return cls.from_dict(json.loads(json_str))
68
+
69
+ def to_dict(self):
70
+ """Returns the dictionary representation of the model using alias"""
71
+ _dict = self.dict(by_alias=True,
72
+ exclude={
73
+ "additional_properties"
74
+ },
75
+ exclude_none=True)
76
+ # puts key-value pairs in additional_properties in the top level
77
+ if self.additional_properties is not None:
78
+ for _key, _value in self.additional_properties.items():
79
+ _dict[_key] = _value
80
+
81
+ # set to None if fixing_date (nullable) is None
82
+ # and __fields_set__ contains the field
83
+ if self.fixing_date is None and "fixing_date" in self.__fields_set__:
84
+ _dict['fixingDate'] = None
85
+
86
+ # set to None if settlement_ccy (nullable) is None
87
+ # and __fields_set__ contains the field
88
+ if self.settlement_ccy is None and "settlement_ccy" in self.__fields_set__:
89
+ _dict['settlementCcy'] = None
90
+
91
+ # set to None if cash_flow_per_unit (nullable) is None
92
+ # and __fields_set__ contains the field
93
+ if self.cash_flow_per_unit is None and "cash_flow_per_unit" in self.__fields_set__:
94
+ _dict['cashFlowPerUnit'] = None
95
+
96
+ # set to None if domestic_to_foreign_rate (nullable) is None
97
+ # and __fields_set__ contains the field
98
+ if self.domestic_to_foreign_rate is None and "domestic_to_foreign_rate" in self.__fields_set__:
99
+ _dict['domesticToForeignRate'] = None
100
+
101
+ # set to None if domestic_to_settlement_rate (nullable) is None
102
+ # and __fields_set__ contains the field
103
+ if self.domestic_to_settlement_rate is None and "domestic_to_settlement_rate" in self.__fields_set__:
104
+ _dict['domesticToSettlementRate'] = None
105
+
106
+ return _dict
107
+
108
+ @classmethod
109
+ def from_dict(cls, obj: dict) -> FxForwardSettlementEvent:
110
+ """Create an instance of FxForwardSettlementEvent from a dict"""
111
+ if obj is None:
112
+ return None
113
+
114
+ if not isinstance(obj, dict):
115
+ return FxForwardSettlementEvent.parse_obj(obj)
116
+
117
+ _obj = FxForwardSettlementEvent.parse_obj({
118
+ "instrument_event_type": obj.get("instrumentEventType"),
119
+ "maturity_date": obj.get("maturityDate"),
120
+ "dom_amount_per_unit": obj.get("domAmountPerUnit"),
121
+ "dom_ccy": obj.get("domCcy"),
122
+ "fgn_amount_per_unit": obj.get("fgnAmountPerUnit"),
123
+ "fgn_ccy": obj.get("fgnCcy"),
124
+ "is_ndf": obj.get("isNdf"),
125
+ "fixing_date": obj.get("fixingDate"),
126
+ "settlement_ccy": obj.get("settlementCcy"),
127
+ "cash_flow_per_unit": obj.get("cashFlowPerUnit"),
128
+ "domestic_to_foreign_rate": obj.get("domesticToForeignRate"),
129
+ "domestic_to_settlement_rate": obj.get("domesticToSettlementRate")
130
+ })
131
+ # store additional fields in additional_properties
132
+ for _key in obj.keys():
133
+ if _key not in cls.__properties:
134
+ _obj.additional_properties[_key] = obj.get(_key)
135
+
136
+ return _obj
@@ -31,21 +31,21 @@ class FxForwardTenorCurveData(ComplexMarketData):
31
31
  base_date: datetime = Field(..., alias="baseDate", description="EffectiveAt date of the quoted rates")
32
32
  dom_ccy: StrictStr = Field(..., alias="domCcy", description="Domestic currency of the fx forward")
33
33
  fgn_ccy: StrictStr = Field(..., alias="fgnCcy", description="Foreign currency of the fx forward")
34
- tenors: conlist(StrictStr) = Field(..., description="Tenors for which the forward rates apply")
34
+ tenors: conlist(StrictStr) = Field(..., description="Tenors for which the forward rates apply. For more information on tenors, see [knowledge base article KA-02097](https://support.lusid.com/knowledgebase/article/KA-02097)")
35
35
  rates: conlist(Union[StrictFloat, StrictInt]) = Field(..., description="Rates provided for the fx forward (price in FgnCcy per unit of DomCcy)")
36
36
  lineage: Optional[constr(strict=True, max_length=1024, min_length=0)] = Field(None, description="Description of the complex market data's lineage e.g. 'FundAccountant_GreenQuality'.")
37
37
  market_data_options: Optional[MarketDataOptions] = Field(None, alias="marketDataOptions")
38
38
  calendars: Optional[conlist(FxTenorConvention)] = Field(None, description="The list of conventions that should be used when interpreting tenors as dates.")
39
39
  spot_days_calculation_type: Optional[StrictStr] = Field(None, alias="spotDaysCalculationType", description="Configures how to calculate the spot date from the build date using the Calendars provided. Supported string (enumeration) values are: [ SingleCalendar, UnionCalendars ]")
40
- market_data_type: StrictStr = Field(..., alias="marketDataType", description="The available values are: DiscountFactorCurveData, EquityVolSurfaceData, FxVolSurfaceData, IrVolCubeData, OpaqueMarketData, YieldCurveData, FxForwardCurveData, FxForwardPipsCurveData, FxForwardTenorCurveData, FxForwardTenorPipsCurveData, FxForwardCurveByQuoteReference, CreditSpreadCurveData, EquityCurveByPricesData")
40
+ market_data_type: StrictStr = Field(..., alias="marketDataType", description="The available values are: DiscountFactorCurveData, EquityVolSurfaceData, FxVolSurfaceData, IrVolCubeData, OpaqueMarketData, YieldCurveData, FxForwardCurveData, FxForwardPipsCurveData, FxForwardTenorCurveData, FxForwardTenorPipsCurveData, FxForwardCurveByQuoteReference, CreditSpreadCurveData, EquityCurveByPricesData, ConstantVolatilitySurface")
41
41
  additional_properties: Dict[str, Any] = {}
42
42
  __properties = ["marketDataType", "baseDate", "domCcy", "fgnCcy", "tenors", "rates", "lineage", "marketDataOptions", "calendars", "spotDaysCalculationType"]
43
43
 
44
44
  @validator('market_data_type')
45
45
  def market_data_type_validate_enum(cls, value):
46
46
  """Validates the enum"""
47
- if value not in ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData'):
48
- raise ValueError("must be one of enum values ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData')")
47
+ if value not in ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData', 'ConstantVolatilitySurface'):
48
+ raise ValueError("must be one of enum values ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData', 'ConstantVolatilitySurface')")
49
49
  return value
50
50
 
51
51
  class Config:
@@ -31,21 +31,21 @@ class FxForwardTenorPipsCurveData(ComplexMarketData):
31
31
  base_date: datetime = Field(..., alias="baseDate", description="EffectiveAt date of the quoted pip rates")
32
32
  dom_ccy: StrictStr = Field(..., alias="domCcy", description="Domestic currency of the fx forward")
33
33
  fgn_ccy: StrictStr = Field(..., alias="fgnCcy", description="Foreign currency of the fx forward")
34
- tenors: conlist(StrictStr) = Field(..., description="Tenors for which the forward rates apply")
34
+ tenors: conlist(StrictStr) = Field(..., description="Tenors for which the forward rates apply. For more information on tenors, see [knowledge base article KA-02097](https://support.lusid.com/knowledgebase/article/KA-02097)")
35
35
  pip_rates: conlist(Union[StrictFloat, StrictInt]) = Field(..., alias="pipRates", description="Rates provided for the fx forward (price in FgnCcy per unit of DomCcy), expressed in pips")
36
36
  lineage: Optional[constr(strict=True, max_length=1024, min_length=0)] = Field(None, description="Description of the complex market data's lineage e.g. 'FundAccountant_GreenQuality'.")
37
37
  market_data_options: Optional[MarketDataOptions] = Field(None, alias="marketDataOptions")
38
38
  calendars: Optional[conlist(FxTenorConvention)] = Field(None, description="The list of conventions that should be used when interpreting tenors as dates.")
39
39
  spot_days_calculation_type: Optional[StrictStr] = Field(None, alias="spotDaysCalculationType", description="Configures how to calculate the spot date from the build date using the Calendars provided. Supported string (enumeration) values are: [ SingleCalendar, UnionCalendars ]")
40
- market_data_type: StrictStr = Field(..., alias="marketDataType", description="The available values are: DiscountFactorCurveData, EquityVolSurfaceData, FxVolSurfaceData, IrVolCubeData, OpaqueMarketData, YieldCurveData, FxForwardCurveData, FxForwardPipsCurveData, FxForwardTenorCurveData, FxForwardTenorPipsCurveData, FxForwardCurveByQuoteReference, CreditSpreadCurveData, EquityCurveByPricesData")
40
+ market_data_type: StrictStr = Field(..., alias="marketDataType", description="The available values are: DiscountFactorCurveData, EquityVolSurfaceData, FxVolSurfaceData, IrVolCubeData, OpaqueMarketData, YieldCurveData, FxForwardCurveData, FxForwardPipsCurveData, FxForwardTenorCurveData, FxForwardTenorPipsCurveData, FxForwardCurveByQuoteReference, CreditSpreadCurveData, EquityCurveByPricesData, ConstantVolatilitySurface")
41
41
  additional_properties: Dict[str, Any] = {}
42
42
  __properties = ["marketDataType", "baseDate", "domCcy", "fgnCcy", "tenors", "pipRates", "lineage", "marketDataOptions", "calendars", "spotDaysCalculationType"]
43
43
 
44
44
  @validator('market_data_type')
45
45
  def market_data_type_validate_enum(cls, value):
46
46
  """Validates the enum"""
47
- if value not in ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData'):
48
- raise ValueError("must be one of enum values ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData')")
47
+ if value not in ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData', 'ConstantVolatilitySurface'):
48
+ raise ValueError("must be one of enum values ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData', 'ConstantVolatilitySurface')")
49
49
  return value
50
50
 
51
51
  class Config:
@@ -0,0 +1,108 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict, Optional
22
+ from pydantic import Field, StrictStr, validator
23
+ from lusid.models.fx_conventions import FxConventions
24
+ from lusid.models.relative_date_offset import RelativeDateOffset
25
+ from lusid.models.schedule import Schedule
26
+
27
+ class FxLinkedNotionalSchedule(Schedule):
28
+ """
29
+ Schedule for notional changes based on the change in FX rate. Used in the representation of a resettable cross currency interest rate swap. # noqa: E501
30
+ """
31
+ fx_conventions: FxConventions = Field(..., alias="fxConventions")
32
+ varying_notional_currency: StrictStr = Field(..., alias="varyingNotionalCurrency", description="The currency of the varying notional amount.")
33
+ varying_notional_fixing_dates: RelativeDateOffset = Field(..., alias="varyingNotionalFixingDates")
34
+ varying_notional_interim_exchange_payment_dates: Optional[RelativeDateOffset] = Field(None, alias="varyingNotionalInterimExchangePaymentDates")
35
+ schedule_type: StrictStr = Field(..., alias="scheduleType", description="The available values are: FixedSchedule, FloatSchedule, OptionalitySchedule, StepSchedule, Exercise, FxRateSchedule, FxLinkedNotionalSchedule, Invalid")
36
+ additional_properties: Dict[str, Any] = {}
37
+ __properties = ["scheduleType", "fxConventions", "varyingNotionalCurrency", "varyingNotionalFixingDates", "varyingNotionalInterimExchangePaymentDates"]
38
+
39
+ @validator('schedule_type')
40
+ def schedule_type_validate_enum(cls, value):
41
+ """Validates the enum"""
42
+ if value not in ('FixedSchedule', 'FloatSchedule', 'OptionalitySchedule', 'StepSchedule', 'Exercise', 'FxRateSchedule', 'FxLinkedNotionalSchedule', 'Invalid'):
43
+ raise ValueError("must be one of enum values ('FixedSchedule', 'FloatSchedule', 'OptionalitySchedule', 'StepSchedule', 'Exercise', 'FxRateSchedule', 'FxLinkedNotionalSchedule', 'Invalid')")
44
+ return value
45
+
46
+ class Config:
47
+ """Pydantic configuration"""
48
+ allow_population_by_field_name = True
49
+ validate_assignment = True
50
+
51
+ def to_str(self) -> str:
52
+ """Returns the string representation of the model using alias"""
53
+ return pprint.pformat(self.dict(by_alias=True))
54
+
55
+ def to_json(self) -> str:
56
+ """Returns the JSON representation of the model using alias"""
57
+ return json.dumps(self.to_dict())
58
+
59
+ @classmethod
60
+ def from_json(cls, json_str: str) -> FxLinkedNotionalSchedule:
61
+ """Create an instance of FxLinkedNotionalSchedule from a JSON string"""
62
+ return cls.from_dict(json.loads(json_str))
63
+
64
+ def to_dict(self):
65
+ """Returns the dictionary representation of the model using alias"""
66
+ _dict = self.dict(by_alias=True,
67
+ exclude={
68
+ "additional_properties"
69
+ },
70
+ exclude_none=True)
71
+ # override the default output from pydantic by calling `to_dict()` of fx_conventions
72
+ if self.fx_conventions:
73
+ _dict['fxConventions'] = self.fx_conventions.to_dict()
74
+ # override the default output from pydantic by calling `to_dict()` of varying_notional_fixing_dates
75
+ if self.varying_notional_fixing_dates:
76
+ _dict['varyingNotionalFixingDates'] = self.varying_notional_fixing_dates.to_dict()
77
+ # override the default output from pydantic by calling `to_dict()` of varying_notional_interim_exchange_payment_dates
78
+ if self.varying_notional_interim_exchange_payment_dates:
79
+ _dict['varyingNotionalInterimExchangePaymentDates'] = self.varying_notional_interim_exchange_payment_dates.to_dict()
80
+ # puts key-value pairs in additional_properties in the top level
81
+ if self.additional_properties is not None:
82
+ for _key, _value in self.additional_properties.items():
83
+ _dict[_key] = _value
84
+
85
+ return _dict
86
+
87
+ @classmethod
88
+ def from_dict(cls, obj: dict) -> FxLinkedNotionalSchedule:
89
+ """Create an instance of FxLinkedNotionalSchedule from a dict"""
90
+ if obj is None:
91
+ return None
92
+
93
+ if not isinstance(obj, dict):
94
+ return FxLinkedNotionalSchedule.parse_obj(obj)
95
+
96
+ _obj = FxLinkedNotionalSchedule.parse_obj({
97
+ "schedule_type": obj.get("scheduleType"),
98
+ "fx_conventions": FxConventions.from_dict(obj.get("fxConventions")) if obj.get("fxConventions") is not None else None,
99
+ "varying_notional_currency": obj.get("varyingNotionalCurrency"),
100
+ "varying_notional_fixing_dates": RelativeDateOffset.from_dict(obj.get("varyingNotionalFixingDates")) if obj.get("varyingNotionalFixingDates") is not None else None,
101
+ "varying_notional_interim_exchange_payment_dates": RelativeDateOffset.from_dict(obj.get("varyingNotionalInterimExchangePaymentDates")) if obj.get("varyingNotionalInterimExchangePaymentDates") is not None else None
102
+ })
103
+ # store additional fields in additional_properties
104
+ for _key in obj.keys():
105
+ if _key not in cls.__properties:
106
+ _obj.additional_properties[_key] = obj.get(_key)
107
+
108
+ return _obj
lusid/models/fx_option.py CHANGED
@@ -45,15 +45,15 @@ class FxOption(LusidInstrument):
45
45
  payout_style: Optional[StrictStr] = Field(None, alias="payoutStyle", description="PayoutStyle for touch options. For options without touch optionality, payoutStyle should not be set. For options with touch optionality (where the touches data has been set), payoutStyle must be defined and cannot be None. Supported string (enumeration) values are: [Deferred, Immediate].")
46
46
  premium: Optional[Premium] = None
47
47
  touches: Optional[conlist(Touch)] = Field(None, description="For a touch option the list should not be empty. Up to two touches are supported. An option cannot be at the same time barrier- and touch-option. One (or both) of the lists must be empty.")
48
- 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")
48
+ 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")
49
49
  additional_properties: Dict[str, Any] = {}
50
50
  __properties = ["instrumentType", "startDate", "domCcy", "domAmount", "fgnCcy", "fgnAmount", "strike", "barriers", "exerciseType", "isCallNotPut", "isDeliveryNotCash", "isPayoffDigital", "optionMaturityDate", "optionSettlementDate", "payoutStyle", "premium", "touches"]
51
51
 
52
52
  @validator('instrument_type')
53
53
  def instrument_type_validate_enum(cls, value):
54
54
  """Validates the enum"""
55
- 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'):
56
- 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')")
55
+ 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'):
56
+ 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')")
57
57
  return value
58
58
 
59
59
  class Config:
@@ -31,15 +31,15 @@ class FxRateSchedule(Schedule):
31
31
  fx_conversion_types: Optional[conlist(StrictStr)] = Field(None, alias="fxConversionTypes", description="List of flags to indicate if coupon payments, principal payments or both are converted")
32
32
  rate: Optional[Union[StrictFloat, StrictInt]] = Field(None, description="FxRate used to convert payments. Assumed to be in units of the ToCurrency so conversion is paymentAmount x fxRate")
33
33
  to_currency: Optional[StrictStr] = Field(None, alias="toCurrency", description="Currency that payments are converted to")
34
- schedule_type: StrictStr = Field(..., alias="scheduleType", description="The available values are: FixedSchedule, FloatSchedule, OptionalitySchedule, StepSchedule, Exercise, FxRateSchedule, Invalid")
34
+ schedule_type: StrictStr = Field(..., alias="scheduleType", description="The available values are: FixedSchedule, FloatSchedule, OptionalitySchedule, StepSchedule, Exercise, FxRateSchedule, FxLinkedNotionalSchedule, Invalid")
35
35
  additional_properties: Dict[str, Any] = {}
36
36
  __properties = ["scheduleType", "flowConventions", "fxConversionTypes", "rate", "toCurrency"]
37
37
 
38
38
  @validator('schedule_type')
39
39
  def schedule_type_validate_enum(cls, value):
40
40
  """Validates the enum"""
41
- if value not in ('FixedSchedule', 'FloatSchedule', 'OptionalitySchedule', 'StepSchedule', 'Exercise', 'FxRateSchedule', 'Invalid'):
42
- raise ValueError("must be one of enum values ('FixedSchedule', 'FloatSchedule', 'OptionalitySchedule', 'StepSchedule', 'Exercise', 'FxRateSchedule', 'Invalid')")
41
+ if value not in ('FixedSchedule', 'FloatSchedule', 'OptionalitySchedule', 'StepSchedule', 'Exercise', 'FxRateSchedule', 'FxLinkedNotionalSchedule', 'Invalid'):
42
+ raise ValueError("must be one of enum values ('FixedSchedule', 'FloatSchedule', 'OptionalitySchedule', 'StepSchedule', 'Exercise', 'FxRateSchedule', 'FxLinkedNotionalSchedule', 'Invalid')")
43
43
  return value
44
44
 
45
45
  class Config: