lusid-sdk 2.1.110__py3-none-any.whl → 2.1.131__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 (47) hide show
  1. lusid/__init__.py +40 -0
  2. lusid/api/__init__.py +2 -0
  3. lusid/api/amortisation_rule_sets_api.py +175 -0
  4. lusid/api/compliance_api.py +502 -0
  5. lusid/api/fee_types_api.py +909 -0
  6. lusid/api/instrument_events_api.py +189 -0
  7. lusid/api/portfolio_groups_api.py +16 -8
  8. lusid/api/portfolios_api.py +212 -0
  9. lusid/api/transaction_portfolios_api.py +32 -16
  10. lusid/configuration.py +1 -1
  11. lusid/models/__init__.py +38 -0
  12. lusid/models/amortisation_rule_set.py +7 -11
  13. lusid/models/applicable_instrument_event.py +106 -0
  14. lusid/models/compliance_rule_template.py +153 -0
  15. lusid/models/compliance_step_request.py +76 -0
  16. lusid/models/compliance_step_type_request.py +42 -0
  17. lusid/models/compliance_template_variation_dto.py +112 -0
  18. lusid/models/compliance_template_variation_request.py +112 -0
  19. lusid/models/create_compliance_template_request.py +95 -0
  20. lusid/models/create_derived_property_definition_request.py +3 -3
  21. lusid/models/create_property_definition_request.py +3 -3
  22. lusid/models/diary_entry_request.py +1 -1
  23. lusid/models/fee_accrual.py +83 -0
  24. lusid/models/fee_type.py +115 -0
  25. lusid/models/fee_type_request.py +105 -0
  26. lusid/models/flow_conventions.py +1 -1
  27. lusid/models/operation.py +2 -2
  28. lusid/models/paged_resource_list_of_fee_type.py +113 -0
  29. lusid/models/paged_resource_list_of_instrument_event_instruction.py +113 -0
  30. lusid/models/portfolio_entity_id.py +2 -18
  31. lusid/models/portfolio_holding.py +19 -4
  32. lusid/models/property_definition.py +3 -3
  33. lusid/models/property_definition_search_result.py +3 -3
  34. lusid/models/property_domain.py +1 -0
  35. lusid/models/query_applicable_instrument_events_request.py +89 -0
  36. lusid/models/quote_access_metadata_rule_id.py +1 -1
  37. lusid/models/quote_series_id.py +1 -1
  38. lusid/models/resource_list_of_applicable_instrument_event.py +113 -0
  39. lusid/models/rules_interval.py +83 -0
  40. lusid/models/set_amortisation_rules_request.py +73 -0
  41. lusid/models/settlement_schedule.py +78 -0
  42. lusid/models/update_compliance_template_request.py +95 -0
  43. lusid/models/update_fee_type_request.py +96 -0
  44. lusid/models/valuation_point_data_response.py +15 -2
  45. {lusid_sdk-2.1.110.dist-info → lusid_sdk-2.1.131.dist-info}/METADATA +34 -4
  46. {lusid_sdk-2.1.110.dist-info → lusid_sdk-2.1.131.dist-info}/RECORD +47 -27
  47. {lusid_sdk-2.1.110.dist-info → lusid_sdk-2.1.131.dist-info}/WHEEL +0 -0
@@ -3314,22 +3314,22 @@ class TransactionPortfoliosApi:
3314
3314
  _request_auth=_params.get('_request_auth'))
3315
3315
 
3316
3316
  @overload
3317
- async def get_holdings(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the transaction portfolio.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the holdings of the transaction portfolio. 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 holdings of the transaction portfolio. Defaults to return the latest version if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set. For example, to filter on the Holding Type, use \"holdingType eq 'p'\". For more information about filtering LUSID results, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the \"Instrument\", \"Holding\", \"Custodian Account\" or \"Portfolio\" domain to decorate onto holdings. These must have the format {domain}/{scope}/{code}, for example \"Instrument/system/Name\" or \"Holding/system/Cost\".")] = None, by_taxlots : Annotated[Optional[StrictBool], Field(description="Whether or not to expand the holdings to return the underlying tax-lots. Defaults to False.")] = None, **kwargs) -> VersionedResourceListOfPortfolioHolding: # noqa: E501
3317
+ async def get_holdings(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the transaction portfolio.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the holdings of the transaction portfolio. 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 holdings of the transaction portfolio. Defaults to return the latest version if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set. For example, to filter on the Holding Type, use \"holdingType eq 'p'\". For more information about filtering LUSID results, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the \"Instrument\", \"Holding\", \"Custodian Account\" or \"Portfolio\" domain to decorate onto holdings. These must have the format {domain}/{scope}/{code}, for example \"Instrument/system/Name\" or \"Holding/system/Cost\".")] = None, by_taxlots : Annotated[Optional[StrictBool], Field(description="Whether or not to expand the holdings to return the underlying tax-lots. Defaults to False.")] = None, include_settlement_events_after_days : Annotated[Optional[StrictInt], Field(description="Number of days ahead to bring back settlements from, in relation to the specified effectiveAt")] = None, **kwargs) -> VersionedResourceListOfPortfolioHolding: # noqa: E501
3318
3318
  ...
3319
3319
 
3320
3320
  @overload
3321
- def get_holdings(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the transaction portfolio.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the holdings of the transaction portfolio. 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 holdings of the transaction portfolio. Defaults to return the latest version if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set. For example, to filter on the Holding Type, use \"holdingType eq 'p'\". For more information about filtering LUSID results, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the \"Instrument\", \"Holding\", \"Custodian Account\" or \"Portfolio\" domain to decorate onto holdings. These must have the format {domain}/{scope}/{code}, for example \"Instrument/system/Name\" or \"Holding/system/Cost\".")] = None, by_taxlots : Annotated[Optional[StrictBool], Field(description="Whether or not to expand the holdings to return the underlying tax-lots. Defaults to False.")] = None, async_req: Optional[bool]=True, **kwargs) -> VersionedResourceListOfPortfolioHolding: # noqa: E501
3321
+ def get_holdings(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the transaction portfolio.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the holdings of the transaction portfolio. 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 holdings of the transaction portfolio. Defaults to return the latest version if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set. For example, to filter on the Holding Type, use \"holdingType eq 'p'\". For more information about filtering LUSID results, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the \"Instrument\", \"Holding\", \"Custodian Account\" or \"Portfolio\" domain to decorate onto holdings. These must have the format {domain}/{scope}/{code}, for example \"Instrument/system/Name\" or \"Holding/system/Cost\".")] = None, by_taxlots : Annotated[Optional[StrictBool], Field(description="Whether or not to expand the holdings to return the underlying tax-lots. Defaults to False.")] = None, include_settlement_events_after_days : Annotated[Optional[StrictInt], Field(description="Number of days ahead to bring back settlements from, in relation to the specified effectiveAt")] = None, async_req: Optional[bool]=True, **kwargs) -> VersionedResourceListOfPortfolioHolding: # noqa: E501
3322
3322
  ...
3323
3323
 
3324
3324
  @validate_arguments
3325
- def get_holdings(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the transaction portfolio.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the holdings of the transaction portfolio. 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 holdings of the transaction portfolio. Defaults to return the latest version if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set. For example, to filter on the Holding Type, use \"holdingType eq 'p'\". For more information about filtering LUSID results, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the \"Instrument\", \"Holding\", \"Custodian Account\" or \"Portfolio\" domain to decorate onto holdings. These must have the format {domain}/{scope}/{code}, for example \"Instrument/system/Name\" or \"Holding/system/Cost\".")] = None, by_taxlots : Annotated[Optional[StrictBool], Field(description="Whether or not to expand the holdings to return the underlying tax-lots. Defaults to False.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[VersionedResourceListOfPortfolioHolding, Awaitable[VersionedResourceListOfPortfolioHolding]]: # noqa: E501
3325
+ def get_holdings(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the transaction portfolio.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the holdings of the transaction portfolio. 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 holdings of the transaction portfolio. Defaults to return the latest version if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set. For example, to filter on the Holding Type, use \"holdingType eq 'p'\". For more information about filtering LUSID results, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the \"Instrument\", \"Holding\", \"Custodian Account\" or \"Portfolio\" domain to decorate onto holdings. These must have the format {domain}/{scope}/{code}, for example \"Instrument/system/Name\" or \"Holding/system/Cost\".")] = None, by_taxlots : Annotated[Optional[StrictBool], Field(description="Whether or not to expand the holdings to return the underlying tax-lots. Defaults to False.")] = None, include_settlement_events_after_days : Annotated[Optional[StrictInt], Field(description="Number of days ahead to bring back settlements from, in relation to the specified effectiveAt")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[VersionedResourceListOfPortfolioHolding, Awaitable[VersionedResourceListOfPortfolioHolding]]: # noqa: E501
3326
3326
  """GetHoldings: Get holdings # noqa: E501
3327
3327
 
3328
3328
  Calculate holdings for a transaction portfolio. # noqa: E501
3329
3329
  This method makes a synchronous HTTP request by default. To make an
3330
3330
  asynchronous HTTP request, please pass async_req=True
3331
3331
 
3332
- >>> thread = api.get_holdings(scope, code, effective_at, as_at, filter, property_keys, by_taxlots, async_req=True)
3332
+ >>> thread = api.get_holdings(scope, code, effective_at, as_at, filter, property_keys, by_taxlots, include_settlement_events_after_days, async_req=True)
3333
3333
  >>> result = thread.get()
3334
3334
 
3335
3335
  :param scope: The scope of the transaction portfolio. (required)
@@ -3346,6 +3346,8 @@ class TransactionPortfoliosApi:
3346
3346
  :type property_keys: List[str]
3347
3347
  :param by_taxlots: Whether or not to expand the holdings to return the underlying tax-lots. Defaults to False.
3348
3348
  :type by_taxlots: bool
3349
+ :param include_settlement_events_after_days: Number of days ahead to bring back settlements from, in relation to the specified effectiveAt
3350
+ :type include_settlement_events_after_days: int
3349
3351
  :param async_req: Whether to execute the request asynchronously.
3350
3352
  :type async_req: bool, optional
3351
3353
  :param _request_timeout: timeout setting for this request.
@@ -3363,17 +3365,17 @@ class TransactionPortfoliosApi:
3363
3365
  raise ValueError(message)
3364
3366
  if async_req is not None:
3365
3367
  kwargs['async_req'] = async_req
3366
- return self.get_holdings_with_http_info(scope, code, effective_at, as_at, filter, property_keys, by_taxlots, **kwargs) # noqa: E501
3368
+ return self.get_holdings_with_http_info(scope, code, effective_at, as_at, filter, property_keys, by_taxlots, include_settlement_events_after_days, **kwargs) # noqa: E501
3367
3369
 
3368
3370
  @validate_arguments
3369
- def get_holdings_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the transaction portfolio.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the holdings of the transaction portfolio. 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 holdings of the transaction portfolio. Defaults to return the latest version if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set. For example, to filter on the Holding Type, use \"holdingType eq 'p'\". For more information about filtering LUSID results, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the \"Instrument\", \"Holding\", \"Custodian Account\" or \"Portfolio\" domain to decorate onto holdings. These must have the format {domain}/{scope}/{code}, for example \"Instrument/system/Name\" or \"Holding/system/Cost\".")] = None, by_taxlots : Annotated[Optional[StrictBool], Field(description="Whether or not to expand the holdings to return the underlying tax-lots. Defaults to False.")] = None, **kwargs) -> ApiResponse: # noqa: E501
3371
+ def get_holdings_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the transaction portfolio.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the holdings of the transaction portfolio. 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 holdings of the transaction portfolio. Defaults to return the latest version if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set. For example, to filter on the Holding Type, use \"holdingType eq 'p'\". For more information about filtering LUSID results, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the \"Instrument\", \"Holding\", \"Custodian Account\" or \"Portfolio\" domain to decorate onto holdings. These must have the format {domain}/{scope}/{code}, for example \"Instrument/system/Name\" or \"Holding/system/Cost\".")] = None, by_taxlots : Annotated[Optional[StrictBool], Field(description="Whether or not to expand the holdings to return the underlying tax-lots. Defaults to False.")] = None, include_settlement_events_after_days : Annotated[Optional[StrictInt], Field(description="Number of days ahead to bring back settlements from, in relation to the specified effectiveAt")] = None, **kwargs) -> ApiResponse: # noqa: E501
3370
3372
  """GetHoldings: Get holdings # noqa: E501
3371
3373
 
3372
3374
  Calculate holdings for a transaction portfolio. # noqa: E501
3373
3375
  This method makes a synchronous HTTP request by default. To make an
3374
3376
  asynchronous HTTP request, please pass async_req=True
3375
3377
 
3376
- >>> thread = api.get_holdings_with_http_info(scope, code, effective_at, as_at, filter, property_keys, by_taxlots, async_req=True)
3378
+ >>> thread = api.get_holdings_with_http_info(scope, code, effective_at, as_at, filter, property_keys, by_taxlots, include_settlement_events_after_days, async_req=True)
3377
3379
  >>> result = thread.get()
3378
3380
 
3379
3381
  :param scope: The scope of the transaction portfolio. (required)
@@ -3390,6 +3392,8 @@ class TransactionPortfoliosApi:
3390
3392
  :type property_keys: List[str]
3391
3393
  :param by_taxlots: Whether or not to expand the holdings to return the underlying tax-lots. Defaults to False.
3392
3394
  :type by_taxlots: bool
3395
+ :param include_settlement_events_after_days: Number of days ahead to bring back settlements from, in relation to the specified effectiveAt
3396
+ :type include_settlement_events_after_days: int
3393
3397
  :param async_req: Whether to execute the request asynchronously.
3394
3398
  :type async_req: bool, optional
3395
3399
  :param _preload_content: if False, the ApiResponse.data will
@@ -3424,7 +3428,8 @@ class TransactionPortfoliosApi:
3424
3428
  'as_at',
3425
3429
  'filter',
3426
3430
  'property_keys',
3427
- 'by_taxlots'
3431
+ 'by_taxlots',
3432
+ 'include_settlement_events_after_days'
3428
3433
  ]
3429
3434
  _all_params.extend(
3430
3435
  [
@@ -3480,6 +3485,9 @@ class TransactionPortfoliosApi:
3480
3485
  if _params.get('by_taxlots') is not None: # noqa: E501
3481
3486
  _query_params.append(('byTaxlots', _params['by_taxlots']))
3482
3487
 
3488
+ if _params.get('include_settlement_events_after_days') is not None: # noqa: E501
3489
+ _query_params.append(('includeSettlementEventsAfterDays', _params['include_settlement_events_after_days']))
3490
+
3483
3491
  # process the header parameters
3484
3492
  _header_params = dict(_params.get('_headers', {}))
3485
3493
  # process the form parameters
@@ -3704,22 +3712,22 @@ class TransactionPortfoliosApi:
3704
3712
  _request_auth=_params.get('_request_auth'))
3705
3713
 
3706
3714
  @overload
3707
- async def get_holdings_with_orders(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the transaction portfolio.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the holdings of the transaction portfolio. 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 holdings of the transaction portfolio. Defaults to return the latest version of the holdings if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set. For example, to filter on the Holding Type, use \"holdingType eq 'p'\" For more information about filtering LUSID results, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the \"Instrument\", \"Holding\" or \"Portfolio\" domain to decorate onto the holdings. These take the format {domain}/{scope}/{code} e.g. \"Instrument/system/Name\" or \"Holding/system/Cost\".")] = None, by_taxlots : Annotated[Optional[StrictBool], Field(description="Whether or not to expand the holdings to return the underlying tax-lots. Defaults to False.")] = None, recipe_id_scope : Annotated[Optional[StrictStr], Field(description="The scope of the given recipeId")] = None, recipe_id_code : Annotated[Optional[StrictStr], Field(description="The code of the given recipeId")] = None, **kwargs) -> VersionedResourceListWithWarningsOfPortfolioHolding: # noqa: E501
3715
+ async def get_holdings_with_orders(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the transaction portfolio.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the holdings of the transaction portfolio. 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 holdings of the transaction portfolio. Defaults to return the latest version of the holdings if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set. For example, to filter on the Holding Type, use \"holdingType eq 'p'\" For more information about filtering LUSID results, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the \"Instrument\", \"Holding\" or \"Portfolio\" domain to decorate onto the holdings. These take the format {domain}/{scope}/{code} e.g. \"Instrument/system/Name\" or \"Holding/system/Cost\".")] = None, by_taxlots : Annotated[Optional[StrictBool], Field(description="Whether or not to expand the holdings to return the underlying tax-lots. Defaults to False.")] = None, recipe_id_scope : Annotated[Optional[StrictStr], Field(description="The scope of the given recipeId")] = None, recipe_id_code : Annotated[Optional[StrictStr], Field(description="The code of the given recipeId")] = None, include_settlement_events_after_days : Annotated[Optional[StrictInt], Field(description="Number of days ahead to bring back settlements from, in relation to the specified effectiveAt")] = None, **kwargs) -> VersionedResourceListWithWarningsOfPortfolioHolding: # noqa: E501
3708
3716
  ...
3709
3717
 
3710
3718
  @overload
3711
- def get_holdings_with_orders(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the transaction portfolio.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the holdings of the transaction portfolio. 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 holdings of the transaction portfolio. Defaults to return the latest version of the holdings if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set. For example, to filter on the Holding Type, use \"holdingType eq 'p'\" For more information about filtering LUSID results, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the \"Instrument\", \"Holding\" or \"Portfolio\" domain to decorate onto the holdings. These take the format {domain}/{scope}/{code} e.g. \"Instrument/system/Name\" or \"Holding/system/Cost\".")] = None, by_taxlots : Annotated[Optional[StrictBool], Field(description="Whether or not to expand the holdings to return the underlying tax-lots. Defaults to False.")] = None, recipe_id_scope : Annotated[Optional[StrictStr], Field(description="The scope of the given recipeId")] = None, recipe_id_code : Annotated[Optional[StrictStr], Field(description="The code of the given recipeId")] = None, async_req: Optional[bool]=True, **kwargs) -> VersionedResourceListWithWarningsOfPortfolioHolding: # noqa: E501
3719
+ def get_holdings_with_orders(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the transaction portfolio.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the holdings of the transaction portfolio. 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 holdings of the transaction portfolio. Defaults to return the latest version of the holdings if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set. For example, to filter on the Holding Type, use \"holdingType eq 'p'\" For more information about filtering LUSID results, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the \"Instrument\", \"Holding\" or \"Portfolio\" domain to decorate onto the holdings. These take the format {domain}/{scope}/{code} e.g. \"Instrument/system/Name\" or \"Holding/system/Cost\".")] = None, by_taxlots : Annotated[Optional[StrictBool], Field(description="Whether or not to expand the holdings to return the underlying tax-lots. Defaults to False.")] = None, recipe_id_scope : Annotated[Optional[StrictStr], Field(description="The scope of the given recipeId")] = None, recipe_id_code : Annotated[Optional[StrictStr], Field(description="The code of the given recipeId")] = None, include_settlement_events_after_days : Annotated[Optional[StrictInt], Field(description="Number of days ahead to bring back settlements from, in relation to the specified effectiveAt")] = None, async_req: Optional[bool]=True, **kwargs) -> VersionedResourceListWithWarningsOfPortfolioHolding: # noqa: E501
3712
3720
  ...
3713
3721
 
3714
3722
  @validate_arguments
3715
- def get_holdings_with_orders(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the transaction portfolio.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the holdings of the transaction portfolio. 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 holdings of the transaction portfolio. Defaults to return the latest version of the holdings if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set. For example, to filter on the Holding Type, use \"holdingType eq 'p'\" For more information about filtering LUSID results, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the \"Instrument\", \"Holding\" or \"Portfolio\" domain to decorate onto the holdings. These take the format {domain}/{scope}/{code} e.g. \"Instrument/system/Name\" or \"Holding/system/Cost\".")] = None, by_taxlots : Annotated[Optional[StrictBool], Field(description="Whether or not to expand the holdings to return the underlying tax-lots. Defaults to False.")] = None, recipe_id_scope : Annotated[Optional[StrictStr], Field(description="The scope of the given recipeId")] = None, recipe_id_code : Annotated[Optional[StrictStr], Field(description="The code of the given recipeId")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[VersionedResourceListWithWarningsOfPortfolioHolding, Awaitable[VersionedResourceListWithWarningsOfPortfolioHolding]]: # noqa: E501
3723
+ def get_holdings_with_orders(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the transaction portfolio.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the holdings of the transaction portfolio. 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 holdings of the transaction portfolio. Defaults to return the latest version of the holdings if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set. For example, to filter on the Holding Type, use \"holdingType eq 'p'\" For more information about filtering LUSID results, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the \"Instrument\", \"Holding\" or \"Portfolio\" domain to decorate onto the holdings. These take the format {domain}/{scope}/{code} e.g. \"Instrument/system/Name\" or \"Holding/system/Cost\".")] = None, by_taxlots : Annotated[Optional[StrictBool], Field(description="Whether or not to expand the holdings to return the underlying tax-lots. Defaults to False.")] = None, recipe_id_scope : Annotated[Optional[StrictStr], Field(description="The scope of the given recipeId")] = None, recipe_id_code : Annotated[Optional[StrictStr], Field(description="The code of the given recipeId")] = None, include_settlement_events_after_days : Annotated[Optional[StrictInt], Field(description="Number of days ahead to bring back settlements from, in relation to the specified effectiveAt")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[VersionedResourceListWithWarningsOfPortfolioHolding, Awaitable[VersionedResourceListWithWarningsOfPortfolioHolding]]: # noqa: E501
3716
3724
  """[EXPERIMENTAL] GetHoldingsWithOrders: Get holdings with orders # noqa: E501
3717
3725
 
3718
3726
  Get the holdings of a transaction portfolio. Create virtual holdings for any outstanding orders, and account for order state/fulfillment; that is, treat outstanding orders (and related records) as if they had been realised at moment of query. # noqa: E501
3719
3727
  This method makes a synchronous HTTP request by default. To make an
3720
3728
  asynchronous HTTP request, please pass async_req=True
3721
3729
 
3722
- >>> thread = api.get_holdings_with_orders(scope, code, effective_at, as_at, filter, property_keys, by_taxlots, recipe_id_scope, recipe_id_code, async_req=True)
3730
+ >>> thread = api.get_holdings_with_orders(scope, code, effective_at, as_at, filter, property_keys, by_taxlots, recipe_id_scope, recipe_id_code, include_settlement_events_after_days, async_req=True)
3723
3731
  >>> result = thread.get()
3724
3732
 
3725
3733
  :param scope: The scope of the transaction portfolio. (required)
@@ -3740,6 +3748,8 @@ class TransactionPortfoliosApi:
3740
3748
  :type recipe_id_scope: str
3741
3749
  :param recipe_id_code: The code of the given recipeId
3742
3750
  :type recipe_id_code: str
3751
+ :param include_settlement_events_after_days: Number of days ahead to bring back settlements from, in relation to the specified effectiveAt
3752
+ :type include_settlement_events_after_days: int
3743
3753
  :param async_req: Whether to execute the request asynchronously.
3744
3754
  :type async_req: bool, optional
3745
3755
  :param _request_timeout: timeout setting for this request.
@@ -3757,17 +3767,17 @@ class TransactionPortfoliosApi:
3757
3767
  raise ValueError(message)
3758
3768
  if async_req is not None:
3759
3769
  kwargs['async_req'] = async_req
3760
- return self.get_holdings_with_orders_with_http_info(scope, code, effective_at, as_at, filter, property_keys, by_taxlots, recipe_id_scope, recipe_id_code, **kwargs) # noqa: E501
3770
+ return self.get_holdings_with_orders_with_http_info(scope, code, effective_at, as_at, filter, property_keys, by_taxlots, recipe_id_scope, recipe_id_code, include_settlement_events_after_days, **kwargs) # noqa: E501
3761
3771
 
3762
3772
  @validate_arguments
3763
- def get_holdings_with_orders_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the transaction portfolio.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the holdings of the transaction portfolio. 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 holdings of the transaction portfolio. Defaults to return the latest version of the holdings if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set. For example, to filter on the Holding Type, use \"holdingType eq 'p'\" For more information about filtering LUSID results, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the \"Instrument\", \"Holding\" or \"Portfolio\" domain to decorate onto the holdings. These take the format {domain}/{scope}/{code} e.g. \"Instrument/system/Name\" or \"Holding/system/Cost\".")] = None, by_taxlots : Annotated[Optional[StrictBool], Field(description="Whether or not to expand the holdings to return the underlying tax-lots. Defaults to False.")] = None, recipe_id_scope : Annotated[Optional[StrictStr], Field(description="The scope of the given recipeId")] = None, recipe_id_code : Annotated[Optional[StrictStr], Field(description="The code of the given recipeId")] = None, **kwargs) -> ApiResponse: # noqa: E501
3773
+ def get_holdings_with_orders_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the transaction portfolio.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the transaction portfolio. Together with the scope this uniquely identifies the transaction portfolio.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the holdings of the transaction portfolio. 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 holdings of the transaction portfolio. Defaults to return the latest version of the holdings if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set. For example, to filter on the Holding Type, use \"holdingType eq 'p'\" For more information about filtering LUSID results, see https://support.lusid.com/knowledgebase/article/KA-01914.")] = None, property_keys : Annotated[Optional[conlist(StrictStr)], Field(description="A list of property keys from the \"Instrument\", \"Holding\" or \"Portfolio\" domain to decorate onto the holdings. These take the format {domain}/{scope}/{code} e.g. \"Instrument/system/Name\" or \"Holding/system/Cost\".")] = None, by_taxlots : Annotated[Optional[StrictBool], Field(description="Whether or not to expand the holdings to return the underlying tax-lots. Defaults to False.")] = None, recipe_id_scope : Annotated[Optional[StrictStr], Field(description="The scope of the given recipeId")] = None, recipe_id_code : Annotated[Optional[StrictStr], Field(description="The code of the given recipeId")] = None, include_settlement_events_after_days : Annotated[Optional[StrictInt], Field(description="Number of days ahead to bring back settlements from, in relation to the specified effectiveAt")] = None, **kwargs) -> ApiResponse: # noqa: E501
3764
3774
  """[EXPERIMENTAL] GetHoldingsWithOrders: Get holdings with orders # noqa: E501
3765
3775
 
3766
3776
  Get the holdings of a transaction portfolio. Create virtual holdings for any outstanding orders, and account for order state/fulfillment; that is, treat outstanding orders (and related records) as if they had been realised at moment of query. # noqa: E501
3767
3777
  This method makes a synchronous HTTP request by default. To make an
3768
3778
  asynchronous HTTP request, please pass async_req=True
3769
3779
 
3770
- >>> thread = api.get_holdings_with_orders_with_http_info(scope, code, effective_at, as_at, filter, property_keys, by_taxlots, recipe_id_scope, recipe_id_code, async_req=True)
3780
+ >>> thread = api.get_holdings_with_orders_with_http_info(scope, code, effective_at, as_at, filter, property_keys, by_taxlots, recipe_id_scope, recipe_id_code, include_settlement_events_after_days, async_req=True)
3771
3781
  >>> result = thread.get()
3772
3782
 
3773
3783
  :param scope: The scope of the transaction portfolio. (required)
@@ -3788,6 +3798,8 @@ class TransactionPortfoliosApi:
3788
3798
  :type recipe_id_scope: str
3789
3799
  :param recipe_id_code: The code of the given recipeId
3790
3800
  :type recipe_id_code: str
3801
+ :param include_settlement_events_after_days: Number of days ahead to bring back settlements from, in relation to the specified effectiveAt
3802
+ :type include_settlement_events_after_days: int
3791
3803
  :param async_req: Whether to execute the request asynchronously.
3792
3804
  :type async_req: bool, optional
3793
3805
  :param _preload_content: if False, the ApiResponse.data will
@@ -3824,7 +3836,8 @@ class TransactionPortfoliosApi:
3824
3836
  'property_keys',
3825
3837
  'by_taxlots',
3826
3838
  'recipe_id_scope',
3827
- 'recipe_id_code'
3839
+ 'recipe_id_code',
3840
+ 'include_settlement_events_after_days'
3828
3841
  ]
3829
3842
  _all_params.extend(
3830
3843
  [
@@ -3886,6 +3899,9 @@ class TransactionPortfoliosApi:
3886
3899
  if _params.get('recipe_id_code') is not None: # noqa: E501
3887
3900
  _query_params.append(('recipeIdCode', _params['recipe_id_code']))
3888
3901
 
3902
+ if _params.get('include_settlement_events_after_days') is not None: # noqa: E501
3903
+ _query_params.append(('includeSettlementEventsAfterDays', _params['include_settlement_events_after_days']))
3904
+
3889
3905
  # process the header parameters
3890
3906
  _header_params = dict(_params.get('_headers', {}))
3891
3907
  # process the form parameters
lusid/configuration.py CHANGED
@@ -373,7 +373,7 @@ class Configuration:
373
373
  return "Python SDK Debug Report:\n"\
374
374
  "OS: {env}\n"\
375
375
  "Python Version: {pyversion}\n"\
376
- "Version of the API: 0.11.6544\n"\
376
+ "Version of the API: 0.11.6565\n"\
377
377
  "SDK Package Version: {package_version}".\
378
378
  format(env=sys.platform, pyversion=sys.version, package_version=package_version)
379
379
 
lusid/models/__init__.py CHANGED
@@ -69,6 +69,7 @@ from lusid.models.amortisation_rule_set import AmortisationRuleSet
69
69
  from lusid.models.annul_quotes_response import AnnulQuotesResponse
70
70
  from lusid.models.annul_single_structured_data_response import AnnulSingleStructuredDataResponse
71
71
  from lusid.models.annul_structured_data_response import AnnulStructuredDataResponse
72
+ from lusid.models.applicable_instrument_event import ApplicableInstrumentEvent
72
73
  from lusid.models.asset_class import AssetClass
73
74
  from lusid.models.asset_leg import AssetLeg
74
75
  from lusid.models.barrier import Barrier
@@ -149,17 +150,22 @@ from lusid.models.compliance_rule_result import ComplianceRuleResult
149
150
  from lusid.models.compliance_rule_result_detail import ComplianceRuleResultDetail
150
151
  from lusid.models.compliance_rule_result_portfolio_detail import ComplianceRuleResultPortfolioDetail
151
152
  from lusid.models.compliance_rule_result_v2 import ComplianceRuleResultV2
153
+ from lusid.models.compliance_rule_template import ComplianceRuleTemplate
152
154
  from lusid.models.compliance_rule_upsert_request import ComplianceRuleUpsertRequest
153
155
  from lusid.models.compliance_rule_upsert_response import ComplianceRuleUpsertResponse
154
156
  from lusid.models.compliance_run_info import ComplianceRunInfo
155
157
  from lusid.models.compliance_run_info_v2 import ComplianceRunInfoV2
156
158
  from lusid.models.compliance_step import ComplianceStep
159
+ from lusid.models.compliance_step_request import ComplianceStepRequest
157
160
  from lusid.models.compliance_step_type import ComplianceStepType
161
+ from lusid.models.compliance_step_type_request import ComplianceStepTypeRequest
158
162
  from lusid.models.compliance_summary_rule_result import ComplianceSummaryRuleResult
159
163
  from lusid.models.compliance_summary_rule_result_request import ComplianceSummaryRuleResultRequest
160
164
  from lusid.models.compliance_template import ComplianceTemplate
161
165
  from lusid.models.compliance_template_parameter import ComplianceTemplateParameter
162
166
  from lusid.models.compliance_template_variation import ComplianceTemplateVariation
167
+ from lusid.models.compliance_template_variation_dto import ComplianceTemplateVariationDto
168
+ from lusid.models.compliance_template_variation_request import ComplianceTemplateVariationRequest
163
169
  from lusid.models.component_transaction import ComponentTransaction
164
170
  from lusid.models.composite_breakdown import CompositeBreakdown
165
171
  from lusid.models.composite_breakdown_request import CompositeBreakdownRequest
@@ -183,6 +189,7 @@ from lusid.models.counterparty_signatory import CounterpartySignatory
183
189
  from lusid.models.create_address_key_definition_request import CreateAddressKeyDefinitionRequest
184
190
  from lusid.models.create_amortisation_rule_set_request import CreateAmortisationRuleSetRequest
185
191
  from lusid.models.create_calendar_request import CreateCalendarRequest
192
+ from lusid.models.create_compliance_template_request import CreateComplianceTemplateRequest
186
193
  from lusid.models.create_corporate_action_source_request import CreateCorporateActionSourceRequest
187
194
  from lusid.models.create_custom_entity_type_request import CreateCustomEntityTypeRequest
188
195
  from lusid.models.create_cut_label_definition_request import CreateCutLabelDefinitionRequest
@@ -297,9 +304,12 @@ from lusid.models.exercise_event import ExerciseEvent
297
304
  from lusid.models.exotic_instrument import ExoticInstrument
298
305
  from lusid.models.expanded_group import ExpandedGroup
299
306
  from lusid.models.expiry_event import ExpiryEvent
307
+ from lusid.models.fee_accrual import FeeAccrual
300
308
  from lusid.models.fee_rule import FeeRule
301
309
  from lusid.models.fee_rule_upsert_request import FeeRuleUpsertRequest
302
310
  from lusid.models.fee_rule_upsert_response import FeeRuleUpsertResponse
311
+ from lusid.models.fee_type import FeeType
312
+ from lusid.models.fee_type_request import FeeTypeRequest
303
313
  from lusid.models.field_definition import FieldDefinition
304
314
  from lusid.models.field_schema import FieldSchema
305
315
  from lusid.models.field_value import FieldValue
@@ -537,10 +547,12 @@ from lusid.models.paged_resource_list_of_data_type_summary import PagedResourceL
537
547
  from lusid.models.paged_resource_list_of_dialect_id import PagedResourceListOfDialectId
538
548
  from lusid.models.paged_resource_list_of_diary_entry import PagedResourceListOfDiaryEntry
539
549
  from lusid.models.paged_resource_list_of_execution import PagedResourceListOfExecution
550
+ from lusid.models.paged_resource_list_of_fee_type import PagedResourceListOfFeeType
540
551
  from lusid.models.paged_resource_list_of_fund import PagedResourceListOfFund
541
552
  from lusid.models.paged_resource_list_of_general_ledger_profile_response import PagedResourceListOfGeneralLedgerProfileResponse
542
553
  from lusid.models.paged_resource_list_of_instrument import PagedResourceListOfInstrument
543
554
  from lusid.models.paged_resource_list_of_instrument_event_holder import PagedResourceListOfInstrumentEventHolder
555
+ from lusid.models.paged_resource_list_of_instrument_event_instruction import PagedResourceListOfInstrumentEventInstruction
544
556
  from lusid.models.paged_resource_list_of_legal_entity import PagedResourceListOfLegalEntity
545
557
  from lusid.models.paged_resource_list_of_order import PagedResourceListOfOrder
546
558
  from lusid.models.paged_resource_list_of_order_graph_block import PagedResourceListOfOrderGraphBlock
@@ -633,6 +645,7 @@ from lusid.models.property_type import PropertyType
633
645
  from lusid.models.property_value import PropertyValue
634
646
  from lusid.models.property_value_equals import PropertyValueEquals
635
647
  from lusid.models.property_value_in import PropertyValueIn
648
+ from lusid.models.query_applicable_instrument_events_request import QueryApplicableInstrumentEventsRequest
636
649
  from lusid.models.query_bucketed_cash_flows_request import QueryBucketedCashFlowsRequest
637
650
  from lusid.models.query_cash_flows_request import QueryCashFlowsRequest
638
651
  from lusid.models.query_instrument_events_request import QueryInstrumentEventsRequest
@@ -694,6 +707,7 @@ from lusid.models.resource_list_of_address_key_definition import ResourceListOfA
694
707
  from lusid.models.resource_list_of_aggregated_return import ResourceListOfAggregatedReturn
695
708
  from lusid.models.resource_list_of_aggregation_query import ResourceListOfAggregationQuery
696
709
  from lusid.models.resource_list_of_allocation import ResourceListOfAllocation
710
+ from lusid.models.resource_list_of_applicable_instrument_event import ResourceListOfApplicableInstrumentEvent
697
711
  from lusid.models.resource_list_of_block import ResourceListOfBlock
698
712
  from lusid.models.resource_list_of_block_and_orders import ResourceListOfBlockAndOrders
699
713
  from lusid.models.resource_list_of_calendar_date import ResourceListOfCalendarDate
@@ -771,6 +785,7 @@ from lusid.models.reverse_stock_split_event import ReverseStockSplitEvent
771
785
  from lusid.models.rounding_configuration import RoundingConfiguration
772
786
  from lusid.models.rounding_configuration_component import RoundingConfigurationComponent
773
787
  from lusid.models.rounding_convention import RoundingConvention
788
+ from lusid.models.rules_interval import RulesInterval
774
789
  from lusid.models.scaling_methodology import ScalingMethodology
775
790
  from lusid.models.schedule import Schedule
776
791
  from lusid.models.schedule_type import ScheduleType
@@ -779,6 +794,7 @@ from lusid.models.scrip_dividend_event import ScripDividendEvent
779
794
  from lusid.models.script_map_reference import ScriptMapReference
780
795
  from lusid.models.security_election import SecurityElection
781
796
  from lusid.models.sequence_definition import SequenceDefinition
797
+ from lusid.models.set_amortisation_rules_request import SetAmortisationRulesRequest
782
798
  from lusid.models.set_legal_entity_identifiers_request import SetLegalEntityIdentifiersRequest
783
799
  from lusid.models.set_legal_entity_properties_request import SetLegalEntityPropertiesRequest
784
800
  from lusid.models.set_person_identifiers_request import SetPersonIdentifiersRequest
@@ -786,6 +802,7 @@ from lusid.models.set_person_properties_request import SetPersonPropertiesReques
786
802
  from lusid.models.set_share_class_instruments_request import SetShareClassInstrumentsRequest
787
803
  from lusid.models.set_transaction_configuration_alias import SetTransactionConfigurationAlias
788
804
  from lusid.models.set_transaction_configuration_source_request import SetTransactionConfigurationSourceRequest
805
+ from lusid.models.settlement_schedule import SettlementSchedule
789
806
  from lusid.models.side_configuration_data import SideConfigurationData
790
807
  from lusid.models.side_configuration_data_request import SideConfigurationDataRequest
791
808
  from lusid.models.side_definition import SideDefinition
@@ -882,11 +899,13 @@ from lusid.models.units_ratio import UnitsRatio
882
899
  from lusid.models.unmatched_holding_method import UnmatchedHoldingMethod
883
900
  from lusid.models.update_amortisation_rule_set_details_request import UpdateAmortisationRuleSetDetailsRequest
884
901
  from lusid.models.update_calendar_request import UpdateCalendarRequest
902
+ from lusid.models.update_compliance_template_request import UpdateComplianceTemplateRequest
885
903
  from lusid.models.update_custom_entity_definition_request import UpdateCustomEntityDefinitionRequest
886
904
  from lusid.models.update_custom_entity_type_request import UpdateCustomEntityTypeRequest
887
905
  from lusid.models.update_cut_label_definition_request import UpdateCutLabelDefinitionRequest
888
906
  from lusid.models.update_data_type_request import UpdateDataTypeRequest
889
907
  from lusid.models.update_derived_property_definition_request import UpdateDerivedPropertyDefinitionRequest
908
+ from lusid.models.update_fee_type_request import UpdateFeeTypeRequest
890
909
  from lusid.models.update_instrument_identifier_request import UpdateInstrumentIdentifierRequest
891
910
  from lusid.models.update_portfolio_group_request import UpdatePortfolioGroupRequest
892
911
  from lusid.models.update_portfolio_request import UpdatePortfolioRequest
@@ -1027,6 +1046,7 @@ __all__ = [
1027
1046
  "AnnulQuotesResponse",
1028
1047
  "AnnulSingleStructuredDataResponse",
1029
1048
  "AnnulStructuredDataResponse",
1049
+ "ApplicableInstrumentEvent",
1030
1050
  "AssetClass",
1031
1051
  "AssetLeg",
1032
1052
  "Barrier",
@@ -1107,17 +1127,22 @@ __all__ = [
1107
1127
  "ComplianceRuleResultDetail",
1108
1128
  "ComplianceRuleResultPortfolioDetail",
1109
1129
  "ComplianceRuleResultV2",
1130
+ "ComplianceRuleTemplate",
1110
1131
  "ComplianceRuleUpsertRequest",
1111
1132
  "ComplianceRuleUpsertResponse",
1112
1133
  "ComplianceRunInfo",
1113
1134
  "ComplianceRunInfoV2",
1114
1135
  "ComplianceStep",
1136
+ "ComplianceStepRequest",
1115
1137
  "ComplianceStepType",
1138
+ "ComplianceStepTypeRequest",
1116
1139
  "ComplianceSummaryRuleResult",
1117
1140
  "ComplianceSummaryRuleResultRequest",
1118
1141
  "ComplianceTemplate",
1119
1142
  "ComplianceTemplateParameter",
1120
1143
  "ComplianceTemplateVariation",
1144
+ "ComplianceTemplateVariationDto",
1145
+ "ComplianceTemplateVariationRequest",
1121
1146
  "ComponentTransaction",
1122
1147
  "CompositeBreakdown",
1123
1148
  "CompositeBreakdownRequest",
@@ -1141,6 +1166,7 @@ __all__ = [
1141
1166
  "CreateAddressKeyDefinitionRequest",
1142
1167
  "CreateAmortisationRuleSetRequest",
1143
1168
  "CreateCalendarRequest",
1169
+ "CreateComplianceTemplateRequest",
1144
1170
  "CreateCorporateActionSourceRequest",
1145
1171
  "CreateCustomEntityTypeRequest",
1146
1172
  "CreateCutLabelDefinitionRequest",
@@ -1255,9 +1281,12 @@ __all__ = [
1255
1281
  "ExoticInstrument",
1256
1282
  "ExpandedGroup",
1257
1283
  "ExpiryEvent",
1284
+ "FeeAccrual",
1258
1285
  "FeeRule",
1259
1286
  "FeeRuleUpsertRequest",
1260
1287
  "FeeRuleUpsertResponse",
1288
+ "FeeType",
1289
+ "FeeTypeRequest",
1261
1290
  "FieldDefinition",
1262
1291
  "FieldSchema",
1263
1292
  "FieldValue",
@@ -1495,10 +1524,12 @@ __all__ = [
1495
1524
  "PagedResourceListOfDialectId",
1496
1525
  "PagedResourceListOfDiaryEntry",
1497
1526
  "PagedResourceListOfExecution",
1527
+ "PagedResourceListOfFeeType",
1498
1528
  "PagedResourceListOfFund",
1499
1529
  "PagedResourceListOfGeneralLedgerProfileResponse",
1500
1530
  "PagedResourceListOfInstrument",
1501
1531
  "PagedResourceListOfInstrumentEventHolder",
1532
+ "PagedResourceListOfInstrumentEventInstruction",
1502
1533
  "PagedResourceListOfLegalEntity",
1503
1534
  "PagedResourceListOfOrder",
1504
1535
  "PagedResourceListOfOrderGraphBlock",
@@ -1591,6 +1622,7 @@ __all__ = [
1591
1622
  "PropertyValue",
1592
1623
  "PropertyValueEquals",
1593
1624
  "PropertyValueIn",
1625
+ "QueryApplicableInstrumentEventsRequest",
1594
1626
  "QueryBucketedCashFlowsRequest",
1595
1627
  "QueryCashFlowsRequest",
1596
1628
  "QueryInstrumentEventsRequest",
@@ -1652,6 +1684,7 @@ __all__ = [
1652
1684
  "ResourceListOfAggregatedReturn",
1653
1685
  "ResourceListOfAggregationQuery",
1654
1686
  "ResourceListOfAllocation",
1687
+ "ResourceListOfApplicableInstrumentEvent",
1655
1688
  "ResourceListOfBlock",
1656
1689
  "ResourceListOfBlockAndOrders",
1657
1690
  "ResourceListOfCalendarDate",
@@ -1729,6 +1762,7 @@ __all__ = [
1729
1762
  "RoundingConfiguration",
1730
1763
  "RoundingConfigurationComponent",
1731
1764
  "RoundingConvention",
1765
+ "RulesInterval",
1732
1766
  "ScalingMethodology",
1733
1767
  "Schedule",
1734
1768
  "ScheduleType",
@@ -1737,6 +1771,7 @@ __all__ = [
1737
1771
  "ScriptMapReference",
1738
1772
  "SecurityElection",
1739
1773
  "SequenceDefinition",
1774
+ "SetAmortisationRulesRequest",
1740
1775
  "SetLegalEntityIdentifiersRequest",
1741
1776
  "SetLegalEntityPropertiesRequest",
1742
1777
  "SetPersonIdentifiersRequest",
@@ -1744,6 +1779,7 @@ __all__ = [
1744
1779
  "SetShareClassInstrumentsRequest",
1745
1780
  "SetTransactionConfigurationAlias",
1746
1781
  "SetTransactionConfigurationSourceRequest",
1782
+ "SettlementSchedule",
1747
1783
  "SideConfigurationData",
1748
1784
  "SideConfigurationDataRequest",
1749
1785
  "SideDefinition",
@@ -1840,11 +1876,13 @@ __all__ = [
1840
1876
  "UnmatchedHoldingMethod",
1841
1877
  "UpdateAmortisationRuleSetDetailsRequest",
1842
1878
  "UpdateCalendarRequest",
1879
+ "UpdateComplianceTemplateRequest",
1843
1880
  "UpdateCustomEntityDefinitionRequest",
1844
1881
  "UpdateCustomEntityTypeRequest",
1845
1882
  "UpdateCutLabelDefinitionRequest",
1846
1883
  "UpdateDataTypeRequest",
1847
1884
  "UpdateDerivedPropertyDefinitionRequest",
1885
+ "UpdateFeeTypeRequest",
1848
1886
  "UpdateInstrumentIdentifierRequest",
1849
1887
  "UpdatePortfolioGroupRequest",
1850
1888
  "UpdatePortfolioRequest",
@@ -20,9 +20,9 @@ import json
20
20
 
21
21
  from typing import Any, Dict, List, Optional
22
22
  from pydantic.v1 import BaseModel, Field, StrictStr, conlist, constr, validator
23
- from lusid.models.amortisation_rule import AmortisationRule
24
23
  from lusid.models.link import Link
25
24
  from lusid.models.resource_id import ResourceId
25
+ from lusid.models.rules_interval import RulesInterval
26
26
  from lusid.models.version import Version
27
27
 
28
28
  class AmortisationRuleSet(BaseModel):
@@ -33,10 +33,10 @@ class AmortisationRuleSet(BaseModel):
33
33
  id: ResourceId = Field(...)
34
34
  display_name: constr(strict=True, max_length=256, min_length=1) = Field(..., alias="displayName", description="A user-friendly name.")
35
35
  description: Optional[constr(strict=True, max_length=1024, min_length=0)] = Field(None, description="A description of what this rule set is for.")
36
- rules: conlist(AmortisationRule, max_items=100) = Field(..., description="The rules of this rule set.")
36
+ rules_interval: RulesInterval = Field(..., alias="rulesInterval")
37
37
  version: Optional[Version] = None
38
38
  links: Optional[conlist(Link)] = None
39
- __properties = ["href", "id", "displayName", "description", "rules", "version", "links"]
39
+ __properties = ["href", "id", "displayName", "description", "rulesInterval", "version", "links"]
40
40
 
41
41
  @validator('display_name')
42
42
  def display_name_validate_regular_expression(cls, value):
@@ -82,13 +82,9 @@ class AmortisationRuleSet(BaseModel):
82
82
  # override the default output from pydantic by calling `to_dict()` of id
83
83
  if self.id:
84
84
  _dict['id'] = self.id.to_dict()
85
- # override the default output from pydantic by calling `to_dict()` of each item in rules (list)
86
- _items = []
87
- if self.rules:
88
- for _item in self.rules:
89
- if _item:
90
- _items.append(_item.to_dict())
91
- _dict['rules'] = _items
85
+ # override the default output from pydantic by calling `to_dict()` of rules_interval
86
+ if self.rules_interval:
87
+ _dict['rulesInterval'] = self.rules_interval.to_dict()
92
88
  # override the default output from pydantic by calling `to_dict()` of version
93
89
  if self.version:
94
90
  _dict['version'] = self.version.to_dict()
@@ -130,7 +126,7 @@ class AmortisationRuleSet(BaseModel):
130
126
  "id": ResourceId.from_dict(obj.get("id")) if obj.get("id") is not None else None,
131
127
  "display_name": obj.get("displayName"),
132
128
  "description": obj.get("description"),
133
- "rules": [AmortisationRule.from_dict(_item) for _item in obj.get("rules")] if obj.get("rules") is not None else None,
129
+ "rules_interval": RulesInterval.from_dict(obj.get("rulesInterval")) if obj.get("rulesInterval") is not None else None,
134
130
  "version": Version.from_dict(obj.get("version")) if obj.get("version") is not None else None,
135
131
  "links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None
136
132
  })
@@ -0,0 +1,106 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict, List
22
+ from pydantic.v1 import BaseModel, Field, StrictInt, conlist, constr
23
+ from lusid.models.instrument_event_holder import InstrumentEventHolder
24
+ from lusid.models.resource_id import ResourceId
25
+ from lusid.models.transaction import Transaction
26
+
27
+ class ApplicableInstrumentEvent(BaseModel):
28
+ """
29
+ Represents applicable instrument event. # noqa: E501
30
+ """
31
+ portfolio_id: ResourceId = Field(..., alias="portfolioId")
32
+ holding_id: StrictInt = Field(..., alias="holdingId")
33
+ lusid_instrument_id: constr(strict=True, min_length=1) = Field(..., alias="lusidInstrumentId")
34
+ instrument_scope: constr(strict=True, min_length=1) = Field(..., alias="instrumentScope")
35
+ instrument_type: constr(strict=True, min_length=1) = Field(..., alias="instrumentType")
36
+ instrument_event_type: constr(strict=True, min_length=1) = Field(..., alias="instrumentEventType")
37
+ instrument_event_id: constr(strict=True, min_length=1) = Field(..., alias="instrumentEventId")
38
+ generated_event: InstrumentEventHolder = Field(..., alias="generatedEvent")
39
+ loaded_event: InstrumentEventHolder = Field(..., alias="loadedEvent")
40
+ transactions: conlist(Transaction) = Field(...)
41
+ __properties = ["portfolioId", "holdingId", "lusidInstrumentId", "instrumentScope", "instrumentType", "instrumentEventType", "instrumentEventId", "generatedEvent", "loadedEvent", "transactions"]
42
+
43
+ class Config:
44
+ """Pydantic configuration"""
45
+ allow_population_by_field_name = True
46
+ validate_assignment = True
47
+
48
+ def to_str(self) -> str:
49
+ """Returns the string representation of the model using alias"""
50
+ return pprint.pformat(self.dict(by_alias=True))
51
+
52
+ def to_json(self) -> str:
53
+ """Returns the JSON representation of the model using alias"""
54
+ return json.dumps(self.to_dict())
55
+
56
+ @classmethod
57
+ def from_json(cls, json_str: str) -> ApplicableInstrumentEvent:
58
+ """Create an instance of ApplicableInstrumentEvent from a JSON string"""
59
+ return cls.from_dict(json.loads(json_str))
60
+
61
+ def to_dict(self):
62
+ """Returns the dictionary representation of the model using alias"""
63
+ _dict = self.dict(by_alias=True,
64
+ exclude={
65
+ },
66
+ exclude_none=True)
67
+ # override the default output from pydantic by calling `to_dict()` of portfolio_id
68
+ if self.portfolio_id:
69
+ _dict['portfolioId'] = self.portfolio_id.to_dict()
70
+ # override the default output from pydantic by calling `to_dict()` of generated_event
71
+ if self.generated_event:
72
+ _dict['generatedEvent'] = self.generated_event.to_dict()
73
+ # override the default output from pydantic by calling `to_dict()` of loaded_event
74
+ if self.loaded_event:
75
+ _dict['loadedEvent'] = self.loaded_event.to_dict()
76
+ # override the default output from pydantic by calling `to_dict()` of each item in transactions (list)
77
+ _items = []
78
+ if self.transactions:
79
+ for _item in self.transactions:
80
+ if _item:
81
+ _items.append(_item.to_dict())
82
+ _dict['transactions'] = _items
83
+ return _dict
84
+
85
+ @classmethod
86
+ def from_dict(cls, obj: dict) -> ApplicableInstrumentEvent:
87
+ """Create an instance of ApplicableInstrumentEvent from a dict"""
88
+ if obj is None:
89
+ return None
90
+
91
+ if not isinstance(obj, dict):
92
+ return ApplicableInstrumentEvent.parse_obj(obj)
93
+
94
+ _obj = ApplicableInstrumentEvent.parse_obj({
95
+ "portfolio_id": ResourceId.from_dict(obj.get("portfolioId")) if obj.get("portfolioId") is not None else None,
96
+ "holding_id": obj.get("holdingId"),
97
+ "lusid_instrument_id": obj.get("lusidInstrumentId"),
98
+ "instrument_scope": obj.get("instrumentScope"),
99
+ "instrument_type": obj.get("instrumentType"),
100
+ "instrument_event_type": obj.get("instrumentEventType"),
101
+ "instrument_event_id": obj.get("instrumentEventId"),
102
+ "generated_event": InstrumentEventHolder.from_dict(obj.get("generatedEvent")) if obj.get("generatedEvent") is not None else None,
103
+ "loaded_event": InstrumentEventHolder.from_dict(obj.get("loadedEvent")) if obj.get("loadedEvent") is not None else None,
104
+ "transactions": [Transaction.from_dict(_item) for _item in obj.get("transactions")] if obj.get("transactions") is not None else None
105
+ })
106
+ return _obj