lusid-sdk 2.0.50b0__py3-none-any.whl → 2.0.470__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of lusid-sdk might be problematic. Click here for more details.
- lusid/__init__.py +1117 -14
- lusid/api/__init__.py +69 -0
- lusid/api/abor_api.py +513 -179
- lusid/api/abor_configuration_api.py +25 -24
- lusid/api/allocations_api.py +12 -20
- lusid/api/blocks_api.py +6 -6
- lusid/api/calendars_api.py +16 -24
- lusid/api/chart_of_accounts_api.py +1745 -441
- lusid/api/compliance_api.py +71 -62
- lusid/api/configuration_recipe_api.py +1198 -56
- lusid/api/corporate_action_sources_api.py +8 -8
- lusid/api/custom_entities_api.py +6 -6
- lusid/api/cut_label_definitions_api.py +9 -17
- lusid/api/data_types_api.py +16 -32
- lusid/api/executions_api.py +6 -6
- lusid/api/funds_api.py +1119 -0
- lusid/api/instrument_event_types_api.py +1287 -0
- lusid/api/instruments_api.py +12 -20
- lusid/api/legacy_compliance_api.py +12 -12
- lusid/api/legal_entities_api.py +12 -12
- lusid/api/order_graph_api.py +12 -12
- lusid/api/order_instructions_api.py +6 -6
- lusid/api/order_management_api.py +495 -14
- lusid/api/orders_api.py +16 -24
- lusid/api/packages_api.py +6 -6
- lusid/api/persons_api.py +16 -24
- lusid/api/placements_api.py +12 -12
- lusid/api/portfolio_groups_api.py +6 -6
- lusid/api/portfolios_api.py +23 -39
- lusid/api/property_definitions_api.py +205 -0
- lusid/api/queryable_keys_api.py +211 -0
- lusid/api/quotes_api.py +20 -36
- lusid/api/reconciliations_api.py +410 -1978
- lusid/api/schemas_api.py +7 -15
- lusid/api/scopes_api.py +151 -0
- lusid/api/scripted_translation_api.py +30 -28
- lusid/api/staging_rule_set_api.py +885 -0
- lusid/api/transaction_configuration_api.py +22 -22
- lusid/api/transaction_portfolios_api.py +282 -577
- lusid/api_client.py +5 -3
- lusid/configuration.py +1 -1
- lusid/extensions/__init__.py +10 -7
- lusid/extensions/api_client.py +3 -1
- lusid/extensions/api_client_factory.py +156 -45
- lusid/extensions/api_configuration.py +124 -15
- lusid/extensions/configuration_loaders.py +2 -4
- lusid/extensions/proxy_config.py +8 -5
- lusid/extensions/socket_keep_alive.py +14 -15
- lusid/extensions/tcp_keep_alive_connector.py +93 -46
- lusid/models/__init__.py +1028 -13
- lusid/models/abor.py +9 -2
- lusid/models/abor_configuration.py +8 -8
- lusid/models/abor_configuration_request.py +9 -9
- lusid/models/abor_request.py +1 -1
- lusid/models/account.py +6 -1
- lusid/models/accumulation_event.py +104 -0
- lusid/models/address_key_compliance_parameter.py +5 -12
- lusid/models/address_key_list_compliance_parameter.py +3 -3
- lusid/models/address_key_option_definition.py +3 -1
- lusid/models/amortisation_event.py +4 -6
- lusid/models/{underlying_leg.py → asset_leg.py} +15 -15
- lusid/models/basket.py +3 -3
- lusid/models/block_and_order_id_request.py +78 -0
- lusid/models/block_and_orders.py +83 -0
- lusid/models/block_and_orders_create_request.py +77 -0
- lusid/models/block_and_orders_request.py +134 -0
- lusid/models/blocked_order_request.py +130 -0
- lusid/models/bond.py +13 -6
- lusid/models/bond_coupon_event.py +97 -0
- lusid/models/bond_default_event.py +8 -18
- lusid/models/bond_principal_event.py +97 -0
- lusid/models/book_transactions_request.py +97 -0
- lusid/models/bool_compliance_parameter.py +3 -3
- lusid/models/bool_list_compliance_parameter.py +3 -3
- lusid/models/branch_step.py +101 -0
- lusid/models/cap_floor.py +3 -3
- lusid/models/cash_dividend_event.py +32 -10
- lusid/models/cash_election.py +91 -0
- lusid/models/cash_flow_event.py +5 -7
- lusid/models/cash_perpetual.py +3 -3
- lusid/models/cds_flow_conventions.py +1 -1
- lusid/models/cds_index.py +4 -4
- lusid/models/check_step.py +110 -0
- lusid/models/cleardown_module_details.py +95 -0
- lusid/models/cleardown_module_request.py +117 -0
- lusid/models/cleardown_module_response.py +139 -0
- lusid/models/cleardown_module_rule.py +94 -0
- lusid/models/{reconciliation_run_break.py → cleardown_module_rules_updated_response.py} +30 -36
- lusid/models/close_event.py +3 -3
- lusid/models/close_period_diary_entry_request.py +149 -0
- lusid/models/complete_portfolio.py +8 -1
- lusid/models/complex_bond.py +4 -4
- lusid/models/complex_market_data.py +6 -5
- lusid/models/compliance_parameter.py +8 -5
- lusid/models/compliance_parameter_type.py +3 -0
- lusid/models/compliance_rule_breakdown.py +16 -8
- lusid/models/compliance_rule_breakdown_request.py +12 -4
- lusid/models/compliance_rule_result_v2.py +85 -0
- lusid/models/compliance_step.py +99 -0
- lusid/models/compliance_step_type.py +42 -0
- lusid/models/compliance_summary_rule_result.py +12 -15
- lusid/models/compliance_summary_rule_result_request.py +12 -15
- lusid/models/compliance_template_variation.py +12 -2
- lusid/models/component_transaction.py +92 -0
- lusid/models/composite_dispersion.py +30 -5
- lusid/models/compounding.py +4 -4
- lusid/models/configuration_recipe.py +10 -19
- lusid/models/constant_volatility_surface.py +102 -0
- lusid/models/contract_for_difference.py +3 -3
- lusid/models/create_derived_property_definition_request.py +3 -3
- lusid/models/create_derived_transaction_portfolio_request.py +10 -3
- lusid/models/create_property_definition_request.py +12 -5
- lusid/models/create_staging_rule_set_request.py +91 -0
- lusid/models/create_trade_tickets_response.py +87 -0
- lusid/models/create_transaction_portfolio_request.py +16 -3
- lusid/models/credit_default_swap.py +4 -4
- lusid/models/credit_spread_curve_data.py +4 -4
- lusid/models/custom_entity_definition.py +8 -2
- lusid/models/custom_entity_type.py +8 -2
- lusid/models/cut_label_definition.py +7 -1
- lusid/models/data_type.py +7 -1
- lusid/models/data_type_summary.py +8 -2
- lusid/models/date_time_compliance_parameter.py +3 -3
- lusid/models/date_time_list_compliance_parameter.py +3 -3
- lusid/models/{upsert_reconciliation_run_request.py → day_month.py} +15 -15
- lusid/models/decimal_compliance_parameter.py +3 -3
- lusid/models/decimal_list_compliance_parameter.py +3 -3
- lusid/models/dialect.py +9 -3
- lusid/models/diary_entry.py +1 -1
- lusid/models/diary_entry_request.py +1 -1
- lusid/models/discount_factor_curve_data.py +3 -3
- lusid/models/dividend_option_event.py +129 -0
- lusid/models/dividend_reinvestment_event.py +124 -0
- lusid/models/election_specification.py +73 -0
- lusid/models/eligibility_calculation.py +71 -0
- lusid/models/empty_model_options.py +3 -3
- lusid/models/equity.py +8 -6
- lusid/models/equity_curve_by_prices_data.py +3 -3
- lusid/models/equity_model_options.py +3 -3
- lusid/models/equity_option.py +3 -3
- lusid/models/equity_swap.py +4 -4
- lusid/models/equity_vol_surface_data.py +3 -3
- lusid/models/exchange_traded_option.py +3 -3
- lusid/models/exercise_event.py +5 -7
- lusid/models/exotic_instrument.py +3 -3
- lusid/models/expiry_event.py +91 -0
- lusid/models/filter_predicate_compliance_parameter.py +91 -0
- lusid/models/filter_step.py +101 -0
- lusid/models/fixed_leg.py +3 -3
- lusid/models/fixed_schedule.py +4 -9
- lusid/models/flexible_loan.py +105 -0
- lusid/models/float_schedule.py +20 -12
- lusid/models/floating_leg.py +3 -3
- lusid/models/flow_convention_name.py +1 -1
- lusid/models/flow_conventions.py +1 -1
- lusid/models/forward_rate_agreement.py +3 -3
- lusid/models/from_recipe.py +81 -0
- lusid/models/fund.py +182 -0
- lusid/models/fund_properties.py +115 -0
- lusid/models/fund_request.py +165 -0
- lusid/models/fund_share_class.py +99 -0
- lusid/models/funding_leg.py +3 -3
- lusid/models/funding_leg_options.py +3 -3
- lusid/models/future.py +3 -3
- lusid/models/fx_conventions.py +73 -0
- lusid/models/fx_forward.py +8 -6
- lusid/models/fx_forward_curve_by_quote_reference.py +4 -4
- lusid/models/fx_forward_curve_data.py +3 -3
- lusid/models/fx_forward_model_options.py +3 -3
- lusid/models/fx_forward_pips_curve_data.py +3 -3
- lusid/models/fx_forward_settlement_event.py +136 -0
- lusid/models/fx_forward_tenor_curve_data.py +4 -4
- lusid/models/fx_forward_tenor_pips_curve_data.py +4 -4
- lusid/models/fx_linked_notional_schedule.py +108 -0
- lusid/models/fx_option.py +3 -3
- lusid/models/fx_rate_schedule.py +3 -3
- lusid/models/fx_swap.py +4 -4
- lusid/models/fx_vol_surface_data.py +3 -3
- lusid/models/{reconciliation_run.py → get_recipe_composer_response.py} +15 -15
- lusid/models/group_by_selector_compliance_parameter.py +91 -0
- lusid/models/group_by_step.py +101 -0
- lusid/models/group_filter_predicate_compliance_parameter.py +91 -0
- lusid/models/group_filter_step.py +110 -0
- lusid/models/group_of_market_data_key_rules.py +79 -0
- lusid/models/index_convention.py +1 -1
- lusid/models/index_model_options.py +3 -3
- lusid/models/inflation_index_conventions.py +2 -2
- lusid/models/inflation_leg.py +3 -3
- lusid/models/inflation_linked_bond.py +3 -3
- lusid/models/inflation_swap.py +4 -4
- lusid/models/informational_error_event.py +3 -3
- lusid/models/informational_event.py +4 -6
- lusid/models/instrument_event.py +13 -5
- lusid/models/instrument_event_configuration.py +74 -0
- lusid/models/instrument_event_holder.py +12 -3
- lusid/models/instrument_event_type.py +8 -0
- lusid/models/instrument_leg.py +3 -3
- lusid/models/instrument_list_compliance_parameter.py +3 -3
- lusid/models/instrument_payment_diary_leg.py +5 -3
- lusid/models/instrument_resolution_detail.py +105 -0
- lusid/models/instrument_type.py +2 -0
- lusid/models/interest_rate_swap.py +4 -4
- lusid/models/interest_rate_swaption.py +3 -3
- lusid/models/intermediate_compliance_step.py +110 -0
- lusid/models/ir_vol_cube_data.py +3 -3
- lusid/models/journal_entry_line.py +34 -3
- lusid/models/journal_entry_lines_query_parameters.py +1 -1
- lusid/models/label_value_set.py +1 -1
- lusid/models/leg_definition.py +16 -3
- lusid/models/lineage_member.py +87 -0
- lusid/models/lock_period_diary_entry_request.py +91 -0
- lusid/models/lusid_instrument.py +7 -5
- lusid/models/lusid_trade_ticket.py +8 -1
- lusid/models/market_context.py +17 -2
- lusid/models/market_data_type.py +1 -0
- lusid/models/maturity_event.py +91 -0
- lusid/models/model_options.py +5 -6
- lusid/models/model_options_type.py +0 -1
- lusid/models/model_selection.py +3 -3
- lusid/models/move_orders_to_different_blocks_request.py +77 -0
- lusid/models/moved_order_to_different_block_response.py +85 -0
- lusid/models/movement_type.py +2 -0
- lusid/models/multi_currency_amounts.py +71 -0
- lusid/models/opaque_market_data.py +3 -3
- lusid/models/opaque_model_options.py +3 -3
- lusid/models/open_event.py +3 -3
- lusid/models/optionality_schedule.py +3 -3
- lusid/models/order_graph_block.py +4 -2
- lusid/models/order_graph_block_order_detail.py +16 -2
- lusid/models/output_transaction.py +9 -2
- lusid/models/paged_resource_list_of_cleardown_module_response.py +113 -0
- lusid/models/{paged_resource_list_of_reconciliation_run_break.py → paged_resource_list_of_cleardown_module_rule.py} +11 -11
- lusid/models/{paged_resource_list_of_reconciliation_run.py → paged_resource_list_of_fund.py} +11 -11
- lusid/models/paged_resource_list_of_property_definition.py +113 -0
- lusid/models/paged_resource_list_of_staging_rule_set.py +113 -0
- lusid/models/paged_resource_list_of_transaction_template.py +113 -0
- lusid/models/paged_resource_list_of_transaction_template_specification.py +113 -0
- lusid/models/participation_request.py +3 -9
- lusid/models/performance_returns_metric.py +1 -1
- lusid/models/period_diary_entries_reopened_response.py +104 -0
- lusid/models/place_blocks_request.py +77 -0
- lusid/models/portfolio.py +15 -2
- lusid/models/portfolio_details.py +15 -2
- lusid/models/portfolio_group_id_compliance_parameter.py +3 -3
- lusid/models/portfolio_group_id_list_compliance_parameter.py +3 -3
- lusid/models/portfolio_holding.py +27 -2
- lusid/models/portfolio_id_compliance_parameter.py +3 -3
- lusid/models/portfolio_id_list_compliance_parameter.py +3 -3
- lusid/models/posting_module_rule.py +29 -4
- lusid/models/pricing_model.py +2 -1
- lusid/models/property_definition.py +17 -4
- lusid/models/property_definition_search_result.py +3 -3
- lusid/models/property_domain.py +3 -0
- lusid/models/property_key_compliance_parameter.py +3 -3
- lusid/models/property_key_list_compliance_parameter.py +3 -3
- lusid/models/queryable_key.py +124 -0
- lusid/models/raw_vendor_event.py +5 -7
- lusid/models/re_open_period_diary_entry_request.py +84 -0
- lusid/models/recipe_block.py +87 -0
- lusid/models/recipe_composer.py +100 -0
- lusid/models/{reconciliation_break_id.py → recipe_value.py} +22 -23
- lusid/models/recombine_step.py +101 -0
- lusid/models/reference_instrument.py +3 -3
- lusid/models/relative_date_offset.py +71 -0
- lusid/models/repo.py +3 -3
- lusid/models/reset_event.py +4 -6
- lusid/models/resource_list_of_block_and_orders.py +113 -0
- lusid/models/resource_list_of_get_recipe_composer_response.py +113 -0
- lusid/models/resource_list_of_moved_order_to_different_block_response.py +113 -0
- lusid/models/resource_list_of_queryable_key.py +113 -0
- lusid/models/schedule.py +6 -5
- lusid/models/schedule_type.py +1 -0
- lusid/models/script_map_reference.py +94 -0
- lusid/models/security_election.py +86 -0
- lusid/models/set_share_class_instruments_request.py +79 -0
- lusid/models/side_definition.py +1 -8
- lusid/models/sides_definition_request.py +1 -8
- lusid/models/simple_cash_flow_loan.py +3 -3
- lusid/models/simple_instrument.py +3 -3
- lusid/models/staging_rule.py +90 -0
- lusid/models/staging_rule_approval_criteria.py +81 -0
- lusid/models/staging_rule_match_criteria.py +95 -0
- lusid/models/staging_rule_set.py +103 -0
- lusid/models/step_schedule.py +3 -3
- lusid/models/stock_split_event.py +3 -3
- lusid/models/string_compliance_parameter.py +3 -3
- lusid/models/string_list_compliance_parameter.py +3 -3
- lusid/models/template_field.py +77 -0
- lusid/models/term_deposit.py +3 -3
- lusid/models/total_return_swap.py +16 -16
- lusid/models/transaction_configuration_movement_data.py +3 -3
- lusid/models/transaction_configuration_movement_data_request.py +3 -3
- lusid/models/transaction_currency_and_amount.py +81 -0
- lusid/models/transaction_field_map.py +97 -0
- lusid/models/transaction_price.py +3 -3
- lusid/models/transaction_price_and_type.py +81 -0
- lusid/models/transaction_price_type.py +1 -0
- lusid/models/transaction_property_map.py +80 -0
- lusid/models/transaction_template.py +100 -0
- lusid/models/transaction_template_request.py +79 -0
- lusid/models/transaction_template_specification.py +99 -0
- lusid/models/transaction_type_alias.py +0 -7
- lusid/models/transaction_type_calculation.py +1 -1
- lusid/models/transition_event.py +3 -3
- lusid/models/translation_context.py +75 -0
- lusid/models/translation_script.py +9 -3
- lusid/models/trial_balance.py +46 -11
- lusid/models/trial_balance_query_parameters.py +15 -6
- lusid/models/trigger_event.py +3 -3
- lusid/models/units_ratio.py +71 -0
- lusid/models/update_staging_rule_set_request.py +91 -0
- lusid/models/{compliance_run_summary.py → upsert_compliance_run_summary_result.py} +8 -8
- lusid/models/upsert_dialect_request.py +79 -0
- lusid/models/upsert_instrument_event_request.py +12 -3
- lusid/models/upsert_quote_request.py +1 -1
- lusid/models/upsert_recipe_composer_request.py +73 -0
- lusid/models/upsert_recipe_request.py +3 -9
- lusid/models/upsert_translation_script_request.py +75 -0
- lusid/models/valuation_schedule.py +10 -3
- lusid/models/weighted_instrument.py +13 -2
- lusid/models/weighted_instrument_in_line_lookup_identifiers.py +89 -0
- lusid/models/yield_curve_data.py +3 -3
- lusid/rest.py +1 -1
- {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.470.dist-info}/METADATA +245 -48
- {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.470.dist-info}/RECORD +326 -235
- {lusid_sdk-2.0.50b0.dist-info → lusid_sdk-2.0.470.dist-info}/WHEEL +1 -1
- lusid/extensions/api_client_builder.py +0 -138
- lusid/models/configuration_recipe_snippet.py +0 -139
- lusid/models/je_lines_query_parameters.py +0 -105
- lusid/models/look_up_pricing_model_options.py +0 -93
- lusid/models/reconciliation_run_id.py +0 -85
- lusid/models/upsert_reconciliation_break_request.py +0 -98
|
@@ -20,20 +20,19 @@ import json
|
|
|
20
20
|
|
|
21
21
|
from typing import Any, Dict, List, Optional
|
|
22
22
|
from pydantic import BaseModel, Field, StrictStr, conlist
|
|
23
|
+
from lusid.models.cleardown_module_rule import CleardownModuleRule
|
|
23
24
|
from lusid.models.link import Link
|
|
24
|
-
from lusid.models.
|
|
25
|
+
from lusid.models.version import Version
|
|
25
26
|
|
|
26
|
-
class
|
|
27
|
+
class CleardownModuleRulesUpdatedResponse(BaseModel):
|
|
27
28
|
"""
|
|
28
|
-
|
|
29
|
+
A Cleardown Module rules update response # noqa: E501
|
|
29
30
|
"""
|
|
30
|
-
|
|
31
|
+
rules: Optional[conlist(CleardownModuleRule)] = Field(None, description="The Cleardown Rules that apply for the Cleardown Module. Rules are evaluated in the order they occur in this collection.")
|
|
32
|
+
version: Optional[Version] = None
|
|
31
33
|
href: Optional[StrictStr] = Field(None, description="The specific Uniform Resource Identifier (URI) for this resource at the requested effective and asAt datetime.")
|
|
32
|
-
left_fields: Optional[Dict[str, StrictStr]] = Field(None, alias="leftFields", description="Fields for the left hand side of the reconciliation")
|
|
33
|
-
right_fields: Optional[Dict[str, StrictStr]] = Field(None, alias="rightFields", description="Fields for the right hand side of the reconciliation")
|
|
34
|
-
diff: Optional[StrictStr] = Field(None, description="The difference between two matching fields")
|
|
35
34
|
links: Optional[conlist(Link)] = None
|
|
36
|
-
__properties = ["
|
|
35
|
+
__properties = ["rules", "version", "href", "links"]
|
|
37
36
|
|
|
38
37
|
class Config:
|
|
39
38
|
"""Pydantic configuration"""
|
|
@@ -49,8 +48,8 @@ class ReconciliationRunBreak(BaseModel):
|
|
|
49
48
|
return json.dumps(self.to_dict())
|
|
50
49
|
|
|
51
50
|
@classmethod
|
|
52
|
-
def from_json(cls, json_str: str) ->
|
|
53
|
-
"""Create an instance of
|
|
51
|
+
def from_json(cls, json_str: str) -> CleardownModuleRulesUpdatedResponse:
|
|
52
|
+
"""Create an instance of CleardownModuleRulesUpdatedResponse from a JSON string"""
|
|
54
53
|
return cls.from_dict(json.loads(json_str))
|
|
55
54
|
|
|
56
55
|
def to_dict(self):
|
|
@@ -59,9 +58,16 @@ class ReconciliationRunBreak(BaseModel):
|
|
|
59
58
|
exclude={
|
|
60
59
|
},
|
|
61
60
|
exclude_none=True)
|
|
62
|
-
# override the default output from pydantic by calling `to_dict()` of
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
# override the default output from pydantic by calling `to_dict()` of each item in rules (list)
|
|
62
|
+
_items = []
|
|
63
|
+
if self.rules:
|
|
64
|
+
for _item in self.rules:
|
|
65
|
+
if _item:
|
|
66
|
+
_items.append(_item.to_dict())
|
|
67
|
+
_dict['rules'] = _items
|
|
68
|
+
# override the default output from pydantic by calling `to_dict()` of version
|
|
69
|
+
if self.version:
|
|
70
|
+
_dict['version'] = self.version.to_dict()
|
|
65
71
|
# override the default output from pydantic by calling `to_dict()` of each item in links (list)
|
|
66
72
|
_items = []
|
|
67
73
|
if self.links:
|
|
@@ -69,26 +75,16 @@ class ReconciliationRunBreak(BaseModel):
|
|
|
69
75
|
if _item:
|
|
70
76
|
_items.append(_item.to_dict())
|
|
71
77
|
_dict['links'] = _items
|
|
78
|
+
# set to None if rules (nullable) is None
|
|
79
|
+
# and __fields_set__ contains the field
|
|
80
|
+
if self.rules is None and "rules" in self.__fields_set__:
|
|
81
|
+
_dict['rules'] = None
|
|
82
|
+
|
|
72
83
|
# set to None if href (nullable) is None
|
|
73
84
|
# and __fields_set__ contains the field
|
|
74
85
|
if self.href is None and "href" in self.__fields_set__:
|
|
75
86
|
_dict['href'] = None
|
|
76
87
|
|
|
77
|
-
# set to None if left_fields (nullable) is None
|
|
78
|
-
# and __fields_set__ contains the field
|
|
79
|
-
if self.left_fields is None and "left_fields" in self.__fields_set__:
|
|
80
|
-
_dict['leftFields'] = None
|
|
81
|
-
|
|
82
|
-
# set to None if right_fields (nullable) is None
|
|
83
|
-
# and __fields_set__ contains the field
|
|
84
|
-
if self.right_fields is None and "right_fields" in self.__fields_set__:
|
|
85
|
-
_dict['rightFields'] = None
|
|
86
|
-
|
|
87
|
-
# set to None if diff (nullable) is None
|
|
88
|
-
# and __fields_set__ contains the field
|
|
89
|
-
if self.diff is None and "diff" in self.__fields_set__:
|
|
90
|
-
_dict['diff'] = None
|
|
91
|
-
|
|
92
88
|
# set to None if links (nullable) is None
|
|
93
89
|
# and __fields_set__ contains the field
|
|
94
90
|
if self.links is None and "links" in self.__fields_set__:
|
|
@@ -97,20 +93,18 @@ class ReconciliationRunBreak(BaseModel):
|
|
|
97
93
|
return _dict
|
|
98
94
|
|
|
99
95
|
@classmethod
|
|
100
|
-
def from_dict(cls, obj: dict) ->
|
|
101
|
-
"""Create an instance of
|
|
96
|
+
def from_dict(cls, obj: dict) -> CleardownModuleRulesUpdatedResponse:
|
|
97
|
+
"""Create an instance of CleardownModuleRulesUpdatedResponse from a dict"""
|
|
102
98
|
if obj is None:
|
|
103
99
|
return None
|
|
104
100
|
|
|
105
101
|
if not isinstance(obj, dict):
|
|
106
|
-
return
|
|
102
|
+
return CleardownModuleRulesUpdatedResponse.parse_obj(obj)
|
|
107
103
|
|
|
108
|
-
_obj =
|
|
109
|
-
"
|
|
104
|
+
_obj = CleardownModuleRulesUpdatedResponse.parse_obj({
|
|
105
|
+
"rules": [CleardownModuleRule.from_dict(_item) for _item in obj.get("rules")] if obj.get("rules") is not None else None,
|
|
106
|
+
"version": Version.from_dict(obj.get("version")) if obj.get("version") is not None else None,
|
|
110
107
|
"href": obj.get("href"),
|
|
111
|
-
"left_fields": obj.get("leftFields"),
|
|
112
|
-
"right_fields": obj.get("rightFields"),
|
|
113
|
-
"diff": obj.get("diff"),
|
|
114
108
|
"links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None
|
|
115
109
|
})
|
|
116
110
|
return _obj
|
lusid/models/close_event.py
CHANGED
|
@@ -28,15 +28,15 @@ class CloseEvent(InstrumentEvent):
|
|
|
28
28
|
"""
|
|
29
29
|
start_date: Optional[datetime] = Field(None, alias="startDate", description="The first date on which the instrument could close")
|
|
30
30
|
end_date: Optional[datetime] = Field(None, alias="endDate", description="The last date on which the instrument could close")
|
|
31
|
-
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")
|
|
31
|
+
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, ExpiryEvent")
|
|
32
32
|
additional_properties: Dict[str, Any] = {}
|
|
33
33
|
__properties = ["instrumentEventType", "startDate", "endDate"]
|
|
34
34
|
|
|
35
35
|
@validator('instrument_event_type')
|
|
36
36
|
def instrument_event_type_validate_enum(cls, value):
|
|
37
37
|
"""Validates the enum"""
|
|
38
|
-
if value not in ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent'):
|
|
39
|
-
raise ValueError("must be one of enum values ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent')")
|
|
38
|
+
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'):
|
|
39
|
+
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')")
|
|
40
40
|
return value
|
|
41
41
|
|
|
42
42
|
class Config:
|
|
@@ -0,0 +1,149 @@
|
|
|
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, List, Optional
|
|
22
|
+
from pydantic import BaseModel, Field, StrictStr, conlist, constr, validator
|
|
23
|
+
from lusid.models.model_property import ModelProperty
|
|
24
|
+
|
|
25
|
+
class ClosePeriodDiaryEntryRequest(BaseModel):
|
|
26
|
+
"""
|
|
27
|
+
A definition for the period you wish to close # noqa: E501
|
|
28
|
+
"""
|
|
29
|
+
diary_entry_code: Optional[constr(strict=True, max_length=64, min_length=1)] = Field(None, alias="diaryEntryCode", description="Unique code assigned to a period. When left blank a code will be created by the system in the format 'yyyyMMDD'.")
|
|
30
|
+
name: Optional[constr(strict=True, max_length=512, min_length=1)] = Field(None, description="Identifiable Name assigned to the period. Where left blank, the system will generate a name in the format 'yyyyMMDD'.")
|
|
31
|
+
effective_at: Optional[datetime] = Field(None, alias="effectiveAt", description="The effective time of the diary entry.")
|
|
32
|
+
query_as_at: Optional[datetime] = Field(None, alias="queryAsAt", description="The query time of the diary entry. Defaults to latest.")
|
|
33
|
+
status: Optional[StrictStr] = Field(None, description="The status of the diary entry. Defaults to 'Undefined' for valuation points and 'Estimate' for closing periods.")
|
|
34
|
+
properties: Optional[Dict[str, ModelProperty]] = Field(None, description="A set of properties for the diary entry.")
|
|
35
|
+
closing_options: Optional[conlist(StrictStr)] = Field(None, alias="closingOptions", description="The options which will be executed once a period is closed or locked.")
|
|
36
|
+
__properties = ["diaryEntryCode", "name", "effectiveAt", "queryAsAt", "status", "properties", "closingOptions"]
|
|
37
|
+
|
|
38
|
+
@validator('diary_entry_code')
|
|
39
|
+
def diary_entry_code_validate_regular_expression(cls, value):
|
|
40
|
+
"""Validates the regular expression"""
|
|
41
|
+
if value is None:
|
|
42
|
+
return value
|
|
43
|
+
|
|
44
|
+
if not re.match(r"^[a-zA-Z0-9\-_]+$", value):
|
|
45
|
+
raise ValueError(r"must validate the regular expression /^[a-zA-Z0-9\-_]+$/")
|
|
46
|
+
return value
|
|
47
|
+
|
|
48
|
+
@validator('name')
|
|
49
|
+
def name_validate_regular_expression(cls, value):
|
|
50
|
+
"""Validates the regular expression"""
|
|
51
|
+
if value is None:
|
|
52
|
+
return value
|
|
53
|
+
|
|
54
|
+
if not re.match(r"^[\s\S]*$", value):
|
|
55
|
+
raise ValueError(r"must validate the regular expression /^[\s\S]*$/")
|
|
56
|
+
return value
|
|
57
|
+
|
|
58
|
+
class Config:
|
|
59
|
+
"""Pydantic configuration"""
|
|
60
|
+
allow_population_by_field_name = True
|
|
61
|
+
validate_assignment = True
|
|
62
|
+
|
|
63
|
+
def to_str(self) -> str:
|
|
64
|
+
"""Returns the string representation of the model using alias"""
|
|
65
|
+
return pprint.pformat(self.dict(by_alias=True))
|
|
66
|
+
|
|
67
|
+
def to_json(self) -> str:
|
|
68
|
+
"""Returns the JSON representation of the model using alias"""
|
|
69
|
+
return json.dumps(self.to_dict())
|
|
70
|
+
|
|
71
|
+
@classmethod
|
|
72
|
+
def from_json(cls, json_str: str) -> ClosePeriodDiaryEntryRequest:
|
|
73
|
+
"""Create an instance of ClosePeriodDiaryEntryRequest from a JSON string"""
|
|
74
|
+
return cls.from_dict(json.loads(json_str))
|
|
75
|
+
|
|
76
|
+
def to_dict(self):
|
|
77
|
+
"""Returns the dictionary representation of the model using alias"""
|
|
78
|
+
_dict = self.dict(by_alias=True,
|
|
79
|
+
exclude={
|
|
80
|
+
},
|
|
81
|
+
exclude_none=True)
|
|
82
|
+
# override the default output from pydantic by calling `to_dict()` of each value in properties (dict)
|
|
83
|
+
_field_dict = {}
|
|
84
|
+
if self.properties:
|
|
85
|
+
for _key in self.properties:
|
|
86
|
+
if self.properties[_key]:
|
|
87
|
+
_field_dict[_key] = self.properties[_key].to_dict()
|
|
88
|
+
_dict['properties'] = _field_dict
|
|
89
|
+
# set to None if diary_entry_code (nullable) is None
|
|
90
|
+
# and __fields_set__ contains the field
|
|
91
|
+
if self.diary_entry_code is None and "diary_entry_code" in self.__fields_set__:
|
|
92
|
+
_dict['diaryEntryCode'] = None
|
|
93
|
+
|
|
94
|
+
# set to None if name (nullable) is None
|
|
95
|
+
# and __fields_set__ contains the field
|
|
96
|
+
if self.name is None and "name" in self.__fields_set__:
|
|
97
|
+
_dict['name'] = None
|
|
98
|
+
|
|
99
|
+
# set to None if effective_at (nullable) is None
|
|
100
|
+
# and __fields_set__ contains the field
|
|
101
|
+
if self.effective_at is None and "effective_at" in self.__fields_set__:
|
|
102
|
+
_dict['effectiveAt'] = None
|
|
103
|
+
|
|
104
|
+
# set to None if query_as_at (nullable) is None
|
|
105
|
+
# and __fields_set__ contains the field
|
|
106
|
+
if self.query_as_at is None and "query_as_at" in self.__fields_set__:
|
|
107
|
+
_dict['queryAsAt'] = None
|
|
108
|
+
|
|
109
|
+
# set to None if status (nullable) is None
|
|
110
|
+
# and __fields_set__ contains the field
|
|
111
|
+
if self.status is None and "status" in self.__fields_set__:
|
|
112
|
+
_dict['status'] = None
|
|
113
|
+
|
|
114
|
+
# set to None if properties (nullable) is None
|
|
115
|
+
# and __fields_set__ contains the field
|
|
116
|
+
if self.properties is None and "properties" in self.__fields_set__:
|
|
117
|
+
_dict['properties'] = None
|
|
118
|
+
|
|
119
|
+
# set to None if closing_options (nullable) is None
|
|
120
|
+
# and __fields_set__ contains the field
|
|
121
|
+
if self.closing_options is None and "closing_options" in self.__fields_set__:
|
|
122
|
+
_dict['closingOptions'] = None
|
|
123
|
+
|
|
124
|
+
return _dict
|
|
125
|
+
|
|
126
|
+
@classmethod
|
|
127
|
+
def from_dict(cls, obj: dict) -> ClosePeriodDiaryEntryRequest:
|
|
128
|
+
"""Create an instance of ClosePeriodDiaryEntryRequest from a dict"""
|
|
129
|
+
if obj is None:
|
|
130
|
+
return None
|
|
131
|
+
|
|
132
|
+
if not isinstance(obj, dict):
|
|
133
|
+
return ClosePeriodDiaryEntryRequest.parse_obj(obj)
|
|
134
|
+
|
|
135
|
+
_obj = ClosePeriodDiaryEntryRequest.parse_obj({
|
|
136
|
+
"diary_entry_code": obj.get("diaryEntryCode"),
|
|
137
|
+
"name": obj.get("name"),
|
|
138
|
+
"effective_at": obj.get("effectiveAt"),
|
|
139
|
+
"query_as_at": obj.get("queryAsAt"),
|
|
140
|
+
"status": obj.get("status"),
|
|
141
|
+
"properties": dict(
|
|
142
|
+
(_k, ModelProperty.from_dict(_v))
|
|
143
|
+
for _k, _v in obj.get("properties").items()
|
|
144
|
+
)
|
|
145
|
+
if obj.get("properties") is not None
|
|
146
|
+
else None,
|
|
147
|
+
"closing_options": obj.get("closingOptions")
|
|
148
|
+
})
|
|
149
|
+
return _obj
|
|
@@ -40,8 +40,9 @@ class CompletePortfolio(BaseModel):
|
|
|
40
40
|
version: Version = Field(...)
|
|
41
41
|
properties: Optional[conlist(ModelProperty)] = Field(None, description="The requested portfolio properties. These will be from the 'Portfolio' domain.")
|
|
42
42
|
base_currency: Optional[StrictStr] = Field(None, alias="baseCurrency", description="If the portfolio is a transaction portfolio or derived transaction portfolio, this is the base currency of the portfolio.")
|
|
43
|
+
sub_holding_keys: Optional[conlist(StrictStr)] = Field(None, alias="subHoldingKeys", description="The sub holding key properties configured for the portfolio")
|
|
43
44
|
links: Optional[conlist(Link)] = None
|
|
44
|
-
__properties = ["id", "href", "description", "displayName", "created", "parentPortfolioId", "isDerived", "type", "version", "properties", "baseCurrency", "links"]
|
|
45
|
+
__properties = ["id", "href", "description", "displayName", "created", "parentPortfolioId", "isDerived", "type", "version", "properties", "baseCurrency", "subHoldingKeys", "links"]
|
|
45
46
|
|
|
46
47
|
@validator('type')
|
|
47
48
|
def type_validate_enum(cls, value):
|
|
@@ -126,6 +127,11 @@ class CompletePortfolio(BaseModel):
|
|
|
126
127
|
if self.base_currency is None and "base_currency" in self.__fields_set__:
|
|
127
128
|
_dict['baseCurrency'] = None
|
|
128
129
|
|
|
130
|
+
# set to None if sub_holding_keys (nullable) is None
|
|
131
|
+
# and __fields_set__ contains the field
|
|
132
|
+
if self.sub_holding_keys is None and "sub_holding_keys" in self.__fields_set__:
|
|
133
|
+
_dict['subHoldingKeys'] = None
|
|
134
|
+
|
|
129
135
|
# set to None if links (nullable) is None
|
|
130
136
|
# and __fields_set__ contains the field
|
|
131
137
|
if self.links is None and "links" in self.__fields_set__:
|
|
@@ -154,6 +160,7 @@ class CompletePortfolio(BaseModel):
|
|
|
154
160
|
"version": Version.from_dict(obj.get("version")) if obj.get("version") is not None else None,
|
|
155
161
|
"properties": [ModelProperty.from_dict(_item) for _item in obj.get("properties")] if obj.get("properties") is not None else None,
|
|
156
162
|
"base_currency": obj.get("baseCurrency"),
|
|
163
|
+
"sub_holding_keys": obj.get("subHoldingKeys"),
|
|
157
164
|
"links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None
|
|
158
165
|
})
|
|
159
166
|
return _obj
|
lusid/models/complex_bond.py
CHANGED
|
@@ -33,16 +33,16 @@ class ComplexBond(LusidInstrument):
|
|
|
33
33
|
schedules: Optional[conlist(Schedule)] = Field(None, description="schedules.")
|
|
34
34
|
rounding_conventions: Optional[conlist(RoundingConvention)] = Field(None, alias="roundingConventions", description="Rounding conventions for analytics, if any.")
|
|
35
35
|
asset_backed: Optional[StrictBool] = Field(None, alias="assetBacked", description="If this flag is set to true, then the outstanding notional and principal repayments will be calculated based on pool factors in the quote store. Usually AssetBacked bonds also require a RollConvention setting of within the FlowConventions any given rates schedule (to ensure payment dates always happen on the same day of the month) and US Agency MBSs with Pay Delay features also require their rates schedules to include an ExDividendConfiguration to drive the lag between interest accrual and payment.")
|
|
36
|
-
asset_pool_identifier: Optional[constr(strict=True, max_length=50, min_length=0)] = Field(None, alias="assetPoolIdentifier", description="Identifier used to retrieve pool factor information about this bond from the quote store. This is
|
|
37
|
-
instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg")
|
|
36
|
+
asset_pool_identifier: Optional[constr(strict=True, max_length=50, min_length=0)] = Field(None, alias="assetPoolIdentifier", description="Identifier used to retrieve pool factor information about this bond from the quote store. This is typically the bond's ISIN, but can also be ClientInternal. Please ensure you align the MarketDataKeyRule with the correct Quote (Quote.ClientInternal.* or Quote.Isin.*)")
|
|
37
|
+
instrument_type: StrictStr = Field(..., alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan")
|
|
38
38
|
additional_properties: Dict[str, Any] = {}
|
|
39
39
|
__properties = ["instrumentType", "identifiers", "calculationType", "schedules", "roundingConventions", "assetBacked", "assetPoolIdentifier"]
|
|
40
40
|
|
|
41
41
|
@validator('instrument_type')
|
|
42
42
|
def instrument_type_validate_enum(cls, value):
|
|
43
43
|
"""Validates the enum"""
|
|
44
|
-
if value not in ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg'):
|
|
45
|
-
raise ValueError("must be one of enum values ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg')")
|
|
44
|
+
if value not in ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan'):
|
|
45
|
+
raise ValueError("must be one of enum values ('QuotedSecurity', 'InterestRateSwap', 'FxForward', 'Future', 'ExoticInstrument', 'FxOption', 'CreditDefaultSwap', 'InterestRateSwaption', 'Bond', 'EquityOption', 'FixedLeg', 'FloatingLeg', 'BespokeCashFlowsLeg', 'Unknown', 'TermDeposit', 'ContractForDifference', 'EquitySwap', 'CashPerpetual', 'CapFloor', 'CashSettled', 'CdsIndex', 'Basket', 'FundingLeg', 'FxSwap', 'ForwardRateAgreement', 'SimpleInstrument', 'Repo', 'Equity', 'ExchangeTradedOption', 'ReferenceInstrument', 'ComplexBond', 'InflationLinkedBond', 'InflationSwap', 'SimpleCashFlowLoan', 'TotalReturnSwap', 'InflationLeg', 'FundShareClass', 'FlexibleLoan')")
|
|
46
46
|
return value
|
|
47
47
|
|
|
48
48
|
class Config:
|
|
@@ -26,14 +26,14 @@ class ComplexMarketData(BaseModel):
|
|
|
26
26
|
"""
|
|
27
27
|
Base class for representing complex market data in LUSID. Generally speaking, market data is complex when it cannot be represented as a single quote. Examples include discounting curves, projection curves, and volatility surfaces, which are used to compute instrument analytics. This base class should not be directly instantiated; each supported MarketDataType has a corresponding inherited class. # noqa: E501
|
|
28
28
|
"""
|
|
29
|
-
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")
|
|
29
|
+
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")
|
|
30
30
|
__properties = ["marketDataType"]
|
|
31
31
|
|
|
32
32
|
@validator('market_data_type')
|
|
33
33
|
def market_data_type_validate_enum(cls, value):
|
|
34
34
|
"""Validates the enum"""
|
|
35
|
-
if value not in ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData'):
|
|
36
|
-
raise ValueError("must be one of enum values ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData')")
|
|
35
|
+
if value not in ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData', 'ConstantVolatilitySurface'):
|
|
36
|
+
raise ValueError("must be one of enum values ('DiscountFactorCurveData', 'EquityVolSurfaceData', 'FxVolSurfaceData', 'IrVolCubeData', 'OpaqueMarketData', 'YieldCurveData', 'FxForwardCurveData', 'FxForwardPipsCurveData', 'FxForwardTenorCurveData', 'FxForwardTenorPipsCurveData', 'FxForwardCurveByQuoteReference', 'CreditSpreadCurveData', 'EquityCurveByPricesData', 'ConstantVolatilitySurface')")
|
|
37
37
|
return value
|
|
38
38
|
|
|
39
39
|
class Config:
|
|
@@ -46,6 +46,7 @@ class ComplexMarketData(BaseModel):
|
|
|
46
46
|
|
|
47
47
|
# discriminator mappings
|
|
48
48
|
__discriminator_value_class_map = {
|
|
49
|
+
'ConstantVolatilitySurface': 'ConstantVolatilitySurface',
|
|
49
50
|
'CreditSpreadCurveData': 'CreditSpreadCurveData',
|
|
50
51
|
'DiscountFactorCurveData': 'DiscountFactorCurveData',
|
|
51
52
|
'EquityCurveByPricesData': 'EquityCurveByPricesData',
|
|
@@ -79,7 +80,7 @@ class ComplexMarketData(BaseModel):
|
|
|
79
80
|
return json.dumps(self.to_dict())
|
|
80
81
|
|
|
81
82
|
@classmethod
|
|
82
|
-
def from_json(cls, json_str: str) -> Union(CreditSpreadCurveData, DiscountFactorCurveData, EquityCurveByPricesData, EquityVolSurfaceData, FxForwardCurveByQuoteReference, FxForwardCurveData, FxForwardPipsCurveData, FxForwardTenorCurveData, FxForwardTenorPipsCurveData, FxVolSurfaceData, IrVolCubeData, OpaqueMarketData, YieldCurveData):
|
|
83
|
+
def from_json(cls, json_str: str) -> Union(ConstantVolatilitySurface, CreditSpreadCurveData, DiscountFactorCurveData, EquityCurveByPricesData, EquityVolSurfaceData, FxForwardCurveByQuoteReference, FxForwardCurveData, FxForwardPipsCurveData, FxForwardTenorCurveData, FxForwardTenorPipsCurveData, FxVolSurfaceData, IrVolCubeData, OpaqueMarketData, YieldCurveData):
|
|
83
84
|
"""Create an instance of ComplexMarketData from a JSON string"""
|
|
84
85
|
return cls.from_dict(json.loads(json_str))
|
|
85
86
|
|
|
@@ -92,7 +93,7 @@ class ComplexMarketData(BaseModel):
|
|
|
92
93
|
return _dict
|
|
93
94
|
|
|
94
95
|
@classmethod
|
|
95
|
-
def from_dict(cls, obj: dict) -> Union(CreditSpreadCurveData, DiscountFactorCurveData, EquityCurveByPricesData, EquityVolSurfaceData, FxForwardCurveByQuoteReference, FxForwardCurveData, FxForwardPipsCurveData, FxForwardTenorCurveData, FxForwardTenorPipsCurveData, FxVolSurfaceData, IrVolCubeData, OpaqueMarketData, YieldCurveData):
|
|
96
|
+
def from_dict(cls, obj: dict) -> Union(ConstantVolatilitySurface, CreditSpreadCurveData, DiscountFactorCurveData, EquityCurveByPricesData, EquityVolSurfaceData, FxForwardCurveByQuoteReference, FxForwardCurveData, FxForwardPipsCurveData, FxForwardTenorCurveData, FxForwardTenorPipsCurveData, FxVolSurfaceData, IrVolCubeData, OpaqueMarketData, YieldCurveData):
|
|
96
97
|
"""Create an instance of ComplexMarketData from a dict"""
|
|
97
98
|
# look up the object type based on discriminator mapping
|
|
98
99
|
object_type = cls.get_discriminator_value(obj)
|
|
@@ -26,14 +26,14 @@ class ComplianceParameter(BaseModel):
|
|
|
26
26
|
"""
|
|
27
27
|
ComplianceParameter
|
|
28
28
|
"""
|
|
29
|
-
compliance_parameter_type: StrictStr = Field(..., alias="complianceParameterType", description="The parameter type. The available values are: BoolComplianceParameter, StringComplianceParameter, DecimalComplianceParameter, DateTimeComplianceParameter, PropertyKeyComplianceParameter, AddressKeyComplianceParameter, PortfolioIdComplianceParameter, PortfolioGroupIdComplianceParameter, StringListComplianceParameter, BoolListComplianceParameter, DateTimeListComplianceParameter, DecimalListComplianceParameter, PropertyKeyListComplianceParameter, AddressKeyListComplianceParameter, PortfolioIdListComplianceParameter, PortfolioGroupIdListComplianceParameter, InstrumentListComplianceParameter")
|
|
29
|
+
compliance_parameter_type: StrictStr = Field(..., alias="complianceParameterType", description="The parameter type. The available values are: BoolComplianceParameter, StringComplianceParameter, DecimalComplianceParameter, DateTimeComplianceParameter, PropertyKeyComplianceParameter, AddressKeyComplianceParameter, PortfolioIdComplianceParameter, PortfolioGroupIdComplianceParameter, StringListComplianceParameter, BoolListComplianceParameter, DateTimeListComplianceParameter, DecimalListComplianceParameter, PropertyKeyListComplianceParameter, AddressKeyListComplianceParameter, PortfolioIdListComplianceParameter, PortfolioGroupIdListComplianceParameter, InstrumentListComplianceParameter, FilterPredicateComplianceParameter, GroupFilterPredicateComplianceParameter, GroupBySelectorComplianceParameter")
|
|
30
30
|
__properties = ["complianceParameterType"]
|
|
31
31
|
|
|
32
32
|
@validator('compliance_parameter_type')
|
|
33
33
|
def compliance_parameter_type_validate_enum(cls, value):
|
|
34
34
|
"""Validates the enum"""
|
|
35
|
-
if value not in ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter'):
|
|
36
|
-
raise ValueError("must be one of enum values ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter')")
|
|
35
|
+
if value not in ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter'):
|
|
36
|
+
raise ValueError("must be one of enum values ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter')")
|
|
37
37
|
return value
|
|
38
38
|
|
|
39
39
|
class Config:
|
|
@@ -54,6 +54,9 @@ class ComplianceParameter(BaseModel):
|
|
|
54
54
|
'DateTimeListComplianceParameter': 'DateTimeListComplianceParameter',
|
|
55
55
|
'DecimalComplianceParameter': 'DecimalComplianceParameter',
|
|
56
56
|
'DecimalListComplianceParameter': 'DecimalListComplianceParameter',
|
|
57
|
+
'FilterPredicateComplianceParameter': 'FilterPredicateComplianceParameter',
|
|
58
|
+
'GroupBySelectorComplianceParameter': 'GroupBySelectorComplianceParameter',
|
|
59
|
+
'GroupFilterPredicateComplianceParameter': 'GroupFilterPredicateComplianceParameter',
|
|
57
60
|
'InstrumentListComplianceParameter': 'InstrumentListComplianceParameter',
|
|
58
61
|
'PortfolioGroupIdComplianceParameter': 'PortfolioGroupIdComplianceParameter',
|
|
59
62
|
'PortfolioGroupIdListComplianceParameter': 'PortfolioGroupIdListComplianceParameter',
|
|
@@ -83,7 +86,7 @@ class ComplianceParameter(BaseModel):
|
|
|
83
86
|
return json.dumps(self.to_dict())
|
|
84
87
|
|
|
85
88
|
@classmethod
|
|
86
|
-
def from_json(cls, json_str: str) -> Union(AddressKeyComplianceParameter, AddressKeyListComplianceParameter, BoolComplianceParameter, BoolListComplianceParameter, DateTimeComplianceParameter, DateTimeListComplianceParameter, DecimalComplianceParameter, DecimalListComplianceParameter, InstrumentListComplianceParameter, PortfolioGroupIdComplianceParameter, PortfolioGroupIdListComplianceParameter, PortfolioIdComplianceParameter, PortfolioIdListComplianceParameter, PropertyKeyComplianceParameter, PropertyKeyListComplianceParameter, StringComplianceParameter, StringListComplianceParameter):
|
|
89
|
+
def from_json(cls, json_str: str) -> Union(AddressKeyComplianceParameter, AddressKeyListComplianceParameter, BoolComplianceParameter, BoolListComplianceParameter, DateTimeComplianceParameter, DateTimeListComplianceParameter, DecimalComplianceParameter, DecimalListComplianceParameter, FilterPredicateComplianceParameter, GroupBySelectorComplianceParameter, GroupFilterPredicateComplianceParameter, InstrumentListComplianceParameter, PortfolioGroupIdComplianceParameter, PortfolioGroupIdListComplianceParameter, PortfolioIdComplianceParameter, PortfolioIdListComplianceParameter, PropertyKeyComplianceParameter, PropertyKeyListComplianceParameter, StringComplianceParameter, StringListComplianceParameter):
|
|
87
90
|
"""Create an instance of ComplianceParameter from a JSON string"""
|
|
88
91
|
return cls.from_dict(json.loads(json_str))
|
|
89
92
|
|
|
@@ -96,7 +99,7 @@ class ComplianceParameter(BaseModel):
|
|
|
96
99
|
return _dict
|
|
97
100
|
|
|
98
101
|
@classmethod
|
|
99
|
-
def from_dict(cls, obj: dict) -> Union(AddressKeyComplianceParameter, AddressKeyListComplianceParameter, BoolComplianceParameter, BoolListComplianceParameter, DateTimeComplianceParameter, DateTimeListComplianceParameter, DecimalComplianceParameter, DecimalListComplianceParameter, InstrumentListComplianceParameter, PortfolioGroupIdComplianceParameter, PortfolioGroupIdListComplianceParameter, PortfolioIdComplianceParameter, PortfolioIdListComplianceParameter, PropertyKeyComplianceParameter, PropertyKeyListComplianceParameter, StringComplianceParameter, StringListComplianceParameter):
|
|
102
|
+
def from_dict(cls, obj: dict) -> Union(AddressKeyComplianceParameter, AddressKeyListComplianceParameter, BoolComplianceParameter, BoolListComplianceParameter, DateTimeComplianceParameter, DateTimeListComplianceParameter, DecimalComplianceParameter, DecimalListComplianceParameter, FilterPredicateComplianceParameter, GroupBySelectorComplianceParameter, GroupFilterPredicateComplianceParameter, InstrumentListComplianceParameter, PortfolioGroupIdComplianceParameter, PortfolioGroupIdListComplianceParameter, PortfolioIdComplianceParameter, PortfolioIdListComplianceParameter, PropertyKeyComplianceParameter, PropertyKeyListComplianceParameter, StringComplianceParameter, StringListComplianceParameter):
|
|
100
103
|
"""Create an instance of ComplianceParameter from a dict"""
|
|
101
104
|
# look up the object type based on discriminator mapping
|
|
102
105
|
object_type = cls.get_discriminator_value(obj)
|
|
@@ -46,6 +46,9 @@ class ComplianceParameterType(str, Enum):
|
|
|
46
46
|
PORTFOLIOIDLISTCOMPLIANCEPARAMETER = 'PortfolioIdListComplianceParameter'
|
|
47
47
|
PORTFOLIOGROUPIDLISTCOMPLIANCEPARAMETER = 'PortfolioGroupIdListComplianceParameter'
|
|
48
48
|
INSTRUMENTLISTCOMPLIANCEPARAMETER = 'InstrumentListComplianceParameter'
|
|
49
|
+
FILTERPREDICATECOMPLIANCEPARAMETER = 'FilterPredicateComplianceParameter'
|
|
50
|
+
GROUPFILTERPREDICATECOMPLIANCEPARAMETER = 'GroupFilterPredicateComplianceParameter'
|
|
51
|
+
GROUPBYSELECTORCOMPLIANCEPARAMETER = 'GroupBySelectorComplianceParameter'
|
|
49
52
|
|
|
50
53
|
@classmethod
|
|
51
54
|
def from_json(cls, json_str: str) -> ComplianceParameterType:
|
|
@@ -20,18 +20,19 @@ import json
|
|
|
20
20
|
|
|
21
21
|
from typing import Any, Dict, List, Union
|
|
22
22
|
from pydantic import BaseModel, Field, StrictFloat, StrictInt, StrictStr, conlist, constr
|
|
23
|
+
from lusid.models.lineage_member import LineageMember
|
|
23
24
|
from lusid.models.model_property import ModelProperty
|
|
24
25
|
|
|
25
26
|
class ComplianceRuleBreakdown(BaseModel):
|
|
26
27
|
"""
|
|
27
28
|
ComplianceRuleBreakdown
|
|
28
29
|
"""
|
|
29
|
-
group_status: constr(strict=True, min_length=1) = Field(..., alias="groupStatus")
|
|
30
|
-
results_used: Dict[str, Union[StrictFloat, StrictInt]] = Field(..., alias="resultsUsed")
|
|
31
|
-
properties_used: Dict[str, conlist(ModelProperty)] = Field(..., alias="propertiesUsed")
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
__properties = ["groupStatus", "resultsUsed", "propertiesUsed", "
|
|
30
|
+
group_status: constr(strict=True, min_length=1) = Field(..., alias="groupStatus", description="The status of this subset of results.")
|
|
31
|
+
results_used: Dict[str, Union[StrictFloat, StrictInt]] = Field(..., alias="resultsUsed", description="Dictionary of AddressKey (as string) and their corresponding decimal values, that were used in this rule.")
|
|
32
|
+
properties_used: Dict[str, conlist(ModelProperty)] = Field(..., alias="propertiesUsed", description="Dictionary of PropertyKey (as string) and their corresponding Properties, that were used in this rule")
|
|
33
|
+
missing_data_information: conlist(StrictStr) = Field(..., alias="missingDataInformation", description="List of string information detailing data that was missing from contributions processed in this rule")
|
|
34
|
+
lineage: conlist(LineageMember) = Field(...)
|
|
35
|
+
__properties = ["groupStatus", "resultsUsed", "propertiesUsed", "missingDataInformation", "lineage"]
|
|
35
36
|
|
|
36
37
|
class Config:
|
|
37
38
|
"""Pydantic configuration"""
|
|
@@ -66,6 +67,13 @@ class ComplianceRuleBreakdown(BaseModel):
|
|
|
66
67
|
_item.to_dict() for _item in self.properties_used[_key]
|
|
67
68
|
]
|
|
68
69
|
_dict['propertiesUsed'] = _field_dict_of_array
|
|
70
|
+
# override the default output from pydantic by calling `to_dict()` of each item in lineage (list)
|
|
71
|
+
_items = []
|
|
72
|
+
if self.lineage:
|
|
73
|
+
for _item in self.lineage:
|
|
74
|
+
if _item:
|
|
75
|
+
_items.append(_item.to_dict())
|
|
76
|
+
_dict['lineage'] = _items
|
|
69
77
|
return _dict
|
|
70
78
|
|
|
71
79
|
@classmethod
|
|
@@ -88,7 +96,7 @@ class ComplianceRuleBreakdown(BaseModel):
|
|
|
88
96
|
)
|
|
89
97
|
for _k, _v in obj.get("propertiesUsed").items()
|
|
90
98
|
),
|
|
91
|
-
"
|
|
92
|
-
"
|
|
99
|
+
"missing_data_information": obj.get("missingDataInformation"),
|
|
100
|
+
"lineage": [LineageMember.from_dict(_item) for _item in obj.get("lineage")] if obj.get("lineage") is not None else None
|
|
93
101
|
})
|
|
94
102
|
return _obj
|
|
@@ -20,6 +20,7 @@ import json
|
|
|
20
20
|
|
|
21
21
|
from typing import Any, Dict, List, Union
|
|
22
22
|
from pydantic import BaseModel, Field, StrictFloat, StrictInt, StrictStr, conlist, constr
|
|
23
|
+
from lusid.models.lineage_member import LineageMember
|
|
23
24
|
from lusid.models.model_property import ModelProperty
|
|
24
25
|
|
|
25
26
|
class ComplianceRuleBreakdownRequest(BaseModel):
|
|
@@ -29,9 +30,9 @@ class ComplianceRuleBreakdownRequest(BaseModel):
|
|
|
29
30
|
group_status: constr(strict=True, max_length=6000, min_length=0) = Field(..., alias="groupStatus")
|
|
30
31
|
results_used: Dict[str, Union[StrictFloat, StrictInt]] = Field(..., alias="resultsUsed")
|
|
31
32
|
properties_used: Dict[str, conlist(ModelProperty)] = Field(..., alias="propertiesUsed")
|
|
32
|
-
parameters_used: Dict[str, StrictStr] = Field(..., alias="parametersUsed")
|
|
33
33
|
missing_data_information: conlist(StrictStr) = Field(..., alias="missingDataInformation")
|
|
34
|
-
|
|
34
|
+
lineage: conlist(LineageMember) = Field(...)
|
|
35
|
+
__properties = ["groupStatus", "resultsUsed", "propertiesUsed", "missingDataInformation", "lineage"]
|
|
35
36
|
|
|
36
37
|
class Config:
|
|
37
38
|
"""Pydantic configuration"""
|
|
@@ -66,6 +67,13 @@ class ComplianceRuleBreakdownRequest(BaseModel):
|
|
|
66
67
|
_item.to_dict() for _item in self.properties_used[_key]
|
|
67
68
|
]
|
|
68
69
|
_dict['propertiesUsed'] = _field_dict_of_array
|
|
70
|
+
# override the default output from pydantic by calling `to_dict()` of each item in lineage (list)
|
|
71
|
+
_items = []
|
|
72
|
+
if self.lineage:
|
|
73
|
+
for _item in self.lineage:
|
|
74
|
+
if _item:
|
|
75
|
+
_items.append(_item.to_dict())
|
|
76
|
+
_dict['lineage'] = _items
|
|
69
77
|
return _dict
|
|
70
78
|
|
|
71
79
|
@classmethod
|
|
@@ -88,7 +96,7 @@ class ComplianceRuleBreakdownRequest(BaseModel):
|
|
|
88
96
|
)
|
|
89
97
|
for _k, _v in obj.get("propertiesUsed").items()
|
|
90
98
|
),
|
|
91
|
-
"
|
|
92
|
-
"
|
|
99
|
+
"missing_data_information": obj.get("missingDataInformation"),
|
|
100
|
+
"lineage": [LineageMember.from_dict(_item) for _item in obj.get("lineage")] if obj.get("lineage") is not None else None
|
|
93
101
|
})
|
|
94
102
|
return _obj
|