lusid-sdk 2.1.462__py3-none-any.whl → 2.1.537__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. lusid/__init__.py +62 -0
  2. lusid/api/group_reconciliations_api.py +806 -79
  3. lusid/api/instruments_api.py +187 -0
  4. lusid/api/transaction_portfolios_api.py +202 -2
  5. lusid/configuration.py +1 -1
  6. lusid/models/__init__.py +62 -0
  7. lusid/models/accumulation_event.py +3 -3
  8. lusid/models/amortisation_event.py +3 -3
  9. lusid/models/applicable_instrument_event.py +7 -2
  10. lusid/models/asset_leg.py +1 -1
  11. lusid/models/batch_update_user_review_for_comparison_result_request.py +81 -0
  12. lusid/models/batch_update_user_review_for_comparison_result_response.py +146 -0
  13. lusid/models/bond_coupon_event.py +10 -5
  14. lusid/models/bond_default_event.py +3 -3
  15. lusid/models/bond_principal_event.py +10 -5
  16. lusid/models/bonus_issue_event.py +3 -3
  17. lusid/models/call_on_intermediate_securities_event.py +139 -0
  18. lusid/models/capital_distribution_event.py +3 -3
  19. lusid/models/cash_dividend_event.py +3 -3
  20. lusid/models/cash_flow_event.py +3 -3
  21. lusid/models/cds_credit_event.py +3 -3
  22. lusid/models/cdx_credit_event.py +3 -3
  23. lusid/models/close_event.py +3 -3
  24. lusid/models/comparison_attribute_value_pair.py +71 -0
  25. lusid/models/component_transaction.py +10 -3
  26. lusid/models/create_staging_rule_set_request.py +1 -6
  27. lusid/models/credit_premium_cash_flow_event.py +3 -3
  28. lusid/models/custodian_account_request.py +1 -1
  29. lusid/models/delete_instrument_properties_response.py +7 -1
  30. lusid/models/delete_instrument_response.py +7 -1
  31. lusid/models/delete_instruments_response.py +22 -1
  32. lusid/models/deleted_entity_response.py +7 -1
  33. lusid/models/dividend_option_event.py +3 -3
  34. lusid/models/dividend_reinvestment_event.py +9 -4
  35. lusid/models/equity_option.py +19 -4
  36. lusid/models/exchange_traded_option_contract_details.py +1 -1
  37. lusid/models/exercise_event.py +3 -3
  38. lusid/models/expiry_event.py +3 -3
  39. lusid/models/fee.py +10 -3
  40. lusid/models/fee_request.py +13 -6
  41. lusid/models/future_expiry_event.py +3 -3
  42. lusid/models/fx_forward_settlement_event.py +3 -3
  43. lusid/models/group_reconciliation_aggregate_attribute_values.py +86 -0
  44. lusid/models/group_reconciliation_comparison_result.py +148 -0
  45. lusid/models/group_reconciliation_core_attribute_values.py +86 -0
  46. lusid/models/group_reconciliation_date_pair.py +81 -0
  47. lusid/models/group_reconciliation_dates.py +78 -0
  48. lusid/models/group_reconciliation_instance_id.py +71 -0
  49. lusid/models/group_reconciliation_result_statuses.py +89 -0
  50. lusid/models/group_reconciliation_result_types.py +96 -0
  51. lusid/models/group_reconciliation_review_statuses.py +96 -0
  52. lusid/models/group_reconciliation_run_details.py +76 -0
  53. lusid/models/group_reconciliation_run_request.py +75 -0
  54. lusid/models/group_reconciliation_run_response.py +77 -0
  55. lusid/models/group_reconciliation_summary.py +121 -0
  56. lusid/models/group_reconciliation_user_review.py +112 -0
  57. lusid/models/group_reconciliation_user_review_add.py +88 -0
  58. lusid/models/group_reconciliation_user_review_break_code.py +80 -0
  59. lusid/models/group_reconciliation_user_review_comment.py +80 -0
  60. lusid/models/group_reconciliation_user_review_match_key.py +80 -0
  61. lusid/models/group_reconciliation_user_review_remove.py +88 -0
  62. lusid/models/informational_error_event.py +3 -3
  63. lusid/models/informational_event.py +3 -3
  64. lusid/models/instrument_event.py +10 -5
  65. lusid/models/instrument_event_type.py +5 -0
  66. lusid/models/intermediate_securities_distribution_event.py +140 -0
  67. lusid/models/maturity_event.py +3 -3
  68. lusid/models/mbs_coupon_event.py +10 -5
  69. lusid/models/mbs_interest_deferral_event.py +10 -5
  70. lusid/models/mbs_interest_shortfall_event.py +10 -5
  71. lusid/models/mbs_principal_event.py +10 -5
  72. lusid/models/mbs_principal_write_off_event.py +10 -5
  73. lusid/models/merger_event.py +3 -3
  74. lusid/models/new_instrument.py +1 -1
  75. lusid/models/open_event.py +3 -3
  76. lusid/models/option_exercise_cash_event.py +144 -0
  77. lusid/models/option_exercise_election.py +73 -0
  78. lusid/models/option_exercise_physical_event.py +149 -0
  79. lusid/models/paged_resource_list_of_group_reconciliation_comparison_result.py +113 -0
  80. lusid/models/pricing_options.py +8 -2
  81. lusid/models/protection_payout_cash_flow_event.py +102 -0
  82. lusid/models/raw_vendor_event.py +3 -3
  83. lusid/models/reset_event.py +3 -3
  84. lusid/models/resource_list_of_output_transaction.py +113 -0
  85. lusid/models/return_zero_pv_options.py +69 -0
  86. lusid/models/reverse_stock_split_event.py +3 -3
  87. lusid/models/scrip_dividend_event.py +3 -3
  88. lusid/models/spin_off_event.py +3 -3
  89. lusid/models/stock_dividend_event.py +3 -3
  90. lusid/models/stock_split_event.py +3 -3
  91. lusid/models/swap_cash_flow_event.py +3 -3
  92. lusid/models/swap_principal_event.py +3 -3
  93. lusid/models/target_tax_lot.py +23 -2
  94. lusid/models/target_tax_lot_request.py +23 -2
  95. lusid/models/tender_event.py +3 -3
  96. lusid/models/total_return_swap.py +1 -1
  97. lusid/models/transaction_price.py +3 -3
  98. lusid/models/transaction_price_type.py +2 -0
  99. lusid/models/transition_event.py +3 -3
  100. lusid/models/trigger_event.py +3 -3
  101. lusid/models/update_staging_rule_set_request.py +1 -6
  102. {lusid_sdk-2.1.462.dist-info → lusid_sdk-2.1.537.dist-info}/METADATA +40 -3
  103. {lusid_sdk-2.1.462.dist-info → lusid_sdk-2.1.537.dist-info}/RECORD +104 -73
  104. {lusid_sdk-2.1.462.dist-info → lusid_sdk-2.1.537.dist-info}/WHEEL +0 -0
lusid/models/__init__.py CHANGED
@@ -78,6 +78,8 @@ from lusid.models.barrier import Barrier
78
78
  from lusid.models.basket import Basket
79
79
  from lusid.models.basket_identifier import BasketIdentifier
80
80
  from lusid.models.batch_adjust_holdings_response import BatchAdjustHoldingsResponse
81
+ from lusid.models.batch_update_user_review_for_comparison_result_request import BatchUpdateUserReviewForComparisonResultRequest
82
+ from lusid.models.batch_update_user_review_for_comparison_result_response import BatchUpdateUserReviewForComparisonResultResponse
81
83
  from lusid.models.batch_upsert_dates_for_calendar_response import BatchUpsertDatesForCalendarResponse
82
84
  from lusid.models.batch_upsert_instrument_properties_response import BatchUpsertInstrumentPropertiesResponse
83
85
  from lusid.models.batch_upsert_portfolio_access_metadata_request import BatchUpsertPortfolioAccessMetadataRequest
@@ -114,6 +116,7 @@ from lusid.models.calculation_info import CalculationInfo
114
116
  from lusid.models.calendar import Calendar
115
117
  from lusid.models.calendar_date import CalendarDate
116
118
  from lusid.models.calendar_dependency import CalendarDependency
119
+ from lusid.models.call_on_intermediate_securities_event import CallOnIntermediateSecuritiesEvent
117
120
  from lusid.models.cancel_order_and_move_remaining_result import CancelOrderAndMoveRemainingResult
118
121
  from lusid.models.cancel_orders_and_move_remaining_request import CancelOrdersAndMoveRemainingRequest
119
122
  from lusid.models.cancel_orders_and_move_remaining_response import CancelOrdersAndMoveRemainingResponse
@@ -159,6 +162,7 @@ from lusid.models.cleardown_module_rules_updated_response import CleardownModule
159
162
  from lusid.models.client import Client
160
163
  from lusid.models.close_event import CloseEvent
161
164
  from lusid.models.close_period_diary_entry_request import ClosePeriodDiaryEntryRequest
165
+ from lusid.models.comparison_attribute_value_pair import ComparisonAttributeValuePair
162
166
  from lusid.models.complete_portfolio import CompletePortfolio
163
167
  from lusid.models.complete_relation import CompleteRelation
164
168
  from lusid.models.complete_relationship import CompleteRelationship
@@ -428,17 +432,36 @@ from lusid.models.group_filter_step import GroupFilterStep
428
432
  from lusid.models.group_filter_step_request import GroupFilterStepRequest
429
433
  from lusid.models.group_of_market_data_key_rules import GroupOfMarketDataKeyRules
430
434
  from lusid.models.group_reconciliation_aggregate_attribute_rule import GroupReconciliationAggregateAttributeRule
435
+ from lusid.models.group_reconciliation_aggregate_attribute_values import GroupReconciliationAggregateAttributeValues
431
436
  from lusid.models.group_reconciliation_aggregate_comparison_rule_operand import GroupReconciliationAggregateComparisonRuleOperand
437
+ from lusid.models.group_reconciliation_comparison_result import GroupReconciliationComparisonResult
432
438
  from lusid.models.group_reconciliation_comparison_rule_string_value_map import GroupReconciliationComparisonRuleStringValueMap
433
439
  from lusid.models.group_reconciliation_comparison_rule_tolerance import GroupReconciliationComparisonRuleTolerance
434
440
  from lusid.models.group_reconciliation_comparison_ruleset import GroupReconciliationComparisonRuleset
435
441
  from lusid.models.group_reconciliation_core_attribute_rule import GroupReconciliationCoreAttributeRule
442
+ from lusid.models.group_reconciliation_core_attribute_values import GroupReconciliationCoreAttributeValues
436
443
  from lusid.models.group_reconciliation_core_comparison_rule_operand import GroupReconciliationCoreComparisonRuleOperand
444
+ from lusid.models.group_reconciliation_date_pair import GroupReconciliationDatePair
445
+ from lusid.models.group_reconciliation_dates import GroupReconciliationDates
437
446
  from lusid.models.group_reconciliation_definition import GroupReconciliationDefinition
438
447
  from lusid.models.group_reconciliation_definition_comparison_ruleset_ids import GroupReconciliationDefinitionComparisonRulesetIds
439
448
  from lusid.models.group_reconciliation_definition_currencies import GroupReconciliationDefinitionCurrencies
440
449
  from lusid.models.group_reconciliation_definition_portfolio_entity_ids import GroupReconciliationDefinitionPortfolioEntityIds
441
450
  from lusid.models.group_reconciliation_definition_recipe_ids import GroupReconciliationDefinitionRecipeIds
451
+ from lusid.models.group_reconciliation_instance_id import GroupReconciliationInstanceId
452
+ from lusid.models.group_reconciliation_result_statuses import GroupReconciliationResultStatuses
453
+ from lusid.models.group_reconciliation_result_types import GroupReconciliationResultTypes
454
+ from lusid.models.group_reconciliation_review_statuses import GroupReconciliationReviewStatuses
455
+ from lusid.models.group_reconciliation_run_details import GroupReconciliationRunDetails
456
+ from lusid.models.group_reconciliation_run_request import GroupReconciliationRunRequest
457
+ from lusid.models.group_reconciliation_run_response import GroupReconciliationRunResponse
458
+ from lusid.models.group_reconciliation_summary import GroupReconciliationSummary
459
+ from lusid.models.group_reconciliation_user_review import GroupReconciliationUserReview
460
+ from lusid.models.group_reconciliation_user_review_add import GroupReconciliationUserReviewAdd
461
+ from lusid.models.group_reconciliation_user_review_break_code import GroupReconciliationUserReviewBreakCode
462
+ from lusid.models.group_reconciliation_user_review_comment import GroupReconciliationUserReviewComment
463
+ from lusid.models.group_reconciliation_user_review_match_key import GroupReconciliationUserReviewMatchKey
464
+ from lusid.models.group_reconciliation_user_review_remove import GroupReconciliationUserReviewRemove
442
465
  from lusid.models.grouped_result_of_address_key import GroupedResultOfAddressKey
443
466
  from lusid.models.holding_adjustment import HoldingAdjustment
444
467
  from lusid.models.holding_adjustment_with_date import HoldingAdjustmentWithDate
@@ -497,6 +520,7 @@ from lusid.models.interest_rate_swap import InterestRateSwap
497
520
  from lusid.models.interest_rate_swaption import InterestRateSwaption
498
521
  from lusid.models.intermediate_compliance_step import IntermediateComplianceStep
499
522
  from lusid.models.intermediate_compliance_step_request import IntermediateComplianceStepRequest
523
+ from lusid.models.intermediate_securities_distribution_event import IntermediateSecuritiesDistributionEvent
500
524
  from lusid.models.ir_vol_cube_data import IrVolCubeData
501
525
  from lusid.models.ir_vol_dependency import IrVolDependency
502
526
  from lusid.models.is_business_day_response import IsBusinessDayResponse
@@ -567,6 +591,9 @@ from lusid.models.operation import Operation
567
591
  from lusid.models.operation_type import OperationType
568
592
  from lusid.models.operator import Operator
569
593
  from lusid.models.option_entry import OptionEntry
594
+ from lusid.models.option_exercise_cash_event import OptionExerciseCashEvent
595
+ from lusid.models.option_exercise_election import OptionExerciseElection
596
+ from lusid.models.option_exercise_physical_event import OptionExercisePhysicalEvent
570
597
  from lusid.models.optionality_schedule import OptionalitySchedule
571
598
  from lusid.models.order import Order
572
599
  from lusid.models.order_by_spec import OrderBySpec
@@ -632,6 +659,7 @@ from lusid.models.paged_resource_list_of_fee_type import PagedResourceListOfFeeT
632
659
  from lusid.models.paged_resource_list_of_fund import PagedResourceListOfFund
633
660
  from lusid.models.paged_resource_list_of_fund_configuration import PagedResourceListOfFundConfiguration
634
661
  from lusid.models.paged_resource_list_of_general_ledger_profile_response import PagedResourceListOfGeneralLedgerProfileResponse
662
+ from lusid.models.paged_resource_list_of_group_reconciliation_comparison_result import PagedResourceListOfGroupReconciliationComparisonResult
635
663
  from lusid.models.paged_resource_list_of_group_reconciliation_comparison_ruleset import PagedResourceListOfGroupReconciliationComparisonRuleset
636
664
  from lusid.models.paged_resource_list_of_group_reconciliation_definition import PagedResourceListOfGroupReconciliationDefinition
637
665
  from lusid.models.paged_resource_list_of_instrument import PagedResourceListOfInstrument
@@ -740,6 +768,7 @@ from lusid.models.property_type import PropertyType
740
768
  from lusid.models.property_value import PropertyValue
741
769
  from lusid.models.property_value_equals import PropertyValueEquals
742
770
  from lusid.models.property_value_in import PropertyValueIn
771
+ from lusid.models.protection_payout_cash_flow_event import ProtectionPayoutCashFlowEvent
743
772
  from lusid.models.query_applicable_instrument_events_request import QueryApplicableInstrumentEventsRequest
744
773
  from lusid.models.query_bucketed_cash_flows_request import QueryBucketedCashFlowsRequest
745
774
  from lusid.models.query_cash_flows_request import QueryCashFlowsRequest
@@ -837,6 +866,7 @@ from lusid.models.resource_list_of_mapping import ResourceListOfMapping
837
866
  from lusid.models.resource_list_of_moved_order_to_different_block_response import ResourceListOfMovedOrderToDifferentBlockResponse
838
867
  from lusid.models.resource_list_of_order import ResourceListOfOrder
839
868
  from lusid.models.resource_list_of_order_instruction import ResourceListOfOrderInstruction
869
+ from lusid.models.resource_list_of_output_transaction import ResourceListOfOutputTransaction
840
870
  from lusid.models.resource_list_of_package import ResourceListOfPackage
841
871
  from lusid.models.resource_list_of_participation import ResourceListOfParticipation
842
872
  from lusid.models.resource_list_of_performance_return import ResourceListOfPerformanceReturn
@@ -878,6 +908,7 @@ from lusid.models.result_value_dictionary import ResultValueDictionary
878
908
  from lusid.models.result_value_int import ResultValueInt
879
909
  from lusid.models.result_value_string import ResultValueString
880
910
  from lusid.models.result_value_type import ResultValueType
911
+ from lusid.models.return_zero_pv_options import ReturnZeroPvOptions
881
912
  from lusid.models.reverse_stock_split_event import ReverseStockSplitEvent
882
913
  from lusid.models.rounding_configuration import RoundingConfiguration
883
914
  from lusid.models.rounding_configuration_component import RoundingConfigurationComponent
@@ -1184,6 +1215,8 @@ __all__ = [
1184
1215
  "Basket",
1185
1216
  "BasketIdentifier",
1186
1217
  "BatchAdjustHoldingsResponse",
1218
+ "BatchUpdateUserReviewForComparisonResultRequest",
1219
+ "BatchUpdateUserReviewForComparisonResultResponse",
1187
1220
  "BatchUpsertDatesForCalendarResponse",
1188
1221
  "BatchUpsertInstrumentPropertiesResponse",
1189
1222
  "BatchUpsertPortfolioAccessMetadataRequest",
@@ -1220,6 +1253,7 @@ __all__ = [
1220
1253
  "Calendar",
1221
1254
  "CalendarDate",
1222
1255
  "CalendarDependency",
1256
+ "CallOnIntermediateSecuritiesEvent",
1223
1257
  "CancelOrderAndMoveRemainingResult",
1224
1258
  "CancelOrdersAndMoveRemainingRequest",
1225
1259
  "CancelOrdersAndMoveRemainingResponse",
@@ -1265,6 +1299,7 @@ __all__ = [
1265
1299
  "Client",
1266
1300
  "CloseEvent",
1267
1301
  "ClosePeriodDiaryEntryRequest",
1302
+ "ComparisonAttributeValuePair",
1268
1303
  "CompletePortfolio",
1269
1304
  "CompleteRelation",
1270
1305
  "CompleteRelationship",
@@ -1534,17 +1569,36 @@ __all__ = [
1534
1569
  "GroupFilterStepRequest",
1535
1570
  "GroupOfMarketDataKeyRules",
1536
1571
  "GroupReconciliationAggregateAttributeRule",
1572
+ "GroupReconciliationAggregateAttributeValues",
1537
1573
  "GroupReconciliationAggregateComparisonRuleOperand",
1574
+ "GroupReconciliationComparisonResult",
1538
1575
  "GroupReconciliationComparisonRuleStringValueMap",
1539
1576
  "GroupReconciliationComparisonRuleTolerance",
1540
1577
  "GroupReconciliationComparisonRuleset",
1541
1578
  "GroupReconciliationCoreAttributeRule",
1579
+ "GroupReconciliationCoreAttributeValues",
1542
1580
  "GroupReconciliationCoreComparisonRuleOperand",
1581
+ "GroupReconciliationDatePair",
1582
+ "GroupReconciliationDates",
1543
1583
  "GroupReconciliationDefinition",
1544
1584
  "GroupReconciliationDefinitionComparisonRulesetIds",
1545
1585
  "GroupReconciliationDefinitionCurrencies",
1546
1586
  "GroupReconciliationDefinitionPortfolioEntityIds",
1547
1587
  "GroupReconciliationDefinitionRecipeIds",
1588
+ "GroupReconciliationInstanceId",
1589
+ "GroupReconciliationResultStatuses",
1590
+ "GroupReconciliationResultTypes",
1591
+ "GroupReconciliationReviewStatuses",
1592
+ "GroupReconciliationRunDetails",
1593
+ "GroupReconciliationRunRequest",
1594
+ "GroupReconciliationRunResponse",
1595
+ "GroupReconciliationSummary",
1596
+ "GroupReconciliationUserReview",
1597
+ "GroupReconciliationUserReviewAdd",
1598
+ "GroupReconciliationUserReviewBreakCode",
1599
+ "GroupReconciliationUserReviewComment",
1600
+ "GroupReconciliationUserReviewMatchKey",
1601
+ "GroupReconciliationUserReviewRemove",
1548
1602
  "GroupedResultOfAddressKey",
1549
1603
  "HoldingAdjustment",
1550
1604
  "HoldingAdjustmentWithDate",
@@ -1603,6 +1657,7 @@ __all__ = [
1603
1657
  "InterestRateSwaption",
1604
1658
  "IntermediateComplianceStep",
1605
1659
  "IntermediateComplianceStepRequest",
1660
+ "IntermediateSecuritiesDistributionEvent",
1606
1661
  "IrVolCubeData",
1607
1662
  "IrVolDependency",
1608
1663
  "IsBusinessDayResponse",
@@ -1673,6 +1728,9 @@ __all__ = [
1673
1728
  "OperationType",
1674
1729
  "Operator",
1675
1730
  "OptionEntry",
1731
+ "OptionExerciseCashEvent",
1732
+ "OptionExerciseElection",
1733
+ "OptionExercisePhysicalEvent",
1676
1734
  "OptionalitySchedule",
1677
1735
  "Order",
1678
1736
  "OrderBySpec",
@@ -1738,6 +1796,7 @@ __all__ = [
1738
1796
  "PagedResourceListOfFund",
1739
1797
  "PagedResourceListOfFundConfiguration",
1740
1798
  "PagedResourceListOfGeneralLedgerProfileResponse",
1799
+ "PagedResourceListOfGroupReconciliationComparisonResult",
1741
1800
  "PagedResourceListOfGroupReconciliationComparisonRuleset",
1742
1801
  "PagedResourceListOfGroupReconciliationDefinition",
1743
1802
  "PagedResourceListOfInstrument",
@@ -1846,6 +1905,7 @@ __all__ = [
1846
1905
  "PropertyValue",
1847
1906
  "PropertyValueEquals",
1848
1907
  "PropertyValueIn",
1908
+ "ProtectionPayoutCashFlowEvent",
1849
1909
  "QueryApplicableInstrumentEventsRequest",
1850
1910
  "QueryBucketedCashFlowsRequest",
1851
1911
  "QueryCashFlowsRequest",
@@ -1943,6 +2003,7 @@ __all__ = [
1943
2003
  "ResourceListOfMovedOrderToDifferentBlockResponse",
1944
2004
  "ResourceListOfOrder",
1945
2005
  "ResourceListOfOrderInstruction",
2006
+ "ResourceListOfOutputTransaction",
1946
2007
  "ResourceListOfPackage",
1947
2008
  "ResourceListOfParticipation",
1948
2009
  "ResourceListOfPerformanceReturn",
@@ -1984,6 +2045,7 @@ __all__ = [
1984
2045
  "ResultValueInt",
1985
2046
  "ResultValueString",
1986
2047
  "ResultValueType",
2048
+ "ReturnZeroPvOptions",
1987
2049
  "ReverseStockSplitEvent",
1988
2050
  "RoundingConfiguration",
1989
2051
  "RoundingConfigurationComponent",
@@ -31,15 +31,15 @@ class AccumulationEvent(InstrumentEvent):
31
31
  dividend_rate: Union[StrictFloat, StrictInt] = Field(..., alias="dividendRate", description="Dividend rate or payment rate as a percentage. i.e. 5% is written as 0.05")
32
32
  ex_date: datetime = Field(..., alias="exDate", description="The first business day on which the dividend is not owed to the buying party. Typically this is T-1 from the RecordDate.")
33
33
  payment_date: datetime = Field(..., alias="paymentDate", description="The date the company pays out dividends to shareholders.")
34
- instrument_event_type: StrictStr = Field(..., alias="instrumentEventType", description="The Type of Event. The available values are: TransitionEvent, InformationalEvent, OpenEvent, CloseEvent, StockSplitEvent, BondDefaultEvent, CashDividendEvent, AmortisationEvent, CashFlowEvent, ExerciseEvent, ResetEvent, TriggerEvent, RawVendorEvent, InformationalErrorEvent, BondCouponEvent, DividendReinvestmentEvent, AccumulationEvent, BondPrincipalEvent, DividendOptionEvent, MaturityEvent, FxForwardSettlementEvent, ExpiryEvent, ScripDividendEvent, StockDividendEvent, ReverseStockSplitEvent, CapitalDistributionEvent, SpinOffEvent, MergerEvent, FutureExpiryEvent, SwapCashFlowEvent, SwapPrincipalEvent, CreditPremiumCashFlowEvent, CdsCreditEvent, CdxCreditEvent, MbsCouponEvent, MbsPrincipalEvent, BonusIssueEvent, MbsPrincipalWriteOffEvent, MbsInterestDeferralEvent, MbsInterestShortfallEvent, TenderEvent")
34
+ instrument_event_type: StrictStr = Field(..., alias="instrumentEventType", description="The Type of Event. The available values are: TransitionEvent, InformationalEvent, OpenEvent, CloseEvent, StockSplitEvent, BondDefaultEvent, CashDividendEvent, AmortisationEvent, CashFlowEvent, ExerciseEvent, ResetEvent, TriggerEvent, RawVendorEvent, InformationalErrorEvent, BondCouponEvent, DividendReinvestmentEvent, AccumulationEvent, BondPrincipalEvent, DividendOptionEvent, MaturityEvent, FxForwardSettlementEvent, ExpiryEvent, ScripDividendEvent, StockDividendEvent, ReverseStockSplitEvent, CapitalDistributionEvent, SpinOffEvent, MergerEvent, FutureExpiryEvent, SwapCashFlowEvent, SwapPrincipalEvent, CreditPremiumCashFlowEvent, CdsCreditEvent, CdxCreditEvent, MbsCouponEvent, MbsPrincipalEvent, BonusIssueEvent, MbsPrincipalWriteOffEvent, MbsInterestDeferralEvent, MbsInterestShortfallEvent, TenderEvent, CallOnIntermediateSecuritiesEvent, IntermediateSecuritiesDistributionEvent, OptionExercisePhysicalEvent, OptionExerciseCashEvent, ProtectionPayoutCashFlowEvent")
35
35
  additional_properties: Dict[str, Any] = {}
36
36
  __properties = ["instrumentEventType", "announcementDate", "dividendCurrency", "dividendRate", "exDate", "paymentDate"]
37
37
 
38
38
  @validator('instrument_event_type')
39
39
  def instrument_event_type_validate_enum(cls, value):
40
40
  """Validates the enum"""
41
- if value not in ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent'):
42
- raise ValueError("must be one of enum values ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent')")
41
+ if value not in ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent', 'CallOnIntermediateSecuritiesEvent', 'IntermediateSecuritiesDistributionEvent', 'OptionExercisePhysicalEvent', 'OptionExerciseCashEvent', 'ProtectionPayoutCashFlowEvent'):
42
+ raise ValueError("must be one of enum values ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent', 'CallOnIntermediateSecuritiesEvent', 'IntermediateSecuritiesDistributionEvent', 'OptionExercisePhysicalEvent', 'OptionExerciseCashEvent', 'ProtectionPayoutCashFlowEvent')")
43
43
  return value
44
44
 
45
45
  class Config:
@@ -30,15 +30,15 @@ class AmortisationEvent(InstrumentEvent):
30
30
  dom_ccy: StrictStr = Field(..., alias="domCcy", description="Domestic currency of the originating instrument")
31
31
  pay_receive: constr(strict=True, min_length=1) = Field(..., alias="payReceive", description="Is this event in relation to the Pay or Receive leg")
32
32
  payment_date: datetime = Field(..., alias="paymentDate", description="The date the principal payment is to be made.")
33
- instrument_event_type: StrictStr = Field(..., alias="instrumentEventType", description="The Type of Event. The available values are: TransitionEvent, InformationalEvent, OpenEvent, CloseEvent, StockSplitEvent, BondDefaultEvent, CashDividendEvent, AmortisationEvent, CashFlowEvent, ExerciseEvent, ResetEvent, TriggerEvent, RawVendorEvent, InformationalErrorEvent, BondCouponEvent, DividendReinvestmentEvent, AccumulationEvent, BondPrincipalEvent, DividendOptionEvent, MaturityEvent, FxForwardSettlementEvent, ExpiryEvent, ScripDividendEvent, StockDividendEvent, ReverseStockSplitEvent, CapitalDistributionEvent, SpinOffEvent, MergerEvent, FutureExpiryEvent, SwapCashFlowEvent, SwapPrincipalEvent, CreditPremiumCashFlowEvent, CdsCreditEvent, CdxCreditEvent, MbsCouponEvent, MbsPrincipalEvent, BonusIssueEvent, MbsPrincipalWriteOffEvent, MbsInterestDeferralEvent, MbsInterestShortfallEvent, TenderEvent")
33
+ instrument_event_type: StrictStr = Field(..., alias="instrumentEventType", description="The Type of Event. The available values are: TransitionEvent, InformationalEvent, OpenEvent, CloseEvent, StockSplitEvent, BondDefaultEvent, CashDividendEvent, AmortisationEvent, CashFlowEvent, ExerciseEvent, ResetEvent, TriggerEvent, RawVendorEvent, InformationalErrorEvent, BondCouponEvent, DividendReinvestmentEvent, AccumulationEvent, BondPrincipalEvent, DividendOptionEvent, MaturityEvent, FxForwardSettlementEvent, ExpiryEvent, ScripDividendEvent, StockDividendEvent, ReverseStockSplitEvent, CapitalDistributionEvent, SpinOffEvent, MergerEvent, FutureExpiryEvent, SwapCashFlowEvent, SwapPrincipalEvent, CreditPremiumCashFlowEvent, CdsCreditEvent, CdxCreditEvent, MbsCouponEvent, MbsPrincipalEvent, BonusIssueEvent, MbsPrincipalWriteOffEvent, MbsInterestDeferralEvent, MbsInterestShortfallEvent, TenderEvent, CallOnIntermediateSecuritiesEvent, IntermediateSecuritiesDistributionEvent, OptionExercisePhysicalEvent, OptionExerciseCashEvent, ProtectionPayoutCashFlowEvent")
34
34
  additional_properties: Dict[str, Any] = {}
35
35
  __properties = ["instrumentEventType", "amountReduced", "domCcy", "payReceive", "paymentDate"]
36
36
 
37
37
  @validator('instrument_event_type')
38
38
  def instrument_event_type_validate_enum(cls, value):
39
39
  """Validates the enum"""
40
- if value not in ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent'):
41
- raise ValueError("must be one of enum values ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent')")
40
+ if value not in ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent', 'CallOnIntermediateSecuritiesEvent', 'IntermediateSecuritiesDistributionEvent', 'OptionExercisePhysicalEvent', 'OptionExerciseCashEvent', 'ProtectionPayoutCashFlowEvent'):
41
+ raise ValueError("must be one of enum values ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent', 'CallOnIntermediateSecuritiesEvent', 'IntermediateSecuritiesDistributionEvent', 'OptionExercisePhysicalEvent', 'OptionExerciseCashEvent', 'ProtectionPayoutCashFlowEvent')")
42
42
  return value
43
43
 
44
44
  class Config:
@@ -19,7 +19,7 @@ import json
19
19
 
20
20
 
21
21
  from typing import Any, Dict, List, Optional
22
- from pydantic.v1 import BaseModel, Field, StrictInt, conlist, constr
22
+ from pydantic.v1 import BaseModel, Field, StrictInt, StrictStr, conlist, constr
23
23
  from lusid.models.generated_event_diagnostics import GeneratedEventDiagnostics
24
24
  from lusid.models.instrument_event_holder import InstrumentEventHolder
25
25
  from lusid.models.resource_id import ResourceId
@@ -40,7 +40,7 @@ class ApplicableInstrumentEvent(BaseModel):
40
40
  generated_event: Optional[InstrumentEventHolder] = Field(None, alias="generatedEvent")
41
41
  generated_event_diagnostics: Optional[GeneratedEventDiagnostics] = Field(None, alias="generatedEventDiagnostics")
42
42
  loaded_event: Optional[InstrumentEventHolder] = Field(None, alias="loadedEvent")
43
- applied_instrument_event_instruction_id: constr(strict=True, min_length=1) = Field(..., alias="appliedInstrumentEventInstructionId")
43
+ applied_instrument_event_instruction_id: Optional[StrictStr] = Field(None, alias="appliedInstrumentEventInstructionId")
44
44
  transactions: Optional[conlist(Transaction)] = None
45
45
  transaction_diagnostics: Optional[TransactionDiagnostics] = Field(None, alias="transactionDiagnostics")
46
46
  __properties = ["portfolioId", "holdingId", "lusidInstrumentId", "instrumentScope", "instrumentType", "instrumentEventType", "instrumentEventId", "generatedEvent", "generatedEventDiagnostics", "loadedEvent", "appliedInstrumentEventInstructionId", "transactions", "transactionDiagnostics"]
@@ -91,6 +91,11 @@ class ApplicableInstrumentEvent(BaseModel):
91
91
  # override the default output from pydantic by calling `to_dict()` of transaction_diagnostics
92
92
  if self.transaction_diagnostics:
93
93
  _dict['transactionDiagnostics'] = self.transaction_diagnostics.to_dict()
94
+ # set to None if applied_instrument_event_instruction_id (nullable) is None
95
+ # and __fields_set__ contains the field
96
+ if self.applied_instrument_event_instruction_id is None and "applied_instrument_event_instruction_id" in self.__fields_set__:
97
+ _dict['appliedInstrumentEventInstructionId'] = None
98
+
94
99
  # set to None if transactions (nullable) is None
95
100
  # and __fields_set__ contains the field
96
101
  if self.transactions is None and "transactions" in self.__fields_set__:
lusid/models/asset_leg.py CHANGED
@@ -24,7 +24,7 @@ from lusid.models.lusid_instrument import LusidInstrument
24
24
 
25
25
  class AssetLeg(BaseModel):
26
26
  """
27
- The underlying instrument representing one side of the TRS and its pay-receive direction. # noqa: E501
27
+ The underlying instrument representing one side of the TRS and its pay-receive direction. Note that TRS currently only supports an asset of Bond or ComplexBond, no other instruments are allowed. Support for additional instrument types will be added in the future. # noqa: E501
28
28
  """
29
29
  asset: LusidInstrument = Field(...)
30
30
  pay_receive: constr(strict=True, min_length=1) = Field(..., alias="payReceive", description="Either Pay or Receive stating direction of the asset in the swap. Supported string (enumeration) values are: [Pay, Receive].")
@@ -0,0 +1,81 @@
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.v1 import BaseModel, Field, constr
23
+ from lusid.models.group_reconciliation_user_review_add import GroupReconciliationUserReviewAdd
24
+ from lusid.models.group_reconciliation_user_review_remove import GroupReconciliationUserReviewRemove
25
+
26
+ class BatchUpdateUserReviewForComparisonResultRequest(BaseModel):
27
+ """
28
+ BatchUpdateUserReviewForComparisonResultRequest
29
+ """
30
+ comparison_result_id: constr(strict=True, min_length=1) = Field(..., alias="comparisonResultId", description="Comparison result identifier, encoded value for core attribute results, aggregate attribute results, reconciliation type and run instanceId.")
31
+ user_review_add: Optional[GroupReconciliationUserReviewAdd] = Field(None, alias="userReviewAdd")
32
+ user_review_remove: Optional[GroupReconciliationUserReviewRemove] = Field(None, alias="userReviewRemove")
33
+ __properties = ["comparisonResultId", "userReviewAdd", "userReviewRemove"]
34
+
35
+ class Config:
36
+ """Pydantic configuration"""
37
+ allow_population_by_field_name = True
38
+ validate_assignment = True
39
+
40
+ def to_str(self) -> str:
41
+ """Returns the string representation of the model using alias"""
42
+ return pprint.pformat(self.dict(by_alias=True))
43
+
44
+ def to_json(self) -> str:
45
+ """Returns the JSON representation of the model using alias"""
46
+ return json.dumps(self.to_dict())
47
+
48
+ @classmethod
49
+ def from_json(cls, json_str: str) -> BatchUpdateUserReviewForComparisonResultRequest:
50
+ """Create an instance of BatchUpdateUserReviewForComparisonResultRequest from a JSON string"""
51
+ return cls.from_dict(json.loads(json_str))
52
+
53
+ def to_dict(self):
54
+ """Returns the dictionary representation of the model using alias"""
55
+ _dict = self.dict(by_alias=True,
56
+ exclude={
57
+ },
58
+ exclude_none=True)
59
+ # override the default output from pydantic by calling `to_dict()` of user_review_add
60
+ if self.user_review_add:
61
+ _dict['userReviewAdd'] = self.user_review_add.to_dict()
62
+ # override the default output from pydantic by calling `to_dict()` of user_review_remove
63
+ if self.user_review_remove:
64
+ _dict['userReviewRemove'] = self.user_review_remove.to_dict()
65
+ return _dict
66
+
67
+ @classmethod
68
+ def from_dict(cls, obj: dict) -> BatchUpdateUserReviewForComparisonResultRequest:
69
+ """Create an instance of BatchUpdateUserReviewForComparisonResultRequest from a dict"""
70
+ if obj is None:
71
+ return None
72
+
73
+ if not isinstance(obj, dict):
74
+ return BatchUpdateUserReviewForComparisonResultRequest.parse_obj(obj)
75
+
76
+ _obj = BatchUpdateUserReviewForComparisonResultRequest.parse_obj({
77
+ "comparison_result_id": obj.get("comparisonResultId"),
78
+ "user_review_add": GroupReconciliationUserReviewAdd.from_dict(obj.get("userReviewAdd")) if obj.get("userReviewAdd") is not None else None,
79
+ "user_review_remove": GroupReconciliationUserReviewRemove.from_dict(obj.get("userReviewRemove")) if obj.get("userReviewRemove") is not None else None
80
+ })
81
+ return _obj
@@ -0,0 +1,146 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict, List, Optional
22
+ from pydantic.v1 import BaseModel, Field, conlist
23
+ from lusid.models.error_detail import ErrorDetail
24
+ from lusid.models.group_reconciliation_comparison_result import GroupReconciliationComparisonResult
25
+ from lusid.models.link import Link
26
+ from lusid.models.response_meta_data import ResponseMetaData
27
+
28
+ class BatchUpdateUserReviewForComparisonResultResponse(BaseModel):
29
+ """
30
+ BatchUpdateUserReviewForComparisonResultResponse
31
+ """
32
+ values: Optional[Dict[str, GroupReconciliationComparisonResult]] = Field(None, description="The collection of comparison results that have been successfully updated.")
33
+ failed: Optional[Dict[str, ErrorDetail]] = Field(None, description="The collection of comparison results that could not be updated with the provided user input along with a reason for their failure.")
34
+ metadata: Optional[Dict[str, conlist(ResponseMetaData)]] = Field(None, description="Contains warnings related to the updated comparison result user input")
35
+ links: Optional[conlist(Link)] = None
36
+ __properties = ["values", "failed", "metadata", "links"]
37
+
38
+ class Config:
39
+ """Pydantic configuration"""
40
+ allow_population_by_field_name = True
41
+ validate_assignment = True
42
+
43
+ def to_str(self) -> str:
44
+ """Returns the string representation of the model using alias"""
45
+ return pprint.pformat(self.dict(by_alias=True))
46
+
47
+ def to_json(self) -> str:
48
+ """Returns the JSON representation of the model using alias"""
49
+ return json.dumps(self.to_dict())
50
+
51
+ @classmethod
52
+ def from_json(cls, json_str: str) -> BatchUpdateUserReviewForComparisonResultResponse:
53
+ """Create an instance of BatchUpdateUserReviewForComparisonResultResponse from a JSON string"""
54
+ return cls.from_dict(json.loads(json_str))
55
+
56
+ def to_dict(self):
57
+ """Returns the dictionary representation of the model using alias"""
58
+ _dict = self.dict(by_alias=True,
59
+ exclude={
60
+ },
61
+ exclude_none=True)
62
+ # override the default output from pydantic by calling `to_dict()` of each value in values (dict)
63
+ _field_dict = {}
64
+ if self.values:
65
+ for _key in self.values:
66
+ if self.values[_key]:
67
+ _field_dict[_key] = self.values[_key].to_dict()
68
+ _dict['values'] = _field_dict
69
+ # override the default output from pydantic by calling `to_dict()` of each value in failed (dict)
70
+ _field_dict = {}
71
+ if self.failed:
72
+ for _key in self.failed:
73
+ if self.failed[_key]:
74
+ _field_dict[_key] = self.failed[_key].to_dict()
75
+ _dict['failed'] = _field_dict
76
+ # override the default output from pydantic by calling `to_dict()` of each value in metadata (dict of array)
77
+ _field_dict_of_array = {}
78
+ if self.metadata:
79
+ for _key in self.metadata:
80
+ if self.metadata[_key]:
81
+ _field_dict_of_array[_key] = [
82
+ _item.to_dict() for _item in self.metadata[_key]
83
+ ]
84
+ _dict['metadata'] = _field_dict_of_array
85
+ # override the default output from pydantic by calling `to_dict()` of each item in links (list)
86
+ _items = []
87
+ if self.links:
88
+ for _item in self.links:
89
+ if _item:
90
+ _items.append(_item.to_dict())
91
+ _dict['links'] = _items
92
+ # set to None if values (nullable) is None
93
+ # and __fields_set__ contains the field
94
+ if self.values is None and "values" in self.__fields_set__:
95
+ _dict['values'] = None
96
+
97
+ # set to None if failed (nullable) is None
98
+ # and __fields_set__ contains the field
99
+ if self.failed is None and "failed" in self.__fields_set__:
100
+ _dict['failed'] = None
101
+
102
+ # set to None if metadata (nullable) is None
103
+ # and __fields_set__ contains the field
104
+ if self.metadata is None and "metadata" in self.__fields_set__:
105
+ _dict['metadata'] = None
106
+
107
+ # set to None if links (nullable) is None
108
+ # and __fields_set__ contains the field
109
+ if self.links is None and "links" in self.__fields_set__:
110
+ _dict['links'] = None
111
+
112
+ return _dict
113
+
114
+ @classmethod
115
+ def from_dict(cls, obj: dict) -> BatchUpdateUserReviewForComparisonResultResponse:
116
+ """Create an instance of BatchUpdateUserReviewForComparisonResultResponse from a dict"""
117
+ if obj is None:
118
+ return None
119
+
120
+ if not isinstance(obj, dict):
121
+ return BatchUpdateUserReviewForComparisonResultResponse.parse_obj(obj)
122
+
123
+ _obj = BatchUpdateUserReviewForComparisonResultResponse.parse_obj({
124
+ "values": dict(
125
+ (_k, GroupReconciliationComparisonResult.from_dict(_v))
126
+ for _k, _v in obj.get("values").items()
127
+ )
128
+ if obj.get("values") is not None
129
+ else None,
130
+ "failed": dict(
131
+ (_k, ErrorDetail.from_dict(_v))
132
+ for _k, _v in obj.get("failed").items()
133
+ )
134
+ if obj.get("failed") is not None
135
+ else None,
136
+ "metadata": dict(
137
+ (_k,
138
+ [ResponseMetaData.from_dict(_item) for _item in _v]
139
+ if _v is not None
140
+ else None
141
+ )
142
+ for _k, _v in obj.get("metadata").items()
143
+ ),
144
+ "links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None
145
+ })
146
+ return _obj
@@ -18,7 +18,7 @@ import re # noqa: F401
18
18
  import json
19
19
 
20
20
  from datetime import datetime
21
- from typing import Any, Dict, Union
21
+ from typing import Any, Dict, Optional, Union
22
22
  from pydantic.v1 import Field, StrictFloat, StrictInt, StrictStr, validator
23
23
  from lusid.models.instrument_event import InstrumentEvent
24
24
 
@@ -29,16 +29,16 @@ class BondCouponEvent(InstrumentEvent):
29
29
  ex_date: datetime = Field(..., alias="exDate", description="Ex-Dividend date of the coupon payment")
30
30
  payment_date: datetime = Field(..., alias="paymentDate", description="Payment date of the coupon payment")
31
31
  currency: StrictStr = Field(..., description="Currency of the coupon payment")
32
- coupon_per_unit: Union[StrictFloat, StrictInt] = Field(..., alias="couponPerUnit", description="CouponRate*Principal")
33
- instrument_event_type: StrictStr = Field(..., alias="instrumentEventType", description="The Type of Event. The available values are: TransitionEvent, InformationalEvent, OpenEvent, CloseEvent, StockSplitEvent, BondDefaultEvent, CashDividendEvent, AmortisationEvent, CashFlowEvent, ExerciseEvent, ResetEvent, TriggerEvent, RawVendorEvent, InformationalErrorEvent, BondCouponEvent, DividendReinvestmentEvent, AccumulationEvent, BondPrincipalEvent, DividendOptionEvent, MaturityEvent, FxForwardSettlementEvent, ExpiryEvent, ScripDividendEvent, StockDividendEvent, ReverseStockSplitEvent, CapitalDistributionEvent, SpinOffEvent, MergerEvent, FutureExpiryEvent, SwapCashFlowEvent, SwapPrincipalEvent, CreditPremiumCashFlowEvent, CdsCreditEvent, CdxCreditEvent, MbsCouponEvent, MbsPrincipalEvent, BonusIssueEvent, MbsPrincipalWriteOffEvent, MbsInterestDeferralEvent, MbsInterestShortfallEvent, TenderEvent")
32
+ coupon_per_unit: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="couponPerUnit", description="CouponRate*Principal")
33
+ instrument_event_type: StrictStr = Field(..., alias="instrumentEventType", description="The Type of Event. The available values are: TransitionEvent, InformationalEvent, OpenEvent, CloseEvent, StockSplitEvent, BondDefaultEvent, CashDividendEvent, AmortisationEvent, CashFlowEvent, ExerciseEvent, ResetEvent, TriggerEvent, RawVendorEvent, InformationalErrorEvent, BondCouponEvent, DividendReinvestmentEvent, AccumulationEvent, BondPrincipalEvent, DividendOptionEvent, MaturityEvent, FxForwardSettlementEvent, ExpiryEvent, ScripDividendEvent, StockDividendEvent, ReverseStockSplitEvent, CapitalDistributionEvent, SpinOffEvent, MergerEvent, FutureExpiryEvent, SwapCashFlowEvent, SwapPrincipalEvent, CreditPremiumCashFlowEvent, CdsCreditEvent, CdxCreditEvent, MbsCouponEvent, MbsPrincipalEvent, BonusIssueEvent, MbsPrincipalWriteOffEvent, MbsInterestDeferralEvent, MbsInterestShortfallEvent, TenderEvent, CallOnIntermediateSecuritiesEvent, IntermediateSecuritiesDistributionEvent, OptionExercisePhysicalEvent, OptionExerciseCashEvent, ProtectionPayoutCashFlowEvent")
34
34
  additional_properties: Dict[str, Any] = {}
35
35
  __properties = ["instrumentEventType", "exDate", "paymentDate", "currency", "couponPerUnit"]
36
36
 
37
37
  @validator('instrument_event_type')
38
38
  def instrument_event_type_validate_enum(cls, value):
39
39
  """Validates the enum"""
40
- if value not in ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent'):
41
- raise ValueError("must be one of enum values ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent')")
40
+ if value not in ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent', 'CallOnIntermediateSecuritiesEvent', 'IntermediateSecuritiesDistributionEvent', 'OptionExercisePhysicalEvent', 'OptionExerciseCashEvent', 'ProtectionPayoutCashFlowEvent'):
41
+ raise ValueError("must be one of enum values ('TransitionEvent', 'InformationalEvent', 'OpenEvent', 'CloseEvent', 'StockSplitEvent', 'BondDefaultEvent', 'CashDividendEvent', 'AmortisationEvent', 'CashFlowEvent', 'ExerciseEvent', 'ResetEvent', 'TriggerEvent', 'RawVendorEvent', 'InformationalErrorEvent', 'BondCouponEvent', 'DividendReinvestmentEvent', 'AccumulationEvent', 'BondPrincipalEvent', 'DividendOptionEvent', 'MaturityEvent', 'FxForwardSettlementEvent', 'ExpiryEvent', 'ScripDividendEvent', 'StockDividendEvent', 'ReverseStockSplitEvent', 'CapitalDistributionEvent', 'SpinOffEvent', 'MergerEvent', 'FutureExpiryEvent', 'SwapCashFlowEvent', 'SwapPrincipalEvent', 'CreditPremiumCashFlowEvent', 'CdsCreditEvent', 'CdxCreditEvent', 'MbsCouponEvent', 'MbsPrincipalEvent', 'BonusIssueEvent', 'MbsPrincipalWriteOffEvent', 'MbsInterestDeferralEvent', 'MbsInterestShortfallEvent', 'TenderEvent', 'CallOnIntermediateSecuritiesEvent', 'IntermediateSecuritiesDistributionEvent', 'OptionExercisePhysicalEvent', 'OptionExerciseCashEvent', 'ProtectionPayoutCashFlowEvent')")
42
42
  return value
43
43
 
44
44
  class Config:
@@ -71,6 +71,11 @@ class BondCouponEvent(InstrumentEvent):
71
71
  for _key, _value in self.additional_properties.items():
72
72
  _dict[_key] = _value
73
73
 
74
+ # set to None if coupon_per_unit (nullable) is None
75
+ # and __fields_set__ contains the field
76
+ if self.coupon_per_unit is None and "coupon_per_unit" in self.__fields_set__:
77
+ _dict['couponPerUnit'] = None
78
+
74
79
  return _dict
75
80
 
76
81
  @classmethod