lusid-sdk 2.1.351__py3-none-any.whl → 2.1.390__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 (81) hide show
  1. lusid/__init__.py +34 -0
  2. lusid/api/__init__.py +2 -0
  3. lusid/api/funds_api.py +9 -8
  4. lusid/api/group_reconciliations_api.py +378 -0
  5. lusid/api/order_management_api.py +161 -0
  6. lusid/api/workspace_api.py +40 -40
  7. lusid/configuration.py +1 -1
  8. lusid/models/__init__.py +32 -0
  9. lusid/models/accept_estimate_valuation_point_response.py +100 -0
  10. lusid/models/accumulation_event.py +3 -3
  11. lusid/models/action_id.py +1 -1
  12. lusid/models/amortisation_event.py +3 -3
  13. lusid/models/applicable_instrument_event.py +14 -2
  14. lusid/models/bond_coupon_event.py +3 -3
  15. lusid/models/bond_default_event.py +3 -3
  16. lusid/models/bond_principal_event.py +3 -3
  17. lusid/models/calendar.py +17 -2
  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/close_event.py +3 -3
  22. lusid/models/create_group_reconciliation_comparison_ruleset_request.py +97 -0
  23. lusid/models/custom_entity_definition.py +17 -2
  24. lusid/models/custom_entity_type.py +17 -2
  25. lusid/models/data_type.py +7 -1
  26. lusid/models/dividend_option_event.py +3 -3
  27. lusid/models/dividend_reinvestment_event.py +3 -3
  28. lusid/models/entity_change_item.py +121 -0
  29. lusid/models/exercise_event.py +3 -3
  30. lusid/models/expiry_event.py +3 -3
  31. lusid/models/fee.py +1 -1
  32. lusid/models/fee_request.py +1 -1
  33. lusid/models/flow_conventions.py +1 -1
  34. lusid/models/fund_amount.py +1 -1
  35. lusid/models/fund_details.py +74 -0
  36. lusid/models/future_expiry_event.py +3 -3
  37. lusid/models/futures_contract_details.py +6 -1
  38. lusid/models/fx_forward_settlement_event.py +3 -3
  39. lusid/models/generated_event_diagnostics.py +75 -0
  40. lusid/models/group_reconciliation_aggregate_attribute_rule.py +84 -0
  41. lusid/models/group_reconciliation_aggregate_comparison_rule_operand.py +71 -0
  42. lusid/models/group_reconciliation_comparison_rule_string_value_map.py +73 -0
  43. lusid/models/group_reconciliation_comparison_rule_tolerance.py +71 -0
  44. lusid/models/group_reconciliation_comparison_ruleset.py +125 -0
  45. lusid/models/group_reconciliation_core_attribute_rule.py +95 -0
  46. lusid/models/group_reconciliation_core_comparison_rule_operand.py +71 -0
  47. lusid/models/index_convention.py +1 -1
  48. lusid/models/informational_error_event.py +3 -3
  49. lusid/models/informational_event.py +3 -3
  50. lusid/models/instrument_event.py +7 -5
  51. lusid/models/instrument_event_instruction.py +19 -4
  52. lusid/models/instrument_event_type.py +2 -0
  53. lusid/models/maturity_event.py +3 -3
  54. lusid/models/merger_event.py +3 -3
  55. lusid/models/new_instrument.py +10 -2
  56. lusid/models/open_event.py +3 -3
  57. lusid/models/order_graph_block_order_detail.py +1 -1
  58. lusid/models/order_update_request.py +5 -0
  59. lusid/models/person.py +17 -2
  60. lusid/models/placement_update_request.py +6 -1
  61. lusid/models/previous_nav.py +3 -3
  62. lusid/models/raw_vendor_event.py +3 -3
  63. lusid/models/reset_event.py +3 -3
  64. lusid/models/resource_list_of_entity_change_item.py +113 -0
  65. lusid/models/reverse_stock_split_event.py +3 -3
  66. lusid/models/scrip_dividend_event.py +3 -3
  67. lusid/models/share_class_amount.py +7 -9
  68. lusid/models/share_class_breakdown.py +4 -5
  69. lusid/models/spin_off_event.py +3 -3
  70. lusid/models/stock_dividend_event.py +3 -3
  71. lusid/models/stock_split_event.py +3 -3
  72. lusid/models/swap_cash_flow_event.py +97 -0
  73. lusid/models/swap_principal_event.py +97 -0
  74. lusid/models/transaction_diagnostics.py +71 -0
  75. lusid/models/transition_event.py +3 -3
  76. lusid/models/trigger_event.py +3 -3
  77. lusid/models/valuation_point_data_response.py +21 -1
  78. lusid/models/weighted_instrument.py +9 -2
  79. {lusid_sdk-2.1.351.dist-info → lusid_sdk-2.1.390.dist-info}/METADATA +40 -21
  80. {lusid_sdk-2.1.351.dist-info → lusid_sdk-2.1.390.dist-info}/RECORD +81 -64
  81. {lusid_sdk-2.1.351.dist-info → lusid_sdk-2.1.390.dist-info}/WHEEL +0 -0
lusid/__init__.py CHANGED
@@ -44,6 +44,7 @@ from lusid.api.executions_api import ExecutionsApi
44
44
  from lusid.api.fee_types_api import FeeTypesApi
45
45
  from lusid.api.fund_configurations_api import FundConfigurationsApi
46
46
  from lusid.api.funds_api import FundsApi
47
+ from lusid.api.group_reconciliations_api import GroupReconciliationsApi
47
48
  from lusid.api.instrument_event_types_api import InstrumentEventTypesApi
48
49
  from lusid.api.instrument_events_api import InstrumentEventsApi
49
50
  from lusid.api.instruments_api import InstrumentsApi
@@ -104,6 +105,7 @@ from lusid.models.abor_configuration_properties import AborConfigurationProperti
104
105
  from lusid.models.abor_configuration_request import AborConfigurationRequest
105
106
  from lusid.models.abor_properties import AborProperties
106
107
  from lusid.models.abor_request import AborRequest
108
+ from lusid.models.accept_estimate_valuation_point_response import AcceptEstimateValuationPointResponse
107
109
  from lusid.models.access_controlled_action import AccessControlledAction
108
110
  from lusid.models.access_controlled_resource import AccessControlledResource
109
111
  from lusid.models.access_metadata_operation import AccessMetadataOperation
@@ -292,6 +294,7 @@ from lusid.models.create_data_type_request import CreateDataTypeRequest
292
294
  from lusid.models.create_date_request import CreateDateRequest
293
295
  from lusid.models.create_derived_property_definition_request import CreateDerivedPropertyDefinitionRequest
294
296
  from lusid.models.create_derived_transaction_portfolio_request import CreateDerivedTransactionPortfolioRequest
297
+ from lusid.models.create_group_reconciliation_comparison_ruleset_request import CreateGroupReconciliationComparisonRulesetRequest
295
298
  from lusid.models.create_portfolio_details import CreatePortfolioDetails
296
299
  from lusid.models.create_portfolio_group_request import CreatePortfolioGroupRequest
297
300
  from lusid.models.create_property_definition_request import CreatePropertyDefinitionRequest
@@ -377,6 +380,7 @@ from lusid.models.economic_dependency_with_quote import EconomicDependencyWithQu
377
380
  from lusid.models.election_specification import ElectionSpecification
378
381
  from lusid.models.eligibility_calculation import EligibilityCalculation
379
382
  from lusid.models.empty_model_options import EmptyModelOptions
383
+ from lusid.models.entity_change_item import EntityChangeItem
380
384
  from lusid.models.entity_identifier import EntityIdentifier
381
385
  from lusid.models.equity import Equity
382
386
  from lusid.models.equity_all_of_identifiers import EquityAllOfIdentifiers
@@ -431,6 +435,7 @@ from lusid.models.fund_amount import FundAmount
431
435
  from lusid.models.fund_configuration import FundConfiguration
432
436
  from lusid.models.fund_configuration_properties import FundConfigurationProperties
433
437
  from lusid.models.fund_configuration_request import FundConfigurationRequest
438
+ from lusid.models.fund_details import FundDetails
434
439
  from lusid.models.fund_pnl_breakdown import FundPnlBreakdown
435
440
  from lusid.models.fund_previous_nav import FundPreviousNAV
436
441
  from lusid.models.fund_properties import FundProperties
@@ -463,6 +468,7 @@ from lusid.models.fx_vol_surface_data import FxVolSurfaceData
463
468
  from lusid.models.general_ledger_profile_mapping import GeneralLedgerProfileMapping
464
469
  from lusid.models.general_ledger_profile_request import GeneralLedgerProfileRequest
465
470
  from lusid.models.general_ledger_profile_response import GeneralLedgerProfileResponse
471
+ from lusid.models.generated_event_diagnostics import GeneratedEventDiagnostics
466
472
  from lusid.models.get_cds_flow_conventions_response import GetCdsFlowConventionsResponse
467
473
  from lusid.models.get_complex_market_data_response import GetComplexMarketDataResponse
468
474
  from lusid.models.get_counterparty_agreement_response import GetCounterpartyAgreementResponse
@@ -485,6 +491,13 @@ from lusid.models.group_filter_predicate_compliance_parameter import GroupFilter
485
491
  from lusid.models.group_filter_step import GroupFilterStep
486
492
  from lusid.models.group_filter_step_request import GroupFilterStepRequest
487
493
  from lusid.models.group_of_market_data_key_rules import GroupOfMarketDataKeyRules
494
+ from lusid.models.group_reconciliation_aggregate_attribute_rule import GroupReconciliationAggregateAttributeRule
495
+ from lusid.models.group_reconciliation_aggregate_comparison_rule_operand import GroupReconciliationAggregateComparisonRuleOperand
496
+ from lusid.models.group_reconciliation_comparison_rule_string_value_map import GroupReconciliationComparisonRuleStringValueMap
497
+ from lusid.models.group_reconciliation_comparison_rule_tolerance import GroupReconciliationComparisonRuleTolerance
498
+ from lusid.models.group_reconciliation_comparison_ruleset import GroupReconciliationComparisonRuleset
499
+ from lusid.models.group_reconciliation_core_attribute_rule import GroupReconciliationCoreAttributeRule
500
+ from lusid.models.group_reconciliation_core_comparison_rule_operand import GroupReconciliationCoreComparisonRuleOperand
488
501
  from lusid.models.grouped_result_of_address_key import GroupedResultOfAddressKey
489
502
  from lusid.models.holding_adjustment import HoldingAdjustment
490
503
  from lusid.models.holding_adjustment_with_date import HoldingAdjustmentWithDate
@@ -849,6 +862,7 @@ from lusid.models.resource_list_of_compliance_run_info import ResourceListOfComp
849
862
  from lusid.models.resource_list_of_constituents_adjustment_header import ResourceListOfConstituentsAdjustmentHeader
850
863
  from lusid.models.resource_list_of_corporate_action import ResourceListOfCorporateAction
851
864
  from lusid.models.resource_list_of_data_type import ResourceListOfDataType
865
+ from lusid.models.resource_list_of_entity_change_item import ResourceListOfEntityChangeItem
852
866
  from lusid.models.resource_list_of_execution import ResourceListOfExecution
853
867
  from lusid.models.resource_list_of_fee_rule import ResourceListOfFeeRule
854
868
  from lusid.models.resource_list_of_get_cds_flow_conventions_response import ResourceListOfGetCdsFlowConventionsResponse
@@ -971,6 +985,8 @@ from lusid.models.string_list_compliance_parameter import StringListCompliancePa
971
985
  from lusid.models.structured_result_data import StructuredResultData
972
986
  from lusid.models.structured_result_data_id import StructuredResultDataId
973
987
  from lusid.models.sub_holding_key_value_equals import SubHoldingKeyValueEquals
988
+ from lusid.models.swap_cash_flow_event import SwapCashFlowEvent
989
+ from lusid.models.swap_principal_event import SwapPrincipalEvent
974
990
  from lusid.models.target_tax_lot import TargetTaxLot
975
991
  from lusid.models.target_tax_lot_request import TargetTaxLotRequest
976
992
  from lusid.models.tax_rule import TaxRule
@@ -988,6 +1004,7 @@ from lusid.models.transaction_configuration_movement_data import TransactionConf
988
1004
  from lusid.models.transaction_configuration_movement_data_request import TransactionConfigurationMovementDataRequest
989
1005
  from lusid.models.transaction_configuration_type_alias import TransactionConfigurationTypeAlias
990
1006
  from lusid.models.transaction_currency_and_amount import TransactionCurrencyAndAmount
1007
+ from lusid.models.transaction_diagnostics import TransactionDiagnostics
991
1008
  from lusid.models.transaction_field_map import TransactionFieldMap
992
1009
  from lusid.models.transaction_price import TransactionPrice
993
1010
  from lusid.models.transaction_price_and_type import TransactionPriceAndType
@@ -1178,6 +1195,7 @@ __all__ = [
1178
1195
  "FeeTypesApi",
1179
1196
  "FundConfigurationsApi",
1180
1197
  "FundsApi",
1198
+ "GroupReconciliationsApi",
1181
1199
  "InstrumentEventTypesApi",
1182
1200
  "InstrumentEventsApi",
1183
1201
  "InstrumentsApi",
@@ -1228,6 +1246,7 @@ __all__ = [
1228
1246
  "AborConfigurationRequest",
1229
1247
  "AborProperties",
1230
1248
  "AborRequest",
1249
+ "AcceptEstimateValuationPointResponse",
1231
1250
  "AccessControlledAction",
1232
1251
  "AccessControlledResource",
1233
1252
  "AccessMetadataOperation",
@@ -1416,6 +1435,7 @@ __all__ = [
1416
1435
  "CreateDateRequest",
1417
1436
  "CreateDerivedPropertyDefinitionRequest",
1418
1437
  "CreateDerivedTransactionPortfolioRequest",
1438
+ "CreateGroupReconciliationComparisonRulesetRequest",
1419
1439
  "CreatePortfolioDetails",
1420
1440
  "CreatePortfolioGroupRequest",
1421
1441
  "CreatePropertyDefinitionRequest",
@@ -1501,6 +1521,7 @@ __all__ = [
1501
1521
  "ElectionSpecification",
1502
1522
  "EligibilityCalculation",
1503
1523
  "EmptyModelOptions",
1524
+ "EntityChangeItem",
1504
1525
  "EntityIdentifier",
1505
1526
  "Equity",
1506
1527
  "EquityAllOfIdentifiers",
@@ -1555,6 +1576,7 @@ __all__ = [
1555
1576
  "FundConfiguration",
1556
1577
  "FundConfigurationProperties",
1557
1578
  "FundConfigurationRequest",
1579
+ "FundDetails",
1558
1580
  "FundPnlBreakdown",
1559
1581
  "FundPreviousNAV",
1560
1582
  "FundProperties",
@@ -1587,6 +1609,7 @@ __all__ = [
1587
1609
  "GeneralLedgerProfileMapping",
1588
1610
  "GeneralLedgerProfileRequest",
1589
1611
  "GeneralLedgerProfileResponse",
1612
+ "GeneratedEventDiagnostics",
1590
1613
  "GetCdsFlowConventionsResponse",
1591
1614
  "GetComplexMarketDataResponse",
1592
1615
  "GetCounterpartyAgreementResponse",
@@ -1609,6 +1632,13 @@ __all__ = [
1609
1632
  "GroupFilterStep",
1610
1633
  "GroupFilterStepRequest",
1611
1634
  "GroupOfMarketDataKeyRules",
1635
+ "GroupReconciliationAggregateAttributeRule",
1636
+ "GroupReconciliationAggregateComparisonRuleOperand",
1637
+ "GroupReconciliationComparisonRuleStringValueMap",
1638
+ "GroupReconciliationComparisonRuleTolerance",
1639
+ "GroupReconciliationComparisonRuleset",
1640
+ "GroupReconciliationCoreAttributeRule",
1641
+ "GroupReconciliationCoreComparisonRuleOperand",
1612
1642
  "GroupedResultOfAddressKey",
1613
1643
  "HoldingAdjustment",
1614
1644
  "HoldingAdjustmentWithDate",
@@ -1973,6 +2003,7 @@ __all__ = [
1973
2003
  "ResourceListOfConstituentsAdjustmentHeader",
1974
2004
  "ResourceListOfCorporateAction",
1975
2005
  "ResourceListOfDataType",
2006
+ "ResourceListOfEntityChangeItem",
1976
2007
  "ResourceListOfExecution",
1977
2008
  "ResourceListOfFeeRule",
1978
2009
  "ResourceListOfGetCdsFlowConventionsResponse",
@@ -2095,6 +2126,8 @@ __all__ = [
2095
2126
  "StructuredResultData",
2096
2127
  "StructuredResultDataId",
2097
2128
  "SubHoldingKeyValueEquals",
2129
+ "SwapCashFlowEvent",
2130
+ "SwapPrincipalEvent",
2098
2131
  "TargetTaxLot",
2099
2132
  "TargetTaxLotRequest",
2100
2133
  "TaxRule",
@@ -2112,6 +2145,7 @@ __all__ = [
2112
2145
  "TransactionConfigurationMovementDataRequest",
2113
2146
  "TransactionConfigurationTypeAlias",
2114
2147
  "TransactionCurrencyAndAmount",
2148
+ "TransactionDiagnostics",
2115
2149
  "TransactionFieldMap",
2116
2150
  "TransactionPrice",
2117
2151
  "TransactionPriceAndType",
lusid/api/__init__.py CHANGED
@@ -28,6 +28,7 @@ from lusid.api.executions_api import ExecutionsApi
28
28
  from lusid.api.fee_types_api import FeeTypesApi
29
29
  from lusid.api.fund_configurations_api import FundConfigurationsApi
30
30
  from lusid.api.funds_api import FundsApi
31
+ from lusid.api.group_reconciliations_api import GroupReconciliationsApi
31
32
  from lusid.api.instrument_event_types_api import InstrumentEventTypesApi
32
33
  from lusid.api.instrument_events_api import InstrumentEventsApi
33
34
  from lusid.api.instruments_api import InstrumentsApi
@@ -98,6 +99,7 @@ __all__ = [
98
99
  "FeeTypesApi",
99
100
  "FundConfigurationsApi",
100
101
  "FundsApi",
102
+ "GroupReconciliationsApi",
101
103
  "InstrumentEventTypesApi",
102
104
  "InstrumentEventsApi",
103
105
  "InstrumentsApi",
lusid/api/funds_api.py CHANGED
@@ -26,6 +26,7 @@ from pydantic.v1 import Field, StrictStr, conint, conlist, constr, validator
26
26
 
27
27
  from typing import Dict, Optional
28
28
 
29
+ from lusid.models.accept_estimate_valuation_point_response import AcceptEstimateValuationPointResponse
29
30
  from lusid.models.deleted_entity_response import DeletedEntityResponse
30
31
  from lusid.models.diary_entry import DiaryEntry
31
32
  from lusid.models.fee import Fee
@@ -66,18 +67,18 @@ class FundsApi:
66
67
  self.api_client = api_client
67
68
 
68
69
  @overload
69
- async def accept_estimate_valuation_point(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], valuation_point_data_request : Annotated[ValuationPointDataRequest, Field(..., description="The valuationPointDataRequest which contains the Diary Entry code for the Estimate Valuation Point to move to Candidate or Final state.")], **kwargs) -> ValuationPointDataResponse: # noqa: E501
70
+ async def accept_estimate_valuation_point(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], valuation_point_data_request : Annotated[ValuationPointDataRequest, Field(..., description="The valuationPointDataRequest which contains the Diary Entry code for the Estimate Valuation Point to move to Candidate or Final state.")], **kwargs) -> AcceptEstimateValuationPointResponse: # noqa: E501
70
71
  ...
71
72
 
72
73
  @overload
73
- def accept_estimate_valuation_point(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], valuation_point_data_request : Annotated[ValuationPointDataRequest, Field(..., description="The valuationPointDataRequest which contains the Diary Entry code for the Estimate Valuation Point to move to Candidate or Final state.")], async_req: Optional[bool]=True, **kwargs) -> ValuationPointDataResponse: # noqa: E501
74
+ def accept_estimate_valuation_point(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], valuation_point_data_request : Annotated[ValuationPointDataRequest, Field(..., description="The valuationPointDataRequest which contains the Diary Entry code for the Estimate Valuation Point to move to Candidate or Final state.")], async_req: Optional[bool]=True, **kwargs) -> AcceptEstimateValuationPointResponse: # noqa: E501
74
75
  ...
75
76
 
76
77
  @validate_arguments
77
- def accept_estimate_valuation_point(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], valuation_point_data_request : Annotated[ValuationPointDataRequest, Field(..., description="The valuationPointDataRequest which contains the Diary Entry code for the Estimate Valuation Point to move to Candidate or Final state.")], async_req: Optional[bool]=None, **kwargs) -> Union[ValuationPointDataResponse, Awaitable[ValuationPointDataResponse]]: # noqa: E501
78
+ def accept_estimate_valuation_point(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], valuation_point_data_request : Annotated[ValuationPointDataRequest, Field(..., description="The valuationPointDataRequest which contains the Diary Entry code for the Estimate Valuation Point to move to Candidate or Final state.")], async_req: Optional[bool]=None, **kwargs) -> Union[AcceptEstimateValuationPointResponse, Awaitable[AcceptEstimateValuationPointResponse]]: # noqa: E501
78
79
  """[EXPERIMENTAL] AcceptEstimateValuationPoint: Accepts an Estimate Valuation Point. # noqa: E501
79
80
 
80
- Accepts the specified estimate Valuation Point. Should the Valuation Point differ since the valuation Point was last run, status will be marked as 'Candidate', otherwise it will be marked as 'Final' # noqa: E501
81
+ Accepts the specified estimate Valuation Point. Should the Valuation Point differ since the Valuation Point was last run, both Valuation Points will be returned and status will be marked as 'Candidate', otherwise it will be marked as 'Final'. # noqa: E501
81
82
  This method makes a synchronous HTTP request by default. To make an
82
83
  asynchronous HTTP request, please pass async_req=True
83
84
 
@@ -99,7 +100,7 @@ class FundsApi:
99
100
  :return: Returns the result object.
100
101
  If the method is called asynchronously,
101
102
  returns the request thread.
102
- :rtype: ValuationPointDataResponse
103
+ :rtype: AcceptEstimateValuationPointResponse
103
104
  """
104
105
  kwargs['_return_http_data_only'] = True
105
106
  if '_preload_content' in kwargs:
@@ -113,7 +114,7 @@ class FundsApi:
113
114
  def accept_estimate_valuation_point_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund. Together with the scope this uniquely identifies the Fund.")], valuation_point_data_request : Annotated[ValuationPointDataRequest, Field(..., description="The valuationPointDataRequest which contains the Diary Entry code for the Estimate Valuation Point to move to Candidate or Final state.")], **kwargs) -> ApiResponse: # noqa: E501
114
115
  """[EXPERIMENTAL] AcceptEstimateValuationPoint: Accepts an Estimate Valuation Point. # noqa: E501
115
116
 
116
- Accepts the specified estimate Valuation Point. Should the Valuation Point differ since the valuation Point was last run, status will be marked as 'Candidate', otherwise it will be marked as 'Final' # noqa: E501
117
+ Accepts the specified estimate Valuation Point. Should the Valuation Point differ since the Valuation Point was last run, both Valuation Points will be returned and status will be marked as 'Candidate', otherwise it will be marked as 'Final'. # noqa: E501
117
118
  This method makes a synchronous HTTP request by default. To make an
118
119
  asynchronous HTTP request, please pass async_req=True
119
120
 
@@ -148,7 +149,7 @@ class FundsApi:
148
149
  :return: Returns the result object.
149
150
  If the method is called asynchronously,
150
151
  returns the request thread.
151
- :rtype: tuple(ValuationPointDataResponse, status_code(int), headers(HTTPHeaderDict))
152
+ :rtype: tuple(AcceptEstimateValuationPointResponse, status_code(int), headers(HTTPHeaderDict))
152
153
  """
153
154
 
154
155
  _params = locals()
@@ -218,7 +219,7 @@ class FundsApi:
218
219
  _auth_settings = ['oauth2'] # noqa: E501
219
220
 
220
221
  _response_types_map = {
221
- '200': "ValuationPointDataResponse",
222
+ '200': "AcceptEstimateValuationPointResponse",
222
223
  '400': "LusidValidationProblemDetails",
223
224
  }
224
225
 
@@ -0,0 +1,378 @@
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
+ import re # noqa: F401
16
+ import io
17
+ import warnings
18
+
19
+ from pydantic.v1 import validate_arguments, ValidationError
20
+ from typing import overload, Optional, Union, Awaitable
21
+
22
+ from typing_extensions import Annotated
23
+ from datetime import datetime
24
+
25
+ from pydantic.v1 import Field, constr, validator
26
+
27
+ from typing import Optional
28
+
29
+ from lusid.models.create_group_reconciliation_comparison_ruleset_request import CreateGroupReconciliationComparisonRulesetRequest
30
+ from lusid.models.group_reconciliation_comparison_ruleset import GroupReconciliationComparisonRuleset
31
+
32
+ from lusid.api_client import ApiClient
33
+ from lusid.api_response import ApiResponse
34
+ from lusid.exceptions import ( # noqa: F401
35
+ ApiTypeError,
36
+ ApiValueError
37
+ )
38
+
39
+
40
+ class GroupReconciliationsApi:
41
+ """NOTE: This class is auto generated by OpenAPI Generator
42
+ Ref: https://openapi-generator.tech
43
+
44
+ Do not edit the class manually.
45
+ """
46
+
47
+ def __init__(self, api_client=None) -> None:
48
+ if api_client is None:
49
+ api_client = ApiClient.get_default()
50
+ self.api_client = api_client
51
+
52
+ @overload
53
+ async def create_comparison_ruleset(self, create_group_reconciliation_comparison_ruleset_request : Annotated[Optional[CreateGroupReconciliationComparisonRulesetRequest], Field(description="The request containing the details of the ruleset")] = None, **kwargs) -> GroupReconciliationComparisonRuleset: # noqa: E501
54
+ ...
55
+
56
+ @overload
57
+ def create_comparison_ruleset(self, create_group_reconciliation_comparison_ruleset_request : Annotated[Optional[CreateGroupReconciliationComparisonRulesetRequest], Field(description="The request containing the details of the ruleset")] = None, async_req: Optional[bool]=True, **kwargs) -> GroupReconciliationComparisonRuleset: # noqa: E501
58
+ ...
59
+
60
+ @validate_arguments
61
+ def create_comparison_ruleset(self, create_group_reconciliation_comparison_ruleset_request : Annotated[Optional[CreateGroupReconciliationComparisonRulesetRequest], Field(description="The request containing the details of the ruleset")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[GroupReconciliationComparisonRuleset, Awaitable[GroupReconciliationComparisonRuleset]]: # noqa: E501
62
+ """[EXPERIMENTAL] CreateComparisonRuleset: Create a Group Reconciliation Comparison Ruleset # noqa: E501
63
+
64
+ Creates a set of core and aggregate rules to be run for a group reconciliation # noqa: E501
65
+ This method makes a synchronous HTTP request by default. To make an
66
+ asynchronous HTTP request, please pass async_req=True
67
+
68
+ >>> thread = api.create_comparison_ruleset(create_group_reconciliation_comparison_ruleset_request, async_req=True)
69
+ >>> result = thread.get()
70
+
71
+ :param create_group_reconciliation_comparison_ruleset_request: The request containing the details of the ruleset
72
+ :type create_group_reconciliation_comparison_ruleset_request: CreateGroupReconciliationComparisonRulesetRequest
73
+ :param async_req: Whether to execute the request asynchronously.
74
+ :type async_req: bool, optional
75
+ :param _request_timeout: timeout setting for this request.
76
+ If one number provided, it will be total request
77
+ timeout. It can also be a pair (tuple) of
78
+ (connection, read) timeouts.
79
+ :return: Returns the result object.
80
+ If the method is called asynchronously,
81
+ returns the request thread.
82
+ :rtype: GroupReconciliationComparisonRuleset
83
+ """
84
+ kwargs['_return_http_data_only'] = True
85
+ if '_preload_content' in kwargs:
86
+ message = "Error! Please call the create_comparison_ruleset_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
87
+ raise ValueError(message)
88
+ if async_req is not None:
89
+ kwargs['async_req'] = async_req
90
+ return self.create_comparison_ruleset_with_http_info(create_group_reconciliation_comparison_ruleset_request, **kwargs) # noqa: E501
91
+
92
+ @validate_arguments
93
+ def create_comparison_ruleset_with_http_info(self, create_group_reconciliation_comparison_ruleset_request : Annotated[Optional[CreateGroupReconciliationComparisonRulesetRequest], Field(description="The request containing the details of the ruleset")] = None, **kwargs) -> ApiResponse: # noqa: E501
94
+ """[EXPERIMENTAL] CreateComparisonRuleset: Create a Group Reconciliation Comparison Ruleset # noqa: E501
95
+
96
+ Creates a set of core and aggregate rules to be run for a group reconciliation # noqa: E501
97
+ This method makes a synchronous HTTP request by default. To make an
98
+ asynchronous HTTP request, please pass async_req=True
99
+
100
+ >>> thread = api.create_comparison_ruleset_with_http_info(create_group_reconciliation_comparison_ruleset_request, async_req=True)
101
+ >>> result = thread.get()
102
+
103
+ :param create_group_reconciliation_comparison_ruleset_request: The request containing the details of the ruleset
104
+ :type create_group_reconciliation_comparison_ruleset_request: CreateGroupReconciliationComparisonRulesetRequest
105
+ :param async_req: Whether to execute the request asynchronously.
106
+ :type async_req: bool, optional
107
+ :param _preload_content: if False, the ApiResponse.data will
108
+ be set to none and raw_data will store the
109
+ HTTP response body without reading/decoding.
110
+ Default is True.
111
+ :type _preload_content: bool, optional
112
+ :param _return_http_data_only: response data instead of ApiResponse
113
+ object with status code, headers, etc
114
+ :type _return_http_data_only: bool, optional
115
+ :param _request_timeout: timeout setting for this request. If one
116
+ number provided, it will be total request
117
+ timeout. It can also be a pair (tuple) of
118
+ (connection, read) timeouts.
119
+ :param _request_auth: set to override the auth_settings for an a single
120
+ request; this effectively ignores the authentication
121
+ in the spec for a single request.
122
+ :type _request_auth: dict, optional
123
+ :type _content_type: string, optional: force content-type for the request
124
+ :return: Returns the result object.
125
+ If the method is called asynchronously,
126
+ returns the request thread.
127
+ :rtype: tuple(GroupReconciliationComparisonRuleset, status_code(int), headers(HTTPHeaderDict))
128
+ """
129
+
130
+ _params = locals()
131
+
132
+ _all_params = [
133
+ 'create_group_reconciliation_comparison_ruleset_request'
134
+ ]
135
+ _all_params.extend(
136
+ [
137
+ 'async_req',
138
+ '_return_http_data_only',
139
+ '_preload_content',
140
+ '_request_timeout',
141
+ '_request_auth',
142
+ '_content_type',
143
+ '_headers'
144
+ ]
145
+ )
146
+
147
+ # validate the arguments
148
+ for _key, _val in _params['kwargs'].items():
149
+ if _key not in _all_params:
150
+ raise ApiTypeError(
151
+ "Got an unexpected keyword argument '%s'"
152
+ " to method create_comparison_ruleset" % _key
153
+ )
154
+ _params[_key] = _val
155
+ del _params['kwargs']
156
+
157
+ _collection_formats = {}
158
+
159
+ # process the path parameters
160
+ _path_params = {}
161
+
162
+ # process the query parameters
163
+ _query_params = []
164
+ # process the header parameters
165
+ _header_params = dict(_params.get('_headers', {}))
166
+ # process the form parameters
167
+ _form_params = []
168
+ _files = {}
169
+ # process the body parameter
170
+ _body_params = None
171
+ if _params['create_group_reconciliation_comparison_ruleset_request'] is not None:
172
+ _body_params = _params['create_group_reconciliation_comparison_ruleset_request']
173
+
174
+ # set the HTTP header `Accept`
175
+ _header_params['Accept'] = self.api_client.select_header_accept(
176
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
177
+
178
+ # set the HTTP header `Content-Type`
179
+ _content_types_list = _params.get('_content_type',
180
+ self.api_client.select_header_content_type(
181
+ ['application/json-patch+json', 'application/json', 'text/json', 'application/*+json']))
182
+ if _content_types_list:
183
+ _header_params['Content-Type'] = _content_types_list
184
+
185
+ # authentication setting
186
+ _auth_settings = ['oauth2'] # noqa: E501
187
+
188
+ _response_types_map = {
189
+ '201': "GroupReconciliationComparisonRuleset",
190
+ '400': "LusidValidationProblemDetails",
191
+ }
192
+
193
+ return self.api_client.call_api(
194
+ '/api/reconciliations/comparisonrulesets', 'POST',
195
+ _path_params,
196
+ _query_params,
197
+ _header_params,
198
+ body=_body_params,
199
+ post_params=_form_params,
200
+ files=_files,
201
+ response_types_map=_response_types_map,
202
+ auth_settings=_auth_settings,
203
+ async_req=_params.get('async_req'),
204
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
205
+ _preload_content=_params.get('_preload_content', True),
206
+ _request_timeout=_params.get('_request_timeout'),
207
+ collection_formats=_collection_formats,
208
+ _request_auth=_params.get('_request_auth'))
209
+
210
+ @overload
211
+ async def get_comparison_ruleset(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified comparison ruleset.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified comparison ruleset. Together with the domain and scope this uniquely identifies the reconciliation comparison ruleset.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the comparison ruleset definition. Defaults to return the latest version of the definition if not specified.")] = None, **kwargs) -> GroupReconciliationComparisonRuleset: # noqa: E501
212
+ ...
213
+
214
+ @overload
215
+ def get_comparison_ruleset(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified comparison ruleset.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified comparison ruleset. Together with the domain and scope this uniquely identifies the reconciliation comparison ruleset.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the comparison ruleset definition. Defaults to return the latest version of the definition if not specified.")] = None, async_req: Optional[bool]=True, **kwargs) -> GroupReconciliationComparisonRuleset: # noqa: E501
216
+ ...
217
+
218
+ @validate_arguments
219
+ def get_comparison_ruleset(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified comparison ruleset.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified comparison ruleset. Together with the domain and scope this uniquely identifies the reconciliation comparison ruleset.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the comparison ruleset definition. Defaults to return the latest version of the definition if not specified.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[GroupReconciliationComparisonRuleset, Awaitable[GroupReconciliationComparisonRuleset]]: # noqa: E501
220
+ """[EXPERIMENTAL] GetComparisonRuleset: Get a single Group Reconciliation Comparison Ruleset by scope and code # noqa: E501
221
+
222
+ Retrieves one Group Reconciliation Comparison Ruleset by scope and code # noqa: E501
223
+ This method makes a synchronous HTTP request by default. To make an
224
+ asynchronous HTTP request, please pass async_req=True
225
+
226
+ >>> thread = api.get_comparison_ruleset(scope, code, as_at, async_req=True)
227
+ >>> result = thread.get()
228
+
229
+ :param scope: The scope of the specified comparison ruleset. (required)
230
+ :type scope: str
231
+ :param code: The code of the specified comparison ruleset. Together with the domain and scope this uniquely identifies the reconciliation comparison ruleset. (required)
232
+ :type code: str
233
+ :param as_at: The asAt datetime at which to retrieve the comparison ruleset definition. Defaults to return the latest version of the definition if not specified.
234
+ :type as_at: datetime
235
+ :param async_req: Whether to execute the request asynchronously.
236
+ :type async_req: bool, optional
237
+ :param _request_timeout: timeout setting for this request.
238
+ If one number provided, it will be total request
239
+ timeout. It can also be a pair (tuple) of
240
+ (connection, read) timeouts.
241
+ :return: Returns the result object.
242
+ If the method is called asynchronously,
243
+ returns the request thread.
244
+ :rtype: GroupReconciliationComparisonRuleset
245
+ """
246
+ kwargs['_return_http_data_only'] = True
247
+ if '_preload_content' in kwargs:
248
+ message = "Error! Please call the get_comparison_ruleset_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
249
+ raise ValueError(message)
250
+ if async_req is not None:
251
+ kwargs['async_req'] = async_req
252
+ return self.get_comparison_ruleset_with_http_info(scope, code, as_at, **kwargs) # noqa: E501
253
+
254
+ @validate_arguments
255
+ def get_comparison_ruleset_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the specified comparison ruleset.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the specified comparison ruleset. Together with the domain and scope this uniquely identifies the reconciliation comparison ruleset.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the comparison ruleset definition. Defaults to return the latest version of the definition if not specified.")] = None, **kwargs) -> ApiResponse: # noqa: E501
256
+ """[EXPERIMENTAL] GetComparisonRuleset: Get a single Group Reconciliation Comparison Ruleset by scope and code # noqa: E501
257
+
258
+ Retrieves one Group Reconciliation Comparison Ruleset by scope and code # noqa: E501
259
+ This method makes a synchronous HTTP request by default. To make an
260
+ asynchronous HTTP request, please pass async_req=True
261
+
262
+ >>> thread = api.get_comparison_ruleset_with_http_info(scope, code, as_at, async_req=True)
263
+ >>> result = thread.get()
264
+
265
+ :param scope: The scope of the specified comparison ruleset. (required)
266
+ :type scope: str
267
+ :param code: The code of the specified comparison ruleset. Together with the domain and scope this uniquely identifies the reconciliation comparison ruleset. (required)
268
+ :type code: str
269
+ :param as_at: The asAt datetime at which to retrieve the comparison ruleset definition. Defaults to return the latest version of the definition if not specified.
270
+ :type as_at: datetime
271
+ :param async_req: Whether to execute the request asynchronously.
272
+ :type async_req: bool, optional
273
+ :param _preload_content: if False, the ApiResponse.data will
274
+ be set to none and raw_data will store the
275
+ HTTP response body without reading/decoding.
276
+ Default is True.
277
+ :type _preload_content: bool, optional
278
+ :param _return_http_data_only: response data instead of ApiResponse
279
+ object with status code, headers, etc
280
+ :type _return_http_data_only: bool, optional
281
+ :param _request_timeout: timeout setting for this request. If one
282
+ number provided, it will be total request
283
+ timeout. It can also be a pair (tuple) of
284
+ (connection, read) timeouts.
285
+ :param _request_auth: set to override the auth_settings for an a single
286
+ request; this effectively ignores the authentication
287
+ in the spec for a single request.
288
+ :type _request_auth: dict, optional
289
+ :type _content_type: string, optional: force content-type for the request
290
+ :return: Returns the result object.
291
+ If the method is called asynchronously,
292
+ returns the request thread.
293
+ :rtype: tuple(GroupReconciliationComparisonRuleset, status_code(int), headers(HTTPHeaderDict))
294
+ """
295
+
296
+ _params = locals()
297
+
298
+ _all_params = [
299
+ 'scope',
300
+ 'code',
301
+ 'as_at'
302
+ ]
303
+ _all_params.extend(
304
+ [
305
+ 'async_req',
306
+ '_return_http_data_only',
307
+ '_preload_content',
308
+ '_request_timeout',
309
+ '_request_auth',
310
+ '_content_type',
311
+ '_headers'
312
+ ]
313
+ )
314
+
315
+ # validate the arguments
316
+ for _key, _val in _params['kwargs'].items():
317
+ if _key not in _all_params:
318
+ raise ApiTypeError(
319
+ "Got an unexpected keyword argument '%s'"
320
+ " to method get_comparison_ruleset" % _key
321
+ )
322
+ _params[_key] = _val
323
+ del _params['kwargs']
324
+
325
+ _collection_formats = {}
326
+
327
+ # process the path parameters
328
+ _path_params = {}
329
+ if _params['scope']:
330
+ _path_params['scope'] = _params['scope']
331
+
332
+ if _params['code']:
333
+ _path_params['code'] = _params['code']
334
+
335
+
336
+ # process the query parameters
337
+ _query_params = []
338
+ if _params.get('as_at') is not None: # noqa: E501
339
+ if isinstance(_params['as_at'], datetime):
340
+ _query_params.append(('asAt', _params['as_at'].strftime(self.api_client.configuration.datetime_format)))
341
+ else:
342
+ _query_params.append(('asAt', _params['as_at']))
343
+
344
+ # process the header parameters
345
+ _header_params = dict(_params.get('_headers', {}))
346
+ # process the form parameters
347
+ _form_params = []
348
+ _files = {}
349
+ # process the body parameter
350
+ _body_params = None
351
+ # set the HTTP header `Accept`
352
+ _header_params['Accept'] = self.api_client.select_header_accept(
353
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
354
+
355
+ # authentication setting
356
+ _auth_settings = ['oauth2'] # noqa: E501
357
+
358
+ _response_types_map = {
359
+ '200': "GroupReconciliationComparisonRuleset",
360
+ '400': "LusidValidationProblemDetails",
361
+ }
362
+
363
+ return self.api_client.call_api(
364
+ '/api/reconciliations/comparisonrulesets/{scope}/{code}', 'GET',
365
+ _path_params,
366
+ _query_params,
367
+ _header_params,
368
+ body=_body_params,
369
+ post_params=_form_params,
370
+ files=_files,
371
+ response_types_map=_response_types_map,
372
+ auth_settings=_auth_settings,
373
+ async_req=_params.get('async_req'),
374
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
375
+ _preload_content=_params.get('_preload_content', True),
376
+ _request_timeout=_params.get('_request_timeout'),
377
+ collection_formats=_collection_formats,
378
+ _request_auth=_params.get('_request_auth'))