lusid-sdk 2.1.157__py3-none-any.whl → 2.1.191__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (63) hide show
  1. lusid/__init__.py +10 -0
  2. lusid/api/amortisation_rule_sets_api.py +1 -1
  3. lusid/api/chart_of_accounts_api.py +365 -0
  4. lusid/api/entities_api.py +18 -9
  5. lusid/api/fee_types_api.py +1 -1
  6. lusid/api/funds_api.py +259 -76
  7. lusid/api/relations_api.py +1 -1
  8. lusid/configuration.py +1 -1
  9. lusid/models/__init__.py +10 -0
  10. lusid/models/accumulation_event.py +3 -3
  11. lusid/models/amortisation_event.py +3 -3
  12. lusid/models/applicable_instrument_event.py +9 -4
  13. lusid/models/bond_coupon_event.py +3 -3
  14. lusid/models/bond_default_event.py +3 -3
  15. lusid/models/bond_principal_event.py +3 -3
  16. lusid/models/capital_distribution_event.py +3 -3
  17. lusid/models/cash_and_security_offer_election.py +90 -0
  18. lusid/models/cash_dividend_event.py +3 -3
  19. lusid/models/cash_flow_event.py +3 -3
  20. lusid/models/cash_offer_election.py +77 -0
  21. lusid/models/close_event.py +3 -3
  22. lusid/models/create_derived_property_definition_request.py +3 -3
  23. lusid/models/create_property_definition_request.py +3 -3
  24. lusid/models/dividend_option_event.py +3 -3
  25. lusid/models/dividend_reinvestment_event.py +3 -3
  26. lusid/models/exercise_event.py +3 -3
  27. lusid/models/expiry_event.py +3 -3
  28. lusid/models/fee.py +3 -3
  29. lusid/models/fee_accrual.py +4 -2
  30. lusid/models/fee_properties.py +115 -0
  31. lusid/models/fee_request.py +3 -3
  32. lusid/models/float_schedule.py +5 -3
  33. lusid/models/fx_forward_settlement_event.py +3 -3
  34. lusid/models/group_filter_step.py +2 -11
  35. lusid/models/informational_error_event.py +3 -3
  36. lusid/models/informational_event.py +3 -3
  37. lusid/models/instrument_event.py +6 -5
  38. lusid/models/instrument_event_type.py +1 -0
  39. lusid/models/journal_entry_lines_query_parameters.py +1 -1
  40. lusid/models/maturity_event.py +3 -3
  41. lusid/models/merger_event.py +172 -0
  42. lusid/models/open_event.py +3 -3
  43. lusid/models/portfolio_entity.py +13 -1
  44. lusid/models/portfolio_properties.py +7 -1
  45. lusid/models/property_definition.py +3 -3
  46. lusid/models/property_definition_search_result.py +3 -3
  47. lusid/models/property_domain.py +1 -0
  48. lusid/models/raw_vendor_event.py +3 -3
  49. lusid/models/reset_event.py +3 -3
  50. lusid/models/reverse_stock_split_event.py +3 -3
  51. lusid/models/scrip_dividend_event.py +3 -3
  52. lusid/models/security_offer_election.py +79 -0
  53. lusid/models/spin_off_event.py +3 -3
  54. lusid/models/stock_dividend_event.py +3 -3
  55. lusid/models/stock_split_event.py +3 -3
  56. lusid/models/transaction_type_calculation.py +11 -3
  57. lusid/models/transition_event.py +3 -3
  58. lusid/models/trial_balance_query_parameters.py +1 -1
  59. lusid/models/trigger_event.py +3 -3
  60. lusid/models/upsert_valuation_point_request.py +2 -15
  61. {lusid_sdk-2.1.157.dist-info → lusid_sdk-2.1.191.dist-info}/METADATA +15 -7
  62. {lusid_sdk-2.1.157.dist-info → lusid_sdk-2.1.191.dist-info}/RECORD +63 -58
  63. {lusid_sdk-2.1.157.dist-info → lusid_sdk-2.1.191.dist-info}/WHEEL +0 -0
lusid/api/funds_api.py CHANGED
@@ -29,6 +29,7 @@ from typing import Dict, Optional
29
29
  from lusid.models.deleted_entity_response import DeletedEntityResponse
30
30
  from lusid.models.diary_entry import DiaryEntry
31
31
  from lusid.models.fee import Fee
32
+ from lusid.models.fee_properties import FeeProperties
32
33
  from lusid.models.fee_request import FeeRequest
33
34
  from lusid.models.fund import Fund
34
35
  from lusid.models.fund_properties import FundProperties
@@ -64,29 +65,29 @@ class FundsApi:
64
65
  self.api_client = api_client
65
66
 
66
67
  @overload
67
- async def accept_estimate_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 Final state.")], **kwargs) -> ValuationPointDataResponse: # noqa: E501
68
+ 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
68
69
  ...
69
70
 
70
71
  @overload
71
- def accept_estimate_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 Final state.")], async_req: Optional[bool]=True, **kwargs) -> ValuationPointDataResponse: # noqa: E501
72
+ 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
72
73
  ...
73
74
 
74
75
  @validate_arguments
75
- def accept_estimate_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 Final state.")], async_req: Optional[bool]=None, **kwargs) -> Union[ValuationPointDataResponse, Awaitable[ValuationPointDataResponse]]: # noqa: E501
76
- """[EXPERIMENTAL] AcceptEstimatePoint: Accepts an Estimate Valuation Point. # noqa: E501
76
+ 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
77
+ """[EXPERIMENTAL] AcceptEstimateValuationPoint: Accepts an Estimate Valuation Point. # noqa: E501
77
78
 
78
79
  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
79
80
  This method makes a synchronous HTTP request by default. To make an
80
81
  asynchronous HTTP request, please pass async_req=True
81
82
 
82
- >>> thread = api.accept_estimate_point(scope, code, valuation_point_data_request, async_req=True)
83
+ >>> thread = api.accept_estimate_valuation_point(scope, code, valuation_point_data_request, async_req=True)
83
84
  >>> result = thread.get()
84
85
 
85
86
  :param scope: The scope of the Fund. (required)
86
87
  :type scope: str
87
88
  :param code: The code of the Fund. Together with the scope this uniquely identifies the Fund. (required)
88
89
  :type code: str
89
- :param valuation_point_data_request: The valuationPointDataRequest which contains the Diary Entry code for the Estimate Valuation Point to move to Final state. (required)
90
+ :param valuation_point_data_request: The valuationPointDataRequest which contains the Diary Entry code for the Estimate Valuation Point to move to Candidate or Final state. (required)
90
91
  :type valuation_point_data_request: ValuationPointDataRequest
91
92
  :param async_req: Whether to execute the request asynchronously.
92
93
  :type async_req: bool, optional
@@ -101,28 +102,28 @@ class FundsApi:
101
102
  """
102
103
  kwargs['_return_http_data_only'] = True
103
104
  if '_preload_content' in kwargs:
104
- message = "Error! Please call the accept_estimate_point_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
105
+ message = "Error! Please call the accept_estimate_valuation_point_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
105
106
  raise ValueError(message)
106
107
  if async_req is not None:
107
108
  kwargs['async_req'] = async_req
108
- return self.accept_estimate_point_with_http_info(scope, code, valuation_point_data_request, **kwargs) # noqa: E501
109
+ return self.accept_estimate_valuation_point_with_http_info(scope, code, valuation_point_data_request, **kwargs) # noqa: E501
109
110
 
110
111
  @validate_arguments
111
- def accept_estimate_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 Final state.")], **kwargs) -> ApiResponse: # noqa: E501
112
- """[EXPERIMENTAL] AcceptEstimatePoint: Accepts an Estimate Valuation Point. # noqa: E501
112
+ 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
113
+ """[EXPERIMENTAL] AcceptEstimateValuationPoint: Accepts an Estimate Valuation Point. # noqa: E501
113
114
 
114
115
  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
115
116
  This method makes a synchronous HTTP request by default. To make an
116
117
  asynchronous HTTP request, please pass async_req=True
117
118
 
118
- >>> thread = api.accept_estimate_point_with_http_info(scope, code, valuation_point_data_request, async_req=True)
119
+ >>> thread = api.accept_estimate_valuation_point_with_http_info(scope, code, valuation_point_data_request, async_req=True)
119
120
  >>> result = thread.get()
120
121
 
121
122
  :param scope: The scope of the Fund. (required)
122
123
  :type scope: str
123
124
  :param code: The code of the Fund. Together with the scope this uniquely identifies the Fund. (required)
124
125
  :type code: str
125
- :param valuation_point_data_request: The valuationPointDataRequest which contains the Diary Entry code for the Estimate Valuation Point to move to Final state. (required)
126
+ :param valuation_point_data_request: The valuationPointDataRequest which contains the Diary Entry code for the Estimate Valuation Point to move to Candidate or Final state. (required)
126
127
  :type valuation_point_data_request: ValuationPointDataRequest
127
128
  :param async_req: Whether to execute the request asynchronously.
128
129
  :type async_req: bool, optional
@@ -173,7 +174,7 @@ class FundsApi:
173
174
  if _key not in _all_params:
174
175
  raise ApiTypeError(
175
176
  "Got an unexpected keyword argument '%s'"
176
- " to method accept_estimate_point" % _key
177
+ " to method accept_estimate_valuation_point" % _key
177
178
  )
178
179
  _params[_key] = _val
179
180
  del _params['kwargs']
@@ -1079,22 +1080,22 @@ class FundsApi:
1079
1080
  _request_auth=_params.get('_request_auth'))
1080
1081
 
1081
1082
  @overload
1082
- async def finalise_candidate_valuation(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 to mark as final.")], **kwargs) -> ValuationPointDataResponse: # noqa: E501
1083
+ async def finalise_candidate_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 to mark as final.")], **kwargs) -> ValuationPointDataResponse: # noqa: E501
1083
1084
  ...
1084
1085
 
1085
1086
  @overload
1086
- def finalise_candidate_valuation(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 to mark as final.")], async_req: Optional[bool]=True, **kwargs) -> ValuationPointDataResponse: # noqa: E501
1087
+ def finalise_candidate_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 to mark as final.")], async_req: Optional[bool]=True, **kwargs) -> ValuationPointDataResponse: # noqa: E501
1087
1088
  ...
1088
1089
 
1089
1090
  @validate_arguments
1090
- def finalise_candidate_valuation(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 to mark as final.")], async_req: Optional[bool]=None, **kwargs) -> Union[ValuationPointDataResponse, Awaitable[ValuationPointDataResponse]]: # noqa: E501
1091
- """[EXPERIMENTAL] FinaliseCandidateValuation: Finalise Candidate. # noqa: E501
1091
+ def finalise_candidate_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 to mark as final.")], async_req: Optional[bool]=None, **kwargs) -> Union[ValuationPointDataResponse, Awaitable[ValuationPointDataResponse]]: # noqa: E501
1092
+ """[EXPERIMENTAL] FinaliseCandidateValuationPoint: Finalise Candidate. # noqa: E501
1092
1093
 
1093
1094
  Moves a 'Candidate' status Valuation Point to status 'Final'. # noqa: E501
1094
1095
  This method makes a synchronous HTTP request by default. To make an
1095
1096
  asynchronous HTTP request, please pass async_req=True
1096
1097
 
1097
- >>> thread = api.finalise_candidate_valuation(scope, code, valuation_point_data_request, async_req=True)
1098
+ >>> thread = api.finalise_candidate_valuation_point(scope, code, valuation_point_data_request, async_req=True)
1098
1099
  >>> result = thread.get()
1099
1100
 
1100
1101
  :param scope: The scope of the Fund. (required)
@@ -1116,21 +1117,21 @@ class FundsApi:
1116
1117
  """
1117
1118
  kwargs['_return_http_data_only'] = True
1118
1119
  if '_preload_content' in kwargs:
1119
- message = "Error! Please call the finalise_candidate_valuation_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
1120
+ message = "Error! Please call the finalise_candidate_valuation_point_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
1120
1121
  raise ValueError(message)
1121
1122
  if async_req is not None:
1122
1123
  kwargs['async_req'] = async_req
1123
- return self.finalise_candidate_valuation_with_http_info(scope, code, valuation_point_data_request, **kwargs) # noqa: E501
1124
+ return self.finalise_candidate_valuation_point_with_http_info(scope, code, valuation_point_data_request, **kwargs) # noqa: E501
1124
1125
 
1125
1126
  @validate_arguments
1126
- def finalise_candidate_valuation_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 to mark as final.")], **kwargs) -> ApiResponse: # noqa: E501
1127
- """[EXPERIMENTAL] FinaliseCandidateValuation: Finalise Candidate. # noqa: E501
1127
+ def finalise_candidate_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 to mark as final.")], **kwargs) -> ApiResponse: # noqa: E501
1128
+ """[EXPERIMENTAL] FinaliseCandidateValuationPoint: Finalise Candidate. # noqa: E501
1128
1129
 
1129
1130
  Moves a 'Candidate' status Valuation Point to status 'Final'. # noqa: E501
1130
1131
  This method makes a synchronous HTTP request by default. To make an
1131
1132
  asynchronous HTTP request, please pass async_req=True
1132
1133
 
1133
- >>> thread = api.finalise_candidate_valuation_with_http_info(scope, code, valuation_point_data_request, async_req=True)
1134
+ >>> thread = api.finalise_candidate_valuation_point_with_http_info(scope, code, valuation_point_data_request, async_req=True)
1134
1135
  >>> result = thread.get()
1135
1136
 
1136
1137
  :param scope: The scope of the Fund. (required)
@@ -1188,7 +1189,7 @@ class FundsApi:
1188
1189
  if _key not in _all_params:
1189
1190
  raise ApiTypeError(
1190
1191
  "Got an unexpected keyword argument '%s'"
1191
- " to method finalise_candidate_valuation" % _key
1192
+ " to method finalise_candidate_valuation_point" % _key
1192
1193
  )
1193
1194
  _params[_key] = _val
1194
1195
  del _params['kwargs']
@@ -1803,7 +1804,7 @@ class FundsApi:
1803
1804
  }
1804
1805
 
1805
1806
  return self.api_client.call_api(
1806
- '/api/funds/{scope}/{code}/valuationpoints', 'POST',
1807
+ '/api/funds/{scope}/{code}/valuationpoints/$query', 'POST',
1807
1808
  _path_params,
1808
1809
  _query_params,
1809
1810
  _header_params,
@@ -2600,29 +2601,205 @@ class FundsApi:
2600
2601
  _request_auth=_params.get('_request_auth'))
2601
2602
 
2602
2603
  @overload
2603
- async def upsert_fund_properties(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund to update or insert the properties onto.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund to update or insert the properties onto. Together with the scope this uniquely identifies the Fund.")], request_body : Annotated[Optional[Dict[str, ModelProperty]], Field(description="The properties to be updated or inserted onto the Fund. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"Fund/Manager/Id\".")] = None, **kwargs) -> FundProperties: # noqa: E501
2604
+ async def upsert_diary_entry_type_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.")], upsert_valuation_point_request : Annotated[UpsertValuationPointRequest, Field(..., description="The Valuation Point Estimate definition to Upsert")], **kwargs) -> DiaryEntry: # noqa: E501
2604
2605
  ...
2605
2606
 
2606
2607
  @overload
2607
- def upsert_fund_properties(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund to update or insert the properties onto.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund to update or insert the properties onto. Together with the scope this uniquely identifies the Fund.")], request_body : Annotated[Optional[Dict[str, ModelProperty]], Field(description="The properties to be updated or inserted onto the Fund. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"Fund/Manager/Id\".")] = None, async_req: Optional[bool]=True, **kwargs) -> FundProperties: # noqa: E501
2608
+ def upsert_diary_entry_type_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.")], upsert_valuation_point_request : Annotated[UpsertValuationPointRequest, Field(..., description="The Valuation Point Estimate definition to Upsert")], async_req: Optional[bool]=True, **kwargs) -> DiaryEntry: # noqa: E501
2608
2609
  ...
2609
2610
 
2610
2611
  @validate_arguments
2611
- def upsert_fund_properties(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund to update or insert the properties onto.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund to update or insert the properties onto. Together with the scope this uniquely identifies the Fund.")], request_body : Annotated[Optional[Dict[str, ModelProperty]], Field(description="The properties to be updated or inserted onto the Fund. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"Fund/Manager/Id\".")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[FundProperties, Awaitable[FundProperties]]: # noqa: E501
2612
- """[EXPERIMENTAL] UpsertFundProperties: Upsert Fund properties. # noqa: E501
2612
+ def upsert_diary_entry_type_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.")], upsert_valuation_point_request : Annotated[UpsertValuationPointRequest, Field(..., description="The Valuation Point Estimate definition to Upsert")], async_req: Optional[bool]=None, **kwargs) -> Union[DiaryEntry, Awaitable[DiaryEntry]]: # noqa: E501
2613
+ """[EXPERIMENTAL] UpsertDiaryEntryTypeValuationPoint: Upsert Valuation Point. # noqa: E501
2613
2614
 
2614
- Update or insert one or more properties onto a single Fund. A property will be updated if it already exists and inserted if it does not. All properties must be of the domain 'Fund'. Upserting a property that exists for an Fund, with a null value, will delete the instance of the property for that group. Properties have an <i>effectiveFrom</i> datetime for which the property is valid, and an <i>effectiveUntil</i> datetime until which the property is valid. Not supplying an <i>effectiveUntil</i> datetime results in the property being valid indefinitely, or until the next <i>effectiveFrom</i> datetime of the property. # noqa: E501
2615
+ Update or insert the estimate Valuation Point. If the Valuation Point does not exist, this method will create it in estimate state. If the Valuation Point already exists and is in estimate state, the Valuation Point will be updated with the newly specified information in this request. # noqa: E501
2615
2616
  This method makes a synchronous HTTP request by default. To make an
2616
2617
  asynchronous HTTP request, please pass async_req=True
2617
2618
 
2618
- >>> thread = api.upsert_fund_properties(scope, code, request_body, async_req=True)
2619
+ >>> thread = api.upsert_diary_entry_type_valuation_point(scope, code, upsert_valuation_point_request, async_req=True)
2619
2620
  >>> result = thread.get()
2620
2621
 
2621
- :param scope: The scope of the Fund to update or insert the properties onto. (required)
2622
+ :param scope: The scope of the Fund. (required)
2622
2623
  :type scope: str
2623
- :param code: The code of the Fund to update or insert the properties onto. Together with the scope this uniquely identifies the Fund. (required)
2624
+ :param code: The code of the Fund. Together with the scope this uniquely identifies the Fund. (required)
2624
2625
  :type code: str
2625
- :param request_body: The properties to be updated or inserted onto the Fund. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"Fund/Manager/Id\".
2626
+ :param upsert_valuation_point_request: The Valuation Point Estimate definition to Upsert (required)
2627
+ :type upsert_valuation_point_request: UpsertValuationPointRequest
2628
+ :param async_req: Whether to execute the request asynchronously.
2629
+ :type async_req: bool, optional
2630
+ :param _request_timeout: timeout setting for this request.
2631
+ If one number provided, it will be total request
2632
+ timeout. It can also be a pair (tuple) of
2633
+ (connection, read) timeouts.
2634
+ :return: Returns the result object.
2635
+ If the method is called asynchronously,
2636
+ returns the request thread.
2637
+ :rtype: DiaryEntry
2638
+ """
2639
+ kwargs['_return_http_data_only'] = True
2640
+ if '_preload_content' in kwargs:
2641
+ message = "Error! Please call the upsert_diary_entry_type_valuation_point_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
2642
+ raise ValueError(message)
2643
+ if async_req is not None:
2644
+ kwargs['async_req'] = async_req
2645
+ return self.upsert_diary_entry_type_valuation_point_with_http_info(scope, code, upsert_valuation_point_request, **kwargs) # noqa: E501
2646
+
2647
+ @validate_arguments
2648
+ def upsert_diary_entry_type_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.")], upsert_valuation_point_request : Annotated[UpsertValuationPointRequest, Field(..., description="The Valuation Point Estimate definition to Upsert")], **kwargs) -> ApiResponse: # noqa: E501
2649
+ """[EXPERIMENTAL] UpsertDiaryEntryTypeValuationPoint: Upsert Valuation Point. # noqa: E501
2650
+
2651
+ Update or insert the estimate Valuation Point. If the Valuation Point does not exist, this method will create it in estimate state. If the Valuation Point already exists and is in estimate state, the Valuation Point will be updated with the newly specified information in this request. # noqa: E501
2652
+ This method makes a synchronous HTTP request by default. To make an
2653
+ asynchronous HTTP request, please pass async_req=True
2654
+
2655
+ >>> thread = api.upsert_diary_entry_type_valuation_point_with_http_info(scope, code, upsert_valuation_point_request, async_req=True)
2656
+ >>> result = thread.get()
2657
+
2658
+ :param scope: The scope of the Fund. (required)
2659
+ :type scope: str
2660
+ :param code: The code of the Fund. Together with the scope this uniquely identifies the Fund. (required)
2661
+ :type code: str
2662
+ :param upsert_valuation_point_request: The Valuation Point Estimate definition to Upsert (required)
2663
+ :type upsert_valuation_point_request: UpsertValuationPointRequest
2664
+ :param async_req: Whether to execute the request asynchronously.
2665
+ :type async_req: bool, optional
2666
+ :param _preload_content: if False, the ApiResponse.data will
2667
+ be set to none and raw_data will store the
2668
+ HTTP response body without reading/decoding.
2669
+ Default is True.
2670
+ :type _preload_content: bool, optional
2671
+ :param _return_http_data_only: response data instead of ApiResponse
2672
+ object with status code, headers, etc
2673
+ :type _return_http_data_only: bool, optional
2674
+ :param _request_timeout: timeout setting for this request. If one
2675
+ number provided, it will be total request
2676
+ timeout. It can also be a pair (tuple) of
2677
+ (connection, read) timeouts.
2678
+ :param _request_auth: set to override the auth_settings for an a single
2679
+ request; this effectively ignores the authentication
2680
+ in the spec for a single request.
2681
+ :type _request_auth: dict, optional
2682
+ :type _content_type: string, optional: force content-type for the request
2683
+ :return: Returns the result object.
2684
+ If the method is called asynchronously,
2685
+ returns the request thread.
2686
+ :rtype: tuple(DiaryEntry, status_code(int), headers(HTTPHeaderDict))
2687
+ """
2688
+
2689
+ _params = locals()
2690
+
2691
+ _all_params = [
2692
+ 'scope',
2693
+ 'code',
2694
+ 'upsert_valuation_point_request'
2695
+ ]
2696
+ _all_params.extend(
2697
+ [
2698
+ 'async_req',
2699
+ '_return_http_data_only',
2700
+ '_preload_content',
2701
+ '_request_timeout',
2702
+ '_request_auth',
2703
+ '_content_type',
2704
+ '_headers'
2705
+ ]
2706
+ )
2707
+
2708
+ # validate the arguments
2709
+ for _key, _val in _params['kwargs'].items():
2710
+ if _key not in _all_params:
2711
+ raise ApiTypeError(
2712
+ "Got an unexpected keyword argument '%s'"
2713
+ " to method upsert_diary_entry_type_valuation_point" % _key
2714
+ )
2715
+ _params[_key] = _val
2716
+ del _params['kwargs']
2717
+
2718
+ _collection_formats = {}
2719
+
2720
+ # process the path parameters
2721
+ _path_params = {}
2722
+ if _params['scope']:
2723
+ _path_params['scope'] = _params['scope']
2724
+
2725
+ if _params['code']:
2726
+ _path_params['code'] = _params['code']
2727
+
2728
+
2729
+ # process the query parameters
2730
+ _query_params = []
2731
+ # process the header parameters
2732
+ _header_params = dict(_params.get('_headers', {}))
2733
+ # process the form parameters
2734
+ _form_params = []
2735
+ _files = {}
2736
+ # process the body parameter
2737
+ _body_params = None
2738
+ if _params['upsert_valuation_point_request'] is not None:
2739
+ _body_params = _params['upsert_valuation_point_request']
2740
+
2741
+ # set the HTTP header `Accept`
2742
+ _header_params['Accept'] = self.api_client.select_header_accept(
2743
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
2744
+
2745
+ # set the HTTP header `Content-Type`
2746
+ _content_types_list = _params.get('_content_type',
2747
+ self.api_client.select_header_content_type(
2748
+ ['application/json-patch+json', 'application/json', 'text/json', 'application/*+json']))
2749
+ if _content_types_list:
2750
+ _header_params['Content-Type'] = _content_types_list
2751
+
2752
+ # authentication setting
2753
+ _auth_settings = ['oauth2'] # noqa: E501
2754
+
2755
+ _response_types_map = {
2756
+ '200': "DiaryEntry",
2757
+ '400': "LusidValidationProblemDetails",
2758
+ }
2759
+
2760
+ return self.api_client.call_api(
2761
+ '/api/funds/{scope}/{code}/valuationpoints/$upsert', 'POST',
2762
+ _path_params,
2763
+ _query_params,
2764
+ _header_params,
2765
+ body=_body_params,
2766
+ post_params=_form_params,
2767
+ files=_files,
2768
+ response_types_map=_response_types_map,
2769
+ auth_settings=_auth_settings,
2770
+ async_req=_params.get('async_req'),
2771
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
2772
+ _preload_content=_params.get('_preload_content', True),
2773
+ _request_timeout=_params.get('_request_timeout'),
2774
+ collection_formats=_collection_formats,
2775
+ _request_auth=_params.get('_request_auth'))
2776
+
2777
+ @overload
2778
+ async def upsert_fee_properties(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.")], fee_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fee to update or insert the properties onto.")], request_body : Annotated[Optional[Dict[str, ModelProperty]], Field(description="The properties to be updated or inserted onto the Fee. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"Fee/Manager/Id\".")] = None, **kwargs) -> FeeProperties: # noqa: E501
2779
+ ...
2780
+
2781
+ @overload
2782
+ def upsert_fee_properties(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.")], fee_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fee to update or insert the properties onto.")], request_body : Annotated[Optional[Dict[str, ModelProperty]], Field(description="The properties to be updated or inserted onto the Fee. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"Fee/Manager/Id\".")] = None, async_req: Optional[bool]=True, **kwargs) -> FeeProperties: # noqa: E501
2783
+ ...
2784
+
2785
+ @validate_arguments
2786
+ def upsert_fee_properties(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.")], fee_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fee to update or insert the properties onto.")], request_body : Annotated[Optional[Dict[str, ModelProperty]], Field(description="The properties to be updated or inserted onto the Fee. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"Fee/Manager/Id\".")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[FeeProperties, Awaitable[FeeProperties]]: # noqa: E501
2787
+ """[EXPERIMENTAL] UpsertFeeProperties: Upsert Fee properties. # noqa: E501
2788
+
2789
+ Update or insert one or more properties onto a single Fee. A property will be updated if it already exists and inserted if it does not. All properties must be of the domain 'Fee'. Upserting a property that exists for an Fee, with a null value, will delete the instance of the property for that group. Properties have an <i>effectiveFrom</i> datetime for which the property is valid, and an <i>effectiveUntil</i> datetime until which the property is valid. Not supplying an <i>effectiveUntil</i> datetime results in the property being valid indefinitely, or until the next <i>effectiveFrom</i> datetime of the property. # noqa: E501
2790
+ This method makes a synchronous HTTP request by default. To make an
2791
+ asynchronous HTTP request, please pass async_req=True
2792
+
2793
+ >>> thread = api.upsert_fee_properties(scope, code, fee_code, request_body, async_req=True)
2794
+ >>> result = thread.get()
2795
+
2796
+ :param scope: The scope of the Fund. (required)
2797
+ :type scope: str
2798
+ :param code: The code of the Fund. Together with the scope this uniquely identifies the Fund. (required)
2799
+ :type code: str
2800
+ :param fee_code: The code of the Fee to update or insert the properties onto. (required)
2801
+ :type fee_code: str
2802
+ :param request_body: The properties to be updated or inserted onto the Fee. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"Fee/Manager/Id\".
2626
2803
  :type request_body: Dict[str, ModelProperty]
2627
2804
  :param async_req: Whether to execute the request asynchronously.
2628
2805
  :type async_req: bool, optional
@@ -2633,32 +2810,34 @@ class FundsApi:
2633
2810
  :return: Returns the result object.
2634
2811
  If the method is called asynchronously,
2635
2812
  returns the request thread.
2636
- :rtype: FundProperties
2813
+ :rtype: FeeProperties
2637
2814
  """
2638
2815
  kwargs['_return_http_data_only'] = True
2639
2816
  if '_preload_content' in kwargs:
2640
- message = "Error! Please call the upsert_fund_properties_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
2817
+ message = "Error! Please call the upsert_fee_properties_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
2641
2818
  raise ValueError(message)
2642
2819
  if async_req is not None:
2643
2820
  kwargs['async_req'] = async_req
2644
- return self.upsert_fund_properties_with_http_info(scope, code, request_body, **kwargs) # noqa: E501
2821
+ return self.upsert_fee_properties_with_http_info(scope, code, fee_code, request_body, **kwargs) # noqa: E501
2645
2822
 
2646
2823
  @validate_arguments
2647
- def upsert_fund_properties_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund to update or insert the properties onto.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund to update or insert the properties onto. Together with the scope this uniquely identifies the Fund.")], request_body : Annotated[Optional[Dict[str, ModelProperty]], Field(description="The properties to be updated or inserted onto the Fund. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"Fund/Manager/Id\".")] = None, **kwargs) -> ApiResponse: # noqa: E501
2648
- """[EXPERIMENTAL] UpsertFundProperties: Upsert Fund properties. # noqa: E501
2824
+ def upsert_fee_properties_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.")], fee_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fee to update or insert the properties onto.")], request_body : Annotated[Optional[Dict[str, ModelProperty]], Field(description="The properties to be updated or inserted onto the Fee. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"Fee/Manager/Id\".")] = None, **kwargs) -> ApiResponse: # noqa: E501
2825
+ """[EXPERIMENTAL] UpsertFeeProperties: Upsert Fee properties. # noqa: E501
2649
2826
 
2650
- Update or insert one or more properties onto a single Fund. A property will be updated if it already exists and inserted if it does not. All properties must be of the domain 'Fund'. Upserting a property that exists for an Fund, with a null value, will delete the instance of the property for that group. Properties have an <i>effectiveFrom</i> datetime for which the property is valid, and an <i>effectiveUntil</i> datetime until which the property is valid. Not supplying an <i>effectiveUntil</i> datetime results in the property being valid indefinitely, or until the next <i>effectiveFrom</i> datetime of the property. # noqa: E501
2827
+ Update or insert one or more properties onto a single Fee. A property will be updated if it already exists and inserted if it does not. All properties must be of the domain 'Fee'. Upserting a property that exists for an Fee, with a null value, will delete the instance of the property for that group. Properties have an <i>effectiveFrom</i> datetime for which the property is valid, and an <i>effectiveUntil</i> datetime until which the property is valid. Not supplying an <i>effectiveUntil</i> datetime results in the property being valid indefinitely, or until the next <i>effectiveFrom</i> datetime of the property. # noqa: E501
2651
2828
  This method makes a synchronous HTTP request by default. To make an
2652
2829
  asynchronous HTTP request, please pass async_req=True
2653
2830
 
2654
- >>> thread = api.upsert_fund_properties_with_http_info(scope, code, request_body, async_req=True)
2831
+ >>> thread = api.upsert_fee_properties_with_http_info(scope, code, fee_code, request_body, async_req=True)
2655
2832
  >>> result = thread.get()
2656
2833
 
2657
- :param scope: The scope of the Fund to update or insert the properties onto. (required)
2834
+ :param scope: The scope of the Fund. (required)
2658
2835
  :type scope: str
2659
- :param code: The code of the Fund to update or insert the properties onto. Together with the scope this uniquely identifies the Fund. (required)
2836
+ :param code: The code of the Fund. Together with the scope this uniquely identifies the Fund. (required)
2660
2837
  :type code: str
2661
- :param request_body: The properties to be updated or inserted onto the Fund. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"Fund/Manager/Id\".
2838
+ :param fee_code: The code of the Fee to update or insert the properties onto. (required)
2839
+ :type fee_code: str
2840
+ :param request_body: The properties to be updated or inserted onto the Fee. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"Fee/Manager/Id\".
2662
2841
  :type request_body: Dict[str, ModelProperty]
2663
2842
  :param async_req: Whether to execute the request asynchronously.
2664
2843
  :type async_req: bool, optional
@@ -2682,7 +2861,7 @@ class FundsApi:
2682
2861
  :return: Returns the result object.
2683
2862
  If the method is called asynchronously,
2684
2863
  returns the request thread.
2685
- :rtype: tuple(FundProperties, status_code(int), headers(HTTPHeaderDict))
2864
+ :rtype: tuple(FeeProperties, status_code(int), headers(HTTPHeaderDict))
2686
2865
  """
2687
2866
 
2688
2867
  _params = locals()
@@ -2690,6 +2869,7 @@ class FundsApi:
2690
2869
  _all_params = [
2691
2870
  'scope',
2692
2871
  'code',
2872
+ 'fee_code',
2693
2873
  'request_body'
2694
2874
  ]
2695
2875
  _all_params.extend(
@@ -2709,7 +2889,7 @@ class FundsApi:
2709
2889
  if _key not in _all_params:
2710
2890
  raise ApiTypeError(
2711
2891
  "Got an unexpected keyword argument '%s'"
2712
- " to method upsert_fund_properties" % _key
2892
+ " to method upsert_fee_properties" % _key
2713
2893
  )
2714
2894
  _params[_key] = _val
2715
2895
  del _params['kwargs']
@@ -2724,6 +2904,9 @@ class FundsApi:
2724
2904
  if _params['code']:
2725
2905
  _path_params['code'] = _params['code']
2726
2906
 
2907
+ if _params['fee_code']:
2908
+ _path_params['feeCode'] = _params['fee_code']
2909
+
2727
2910
 
2728
2911
  # process the query parameters
2729
2912
  _query_params = []
@@ -2752,12 +2935,12 @@ class FundsApi:
2752
2935
  _auth_settings = ['oauth2'] # noqa: E501
2753
2936
 
2754
2937
  _response_types_map = {
2755
- '200': "FundProperties",
2938
+ '200': "FeeProperties",
2756
2939
  '400': "LusidValidationProblemDetails",
2757
2940
  }
2758
2941
 
2759
2942
  return self.api_client.call_api(
2760
- '/api/funds/{scope}/{code}/properties/$upsert', 'POST',
2943
+ '/api/funds/{scope}/{code}/fees/{feeCode}/properties/$upsert', 'POST',
2761
2944
  _path_params,
2762
2945
  _query_params,
2763
2946
  _header_params,
@@ -2774,30 +2957,30 @@ class FundsApi:
2774
2957
  _request_auth=_params.get('_request_auth'))
2775
2958
 
2776
2959
  @overload
2777
- async def upsert_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.")], upsert_valuation_point_request : Annotated[UpsertValuationPointRequest, Field(..., description="The Valuation Point Estimate definition to Upsert")], **kwargs) -> DiaryEntry: # noqa: E501
2960
+ async def upsert_fund_properties(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund to update or insert the properties onto.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund to update or insert the properties onto. Together with the scope this uniquely identifies the Fund.")], request_body : Annotated[Optional[Dict[str, ModelProperty]], Field(description="The properties to be updated or inserted onto the Fund. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"Fund/Manager/Id\".")] = None, **kwargs) -> FundProperties: # noqa: E501
2778
2961
  ...
2779
2962
 
2780
2963
  @overload
2781
- def upsert_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.")], upsert_valuation_point_request : Annotated[UpsertValuationPointRequest, Field(..., description="The Valuation Point Estimate definition to Upsert")], async_req: Optional[bool]=True, **kwargs) -> DiaryEntry: # noqa: E501
2964
+ def upsert_fund_properties(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund to update or insert the properties onto.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund to update or insert the properties onto. Together with the scope this uniquely identifies the Fund.")], request_body : Annotated[Optional[Dict[str, ModelProperty]], Field(description="The properties to be updated or inserted onto the Fund. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"Fund/Manager/Id\".")] = None, async_req: Optional[bool]=True, **kwargs) -> FundProperties: # noqa: E501
2782
2965
  ...
2783
2966
 
2784
2967
  @validate_arguments
2785
- def upsert_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.")], upsert_valuation_point_request : Annotated[UpsertValuationPointRequest, Field(..., description="The Valuation Point Estimate definition to Upsert")], async_req: Optional[bool]=None, **kwargs) -> Union[DiaryEntry, Awaitable[DiaryEntry]]: # noqa: E501
2786
- """[EXPERIMENTAL] UpsertValuationPoint: Upsert Valuation Point. # noqa: E501
2968
+ def upsert_fund_properties(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund to update or insert the properties onto.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund to update or insert the properties onto. Together with the scope this uniquely identifies the Fund.")], request_body : Annotated[Optional[Dict[str, ModelProperty]], Field(description="The properties to be updated or inserted onto the Fund. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"Fund/Manager/Id\".")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[FundProperties, Awaitable[FundProperties]]: # noqa: E501
2969
+ """[EXPERIMENTAL] UpsertFundProperties: Upsert Fund properties. # noqa: E501
2787
2970
 
2788
- Update or insert the estimate Valuation Point. If the Valuation Point does not exist, this method will create it in estimate state. If the Valuation Point already exists and is in estimate state, the Valuation Point will be updated with the newly specified information in this request. # noqa: E501
2971
+ Update or insert one or more properties onto a single Fund. A property will be updated if it already exists and inserted if it does not. All properties must be of the domain 'Fund'. Upserting a property that exists for an Fund, with a null value, will delete the instance of the property for that group. Properties have an <i>effectiveFrom</i> datetime for which the property is valid, and an <i>effectiveUntil</i> datetime until which the property is valid. Not supplying an <i>effectiveUntil</i> datetime results in the property being valid indefinitely, or until the next <i>effectiveFrom</i> datetime of the property. # noqa: E501
2789
2972
  This method makes a synchronous HTTP request by default. To make an
2790
2973
  asynchronous HTTP request, please pass async_req=True
2791
2974
 
2792
- >>> thread = api.upsert_valuation_point(scope, code, upsert_valuation_point_request, async_req=True)
2975
+ >>> thread = api.upsert_fund_properties(scope, code, request_body, async_req=True)
2793
2976
  >>> result = thread.get()
2794
2977
 
2795
- :param scope: The scope of the Fund. (required)
2978
+ :param scope: The scope of the Fund to update or insert the properties onto. (required)
2796
2979
  :type scope: str
2797
- :param code: The code of the Fund. Together with the scope this uniquely identifies the Fund. (required)
2980
+ :param code: The code of the Fund to update or insert the properties onto. Together with the scope this uniquely identifies the Fund. (required)
2798
2981
  :type code: str
2799
- :param upsert_valuation_point_request: The Valuation Point Estimate definition to Upsert (required)
2800
- :type upsert_valuation_point_request: UpsertValuationPointRequest
2982
+ :param request_body: The properties to be updated or inserted onto the Fund. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"Fund/Manager/Id\".
2983
+ :type request_body: Dict[str, ModelProperty]
2801
2984
  :param async_req: Whether to execute the request asynchronously.
2802
2985
  :type async_req: bool, optional
2803
2986
  :param _request_timeout: timeout setting for this request.
@@ -2807,33 +2990,33 @@ class FundsApi:
2807
2990
  :return: Returns the result object.
2808
2991
  If the method is called asynchronously,
2809
2992
  returns the request thread.
2810
- :rtype: DiaryEntry
2993
+ :rtype: FundProperties
2811
2994
  """
2812
2995
  kwargs['_return_http_data_only'] = True
2813
2996
  if '_preload_content' in kwargs:
2814
- message = "Error! Please call the upsert_valuation_point_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
2997
+ message = "Error! Please call the upsert_fund_properties_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
2815
2998
  raise ValueError(message)
2816
2999
  if async_req is not None:
2817
3000
  kwargs['async_req'] = async_req
2818
- return self.upsert_valuation_point_with_http_info(scope, code, upsert_valuation_point_request, **kwargs) # noqa: E501
3001
+ return self.upsert_fund_properties_with_http_info(scope, code, request_body, **kwargs) # noqa: E501
2819
3002
 
2820
3003
  @validate_arguments
2821
- def upsert_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.")], upsert_valuation_point_request : Annotated[UpsertValuationPointRequest, Field(..., description="The Valuation Point Estimate definition to Upsert")], **kwargs) -> ApiResponse: # noqa: E501
2822
- """[EXPERIMENTAL] UpsertValuationPoint: Upsert Valuation Point. # noqa: E501
3004
+ def upsert_fund_properties_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the Fund to update or insert the properties onto.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the Fund to update or insert the properties onto. Together with the scope this uniquely identifies the Fund.")], request_body : Annotated[Optional[Dict[str, ModelProperty]], Field(description="The properties to be updated or inserted onto the Fund. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"Fund/Manager/Id\".")] = None, **kwargs) -> ApiResponse: # noqa: E501
3005
+ """[EXPERIMENTAL] UpsertFundProperties: Upsert Fund properties. # noqa: E501
2823
3006
 
2824
- Update or insert the estimate Valuation Point. If the Valuation Point does not exist, this method will create it in estimate state. If the Valuation Point already exists and is in estimate state, the Valuation Point will be updated with the newly specified information in this request. # noqa: E501
3007
+ Update or insert one or more properties onto a single Fund. A property will be updated if it already exists and inserted if it does not. All properties must be of the domain 'Fund'. Upserting a property that exists for an Fund, with a null value, will delete the instance of the property for that group. Properties have an <i>effectiveFrom</i> datetime for which the property is valid, and an <i>effectiveUntil</i> datetime until which the property is valid. Not supplying an <i>effectiveUntil</i> datetime results in the property being valid indefinitely, or until the next <i>effectiveFrom</i> datetime of the property. # noqa: E501
2825
3008
  This method makes a synchronous HTTP request by default. To make an
2826
3009
  asynchronous HTTP request, please pass async_req=True
2827
3010
 
2828
- >>> thread = api.upsert_valuation_point_with_http_info(scope, code, upsert_valuation_point_request, async_req=True)
3011
+ >>> thread = api.upsert_fund_properties_with_http_info(scope, code, request_body, async_req=True)
2829
3012
  >>> result = thread.get()
2830
3013
 
2831
- :param scope: The scope of the Fund. (required)
3014
+ :param scope: The scope of the Fund to update or insert the properties onto. (required)
2832
3015
  :type scope: str
2833
- :param code: The code of the Fund. Together with the scope this uniquely identifies the Fund. (required)
3016
+ :param code: The code of the Fund to update or insert the properties onto. Together with the scope this uniquely identifies the Fund. (required)
2834
3017
  :type code: str
2835
- :param upsert_valuation_point_request: The Valuation Point Estimate definition to Upsert (required)
2836
- :type upsert_valuation_point_request: UpsertValuationPointRequest
3018
+ :param request_body: The properties to be updated or inserted onto the Fund. Each property in the request must be keyed by its unique property key. This has the format {domain}/{scope}/{code} e.g. \"Fund/Manager/Id\".
3019
+ :type request_body: Dict[str, ModelProperty]
2837
3020
  :param async_req: Whether to execute the request asynchronously.
2838
3021
  :type async_req: bool, optional
2839
3022
  :param _preload_content: if False, the ApiResponse.data will
@@ -2856,7 +3039,7 @@ class FundsApi:
2856
3039
  :return: Returns the result object.
2857
3040
  If the method is called asynchronously,
2858
3041
  returns the request thread.
2859
- :rtype: tuple(DiaryEntry, status_code(int), headers(HTTPHeaderDict))
3042
+ :rtype: tuple(FundProperties, status_code(int), headers(HTTPHeaderDict))
2860
3043
  """
2861
3044
 
2862
3045
  _params = locals()
@@ -2864,7 +3047,7 @@ class FundsApi:
2864
3047
  _all_params = [
2865
3048
  'scope',
2866
3049
  'code',
2867
- 'upsert_valuation_point_request'
3050
+ 'request_body'
2868
3051
  ]
2869
3052
  _all_params.extend(
2870
3053
  [
@@ -2883,7 +3066,7 @@ class FundsApi:
2883
3066
  if _key not in _all_params:
2884
3067
  raise ApiTypeError(
2885
3068
  "Got an unexpected keyword argument '%s'"
2886
- " to method upsert_valuation_point" % _key
3069
+ " to method upsert_fund_properties" % _key
2887
3070
  )
2888
3071
  _params[_key] = _val
2889
3072
  del _params['kwargs']
@@ -2908,8 +3091,8 @@ class FundsApi:
2908
3091
  _files = {}
2909
3092
  # process the body parameter
2910
3093
  _body_params = None
2911
- if _params['upsert_valuation_point_request'] is not None:
2912
- _body_params = _params['upsert_valuation_point_request']
3094
+ if _params['request_body'] is not None:
3095
+ _body_params = _params['request_body']
2913
3096
 
2914
3097
  # set the HTTP header `Accept`
2915
3098
  _header_params['Accept'] = self.api_client.select_header_accept(
@@ -2926,12 +3109,12 @@ class FundsApi:
2926
3109
  _auth_settings = ['oauth2'] # noqa: E501
2927
3110
 
2928
3111
  _response_types_map = {
2929
- '200': "DiaryEntry",
3112
+ '200': "FundProperties",
2930
3113
  '400': "LusidValidationProblemDetails",
2931
3114
  }
2932
3115
 
2933
3116
  return self.api_client.call_api(
2934
- '/api/funds/{scope}/{code}/valuationpoints/$upsert', 'POST',
3117
+ '/api/funds/{scope}/{code}/properties/$upsert', 'POST',
2935
3118
  _path_params,
2936
3119
  _query_params,
2937
3120
  _header_params,