lusid-sdk 2.1.401__py3-none-any.whl → 2.1.423__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 (77) hide show
  1. lusid/__init__.py +44 -12
  2. lusid/api/__init__.py +2 -2
  3. lusid/api/abor_api.py +8 -16
  4. lusid/api/allocations_api.py +2 -2
  5. lusid/api/chart_of_accounts_api.py +174 -0
  6. lusid/api/custom_entities_api.py +2 -2
  7. lusid/api/entities_api.py +180 -0
  8. lusid/api/{fund_configurations_api.py → fund_configuration_entities_api.py} +1 -1
  9. lusid/api/group_reconciliations_api.py +1418 -27
  10. lusid/api/instruments_api.py +6 -6
  11. lusid/api/legal_entities_api.py +4 -4
  12. lusid/api/order_graph_api.py +4 -4
  13. lusid/api/order_management_api.py +25 -12
  14. lusid/api/persons_api.py +4 -4
  15. lusid/api/portfolios_api.py +27 -30
  16. lusid/api/reference_lists_api.py +2 -2
  17. lusid/api/reference_portfolio_api.py +176 -0
  18. lusid/api/transaction_portfolios_api.py +2 -2
  19. lusid/configuration.py +1 -1
  20. lusid/models/__init__.py +42 -10
  21. lusid/models/access_metadata_value.py +1 -1
  22. lusid/models/address_key_list.py +3 -3
  23. lusid/models/amount.py +69 -0
  24. lusid/models/batch_upsert_portfolio_access_metadata_request.py +27 -17
  25. lusid/models/batch_upsert_portfolio_access_metadata_response.py +56 -16
  26. lusid/models/{metadata_key_value.py → batch_upsert_portfolio_access_metadata_response_item.py} +15 -9
  27. lusid/models/{component_rule.py → break_code_source.py} +17 -21
  28. lusid/models/change_interval_with_order_management_detail.py +137 -0
  29. lusid/models/create_group_reconciliation_definition_request.py +113 -0
  30. lusid/models/custom_entity_entity.py +146 -0
  31. lusid/models/decimal_list.py +3 -3
  32. lusid/models/diary_entry_request.py +10 -1
  33. lusid/models/fixed_schedule.py +3 -3
  34. lusid/models/float_schedule.py +4 -4
  35. lusid/models/flow_conventions.py +7 -1
  36. lusid/models/fund_configuration.py +44 -17
  37. lusid/models/fund_configuration_request.py +31 -19
  38. lusid/models/fund_id_list.py +99 -0
  39. lusid/models/group_reconciliation_aggregate_attribute_rule.py +2 -2
  40. lusid/models/group_reconciliation_aggregate_comparison_rule_operand.py +1 -1
  41. lusid/models/group_reconciliation_core_comparison_rule_operand.py +1 -1
  42. lusid/models/group_reconciliation_definition.py +136 -0
  43. lusid/models/group_reconciliation_definition_comparison_ruleset_ids.py +83 -0
  44. lusid/models/group_reconciliation_definition_currencies.py +71 -0
  45. lusid/models/group_reconciliation_definition_portfolio_entity_ids.py +86 -0
  46. lusid/models/group_reconciliation_definition_recipe_ids.py +78 -0
  47. lusid/models/instrument.py +7 -1
  48. lusid/models/instrument_definition.py +8 -2
  49. lusid/models/instrument_list.py +3 -3
  50. lusid/models/market_data_key_rule.py +5 -3
  51. lusid/models/market_data_specific_rule.py +5 -3
  52. lusid/models/merger_event.py +19 -19
  53. lusid/models/output_transaction.py +9 -2
  54. lusid/models/paged_resource_list_of_group_reconciliation_comparison_ruleset.py +113 -0
  55. lusid/models/paged_resource_list_of_group_reconciliation_definition.py +113 -0
  56. lusid/models/portfolio_group_id_list.py +3 -3
  57. lusid/models/portfolio_id_list.py +3 -3
  58. lusid/models/property_list.py +3 -3
  59. lusid/models/reference_list.py +6 -5
  60. lusid/models/reference_list_type.py +1 -0
  61. lusid/models/{resource_list_of_entity_change_item.py → resource_list_of_change_interval_with_order_management_detail.py} +11 -11
  62. lusid/models/settlement_cycle.py +79 -0
  63. lusid/models/share_class_dealing_breakdown.py +3 -2
  64. lusid/models/stock_dividend_event.py +17 -3
  65. lusid/models/string_list.py +3 -3
  66. lusid/models/transaction.py +9 -2
  67. lusid/models/transaction_date_windows.py +85 -0
  68. lusid/models/transaction_request.py +9 -2
  69. lusid/models/update_group_reconciliation_comparison_ruleset_request.py +91 -0
  70. lusid/models/update_group_reconciliation_definition_request.py +107 -0
  71. lusid/models/upsert_reference_portfolio_constituent_properties_request.py +84 -0
  72. lusid/models/upsert_reference_portfolio_constituent_properties_response.py +115 -0
  73. {lusid_sdk-2.1.401.dist-info → lusid_sdk-2.1.423.dist-info}/METADATA +54 -27
  74. {lusid_sdk-2.1.401.dist-info → lusid_sdk-2.1.423.dist-info}/RECORD +75 -59
  75. lusid/models/entity_change_item.py +0 -121
  76. lusid/models/metadata_key_value_response.py +0 -86
  77. {lusid_sdk-2.1.401.dist-info → lusid_sdk-2.1.423.dist-info}/WHEEL +0 -0
@@ -78,7 +78,7 @@ class InstrumentsApi:
78
78
 
79
79
  @validate_arguments
80
80
  def batch_upsert_instrument_properties(self, request_body : Annotated[Dict[str, UpsertInstrumentPropertyRequest], Field(..., description="A list of instruments and associated instrument properties to create or update.")], scope : Annotated[Optional[constr(strict=True, max_length=64, min_length=1)], Field(description="The scope in which the instrument lies. When not supplied the scope is 'default'.")] = None, identifier_effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime used to resolve each instrument from the provided identifiers. Defaults to the current LUSID system datetime if not specified.")] = None, success_mode : Annotated[Optional[constr(strict=True, max_length=64, min_length=1)], Field(description="Whether the batch request should fail Atomically or in a Partial fashion - Allowed Values: Atomic, Partial.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[BatchUpsertInstrumentPropertiesResponse, Awaitable[BatchUpsertInstrumentPropertiesResponse]]: # noqa: E501
81
- """[EARLY ACCESS] BatchUpsertInstrumentProperties: Batch upsert instruments properties # noqa: E501
81
+ """BatchUpsertInstrumentProperties: Batch upsert instruments properties # noqa: E501
82
82
 
83
83
  Create or update one or more properties for particular instruments. Each instrument property is updated if it exists and created if it does not. For any failures, a reason is provided. Properties have an <i>effectiveFrom</i> datetime from 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
84
84
  This method makes a synchronous HTTP request by default. To make an
@@ -116,7 +116,7 @@ class InstrumentsApi:
116
116
 
117
117
  @validate_arguments
118
118
  def batch_upsert_instrument_properties_with_http_info(self, request_body : Annotated[Dict[str, UpsertInstrumentPropertyRequest], Field(..., description="A list of instruments and associated instrument properties to create or update.")], scope : Annotated[Optional[constr(strict=True, max_length=64, min_length=1)], Field(description="The scope in which the instrument lies. When not supplied the scope is 'default'.")] = None, identifier_effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime used to resolve each instrument from the provided identifiers. Defaults to the current LUSID system datetime if not specified.")] = None, success_mode : Annotated[Optional[constr(strict=True, max_length=64, min_length=1)], Field(description="Whether the batch request should fail Atomically or in a Partial fashion - Allowed Values: Atomic, Partial.")] = None, **kwargs) -> ApiResponse: # noqa: E501
119
- """[EARLY ACCESS] BatchUpsertInstrumentProperties: Batch upsert instruments properties # noqa: E501
119
+ """BatchUpsertInstrumentProperties: Batch upsert instruments properties # noqa: E501
120
120
 
121
121
  Create or update one or more properties for particular instruments. Each instrument property is updated if it exists and created if it does not. For any failures, a reason is provided. Properties have an <i>effectiveFrom</i> datetime from 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
122
122
  This method makes a synchronous HTTP request by default. To make an
@@ -1886,7 +1886,7 @@ class InstrumentsApi:
1886
1886
 
1887
1887
  @validate_arguments
1888
1888
  def get_instrument_properties(self, identifier_type : Annotated[StrictStr, Field(..., description="The unique identifier type to search, for example 'Figi'.")], identifier : Annotated[StrictStr, Field(..., description="An <i>identifierType</i> value to use to identify the instrument, for example 'BBG000BLNNV0'.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to list the instrument's properties. Defaults to the current LUSID system datetime if not specified.")] = None, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list the instrument's properties. Defaults to returning the latest version of each property if not specified.")] = None, scope : Annotated[Optional[constr(strict=True, max_length=64, min_length=1)], Field(description="The scope in which the instrument lies. When not supplied the scope is 'default'.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[InstrumentProperties, Awaitable[InstrumentProperties]]: # noqa: E501
1889
- """[EARLY ACCESS] GetInstrumentProperties: Get instrument properties # noqa: E501
1889
+ """GetInstrumentProperties: Get instrument properties # noqa: E501
1890
1890
 
1891
1891
  List all the properties of a particular instrument, as identified by a particular unique identifier. # noqa: E501
1892
1892
  This method makes a synchronous HTTP request by default. To make an
@@ -1926,7 +1926,7 @@ class InstrumentsApi:
1926
1926
 
1927
1927
  @validate_arguments
1928
1928
  def get_instrument_properties_with_http_info(self, identifier_type : Annotated[StrictStr, Field(..., description="The unique identifier type to search, for example 'Figi'.")], identifier : Annotated[StrictStr, Field(..., description="An <i>identifierType</i> value to use to identify the instrument, for example 'BBG000BLNNV0'.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to list the instrument's properties. Defaults to the current LUSID system datetime if not specified.")] = None, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list the instrument's properties. Defaults to returning the latest version of each property if not specified.")] = None, scope : Annotated[Optional[constr(strict=True, max_length=64, min_length=1)], Field(description="The scope in which the instrument lies. When not supplied the scope is 'default'.")] = None, **kwargs) -> ApiResponse: # noqa: E501
1929
- """[EARLY ACCESS] GetInstrumentProperties: Get instrument properties # noqa: E501
1929
+ """GetInstrumentProperties: Get instrument properties # noqa: E501
1930
1930
 
1931
1931
  List all the properties of a particular instrument, as identified by a particular unique identifier. # noqa: E501
1932
1932
  This method makes a synchronous HTTP request by default. To make an
@@ -2072,7 +2072,7 @@ class InstrumentsApi:
2072
2072
 
2073
2073
  @validate_arguments
2074
2074
  def get_instrument_property_time_series(self, identifier_type : Annotated[StrictStr, Field(..., description="The unique identifier type to search, for example 'Figi'.")], identifier : Annotated[StrictStr, Field(..., description="An <i>identifierType</i> value to use to identify the instrument, for example 'BBG000BLNNV0'.")], property_key : Annotated[StrictStr, Field(..., description="The property key of a property from the 'Instrument' domain whose history to retrieve. This must have the format {domain}/{scope}/{code}, for example 'Instrument/system/Name'.")], identifier_effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime used to resolve the instrument from the identifier. Defaults to the current LUSID system datetime if not specified.")] = None, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the instrument's property history. Defaults to returning the current datetime if not supplied.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the results. For more information about filtering, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing properties; this value is returned from the previous call. If a pagination token is provided, the <i>filter</i>, <i>effectiveAt</i> and <i>asAt</i> fields must not have changed since the original request. For more information, see https://support.lusid.com/knowledgebase/article/KA-01915.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the results to this number.")] = None, scope : Annotated[Optional[constr(strict=True, max_length=64, min_length=1)], Field(description="The scope in which the instrument lies. When not supplied the scope is 'default'.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[ResourceListOfPropertyInterval, Awaitable[ResourceListOfPropertyInterval]]: # noqa: E501
2075
- """[EARLY ACCESS] GetInstrumentPropertyTimeSeries: Get instrument property time series # noqa: E501
2075
+ """GetInstrumentPropertyTimeSeries: Get instrument property time series # noqa: E501
2076
2076
 
2077
2077
  Retrieve the complete time series (history) for a particular property of an instrument. # noqa: E501
2078
2078
  This method makes a synchronous HTTP request by default. To make an
@@ -2120,7 +2120,7 @@ class InstrumentsApi:
2120
2120
 
2121
2121
  @validate_arguments
2122
2122
  def get_instrument_property_time_series_with_http_info(self, identifier_type : Annotated[StrictStr, Field(..., description="The unique identifier type to search, for example 'Figi'.")], identifier : Annotated[StrictStr, Field(..., description="An <i>identifierType</i> value to use to identify the instrument, for example 'BBG000BLNNV0'.")], property_key : Annotated[StrictStr, Field(..., description="The property key of a property from the 'Instrument' domain whose history to retrieve. This must have the format {domain}/{scope}/{code}, for example 'Instrument/system/Name'.")], identifier_effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime used to resolve the instrument from the identifier. Defaults to the current LUSID system datetime if not specified.")] = None, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the instrument's property history. Defaults to returning the current datetime if not supplied.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the results. For more information about filtering, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing properties; this value is returned from the previous call. If a pagination token is provided, the <i>filter</i>, <i>effectiveAt</i> and <i>asAt</i> fields must not have changed since the original request. For more information, see https://support.lusid.com/knowledgebase/article/KA-01915.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the results to this number.")] = None, scope : Annotated[Optional[constr(strict=True, max_length=64, min_length=1)], Field(description="The scope in which the instrument lies. When not supplied the scope is 'default'.")] = None, **kwargs) -> ApiResponse: # noqa: E501
2123
- """[EARLY ACCESS] GetInstrumentPropertyTimeSeries: Get instrument property time series # noqa: E501
2123
+ """GetInstrumentPropertyTimeSeries: Get instrument property time series # noqa: E501
2124
2124
 
2125
2125
  Retrieve the complete time series (history) for a particular property of an instrument. # noqa: E501
2126
2126
  This method makes a synchronous HTTP request by default. To make an
@@ -239,7 +239,7 @@ class LegalEntitiesApi:
239
239
 
240
240
  @validate_arguments
241
241
  def delete_legal_entity_access_metadata(self, id_type_scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Scope of the Legal Entity identifier.")], id_type_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Code of the Legal Entity identifier.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Code of the Legal Entity under specified identifier type's scope and code.")], metadata_key : Annotated[constr(strict=True, max_length=100, min_length=1), Field(..., description="Key of the metadata entry to retrieve")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective date to delete at, if this is not supplied, it will delete all data found")] = None, effective_until : Annotated[Optional[datetime], Field(description="The effective date until which the delete is valid. If not supplied this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[DeletedEntityResponse, Awaitable[DeletedEntityResponse]]: # noqa: E501
242
- """[EARLY ACCESS] DeleteLegalEntityAccessMetadata: Delete a Legal Entity Access Metadata entry # noqa: E501
242
+ """DeleteLegalEntityAccessMetadata: Delete a Legal Entity Access Metadata entry # noqa: E501
243
243
 
244
244
  Deletes the Legal Entity Access Metadata entry that exactly matches the provided identifier parts. It is important to always check to verify success (or failure). # noqa: E501
245
245
  This method makes a synchronous HTTP request by default. To make an
@@ -281,7 +281,7 @@ class LegalEntitiesApi:
281
281
 
282
282
  @validate_arguments
283
283
  def delete_legal_entity_access_metadata_with_http_info(self, id_type_scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Scope of the Legal Entity identifier.")], id_type_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Code of the Legal Entity identifier.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Code of the Legal Entity under specified identifier type's scope and code.")], metadata_key : Annotated[constr(strict=True, max_length=100, min_length=1), Field(..., description="Key of the metadata entry to retrieve")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective date to delete at, if this is not supplied, it will delete all data found")] = None, effective_until : Annotated[Optional[datetime], Field(description="The effective date until which the delete is valid. If not supplied this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata")] = None, **kwargs) -> ApiResponse: # noqa: E501
284
- """[EARLY ACCESS] DeleteLegalEntityAccessMetadata: Delete a Legal Entity Access Metadata entry # noqa: E501
284
+ """DeleteLegalEntityAccessMetadata: Delete a Legal Entity Access Metadata entry # noqa: E501
285
285
 
286
286
  Deletes the Legal Entity Access Metadata entry that exactly matches the provided identifier parts. It is important to always check to verify success (or failure). # noqa: E501
287
287
  This method makes a synchronous HTTP request by default. To make an
@@ -3332,7 +3332,7 @@ class LegalEntitiesApi:
3332
3332
 
3333
3333
  @validate_arguments
3334
3334
  def upsert_legal_entity_access_metadata(self, id_type_scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Scope of the Legal Entity identifier.")], id_type_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Code of the Legal Entity identifier.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Code of the Legal Entity under specified identifier type's scope and code.")], metadata_key : Annotated[constr(strict=True, max_length=100, min_length=1), Field(..., description="Key of the metadata entry to retrieve")], upsert_legal_entity_access_metadata_request : Annotated[UpsertLegalEntityAccessMetadataRequest, Field(..., description="The Legal Entity Access Metadata entry to upsert")], effective_at : Annotated[Optional[StrictStr], Field(description="The effectiveAt datetime at which to upsert the Access Metadata")] = None, effective_until : Annotated[Optional[datetime], Field(description="The effective datetime until which the Access Metadata is valid. If not supplied this will be valid indefinitely, or until the next 'effectiveAt' datetime of the Access Metadata")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[ResourceListOfAccessMetadataValueOf, Awaitable[ResourceListOfAccessMetadataValueOf]]: # noqa: E501
3335
- """[EARLY ACCESS] UpsertLegalEntityAccessMetadata: Upsert a Legal Entity Access Metadata entry associated with a specific metadataKey. This creates or updates the data in LUSID. # noqa: E501
3335
+ """UpsertLegalEntityAccessMetadata: Upsert a Legal Entity Access Metadata entry associated with a specific metadataKey. This creates or updates the data in LUSID. # noqa: E501
3336
3336
 
3337
3337
  Update or insert one Legal Entity Access Metadata entry in a single scope. An item will be updated if it already exists and inserted if it does not. The response will return the successfully updated or inserted Legal Entity Access Metadata rule or failure message if unsuccessful. It is important to always check to verify success (or failure). Multiple rules for a metadataKey can exist with different effective at dates, when resources are accessed the rule that is active for the current time will be fetched. # noqa: E501
3338
3338
  This method makes a synchronous HTTP request by default. To make an
@@ -3376,7 +3376,7 @@ class LegalEntitiesApi:
3376
3376
 
3377
3377
  @validate_arguments
3378
3378
  def upsert_legal_entity_access_metadata_with_http_info(self, id_type_scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Scope of the Legal Entity identifier.")], id_type_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Code of the Legal Entity identifier.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Code of the Legal Entity under specified identifier type's scope and code.")], metadata_key : Annotated[constr(strict=True, max_length=100, min_length=1), Field(..., description="Key of the metadata entry to retrieve")], upsert_legal_entity_access_metadata_request : Annotated[UpsertLegalEntityAccessMetadataRequest, Field(..., description="The Legal Entity Access Metadata entry to upsert")], effective_at : Annotated[Optional[StrictStr], Field(description="The effectiveAt datetime at which to upsert the Access Metadata")] = None, effective_until : Annotated[Optional[datetime], Field(description="The effective datetime until which the Access Metadata is valid. If not supplied this will be valid indefinitely, or until the next 'effectiveAt' datetime of the Access Metadata")] = None, **kwargs) -> ApiResponse: # noqa: E501
3379
- """[EARLY ACCESS] UpsertLegalEntityAccessMetadata: Upsert a Legal Entity Access Metadata entry associated with a specific metadataKey. This creates or updates the data in LUSID. # noqa: E501
3379
+ """UpsertLegalEntityAccessMetadata: Upsert a Legal Entity Access Metadata entry associated with a specific metadataKey. This creates or updates the data in LUSID. # noqa: E501
3380
3380
 
3381
3381
  Update or insert one Legal Entity Access Metadata entry in a single scope. An item will be updated if it already exists and inserted if it does not. The response will return the successfully updated or inserted Legal Entity Access Metadata rule or failure message if unsuccessful. It is important to always check to verify success (or failure). Multiple rules for a metadataKey can exist with different effective at dates, when resources are accessed the rule that is active for the current time will be fetched. # noqa: E501
3382
3382
  This method makes a synchronous HTTP request by default. To make an
@@ -59,7 +59,7 @@ class OrderGraphApi:
59
59
 
60
60
  @validate_arguments
61
61
  def list_order_graph_blocks(self, as_at : Annotated[Optional[datetime], Field(description="See https://support.lusid.com/knowledgebase/article/KA-01832/")] = None, pagination_token : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="See https://support.lusid.com/knowledgebase/article/KA-01915/")] = None, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names or properties to sort by, each suffixed by \" ASC\" or \" DESC\".")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="See https://support.lusid.com/knowledgebase/article/KA-01915/")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="See https://support.lusid.com/knowledgebase/article/KA-01914/")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="Must be block-level properties. See https://support.lusid.com/knowledgebase/article/KA-01855/")] = None, use_compliance_v2 : Annotated[Optional[StrictBool], Field(description="Whether to use the V2 compliance engine when deriving compliance statuses for orders. (default: false)")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[PagedResourceListOfOrderGraphBlock, Awaitable[PagedResourceListOfOrderGraphBlock]]: # noqa: E501
62
- """[EARLY ACCESS] ListOrderGraphBlocks: Lists blocks that pass the filter provided, and builds a summary picture of the state of their associated order entities. # noqa: E501
62
+ """ListOrderGraphBlocks: Lists blocks that pass the filter provided, and builds a summary picture of the state of their associated order entities. # noqa: E501
63
63
 
64
64
  Lists all blocks of orders, subject to the filter, along with the IDs of orders, placements, allocations and executions in the block, the total quantities of each, and a simple text field describing the overall state. # noqa: E501
65
65
  This method makes a synchronous HTTP request by default. To make an
@@ -103,7 +103,7 @@ class OrderGraphApi:
103
103
 
104
104
  @validate_arguments
105
105
  def list_order_graph_blocks_with_http_info(self, as_at : Annotated[Optional[datetime], Field(description="See https://support.lusid.com/knowledgebase/article/KA-01832/")] = None, pagination_token : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="See https://support.lusid.com/knowledgebase/article/KA-01915/")] = None, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names or properties to sort by, each suffixed by \" ASC\" or \" DESC\".")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="See https://support.lusid.com/knowledgebase/article/KA-01915/")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="See https://support.lusid.com/knowledgebase/article/KA-01914/")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="Must be block-level properties. See https://support.lusid.com/knowledgebase/article/KA-01855/")] = None, use_compliance_v2 : Annotated[Optional[StrictBool], Field(description="Whether to use the V2 compliance engine when deriving compliance statuses for orders. (default: false)")] = None, **kwargs) -> ApiResponse: # noqa: E501
106
- """[EARLY ACCESS] ListOrderGraphBlocks: Lists blocks that pass the filter provided, and builds a summary picture of the state of their associated order entities. # noqa: E501
106
+ """ListOrderGraphBlocks: Lists blocks that pass the filter provided, and builds a summary picture of the state of their associated order entities. # noqa: E501
107
107
 
108
108
  Lists all blocks of orders, subject to the filter, along with the IDs of orders, placements, allocations and executions in the block, the total quantities of each, and a simple text field describing the overall state. # noqa: E501
109
109
  This method makes a synchronous HTTP request by default. To make an
@@ -467,7 +467,7 @@ class OrderGraphApi:
467
467
 
468
468
  @validate_arguments
469
469
  def list_order_graph_placements(self, as_at : Annotated[Optional[datetime], Field(description="See https://support.lusid.com/knowledgebase/article/KA-01832/")] = None, pagination_token : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="See https://support.lusid.com/knowledgebase/article/KA-01915/")] = None, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names or properties to sort by, each suffixed by \" ASC\" or \" DESC\".")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="See https://support.lusid.com/knowledgebase/article/KA-01915/")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="See https://support.lusid.com/knowledgebase/article/KA-01914/")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="Must be placement properties. See https://support.lusid.com/knowledgebase/article/KA-01855/")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[PagedResourceListOfOrderGraphPlacement, Awaitable[PagedResourceListOfOrderGraphPlacement]]: # noqa: E501
470
- """[EARLY ACCESS] ListOrderGraphPlacements: Lists placements that pass the filter provided, and builds a summary picture of the state of their associated order entities. # noqa: E501
470
+ """ListOrderGraphPlacements: Lists placements that pass the filter provided, and builds a summary picture of the state of their associated order entities. # noqa: E501
471
471
 
472
472
  Lists all order placements, subject to the filter, along with the IDs of the block and order that the placement is for, each placement's quantity, the IDs of all allocations and executions in the placement and the total quantities of those, and a simple text field describing the overall state of the placement. # noqa: E501
473
473
  This method makes a synchronous HTTP request by default. To make an
@@ -509,7 +509,7 @@ class OrderGraphApi:
509
509
 
510
510
  @validate_arguments
511
511
  def list_order_graph_placements_with_http_info(self, as_at : Annotated[Optional[datetime], Field(description="See https://support.lusid.com/knowledgebase/article/KA-01832/")] = None, pagination_token : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="See https://support.lusid.com/knowledgebase/article/KA-01915/")] = None, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names or properties to sort by, each suffixed by \" ASC\" or \" DESC\".")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="See https://support.lusid.com/knowledgebase/article/KA-01915/")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="See https://support.lusid.com/knowledgebase/article/KA-01914/")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="Must be placement properties. See https://support.lusid.com/knowledgebase/article/KA-01855/")] = None, **kwargs) -> ApiResponse: # noqa: E501
512
- """[EARLY ACCESS] ListOrderGraphPlacements: Lists placements that pass the filter provided, and builds a summary picture of the state of their associated order entities. # noqa: E501
512
+ """ListOrderGraphPlacements: Lists placements that pass the filter provided, and builds a summary picture of the state of their associated order entities. # noqa: E501
513
513
 
514
514
  Lists all order placements, subject to the filter, along with the IDs of the block and order that the placement is for, each placement's quantity, the IDs of all allocations and executions in the placement and the total quantities of those, and a simple text field describing the overall state of the placement. # noqa: E501
515
515
  This method makes a synchronous HTTP request by default. To make an
@@ -20,6 +20,8 @@ from pydantic.v1 import validate_arguments, ValidationError
20
20
  from typing import overload, Optional, Union, Awaitable
21
21
 
22
22
  from typing_extensions import Annotated
23
+ from datetime import datetime
24
+
23
25
  from pydantic.v1 import Field, StrictBool, conlist, constr, validator
24
26
 
25
27
  from typing import Dict, Optional
@@ -36,7 +38,7 @@ from lusid.models.place_blocks_request import PlaceBlocksRequest
36
38
  from lusid.models.placement_update_request import PlacementUpdateRequest
37
39
  from lusid.models.resource_id import ResourceId
38
40
  from lusid.models.resource_list_of_block_and_orders import ResourceListOfBlockAndOrders
39
- from lusid.models.resource_list_of_entity_change_item import ResourceListOfEntityChangeItem
41
+ from lusid.models.resource_list_of_change_interval_with_order_management_detail import ResourceListOfChangeIntervalWithOrderManagementDetail
40
42
  from lusid.models.resource_list_of_moved_order_to_different_block_response import ResourceListOfMovedOrderToDifferentBlockResponse
41
43
  from lusid.models.resource_list_of_placement import ResourceListOfPlacement
42
44
  from lusid.models.update_orders_response import UpdateOrdersResponse
@@ -703,28 +705,30 @@ class OrderManagementApi:
703
705
  _request_auth=_params.get('_request_auth'))
704
706
 
705
707
  @overload
706
- async def get_order_history(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the order.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the order.")], **kwargs) -> ResourceListOfEntityChangeItem: # noqa: E501
708
+ async def get_order_history(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the order.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the order.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the history of the order and related entities. Defaults to return the latest version if not specified.")] = None, **kwargs) -> ResourceListOfChangeIntervalWithOrderManagementDetail: # noqa: E501
707
709
  ...
708
710
 
709
711
  @overload
710
- def get_order_history(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the order.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the order.")], async_req: Optional[bool]=True, **kwargs) -> ResourceListOfEntityChangeItem: # noqa: E501
712
+ def get_order_history(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the order.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the order.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the history of the order and related entities. Defaults to return the latest version if not specified.")] = None, async_req: Optional[bool]=True, **kwargs) -> ResourceListOfChangeIntervalWithOrderManagementDetail: # noqa: E501
711
713
  ...
712
714
 
713
715
  @validate_arguments
714
- def get_order_history(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the order.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the order.")], async_req: Optional[bool]=None, **kwargs) -> Union[ResourceListOfEntityChangeItem, Awaitable[ResourceListOfEntityChangeItem]]: # noqa: E501
716
+ def get_order_history(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the order.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the order.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the history of the order and related entities. Defaults to return the latest version if not specified.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[ResourceListOfChangeIntervalWithOrderManagementDetail, Awaitable[ResourceListOfChangeIntervalWithOrderManagementDetail]]: # noqa: E501
715
717
  """[EXPERIMENTAL] GetOrderHistory: Get the history of an order and related entity changes # noqa: E501
716
718
 
717
719
  Get the changes that have happened to an order and related entities. # noqa: E501
718
720
  This method makes a synchronous HTTP request by default. To make an
719
721
  asynchronous HTTP request, please pass async_req=True
720
722
 
721
- >>> thread = api.get_order_history(scope, code, async_req=True)
723
+ >>> thread = api.get_order_history(scope, code, as_at, async_req=True)
722
724
  >>> result = thread.get()
723
725
 
724
726
  :param scope: The scope of the order. (required)
725
727
  :type scope: str
726
728
  :param code: The code of the order. (required)
727
729
  :type code: str
730
+ :param as_at: The asAt datetime at which to retrieve the history of the order and related entities. Defaults to return the latest version if not specified.
731
+ :type as_at: datetime
728
732
  :param async_req: Whether to execute the request asynchronously.
729
733
  :type async_req: bool, optional
730
734
  :param _request_timeout: timeout setting for this request.
@@ -734,7 +738,7 @@ class OrderManagementApi:
734
738
  :return: Returns the result object.
735
739
  If the method is called asynchronously,
736
740
  returns the request thread.
737
- :rtype: ResourceListOfEntityChangeItem
741
+ :rtype: ResourceListOfChangeIntervalWithOrderManagementDetail
738
742
  """
739
743
  kwargs['_return_http_data_only'] = True
740
744
  if '_preload_content' in kwargs:
@@ -742,23 +746,25 @@ class OrderManagementApi:
742
746
  raise ValueError(message)
743
747
  if async_req is not None:
744
748
  kwargs['async_req'] = async_req
745
- return self.get_order_history_with_http_info(scope, code, **kwargs) # noqa: E501
749
+ return self.get_order_history_with_http_info(scope, code, as_at, **kwargs) # noqa: E501
746
750
 
747
751
  @validate_arguments
748
- def get_order_history_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the order.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the order.")], **kwargs) -> ApiResponse: # noqa: E501
752
+ def get_order_history_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the order.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the order.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the history of the order and related entities. Defaults to return the latest version if not specified.")] = None, **kwargs) -> ApiResponse: # noqa: E501
749
753
  """[EXPERIMENTAL] GetOrderHistory: Get the history of an order and related entity changes # noqa: E501
750
754
 
751
755
  Get the changes that have happened to an order and related entities. # noqa: E501
752
756
  This method makes a synchronous HTTP request by default. To make an
753
757
  asynchronous HTTP request, please pass async_req=True
754
758
 
755
- >>> thread = api.get_order_history_with_http_info(scope, code, async_req=True)
759
+ >>> thread = api.get_order_history_with_http_info(scope, code, as_at, async_req=True)
756
760
  >>> result = thread.get()
757
761
 
758
762
  :param scope: The scope of the order. (required)
759
763
  :type scope: str
760
764
  :param code: The code of the order. (required)
761
765
  :type code: str
766
+ :param as_at: The asAt datetime at which to retrieve the history of the order and related entities. Defaults to return the latest version if not specified.
767
+ :type as_at: datetime
762
768
  :param async_req: Whether to execute the request asynchronously.
763
769
  :type async_req: bool, optional
764
770
  :param _preload_content: if False, the ApiResponse.data will
@@ -781,14 +787,15 @@ class OrderManagementApi:
781
787
  :return: Returns the result object.
782
788
  If the method is called asynchronously,
783
789
  returns the request thread.
784
- :rtype: tuple(ResourceListOfEntityChangeItem, status_code(int), headers(HTTPHeaderDict))
790
+ :rtype: tuple(ResourceListOfChangeIntervalWithOrderManagementDetail, status_code(int), headers(HTTPHeaderDict))
785
791
  """
786
792
 
787
793
  _params = locals()
788
794
 
789
795
  _all_params = [
790
796
  'scope',
791
- 'code'
797
+ 'code',
798
+ 'as_at'
792
799
  ]
793
800
  _all_params.extend(
794
801
  [
@@ -825,6 +832,12 @@ class OrderManagementApi:
825
832
 
826
833
  # process the query parameters
827
834
  _query_params = []
835
+ if _params.get('as_at') is not None: # noqa: E501
836
+ if isinstance(_params['as_at'], datetime):
837
+ _query_params.append(('asAt', _params['as_at'].strftime(self.api_client.configuration.datetime_format)))
838
+ else:
839
+ _query_params.append(('asAt', _params['as_at']))
840
+
828
841
  # process the header parameters
829
842
  _header_params = dict(_params.get('_headers', {}))
830
843
  # process the form parameters
@@ -840,7 +853,7 @@ class OrderManagementApi:
840
853
  _auth_settings = ['oauth2'] # noqa: E501
841
854
 
842
855
  _response_types_map = {
843
- '200': "ResourceListOfEntityChangeItem",
856
+ '200': "ResourceListOfChangeIntervalWithOrderManagementDetail",
844
857
  '400': "LusidValidationProblemDetails",
845
858
  '404': "str",
846
859
  }
lusid/api/persons_api.py CHANGED
@@ -72,7 +72,7 @@ class PersonsApi:
72
72
 
73
73
  @validate_arguments
74
74
  def delete_person(self, id_type_scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the person identifier type.")], id_type_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the person identifier type.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Code of the person under specified identifier type scope and code. This together with defined identifier type uniquely identifies the person to delete.")], async_req: Optional[bool]=None, **kwargs) -> Union[DeletedEntityResponse, Awaitable[DeletedEntityResponse]]: # noqa: E501
75
- """[EARLY ACCESS] DeletePerson: Delete person # noqa: E501
75
+ """DeletePerson: Delete person # noqa: E501
76
76
 
77
77
  Delete a person. Deletion will be valid from the person's creation datetime. This means that the person will no longer exist at any effective datetime from the asAt datetime of deletion. # noqa: E501
78
78
  This method makes a synchronous HTTP request by default. To make an
@@ -108,7 +108,7 @@ class PersonsApi:
108
108
 
109
109
  @validate_arguments
110
110
  def delete_person_with_http_info(self, id_type_scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the person identifier type.")], id_type_code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the person identifier type.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Code of the person under specified identifier type scope and code. This together with defined identifier type uniquely identifies the person to delete.")], **kwargs) -> ApiResponse: # noqa: E501
111
- """[EARLY ACCESS] DeletePerson: Delete person # noqa: E501
111
+ """DeletePerson: Delete person # noqa: E501
112
112
 
113
113
  Delete a person. Deletion will be valid from the person's creation datetime. This means that the person will no longer exist at any effective datetime from the asAt datetime of deletion. # noqa: E501
114
114
  This method makes a synchronous HTTP request by default. To make an
@@ -2990,7 +2990,7 @@ class PersonsApi:
2990
2990
 
2991
2991
  @validate_arguments
2992
2992
  def upsert_person(self, upsert_person_request : Annotated[UpsertPersonRequest, Field(..., description="Request to create or update a person.")], async_req: Optional[bool]=None, **kwargs) -> Union[Person, Awaitable[Person]]: # noqa: E501
2993
- """[EARLY ACCESS] UpsertPerson: Upsert Person # noqa: E501
2993
+ """UpsertPerson: Upsert Person # noqa: E501
2994
2994
 
2995
2995
  Create or update a new person under the specified scope. # noqa: E501
2996
2996
  This method makes a synchronous HTTP request by default. To make an
@@ -3022,7 +3022,7 @@ class PersonsApi:
3022
3022
 
3023
3023
  @validate_arguments
3024
3024
  def upsert_person_with_http_info(self, upsert_person_request : Annotated[UpsertPersonRequest, Field(..., description="Request to create or update a person.")], **kwargs) -> ApiResponse: # noqa: E501
3025
- """[EARLY ACCESS] UpsertPerson: Upsert Person # noqa: E501
3025
+ """UpsertPerson: Upsert Person # noqa: E501
3026
3026
 
3027
3027
  Create or update a new person under the specified scope. # noqa: E501
3028
3028
  This method makes a synchronous HTTP request by default. To make an
@@ -80,30 +80,30 @@ class PortfoliosApi:
80
80
  self.api_client = api_client
81
81
 
82
82
  @overload
83
- async def batch_upsert_portfolio_access_metadata(self, batch_upsert_portfolio_access_metadata_request : Annotated[BatchUpsertPortfolioAccessMetadataRequest, Field(..., description="The Portfolio Access Metadata Rule to update or insert")], effective_at : Annotated[Optional[StrictStr], Field(description="The date this rule will effective from")] = None, effective_until : Annotated[Optional[datetime], Field(description="The effective date until which the Access Metadata is valid. If not supplied this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata")] = None, **kwargs) -> BatchUpsertPortfolioAccessMetadataResponse: # noqa: E501
83
+ async def batch_upsert_portfolio_access_metadata(self, request_body : Annotated[Dict[str, BatchUpsertPortfolioAccessMetadataRequest], Field(..., description="The Access Metadata Rules to upsert and the Portfolio identifiers to upsert for")], effective_at : Annotated[Optional[StrictStr], Field(description="The date these rules will be effective from")] = None, effective_until : Annotated[Optional[StrictStr], Field(description="The effective date until which the Access Metadata is valid. If not supplied, this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata")] = None, **kwargs) -> BatchUpsertPortfolioAccessMetadataResponse: # noqa: E501
84
84
  ...
85
85
 
86
86
  @overload
87
- def batch_upsert_portfolio_access_metadata(self, batch_upsert_portfolio_access_metadata_request : Annotated[BatchUpsertPortfolioAccessMetadataRequest, Field(..., description="The Portfolio Access Metadata Rule to update or insert")], effective_at : Annotated[Optional[StrictStr], Field(description="The date this rule will effective from")] = None, effective_until : Annotated[Optional[datetime], Field(description="The effective date until which the Access Metadata is valid. If not supplied this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata")] = None, async_req: Optional[bool]=True, **kwargs) -> BatchUpsertPortfolioAccessMetadataResponse: # noqa: E501
87
+ def batch_upsert_portfolio_access_metadata(self, request_body : Annotated[Dict[str, BatchUpsertPortfolioAccessMetadataRequest], Field(..., description="The Access Metadata Rules to upsert and the Portfolio identifiers to upsert for")], effective_at : Annotated[Optional[StrictStr], Field(description="The date these rules will be effective from")] = None, effective_until : Annotated[Optional[StrictStr], Field(description="The effective date until which the Access Metadata is valid. If not supplied, this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata")] = None, async_req: Optional[bool]=True, **kwargs) -> BatchUpsertPortfolioAccessMetadataResponse: # noqa: E501
88
88
  ...
89
89
 
90
90
  @validate_arguments
91
- def batch_upsert_portfolio_access_metadata(self, batch_upsert_portfolio_access_metadata_request : Annotated[BatchUpsertPortfolioAccessMetadataRequest, Field(..., description="The Portfolio Access Metadata Rule to update or insert")], effective_at : Annotated[Optional[StrictStr], Field(description="The date this rule will effective from")] = None, effective_until : Annotated[Optional[datetime], Field(description="The effective date until which the Access Metadata is valid. If not supplied this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[BatchUpsertPortfolioAccessMetadataResponse, Awaitable[BatchUpsertPortfolioAccessMetadataResponse]]: # noqa: E501
92
- """[EXPERIMENTAL] BatchUpsertPortfolioAccessMetadata: Upsert multiple portfolio access metadata with different keys to multiple portfolios # noqa: E501
91
+ def batch_upsert_portfolio_access_metadata(self, request_body : Annotated[Dict[str, BatchUpsertPortfolioAccessMetadataRequest], Field(..., description="The Access Metadata Rules to upsert and the Portfolio identifiers to upsert for")], effective_at : Annotated[Optional[StrictStr], Field(description="The date these rules will be effective from")] = None, effective_until : Annotated[Optional[StrictStr], Field(description="The effective date until which the Access Metadata is valid. If not supplied, this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[BatchUpsertPortfolioAccessMetadataResponse, Awaitable[BatchUpsertPortfolioAccessMetadataResponse]]: # noqa: E501
92
+ """[EARLY ACCESS] BatchUpsertPortfolioAccessMetadata: Upsert multiple Portfolio Access Metadata Rules to multiple Portfolios # noqa: E501
93
93
 
94
- Update or insert multiple Portfolios Access Metadata Rule in multiple scopes. Items will be updated if it already exists and inserted if it does not. No other items will be affected The response will return the successfully updated or inserted Portfolio Access Metadata Rules or failure message if unsuccessful It is important to always check to verify success (or failure). Multiple rules for a metadataKey can exist with different effective at dates, when resources are accessed the rule that is active for the current time will be fetched # noqa: E501
94
+ Update or insert multiple Access Metadata rules for multiple Portfolios. Items will be updated if they already exist and inserted if they do not. No other items will be affected The response will return the successfully updated or inserted Portfolio Access Metadata Rules or a failure message if unsuccessful Multiple rules for a metadataKey can exist with different effective at dates, when resources are accessed the rule that is active for the current time will be fetched # noqa: E501
95
95
  This method makes a synchronous HTTP request by default. To make an
96
96
  asynchronous HTTP request, please pass async_req=True
97
97
 
98
- >>> thread = api.batch_upsert_portfolio_access_metadata(batch_upsert_portfolio_access_metadata_request, effective_at, effective_until, async_req=True)
98
+ >>> thread = api.batch_upsert_portfolio_access_metadata(request_body, effective_at, effective_until, async_req=True)
99
99
  >>> result = thread.get()
100
100
 
101
- :param batch_upsert_portfolio_access_metadata_request: The Portfolio Access Metadata Rule to update or insert (required)
102
- :type batch_upsert_portfolio_access_metadata_request: BatchUpsertPortfolioAccessMetadataRequest
103
- :param effective_at: The date this rule will effective from
101
+ :param request_body: The Access Metadata Rules to upsert and the Portfolio identifiers to upsert for (required)
102
+ :type request_body: Dict[str, BatchUpsertPortfolioAccessMetadataRequest]
103
+ :param effective_at: The date these rules will be effective from
104
104
  :type effective_at: str
105
- :param effective_until: The effective date until which the Access Metadata is valid. If not supplied this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata
106
- :type effective_until: datetime
105
+ :param effective_until: The effective date until which the Access Metadata is valid. If not supplied, this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata
106
+ :type effective_until: str
107
107
  :param async_req: Whether to execute the request asynchronously.
108
108
  :type async_req: bool, optional
109
109
  :param _request_timeout: timeout setting for this request.
@@ -121,25 +121,25 @@ class PortfoliosApi:
121
121
  raise ValueError(message)
122
122
  if async_req is not None:
123
123
  kwargs['async_req'] = async_req
124
- return self.batch_upsert_portfolio_access_metadata_with_http_info(batch_upsert_portfolio_access_metadata_request, effective_at, effective_until, **kwargs) # noqa: E501
124
+ return self.batch_upsert_portfolio_access_metadata_with_http_info(request_body, effective_at, effective_until, **kwargs) # noqa: E501
125
125
 
126
126
  @validate_arguments
127
- def batch_upsert_portfolio_access_metadata_with_http_info(self, batch_upsert_portfolio_access_metadata_request : Annotated[BatchUpsertPortfolioAccessMetadataRequest, Field(..., description="The Portfolio Access Metadata Rule to update or insert")], effective_at : Annotated[Optional[StrictStr], Field(description="The date this rule will effective from")] = None, effective_until : Annotated[Optional[datetime], Field(description="The effective date until which the Access Metadata is valid. If not supplied this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata")] = None, **kwargs) -> ApiResponse: # noqa: E501
128
- """[EXPERIMENTAL] BatchUpsertPortfolioAccessMetadata: Upsert multiple portfolio access metadata with different keys to multiple portfolios # noqa: E501
127
+ def batch_upsert_portfolio_access_metadata_with_http_info(self, request_body : Annotated[Dict[str, BatchUpsertPortfolioAccessMetadataRequest], Field(..., description="The Access Metadata Rules to upsert and the Portfolio identifiers to upsert for")], effective_at : Annotated[Optional[StrictStr], Field(description="The date these rules will be effective from")] = None, effective_until : Annotated[Optional[StrictStr], Field(description="The effective date until which the Access Metadata is valid. If not supplied, this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata")] = None, **kwargs) -> ApiResponse: # noqa: E501
128
+ """[EARLY ACCESS] BatchUpsertPortfolioAccessMetadata: Upsert multiple Portfolio Access Metadata Rules to multiple Portfolios # noqa: E501
129
129
 
130
- Update or insert multiple Portfolios Access Metadata Rule in multiple scopes. Items will be updated if it already exists and inserted if it does not. No other items will be affected The response will return the successfully updated or inserted Portfolio Access Metadata Rules or failure message if unsuccessful It is important to always check to verify success (or failure). Multiple rules for a metadataKey can exist with different effective at dates, when resources are accessed the rule that is active for the current time will be fetched # noqa: E501
130
+ Update or insert multiple Access Metadata rules for multiple Portfolios. Items will be updated if they already exist and inserted if they do not. No other items will be affected The response will return the successfully updated or inserted Portfolio Access Metadata Rules or a failure message if unsuccessful Multiple rules for a metadataKey can exist with different effective at dates, when resources are accessed the rule that is active for the current time will be fetched # noqa: E501
131
131
  This method makes a synchronous HTTP request by default. To make an
132
132
  asynchronous HTTP request, please pass async_req=True
133
133
 
134
- >>> thread = api.batch_upsert_portfolio_access_metadata_with_http_info(batch_upsert_portfolio_access_metadata_request, effective_at, effective_until, async_req=True)
134
+ >>> thread = api.batch_upsert_portfolio_access_metadata_with_http_info(request_body, effective_at, effective_until, async_req=True)
135
135
  >>> result = thread.get()
136
136
 
137
- :param batch_upsert_portfolio_access_metadata_request: The Portfolio Access Metadata Rule to update or insert (required)
138
- :type batch_upsert_portfolio_access_metadata_request: BatchUpsertPortfolioAccessMetadataRequest
139
- :param effective_at: The date this rule will effective from
137
+ :param request_body: The Access Metadata Rules to upsert and the Portfolio identifiers to upsert for (required)
138
+ :type request_body: Dict[str, BatchUpsertPortfolioAccessMetadataRequest]
139
+ :param effective_at: The date these rules will be effective from
140
140
  :type effective_at: str
141
- :param effective_until: The effective date until which the Access Metadata is valid. If not supplied this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata
142
- :type effective_until: datetime
141
+ :param effective_until: The effective date until which the Access Metadata is valid. If not supplied, this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata
142
+ :type effective_until: str
143
143
  :param async_req: Whether to execute the request asynchronously.
144
144
  :type async_req: bool, optional
145
145
  :param _preload_content: if False, the ApiResponse.data will
@@ -168,7 +168,7 @@ class PortfoliosApi:
168
168
  _params = locals()
169
169
 
170
170
  _all_params = [
171
- 'batch_upsert_portfolio_access_metadata_request',
171
+ 'request_body',
172
172
  'effective_at',
173
173
  'effective_until'
174
174
  ]
@@ -205,10 +205,7 @@ class PortfoliosApi:
205
205
  _query_params.append(('effectiveAt', _params['effective_at']))
206
206
 
207
207
  if _params.get('effective_until') is not None: # noqa: E501
208
- if isinstance(_params['effective_until'], datetime):
209
- _query_params.append(('effectiveUntil', _params['effective_until'].strftime(self.api_client.configuration.datetime_format)))
210
- else:
211
- _query_params.append(('effectiveUntil', _params['effective_until']))
208
+ _query_params.append(('effectiveUntil', _params['effective_until']))
212
209
 
213
210
  # process the header parameters
214
211
  _header_params = dict(_params.get('_headers', {}))
@@ -217,8 +214,8 @@ class PortfoliosApi:
217
214
  _files = {}
218
215
  # process the body parameter
219
216
  _body_params = None
220
- if _params['batch_upsert_portfolio_access_metadata_request'] is not None:
221
- _body_params = _params['batch_upsert_portfolio_access_metadata_request']
217
+ if _params['request_body'] is not None:
218
+ _body_params = _params['request_body']
222
219
 
223
220
  # set the HTTP header `Accept`
224
221
  _header_params['Accept'] = self.api_client.select_header_accept(
@@ -5532,7 +5529,7 @@ class PortfoliosApi:
5532
5529
 
5533
5530
  @validate_arguments
5534
5531
  def upsert_portfolio_access_metadata(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope to use when updating or inserting the Portfolio Access Metadata Rule.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Portfolio code")], metadata_key : Annotated[constr(strict=True, max_length=256, min_length=1), Field(..., description="Key of the access metadata to upsert")], upsert_portfolio_access_metadata_request : Annotated[UpsertPortfolioAccessMetadataRequest, Field(..., description="The Portfolio Access Metadata Rule to update or insert")], effective_at : Annotated[Optional[StrictStr], Field(description="The date this rule will effective from")] = None, effective_until : Annotated[Optional[datetime], Field(description="The effective date until which the Access Metadata is valid. If not supplied this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[ResourceListOfAccessMetadataValueOf, Awaitable[ResourceListOfAccessMetadataValueOf]]: # noqa: E501
5535
- """[EARLY ACCESS] UpsertPortfolioAccessMetadata: Upsert a Portfolio Access Metadata Rule associated with specific metadataKey. This creates or updates the data in LUSID. # noqa: E501
5532
+ """UpsertPortfolioAccessMetadata: Upsert a Portfolio Access Metadata Rule associated with specific metadataKey. This creates or updates the data in LUSID. # noqa: E501
5536
5533
 
5537
5534
  Update or insert one Portfolio Access Metadata Rule in a single scope. An item will be updated if it already exists and inserted if it does not. The response will return the successfully updated or inserted Portfolio Access Metadata Rule or failure message if unsuccessful It is important to always check to verify success (or failure). Multiple rules for a metadataKey can exists with different effective at dates, when resources are accessed the rule that is active for the current time will be fetched # noqa: E501
5538
5535
  This method makes a synchronous HTTP request by default. To make an
@@ -5574,7 +5571,7 @@ class PortfoliosApi:
5574
5571
 
5575
5572
  @validate_arguments
5576
5573
  def upsert_portfolio_access_metadata_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope to use when updating or inserting the Portfolio Access Metadata Rule.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="Portfolio code")], metadata_key : Annotated[constr(strict=True, max_length=256, min_length=1), Field(..., description="Key of the access metadata to upsert")], upsert_portfolio_access_metadata_request : Annotated[UpsertPortfolioAccessMetadataRequest, Field(..., description="The Portfolio Access Metadata Rule to update or insert")], effective_at : Annotated[Optional[StrictStr], Field(description="The date this rule will effective from")] = None, effective_until : Annotated[Optional[datetime], Field(description="The effective date until which the Access Metadata is valid. If not supplied this will be valid indefinitely, or until the next 'effectiveAt' date of the Access Metadata")] = None, **kwargs) -> ApiResponse: # noqa: E501
5577
- """[EARLY ACCESS] UpsertPortfolioAccessMetadata: Upsert a Portfolio Access Metadata Rule associated with specific metadataKey. This creates or updates the data in LUSID. # noqa: E501
5574
+ """UpsertPortfolioAccessMetadata: Upsert a Portfolio Access Metadata Rule associated with specific metadataKey. This creates or updates the data in LUSID. # noqa: E501
5578
5575
 
5579
5576
  Update or insert one Portfolio Access Metadata Rule in a single scope. An item will be updated if it already exists and inserted if it does not. The response will return the successfully updated or inserted Portfolio Access Metadata Rule or failure message if unsuccessful It is important to always check to verify success (or failure). Multiple rules for a metadataKey can exists with different effective at dates, when resources are accessed the rule that is active for the current time will be fetched # noqa: E501
5580
5577
  This method makes a synchronous HTTP request by default. To make an
@@ -220,7 +220,7 @@ class ReferenceListsApi:
220
220
 
221
221
  @validate_arguments
222
222
  def get_reference_list(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope to which the Reference List belongs.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The Reference List's unique identifier.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the Reference List. Defaults to return the latest version of the Reference List if not specified.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[ReferenceListResponse, Awaitable[ReferenceListResponse]]: # noqa: E501
223
- """[EARLY ACCESS] GetReferenceList: Get Reference List # noqa: E501
223
+ """GetReferenceList: Get Reference List # noqa: E501
224
224
 
225
225
  Retrieve a Reference List instance at a point in AsAt time. # noqa: E501
226
226
  This method makes a synchronous HTTP request by default. To make an
@@ -256,7 +256,7 @@ class ReferenceListsApi:
256
256
 
257
257
  @validate_arguments
258
258
  def get_reference_list_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope to which the Reference List belongs.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The Reference List's unique identifier.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the Reference List. Defaults to return the latest version of the Reference List if not specified.")] = None, **kwargs) -> ApiResponse: # noqa: E501
259
- """[EARLY ACCESS] GetReferenceList: Get Reference List # noqa: E501
259
+ """GetReferenceList: Get Reference List # noqa: E501
260
260
 
261
261
  Retrieve a Reference List instance at a point in AsAt time. # noqa: E501
262
262
  This method makes a synchronous HTTP request by default. To make an