lusid-sdk 2.1.198__py3-none-any.whl → 2.1.222__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.

lusid/__init__.py CHANGED
@@ -1035,6 +1035,7 @@ from lusid.models.upsert_legal_entity_access_metadata_request import UpsertLegal
1035
1035
  from lusid.models.upsert_legal_entity_request import UpsertLegalEntityRequest
1036
1036
  from lusid.models.upsert_person_access_metadata_request import UpsertPersonAccessMetadataRequest
1037
1037
  from lusid.models.upsert_person_request import UpsertPersonRequest
1038
+ from lusid.models.upsert_persons_response import UpsertPersonsResponse
1038
1039
  from lusid.models.upsert_portfolio_access_metadata_request import UpsertPortfolioAccessMetadataRequest
1039
1040
  from lusid.models.upsert_portfolio_group_access_metadata_request import UpsertPortfolioGroupAccessMetadataRequest
1040
1041
  from lusid.models.upsert_portfolio_transactions_response import UpsertPortfolioTransactionsResponse
@@ -2107,6 +2108,7 @@ __all__ = [
2107
2108
  "UpsertLegalEntityRequest",
2108
2109
  "UpsertPersonAccessMetadataRequest",
2109
2110
  "UpsertPersonRequest",
2111
+ "UpsertPersonsResponse",
2110
2112
  "UpsertPortfolioAccessMetadataRequest",
2111
2113
  "UpsertPortfolioGroupAccessMetadataRequest",
2112
2114
  "UpsertPortfolioTransactionsResponse",
lusid/api/persons_api.py CHANGED
@@ -40,6 +40,7 @@ from lusid.models.set_person_identifiers_request import SetPersonIdentifiersRequ
40
40
  from lusid.models.set_person_properties_request import SetPersonPropertiesRequest
41
41
  from lusid.models.upsert_person_access_metadata_request import UpsertPersonAccessMetadataRequest
42
42
  from lusid.models.upsert_person_request import UpsertPersonRequest
43
+ from lusid.models.upsert_persons_response import UpsertPersonsResponse
43
44
 
44
45
  from lusid.api_client import ApiClient
45
46
  from lusid.api_response import ApiResponse
@@ -3345,3 +3346,169 @@ class PersonsApi:
3345
3346
  _request_timeout=_params.get('_request_timeout'),
3346
3347
  collection_formats=_collection_formats,
3347
3348
  _request_auth=_params.get('_request_auth'))
3349
+
3350
+ @overload
3351
+ async def upsert_persons(self, success_mode : Annotated[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")], request_body : Annotated[Dict[str, UpsertPersonRequest], Field(..., description="A collection of requests to create or update Person(s).")], **kwargs) -> UpsertPersonsResponse: # noqa: E501
3352
+ ...
3353
+
3354
+ @overload
3355
+ def upsert_persons(self, success_mode : Annotated[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")], request_body : Annotated[Dict[str, UpsertPersonRequest], Field(..., description="A collection of requests to create or update Person(s).")], async_req: Optional[bool]=True, **kwargs) -> UpsertPersonsResponse: # noqa: E501
3356
+ ...
3357
+
3358
+ @validate_arguments
3359
+ def upsert_persons(self, success_mode : Annotated[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")], request_body : Annotated[Dict[str, UpsertPersonRequest], Field(..., description="A collection of requests to create or update Person(s).")], async_req: Optional[bool]=None, **kwargs) -> Union[UpsertPersonsResponse, Awaitable[UpsertPersonsResponse]]: # noqa: E501
3360
+ """[EARLY ACCESS] UpsertPersons: Pluralised Upsert of Persons # noqa: E501
3361
+
3362
+ Create or updates a collection of person(s). # noqa: E501
3363
+ This method makes a synchronous HTTP request by default. To make an
3364
+ asynchronous HTTP request, please pass async_req=True
3365
+
3366
+ >>> thread = api.upsert_persons(success_mode, request_body, async_req=True)
3367
+ >>> result = thread.get()
3368
+
3369
+ :param success_mode: Whether the batch request should fail Atomically or in a Partial fashion - Allowed Values: Atomic, Partial (required)
3370
+ :type success_mode: str
3371
+ :param request_body: A collection of requests to create or update Person(s). (required)
3372
+ :type request_body: Dict[str, UpsertPersonRequest]
3373
+ :param async_req: Whether to execute the request asynchronously.
3374
+ :type async_req: bool, optional
3375
+ :param _request_timeout: timeout setting for this request.
3376
+ If one number provided, it will be total request
3377
+ timeout. It can also be a pair (tuple) of
3378
+ (connection, read) timeouts.
3379
+ :return: Returns the result object.
3380
+ If the method is called asynchronously,
3381
+ returns the request thread.
3382
+ :rtype: UpsertPersonsResponse
3383
+ """
3384
+ kwargs['_return_http_data_only'] = True
3385
+ if '_preload_content' in kwargs:
3386
+ message = "Error! Please call the upsert_persons_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
3387
+ raise ValueError(message)
3388
+ if async_req is not None:
3389
+ kwargs['async_req'] = async_req
3390
+ return self.upsert_persons_with_http_info(success_mode, request_body, **kwargs) # noqa: E501
3391
+
3392
+ @validate_arguments
3393
+ def upsert_persons_with_http_info(self, success_mode : Annotated[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")], request_body : Annotated[Dict[str, UpsertPersonRequest], Field(..., description="A collection of requests to create or update Person(s).")], **kwargs) -> ApiResponse: # noqa: E501
3394
+ """[EARLY ACCESS] UpsertPersons: Pluralised Upsert of Persons # noqa: E501
3395
+
3396
+ Create or updates a collection of person(s). # noqa: E501
3397
+ This method makes a synchronous HTTP request by default. To make an
3398
+ asynchronous HTTP request, please pass async_req=True
3399
+
3400
+ >>> thread = api.upsert_persons_with_http_info(success_mode, request_body, async_req=True)
3401
+ >>> result = thread.get()
3402
+
3403
+ :param success_mode: Whether the batch request should fail Atomically or in a Partial fashion - Allowed Values: Atomic, Partial (required)
3404
+ :type success_mode: str
3405
+ :param request_body: A collection of requests to create or update Person(s). (required)
3406
+ :type request_body: Dict[str, UpsertPersonRequest]
3407
+ :param async_req: Whether to execute the request asynchronously.
3408
+ :type async_req: bool, optional
3409
+ :param _preload_content: if False, the ApiResponse.data will
3410
+ be set to none and raw_data will store the
3411
+ HTTP response body without reading/decoding.
3412
+ Default is True.
3413
+ :type _preload_content: bool, optional
3414
+ :param _return_http_data_only: response data instead of ApiResponse
3415
+ object with status code, headers, etc
3416
+ :type _return_http_data_only: bool, optional
3417
+ :param _request_timeout: timeout setting for this request. If one
3418
+ number provided, it will be total request
3419
+ timeout. It can also be a pair (tuple) of
3420
+ (connection, read) timeouts.
3421
+ :param _request_auth: set to override the auth_settings for an a single
3422
+ request; this effectively ignores the authentication
3423
+ in the spec for a single request.
3424
+ :type _request_auth: dict, optional
3425
+ :type _content_type: string, optional: force content-type for the request
3426
+ :return: Returns the result object.
3427
+ If the method is called asynchronously,
3428
+ returns the request thread.
3429
+ :rtype: tuple(UpsertPersonsResponse, status_code(int), headers(HTTPHeaderDict))
3430
+ """
3431
+
3432
+ _params = locals()
3433
+
3434
+ _all_params = [
3435
+ 'success_mode',
3436
+ 'request_body'
3437
+ ]
3438
+ _all_params.extend(
3439
+ [
3440
+ 'async_req',
3441
+ '_return_http_data_only',
3442
+ '_preload_content',
3443
+ '_request_timeout',
3444
+ '_request_auth',
3445
+ '_content_type',
3446
+ '_headers'
3447
+ ]
3448
+ )
3449
+
3450
+ # validate the arguments
3451
+ for _key, _val in _params['kwargs'].items():
3452
+ if _key not in _all_params:
3453
+ raise ApiTypeError(
3454
+ "Got an unexpected keyword argument '%s'"
3455
+ " to method upsert_persons" % _key
3456
+ )
3457
+ _params[_key] = _val
3458
+ del _params['kwargs']
3459
+
3460
+ _collection_formats = {}
3461
+
3462
+ # process the path parameters
3463
+ _path_params = {}
3464
+
3465
+ # process the query parameters
3466
+ _query_params = []
3467
+ if _params.get('success_mode') is not None: # noqa: E501
3468
+ _query_params.append(('successMode', _params['success_mode']))
3469
+
3470
+ # process the header parameters
3471
+ _header_params = dict(_params.get('_headers', {}))
3472
+ # process the form parameters
3473
+ _form_params = []
3474
+ _files = {}
3475
+ # process the body parameter
3476
+ _body_params = None
3477
+ if _params['request_body'] is not None:
3478
+ _body_params = _params['request_body']
3479
+
3480
+ # set the HTTP header `Accept`
3481
+ _header_params['Accept'] = self.api_client.select_header_accept(
3482
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
3483
+
3484
+ # set the HTTP header `Content-Type`
3485
+ _content_types_list = _params.get('_content_type',
3486
+ self.api_client.select_header_content_type(
3487
+ ['application/json-patch+json', 'application/json', 'text/json', 'application/*+json']))
3488
+ if _content_types_list:
3489
+ _header_params['Content-Type'] = _content_types_list
3490
+
3491
+ # authentication setting
3492
+ _auth_settings = ['oauth2'] # noqa: E501
3493
+
3494
+ _response_types_map = {
3495
+ '201': "UpsertPersonsResponse",
3496
+ '400': "LusidValidationProblemDetails",
3497
+ }
3498
+
3499
+ return self.api_client.call_api(
3500
+ '/api/persons/$batchUpsert', 'POST',
3501
+ _path_params,
3502
+ _query_params,
3503
+ _header_params,
3504
+ body=_body_params,
3505
+ post_params=_form_params,
3506
+ files=_files,
3507
+ response_types_map=_response_types_map,
3508
+ auth_settings=_auth_settings,
3509
+ async_req=_params.get('async_req'),
3510
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
3511
+ _preload_content=_params.get('_preload_content', True),
3512
+ _request_timeout=_params.get('_request_timeout'),
3513
+ collection_formats=_collection_formats,
3514
+ _request_auth=_params.get('_request_auth'))
@@ -4616,7 +4616,7 @@ class PortfoliosApi:
4616
4616
  def patch_portfolio(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the portfolio.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the portfolio. Together with the scope this uniquely identifies the portfolio.")], operation : Annotated[conlist(Operation), Field(..., description="The json patch document. For more check: https://datatracker.ietf.org/doc/html/rfc6902.")], async_req: Optional[bool]=None, **kwargs) -> Union[Portfolio, Awaitable[Portfolio]]: # noqa: E501
4617
4617
  """PatchPortfolio: Patch portfolio. # noqa: E501
4618
4618
 
4619
- Create or update certain fields for a particular portfolio. The behaviour is defined by the JSON Patch specification. Currently supported are: CreationDate, InstrumentScopes. # noqa: E501
4619
+ Create or update certain fields for a particular portfolio. The behaviour is defined by the JSON Patch specification. Currently supported are: Created, InstrumentScopes. # noqa: E501
4620
4620
  This method makes a synchronous HTTP request by default. To make an
4621
4621
  asynchronous HTTP request, please pass async_req=True
4622
4622
 
@@ -4652,7 +4652,7 @@ class PortfoliosApi:
4652
4652
  def patch_portfolio_with_http_info(self, scope : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The scope of the portfolio.")], code : Annotated[constr(strict=True, max_length=64, min_length=1), Field(..., description="The code of the portfolio. Together with the scope this uniquely identifies the portfolio.")], operation : Annotated[conlist(Operation), Field(..., description="The json patch document. For more check: https://datatracker.ietf.org/doc/html/rfc6902.")], **kwargs) -> ApiResponse: # noqa: E501
4653
4653
  """PatchPortfolio: Patch portfolio. # noqa: E501
4654
4654
 
4655
- Create or update certain fields for a particular portfolio. The behaviour is defined by the JSON Patch specification. Currently supported are: CreationDate, InstrumentScopes. # noqa: E501
4655
+ Create or update certain fields for a particular portfolio. The behaviour is defined by the JSON Patch specification. Currently supported are: Created, InstrumentScopes. # noqa: E501
4656
4656
  This method makes a synchronous HTTP request by default. To make an
4657
4657
  asynchronous HTTP request, please pass async_req=True
4658
4658
 
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.6632\n"\
376
+ "Version of the API: 0.11.6656\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
@@ -957,6 +957,7 @@ from lusid.models.upsert_legal_entity_access_metadata_request import UpsertLegal
957
957
  from lusid.models.upsert_legal_entity_request import UpsertLegalEntityRequest
958
958
  from lusid.models.upsert_person_access_metadata_request import UpsertPersonAccessMetadataRequest
959
959
  from lusid.models.upsert_person_request import UpsertPersonRequest
960
+ from lusid.models.upsert_persons_response import UpsertPersonsResponse
960
961
  from lusid.models.upsert_portfolio_access_metadata_request import UpsertPortfolioAccessMetadataRequest
961
962
  from lusid.models.upsert_portfolio_group_access_metadata_request import UpsertPortfolioGroupAccessMetadataRequest
962
963
  from lusid.models.upsert_portfolio_transactions_response import UpsertPortfolioTransactionsResponse
@@ -1952,6 +1953,7 @@ __all__ = [
1952
1953
  "UpsertLegalEntityRequest",
1953
1954
  "UpsertPersonAccessMetadataRequest",
1954
1955
  "UpsertPersonRequest",
1956
+ "UpsertPersonsResponse",
1955
1957
  "UpsertPortfolioAccessMetadataRequest",
1956
1958
  "UpsertPortfolioGroupAccessMetadataRequest",
1957
1959
  "UpsertPortfolioTransactionsResponse",
@@ -26,7 +26,7 @@ class CreateDerivedPropertyDefinitionRequest(BaseModel):
26
26
  """
27
27
  CreateDerivedPropertyDefinitionRequest
28
28
  """
29
- domain: StrictStr = Field(..., description="The domain that the property exists in. Not all available values are currently supported, please check the documentation: https://support.lusid.com/knowledgebase/article/KA-01719/. The available values are: NotDefined, Transaction, Portfolio, Holding, ReferenceHolding, TransactionConfiguration, Instrument, CutLabelDefinition, Analytic, PortfolioGroup, Person, AccessMetadata, Order, UnitResult, MarketData, ConfigurationRecipe, Allocation, Calendar, LegalEntity, Placement, Execution, Block, Participation, Package, OrderInstruction, NextBestAction, CustomEntity, InstrumentEvent, Account, ChartOfAccounts, CustodianAccount, Abor, AborConfiguration, Fund, FundConfiguration, Fee, Reconciliation, PropertyDefinition, Compliance, DiaryEntry, Leg, DerivedValuation")
29
+ domain: StrictStr = Field(..., description="The domain that the property exists in. Not all available values are currently supported, please check the documentation: https://support.lusid.com/knowledgebase/article/KA-01719/. The available values are: NotDefined, Transaction, Portfolio, Holding, ReferenceHolding, TransactionConfiguration, Instrument, CutLabelDefinition, Analytic, PortfolioGroup, Person, AccessMetadata, Order, UnitResult, MarketData, ConfigurationRecipe, Allocation, Calendar, LegalEntity, Placement, Execution, Block, Participation, Package, OrderInstruction, NextBestAction, CustomEntity, InstrumentEvent, Account, ChartOfAccounts, CustodianAccount, Abor, AborConfiguration, Fund, FundConfiguration, Fee, Reconciliation, PropertyDefinition, Compliance, DiaryEntry, Leg, DerivedValuation, AddressKeyDefinition, AmortisationRuleSet, AnalyticsSetInventory, AtomUnitResult, CleardownModule, ComplexMarketData, ComplianceRunSummary, ComplianceRule, ComplianceRunInfo, CorporateActionSource, CounterpartyAgreement, CustomEntityDefinition, DataType, Dialect, EventHandler, GeneralLedgerProfile, PostingModule, Quote, RecipeComposer, ReconciliationRunBreak, ReferenceList, RelationDefinition, ReturnBlockIndex, SRSDocument, SRSIndex, TransactionTemplate, TransactionTemplateScope, TransactionType, TransactionTypeConfig, TranslationScript, TaskDefinition, TaskInstance, Worker, StagingRuleSet")
30
30
  scope: StrictStr = Field(..., description="The scope that the property exists in.")
31
31
  code: StrictStr = Field(..., description="The code of the property. Together with the domain and scope this uniquely identifies the property.")
32
32
  display_name: constr(strict=True, min_length=1) = Field(..., alias="displayName", description="The display name of the property.")
@@ -38,8 +38,8 @@ class CreateDerivedPropertyDefinitionRequest(BaseModel):
38
38
  @validator('domain')
39
39
  def domain_validate_enum(cls, value):
40
40
  """Validates the enum"""
41
- if value not in ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation'):
42
- raise ValueError("must be one of enum values ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation')")
41
+ if value not in ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation', 'AddressKeyDefinition', 'AmortisationRuleSet', 'AnalyticsSetInventory', 'AtomUnitResult', 'CleardownModule', 'ComplexMarketData', 'ComplianceRunSummary', 'ComplianceRule', 'ComplianceRunInfo', 'CorporateActionSource', 'CounterpartyAgreement', 'CustomEntityDefinition', 'DataType', 'Dialect', 'EventHandler', 'GeneralLedgerProfile', 'PostingModule', 'Quote', 'RecipeComposer', 'ReconciliationRunBreak', 'ReferenceList', 'RelationDefinition', 'ReturnBlockIndex', 'SRSDocument', 'SRSIndex', 'TransactionTemplate', 'TransactionTemplateScope', 'TransactionType', 'TransactionTypeConfig', 'TranslationScript', 'TaskDefinition', 'TaskInstance', 'Worker', 'StagingRuleSet'):
42
+ raise ValueError("must be one of enum values ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation', 'AddressKeyDefinition', 'AmortisationRuleSet', 'AnalyticsSetInventory', 'AtomUnitResult', 'CleardownModule', 'ComplexMarketData', 'ComplianceRunSummary', 'ComplianceRule', 'ComplianceRunInfo', 'CorporateActionSource', 'CounterpartyAgreement', 'CustomEntityDefinition', 'DataType', 'Dialect', 'EventHandler', 'GeneralLedgerProfile', 'PostingModule', 'Quote', 'RecipeComposer', 'ReconciliationRunBreak', 'ReferenceList', 'RelationDefinition', 'ReturnBlockIndex', 'SRSDocument', 'SRSIndex', 'TransactionTemplate', 'TransactionTemplateScope', 'TransactionType', 'TransactionTypeConfig', 'TranslationScript', 'TaskDefinition', 'TaskInstance', 'Worker', 'StagingRuleSet')")
43
43
  return value
44
44
 
45
45
  class Config:
@@ -26,7 +26,7 @@ class CreatePropertyDefinitionRequest(BaseModel):
26
26
  """
27
27
  CreatePropertyDefinitionRequest
28
28
  """
29
- domain: StrictStr = Field(..., description="The domain that the property exists in. The available values are: NotDefined, Transaction, Portfolio, Holding, ReferenceHolding, TransactionConfiguration, Instrument, CutLabelDefinition, Analytic, PortfolioGroup, Person, AccessMetadata, Order, UnitResult, MarketData, ConfigurationRecipe, Allocation, Calendar, LegalEntity, Placement, Execution, Block, Participation, Package, OrderInstruction, NextBestAction, CustomEntity, InstrumentEvent, Account, ChartOfAccounts, CustodianAccount, Abor, AborConfiguration, Fund, FundConfiguration, Fee, Reconciliation, PropertyDefinition, Compliance, DiaryEntry, Leg, DerivedValuation")
29
+ domain: StrictStr = Field(..., description="The domain that the property exists in. The available values are: NotDefined, Transaction, Portfolio, Holding, ReferenceHolding, TransactionConfiguration, Instrument, CutLabelDefinition, Analytic, PortfolioGroup, Person, AccessMetadata, Order, UnitResult, MarketData, ConfigurationRecipe, Allocation, Calendar, LegalEntity, Placement, Execution, Block, Participation, Package, OrderInstruction, NextBestAction, CustomEntity, InstrumentEvent, Account, ChartOfAccounts, CustodianAccount, Abor, AborConfiguration, Fund, FundConfiguration, Fee, Reconciliation, PropertyDefinition, Compliance, DiaryEntry, Leg, DerivedValuation, AddressKeyDefinition, AmortisationRuleSet, AnalyticsSetInventory, AtomUnitResult, CleardownModule, ComplexMarketData, ComplianceRunSummary, ComplianceRule, ComplianceRunInfo, CorporateActionSource, CounterpartyAgreement, CustomEntityDefinition, DataType, Dialect, EventHandler, GeneralLedgerProfile, PostingModule, Quote, RecipeComposer, ReconciliationRunBreak, ReferenceList, RelationDefinition, ReturnBlockIndex, SRSDocument, SRSIndex, TransactionTemplate, TransactionTemplateScope, TransactionType, TransactionTypeConfig, TranslationScript, TaskDefinition, TaskInstance, Worker, StagingRuleSet")
30
30
  scope: StrictStr = Field(..., description="The scope that the property exists in.")
31
31
  code: StrictStr = Field(..., description="The code of the property. Together with the domain and scope this uniquely identifies the property.")
32
32
  value_required: Optional[StrictBool] = Field(None, alias="valueRequired", description="This field is not implemented and should be disregarded.")
@@ -41,8 +41,8 @@ class CreatePropertyDefinitionRequest(BaseModel):
41
41
  @validator('domain')
42
42
  def domain_validate_enum(cls, value):
43
43
  """Validates the enum"""
44
- if value not in ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation'):
45
- raise ValueError("must be one of enum values ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation')")
44
+ if value not in ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation', 'AddressKeyDefinition', 'AmortisationRuleSet', 'AnalyticsSetInventory', 'AtomUnitResult', 'CleardownModule', 'ComplexMarketData', 'ComplianceRunSummary', 'ComplianceRule', 'ComplianceRunInfo', 'CorporateActionSource', 'CounterpartyAgreement', 'CustomEntityDefinition', 'DataType', 'Dialect', 'EventHandler', 'GeneralLedgerProfile', 'PostingModule', 'Quote', 'RecipeComposer', 'ReconciliationRunBreak', 'ReferenceList', 'RelationDefinition', 'ReturnBlockIndex', 'SRSDocument', 'SRSIndex', 'TransactionTemplate', 'TransactionTemplateScope', 'TransactionType', 'TransactionTypeConfig', 'TranslationScript', 'TaskDefinition', 'TaskInstance', 'Worker', 'StagingRuleSet'):
45
+ raise ValueError("must be one of enum values ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation', 'AddressKeyDefinition', 'AmortisationRuleSet', 'AnalyticsSetInventory', 'AtomUnitResult', 'CleardownModule', 'ComplexMarketData', 'ComplianceRunSummary', 'ComplianceRule', 'ComplianceRunInfo', 'CorporateActionSource', 'CounterpartyAgreement', 'CustomEntityDefinition', 'DataType', 'Dialect', 'EventHandler', 'GeneralLedgerProfile', 'PostingModule', 'Quote', 'RecipeComposer', 'ReconciliationRunBreak', 'ReferenceList', 'RelationDefinition', 'ReturnBlockIndex', 'SRSDocument', 'SRSIndex', 'TransactionTemplate', 'TransactionTemplateScope', 'TransactionType', 'TransactionTypeConfig', 'TranslationScript', 'TaskDefinition', 'TaskInstance', 'Worker', 'StagingRuleSet')")
46
46
  return value
47
47
 
48
48
  @validator('life_time')
@@ -19,14 +19,14 @@ import json
19
19
 
20
20
 
21
21
  from typing import Any, Dict, Optional, Union
22
- from pydantic.v1 import BaseModel, StrictFloat, StrictInt, StrictStr
22
+ from pydantic.v1 import BaseModel, Field, StrictFloat, StrictInt, StrictStr
23
23
 
24
24
  class CurrencyAndAmount(BaseModel):
25
25
  """
26
26
  An amount of a specific currency, specifying a value and an associated unit # noqa: E501
27
27
  """
28
28
  amount: Optional[Union[StrictFloat, StrictInt]] = None
29
- currency: Optional[StrictStr] = None
29
+ currency: StrictStr = Field(...)
30
30
  __properties = ["amount", "currency"]
31
31
 
32
32
  class Config:
@@ -53,11 +53,6 @@ class CurrencyAndAmount(BaseModel):
53
53
  exclude={
54
54
  },
55
55
  exclude_none=True)
56
- # set to None if currency (nullable) is None
57
- # and __fields_set__ contains the field
58
- if self.currency is None and "currency" in self.__fields_set__:
59
- _dict['currency'] = None
60
-
61
56
  return _dict
62
57
 
63
58
  @classmethod
lusid/models/fee.py CHANGED
@@ -41,8 +41,6 @@ class Fee(BaseModel):
41
41
  treatment: constr(strict=True, min_length=1) = Field(..., description="The accrual period of the Fee; 'Monthly' or 'Daily'.")
42
42
  total_annual_accrual_amount: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="totalAnnualAccrualAmount", description="The total annual accrued amount for the Fee. (TotalAnnualAccrualAmount and CalculationBase cannot both be present)")
43
43
  fee_rate_percentage: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="feeRatePercentage", description="The fee rate percentage. (Required when CalculationBase is present and not compatible with TotalAnnualAccrualAmount)")
44
- monthly_accrual: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="monthlyAccrual", description="The monthly accrual amount.")
45
- daily_accrual: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="dailyAccrual", description="The daily accrual amount.")
46
44
  payable_frequency: constr(strict=True, min_length=1) = Field(..., alias="payableFrequency", description="The payable frequency for the Fee; 'Annually', 'Quarterly' or 'Monthly'.")
47
45
  business_day_convention: constr(strict=True, min_length=1) = Field(..., alias="businessDayConvention", description="The business day convention to use for Fee calculations on weekends.")
48
46
  start_date: datetime = Field(..., alias="startDate", description="The start date of the Fee.")
@@ -52,7 +50,7 @@ class Fee(BaseModel):
52
50
  version: Optional[Version] = None
53
51
  portfolio_id: Optional[ResourceId] = Field(None, alias="portfolioId")
54
52
  links: Optional[conlist(Link)] = None
55
- __properties = ["href", "feeCode", "feeType", "name", "description", "origin", "calculationBase", "accrualCurrency", "treatment", "totalAnnualAccrualAmount", "feeRatePercentage", "monthlyAccrual", "dailyAccrual", "payableFrequency", "businessDayConvention", "startDate", "endDate", "anchorDate", "properties", "version", "portfolioId", "links"]
53
+ __properties = ["href", "feeCode", "feeType", "name", "description", "origin", "calculationBase", "accrualCurrency", "treatment", "totalAnnualAccrualAmount", "feeRatePercentage", "payableFrequency", "businessDayConvention", "startDate", "endDate", "anchorDate", "properties", "version", "portfolioId", "links"]
56
54
 
57
55
  @validator('fee_code')
58
56
  def fee_code_validate_regular_expression(cls, value):
@@ -159,16 +157,6 @@ class Fee(BaseModel):
159
157
  if self.fee_rate_percentage is None and "fee_rate_percentage" in self.__fields_set__:
160
158
  _dict['feeRatePercentage'] = None
161
159
 
162
- # set to None if monthly_accrual (nullable) is None
163
- # and __fields_set__ contains the field
164
- if self.monthly_accrual is None and "monthly_accrual" in self.__fields_set__:
165
- _dict['monthlyAccrual'] = None
166
-
167
- # set to None if daily_accrual (nullable) is None
168
- # and __fields_set__ contains the field
169
- if self.daily_accrual is None and "daily_accrual" in self.__fields_set__:
170
- _dict['dailyAccrual'] = None
171
-
172
160
  # set to None if properties (nullable) is None
173
161
  # and __fields_set__ contains the field
174
162
  if self.properties is None and "properties" in self.__fields_set__:
@@ -202,8 +190,6 @@ class Fee(BaseModel):
202
190
  "treatment": obj.get("treatment"),
203
191
  "total_annual_accrual_amount": obj.get("totalAnnualAccrualAmount"),
204
192
  "fee_rate_percentage": obj.get("feeRatePercentage"),
205
- "monthly_accrual": obj.get("monthlyAccrual"),
206
- "daily_accrual": obj.get("dailyAccrual"),
207
193
  "payable_frequency": obj.get("payableFrequency"),
208
194
  "business_day_convention": obj.get("businessDayConvention"),
209
195
  "start_date": obj.get("startDate"),
@@ -25,7 +25,7 @@ class OrderFlowConfiguration(BaseModel):
25
25
  """
26
26
  OrderFlowConfiguration
27
27
  """
28
- include_entity_types: constr(strict=True, min_length=1) = Field(..., alias="includeEntityTypes")
28
+ include_entity_types: constr(strict=True, min_length=1) = Field(..., alias="includeEntityTypes", description="Controls whether Orders and Allocations orders are included in the Portfolio valuation. Valid values are None (to account for Transactions only), Allocations (to include Allocations and Transactions) and OrdersAndAllocations (to include Orders, Allocations and Transactions).")
29
29
  __properties = ["includeEntityTypes"]
30
30
 
31
31
  class Config:
@@ -36,7 +36,7 @@ class PropertyDefinition(BaseModel):
36
36
  data_type_id: Optional[ResourceId] = Field(None, alias="dataTypeId")
37
37
  type: Optional[StrictStr] = Field(None, description="The type of the property. The available values are: Label, Metric, Information")
38
38
  unit_schema: Optional[StrictStr] = Field(None, alias="unitSchema", description="The units that can be associated with the property's values. This is defined by the property's data type. The available values are: NoUnits, Basic, Iso4217Currency")
39
- domain: Optional[StrictStr] = Field(None, description="The domain that the property exists in. The available values are: NotDefined, Transaction, Portfolio, Holding, ReferenceHolding, TransactionConfiguration, Instrument, CutLabelDefinition, Analytic, PortfolioGroup, Person, AccessMetadata, Order, UnitResult, MarketData, ConfigurationRecipe, Allocation, Calendar, LegalEntity, Placement, Execution, Block, Participation, Package, OrderInstruction, NextBestAction, CustomEntity, InstrumentEvent, Account, ChartOfAccounts, CustodianAccount, Abor, AborConfiguration, Fund, FundConfiguration, Fee, Reconciliation, PropertyDefinition, Compliance, DiaryEntry, Leg, DerivedValuation")
39
+ domain: Optional[StrictStr] = Field(None, description="The domain that the property exists in. The available values are: NotDefined, Transaction, Portfolio, Holding, ReferenceHolding, TransactionConfiguration, Instrument, CutLabelDefinition, Analytic, PortfolioGroup, Person, AccessMetadata, Order, UnitResult, MarketData, ConfigurationRecipe, Allocation, Calendar, LegalEntity, Placement, Execution, Block, Participation, Package, OrderInstruction, NextBestAction, CustomEntity, InstrumentEvent, Account, ChartOfAccounts, CustodianAccount, Abor, AborConfiguration, Fund, FundConfiguration, Fee, Reconciliation, PropertyDefinition, Compliance, DiaryEntry, Leg, DerivedValuation, AddressKeyDefinition, AmortisationRuleSet, AnalyticsSetInventory, AtomUnitResult, CleardownModule, ComplexMarketData, ComplianceRunSummary, ComplianceRule, ComplianceRunInfo, CorporateActionSource, CounterpartyAgreement, CustomEntityDefinition, DataType, Dialect, EventHandler, GeneralLedgerProfile, PostingModule, Quote, RecipeComposer, ReconciliationRunBreak, ReferenceList, RelationDefinition, ReturnBlockIndex, SRSDocument, SRSIndex, TransactionTemplate, TransactionTemplateScope, TransactionType, TransactionTypeConfig, TranslationScript, TaskDefinition, TaskInstance, Worker, StagingRuleSet")
40
40
  scope: Optional[StrictStr] = Field(None, description="The scope that the property exists in.")
41
41
  code: Optional[StrictStr] = Field(None, description="The code of the property. Together with the domain and scope this uniquely identifies the property.")
42
42
  value_required: Optional[StrictBool] = Field(None, alias="valueRequired", description="This field is not implemented and should be disregarded.")
@@ -87,8 +87,8 @@ class PropertyDefinition(BaseModel):
87
87
  if value is None:
88
88
  return value
89
89
 
90
- if value not in ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation'):
91
- raise ValueError("must be one of enum values ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation')")
90
+ if value not in ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation', 'AddressKeyDefinition', 'AmortisationRuleSet', 'AnalyticsSetInventory', 'AtomUnitResult', 'CleardownModule', 'ComplexMarketData', 'ComplianceRunSummary', 'ComplianceRule', 'ComplianceRunInfo', 'CorporateActionSource', 'CounterpartyAgreement', 'CustomEntityDefinition', 'DataType', 'Dialect', 'EventHandler', 'GeneralLedgerProfile', 'PostingModule', 'Quote', 'RecipeComposer', 'ReconciliationRunBreak', 'ReferenceList', 'RelationDefinition', 'ReturnBlockIndex', 'SRSDocument', 'SRSIndex', 'TransactionTemplate', 'TransactionTemplateScope', 'TransactionType', 'TransactionTypeConfig', 'TranslationScript', 'TaskDefinition', 'TaskInstance', 'Worker', 'StagingRuleSet'):
91
+ raise ValueError("must be one of enum values ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation', 'AddressKeyDefinition', 'AmortisationRuleSet', 'AnalyticsSetInventory', 'AtomUnitResult', 'CleardownModule', 'ComplexMarketData', 'ComplianceRunSummary', 'ComplianceRule', 'ComplianceRunInfo', 'CorporateActionSource', 'CounterpartyAgreement', 'CustomEntityDefinition', 'DataType', 'Dialect', 'EventHandler', 'GeneralLedgerProfile', 'PostingModule', 'Quote', 'RecipeComposer', 'ReconciliationRunBreak', 'ReferenceList', 'RelationDefinition', 'ReturnBlockIndex', 'SRSDocument', 'SRSIndex', 'TransactionTemplate', 'TransactionTemplateScope', 'TransactionType', 'TransactionTypeConfig', 'TranslationScript', 'TaskDefinition', 'TaskInstance', 'Worker', 'StagingRuleSet')")
92
92
  return value
93
93
 
94
94
  @validator('life_time')
@@ -34,7 +34,7 @@ class PropertyDefinitionSearchResult(BaseModel):
34
34
  data_type_id: Optional[ResourceId] = Field(None, alias="dataTypeId")
35
35
  type: Optional[StrictStr] = Field(None, description="The type of the property. The available values are: Label, Metric, Information")
36
36
  unit_schema: Optional[StrictStr] = Field(None, alias="unitSchema", description="The units that can be associated with the property's values. This is defined by the property's data type. The available values are: NoUnits, Basic, Iso4217Currency")
37
- domain: Optional[StrictStr] = Field(None, description="The domain that the property exists in. The available values are: NotDefined, Transaction, Portfolio, Holding, ReferenceHolding, TransactionConfiguration, Instrument, CutLabelDefinition, Analytic, PortfolioGroup, Person, AccessMetadata, Order, UnitResult, MarketData, ConfigurationRecipe, Allocation, Calendar, LegalEntity, Placement, Execution, Block, Participation, Package, OrderInstruction, NextBestAction, CustomEntity, InstrumentEvent, Account, ChartOfAccounts, CustodianAccount, Abor, AborConfiguration, Fund, FundConfiguration, Fee, Reconciliation, PropertyDefinition, Compliance, DiaryEntry, Leg, DerivedValuation")
37
+ domain: Optional[StrictStr] = Field(None, description="The domain that the property exists in. The available values are: NotDefined, Transaction, Portfolio, Holding, ReferenceHolding, TransactionConfiguration, Instrument, CutLabelDefinition, Analytic, PortfolioGroup, Person, AccessMetadata, Order, UnitResult, MarketData, ConfigurationRecipe, Allocation, Calendar, LegalEntity, Placement, Execution, Block, Participation, Package, OrderInstruction, NextBestAction, CustomEntity, InstrumentEvent, Account, ChartOfAccounts, CustodianAccount, Abor, AborConfiguration, Fund, FundConfiguration, Fee, Reconciliation, PropertyDefinition, Compliance, DiaryEntry, Leg, DerivedValuation, AddressKeyDefinition, AmortisationRuleSet, AnalyticsSetInventory, AtomUnitResult, CleardownModule, ComplexMarketData, ComplianceRunSummary, ComplianceRule, ComplianceRunInfo, CorporateActionSource, CounterpartyAgreement, CustomEntityDefinition, DataType, Dialect, EventHandler, GeneralLedgerProfile, PostingModule, Quote, RecipeComposer, ReconciliationRunBreak, ReferenceList, RelationDefinition, ReturnBlockIndex, SRSDocument, SRSIndex, TransactionTemplate, TransactionTemplateScope, TransactionType, TransactionTypeConfig, TranslationScript, TaskDefinition, TaskInstance, Worker, StagingRuleSet")
38
38
  scope: Optional[StrictStr] = Field(None, description="The scope that the property exists in.")
39
39
  code: Optional[StrictStr] = Field(None, description="The code of the property. Together with the domain and scope this uniquely identifies the property.")
40
40
  value_required: Optional[StrictBool] = Field(None, alias="valueRequired", description="This field is not implemented and should be disregarded.")
@@ -82,8 +82,8 @@ class PropertyDefinitionSearchResult(BaseModel):
82
82
  if value is None:
83
83
  return value
84
84
 
85
- if value not in ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation'):
86
- raise ValueError("must be one of enum values ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation')")
85
+ if value not in ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation', 'AddressKeyDefinition', 'AmortisationRuleSet', 'AnalyticsSetInventory', 'AtomUnitResult', 'CleardownModule', 'ComplexMarketData', 'ComplianceRunSummary', 'ComplianceRule', 'ComplianceRunInfo', 'CorporateActionSource', 'CounterpartyAgreement', 'CustomEntityDefinition', 'DataType', 'Dialect', 'EventHandler', 'GeneralLedgerProfile', 'PostingModule', 'Quote', 'RecipeComposer', 'ReconciliationRunBreak', 'ReferenceList', 'RelationDefinition', 'ReturnBlockIndex', 'SRSDocument', 'SRSIndex', 'TransactionTemplate', 'TransactionTemplateScope', 'TransactionType', 'TransactionTypeConfig', 'TranslationScript', 'TaskDefinition', 'TaskInstance', 'Worker', 'StagingRuleSet'):
86
+ raise ValueError("must be one of enum values ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation', 'AddressKeyDefinition', 'AmortisationRuleSet', 'AnalyticsSetInventory', 'AtomUnitResult', 'CleardownModule', 'ComplexMarketData', 'ComplianceRunSummary', 'ComplianceRule', 'ComplianceRunInfo', 'CorporateActionSource', 'CounterpartyAgreement', 'CustomEntityDefinition', 'DataType', 'Dialect', 'EventHandler', 'GeneralLedgerProfile', 'PostingModule', 'Quote', 'RecipeComposer', 'ReconciliationRunBreak', 'ReferenceList', 'RelationDefinition', 'ReturnBlockIndex', 'SRSDocument', 'SRSIndex', 'TransactionTemplate', 'TransactionTemplateScope', 'TransactionType', 'TransactionTypeConfig', 'TranslationScript', 'TaskDefinition', 'TaskInstance', 'Worker', 'StagingRuleSet')")
87
87
  return value
88
88
 
89
89
  @validator('life_time')
@@ -71,6 +71,40 @@ class PropertyDomain(str, Enum):
71
71
  DIARYENTRY = 'DiaryEntry'
72
72
  LEG = 'Leg'
73
73
  DERIVEDVALUATION = 'DerivedValuation'
74
+ ADDRESSKEYDEFINITION = 'AddressKeyDefinition'
75
+ AMORTISATIONRULESET = 'AmortisationRuleSet'
76
+ ANALYTICSSETINVENTORY = 'AnalyticsSetInventory'
77
+ ATOMUNITRESULT = 'AtomUnitResult'
78
+ CLEARDOWNMODULE = 'CleardownModule'
79
+ COMPLEXMARKETDATA = 'ComplexMarketData'
80
+ COMPLIANCERUNSUMMARY = 'ComplianceRunSummary'
81
+ COMPLIANCERULE = 'ComplianceRule'
82
+ COMPLIANCERUNINFO = 'ComplianceRunInfo'
83
+ CORPORATEACTIONSOURCE = 'CorporateActionSource'
84
+ COUNTERPARTYAGREEMENT = 'CounterpartyAgreement'
85
+ CUSTOMENTITYDEFINITION = 'CustomEntityDefinition'
86
+ DATATYPE = 'DataType'
87
+ DIALECT = 'Dialect'
88
+ EVENTHANDLER = 'EventHandler'
89
+ GENERALLEDGERPROFILE = 'GeneralLedgerProfile'
90
+ POSTINGMODULE = 'PostingModule'
91
+ QUOTE = 'Quote'
92
+ RECIPECOMPOSER = 'RecipeComposer'
93
+ RECONCILIATIONRUNBREAK = 'ReconciliationRunBreak'
94
+ REFERENCELIST = 'ReferenceList'
95
+ RELATIONDEFINITION = 'RelationDefinition'
96
+ RETURNBLOCKINDEX = 'ReturnBlockIndex'
97
+ SRSDOCUMENT = 'SRSDocument'
98
+ SRSINDEX = 'SRSIndex'
99
+ TRANSACTIONTEMPLATE = 'TransactionTemplate'
100
+ TRANSACTIONTEMPLATESCOPE = 'TransactionTemplateScope'
101
+ TRANSACTIONTYPE = 'TransactionType'
102
+ TRANSACTIONTYPECONFIG = 'TransactionTypeConfig'
103
+ TRANSLATIONSCRIPT = 'TranslationScript'
104
+ TASKDEFINITION = 'TaskDefinition'
105
+ TASKINSTANCE = 'TaskInstance'
106
+ WORKER = 'Worker'
107
+ STAGINGRULESET = 'StagingRuleSet'
74
108
 
75
109
  @classmethod
76
110
  def from_json(cls, json_str: str) -> PropertyDomain:
@@ -25,12 +25,12 @@ class QuoteAccessMetadataRuleId(BaseModel):
25
25
  """
26
26
  An identifier that uniquely identifies a set of Quote access control metadata. # noqa: E501
27
27
  """
28
- provider: Optional[constr(strict=True, max_length=100, min_length=0)] = Field(None, description="The platform or vendor that provided the quote. The available values are: Client, DataScope, Lusid, Edi, TraderMade, FactSet, SIX, Bloomberg, Rimes")
28
+ provider: Optional[constr(strict=True, max_length=100, min_length=0)] = Field(None, description="The platform or vendor that provided the quote. The available values are: Client, DataScope, Lusid, Edi, TraderMade, FactSet, SIX, Bloomberg, Rimes, ICE")
29
29
  price_source: Optional[constr(strict=True, max_length=256, min_length=0)] = Field(None, alias="priceSource", description="The source or originator of the quote, e.g. a bank or financial institution.")
30
30
  instrument_id: Optional[constr(strict=True, max_length=256, min_length=0)] = Field(None, alias="instrumentId", description="The value of the instrument identifier that uniquely identifies the instrument that the quote is for, e.g. 'BBG00JX0P539'.")
31
31
  instrument_id_type: Optional[constr(strict=True, max_length=50, min_length=0)] = Field(None, alias="instrumentIdType", description="The type of instrument identifier used to uniquely identify the instrument that the quote is for, e.g. 'Figi'.")
32
32
  quote_type: Optional[constr(strict=True, max_length=50, min_length=0)] = Field(None, alias="quoteType", description="The type of the quote. This allows for quotes other than prices e.g. rates or spreads to be used.")
33
- field: Optional[constr(strict=True, max_length=2048, min_length=0)] = Field(None, description="The field of the quote e.g. bid, mid, ask etc. This should be consistent across a time series of quotes. The allowed values depend on the provider according to the following rules: Client : *Any value is accepted*; DataScope : 'bid', 'mid', 'ask'; Lusid : *Any value is accepted*; Edi : 'bid', 'mid', 'ask', 'open', 'close', 'last'; TraderMade : 'bid', 'mid', 'ask', 'open', 'close', 'high', 'low'; FactSet : 'bid', 'mid', 'ask', 'open', 'close'; SIX : 'bid', 'mid', 'ask', 'open', 'close', 'last', 'referencePrice', 'highPrice', 'lowPrice', 'maxRedemptionPrice', 'maxSubscriptionPrice', 'openPrice', 'bestBidPrice', 'lastBidPrice', 'bestAskPrice', 'lastAskPrice'; Bloomberg : 'bid', 'mid', 'ask', 'open', 'close', 'last'; Rimes : 'bid', 'mid', 'ask', 'open', 'close', 'last'")
33
+ field: Optional[constr(strict=True, max_length=2048, min_length=0)] = Field(None, description="The field of the quote e.g. bid, mid, ask etc. This should be consistent across a time series of quotes. The allowed values depend on the provider according to the following rules: Client : *Any value is accepted*; DataScope : 'bid', 'mid', 'ask'; Lusid : *Any value is accepted*; Edi : 'bid', 'mid', 'ask', 'open', 'close', 'last'; TraderMade : 'bid', 'mid', 'ask', 'open', 'close', 'high', 'low'; FactSet : 'bid', 'mid', 'ask', 'open', 'close'; SIX : 'bid', 'mid', 'ask', 'open', 'close', 'last', 'referencePrice', 'highPrice', 'lowPrice', 'maxRedemptionPrice', 'maxSubscriptionPrice', 'openPrice', 'bestBidPrice', 'lastBidPrice', 'bestAskPrice', 'lastAskPrice'; Bloomberg : 'bid', 'mid', 'ask', 'open', 'close', 'last'; Rimes : 'bid', 'mid', 'ask', 'open', 'close', 'last'; ICE : 'ask', 'bid'")
34
34
  __properties = ["provider", "priceSource", "instrumentId", "instrumentIdType", "quoteType", "field"]
35
35
 
36
36
  @validator('instrument_id_type')
@@ -25,12 +25,12 @@ class QuoteSeriesId(BaseModel):
25
25
  """
26
26
  The time invariant unique identifier of the quote. Combined with the effective datetime of the quote this uniquely identifies the quote. This can be thought of as a unique identifier for a time series of quotes. # noqa: E501
27
27
  """
28
- provider: constr(strict=True, min_length=1) = Field(..., description="The platform or vendor that provided the quote. The available values are: Client, DataScope, Lusid, Edi, TraderMade, FactSet, SIX, Bloomberg, Rimes")
28
+ provider: constr(strict=True, min_length=1) = Field(..., description="The platform or vendor that provided the quote. The available values are: Client, DataScope, Lusid, Edi, TraderMade, FactSet, SIX, Bloomberg, Rimes, ICE")
29
29
  price_source: Optional[StrictStr] = Field(None, alias="priceSource", description="The source or originator of the quote, e.g. a bank or financial institution.")
30
30
  instrument_id: constr(strict=True, min_length=1) = Field(..., alias="instrumentId", description="The value of the instrument identifier that uniquely identifies the instrument that the quote is for, e.g. 'BBG00JX0P539'.")
31
31
  instrument_id_type: Optional[StrictStr] = Field(..., alias="instrumentIdType", description="The type of instrument identifier used to uniquely identify the instrument that the quote is for, e.g. 'Figi'. The available values are: LusidInstrumentId, Figi, RIC, QuotePermId, Isin, CurrencyPair, ClientInternal, Sedol, Cusip")
32
32
  quote_type: Optional[StrictStr] = Field(..., alias="quoteType", description="The type of the quote. This allows for quotes other than prices e.g. rates or spreads to be used. The available values are: Price, Spread, Rate, LogNormalVol, NormalVol, ParSpread, IsdaSpread, Upfront, Index, Ratio, Delta, PoolFactor, InflationAssumption, DirtyPrice")
33
- field: constr(strict=True, min_length=1) = Field(..., description="The field of the quote e.g. bid, mid, ask etc. This should be consistent across a time series of quotes. The allowed values depend on the provider according to the following rules: Client : *Any value is accepted*; DataScope : 'bid', 'mid', 'ask'; Lusid : *Any value is accepted*; Edi : 'bid', 'mid', 'ask', 'open', 'close', 'last'; TraderMade : 'bid', 'mid', 'ask', 'open', 'close', 'high', 'low'; FactSet : 'bid', 'mid', 'ask', 'open', 'close'; SIX : 'bid', 'mid', 'ask', 'open', 'close', 'last', 'referencePrice', 'highPrice', 'lowPrice', 'maxRedemptionPrice', 'maxSubscriptionPrice', 'openPrice', 'bestBidPrice', 'lastBidPrice', 'bestAskPrice', 'lastAskPrice'; Bloomberg : 'bid', 'mid', 'ask', 'open', 'close', 'last'; Rimes : 'bid', 'mid', 'ask', 'open', 'close', 'last'")
33
+ field: constr(strict=True, min_length=1) = Field(..., description="The field of the quote e.g. bid, mid, ask etc. This should be consistent across a time series of quotes. The allowed values depend on the provider according to the following rules: Client : *Any value is accepted*; DataScope : 'bid', 'mid', 'ask'; Lusid : *Any value is accepted*; Edi : 'bid', 'mid', 'ask', 'open', 'close', 'last'; TraderMade : 'bid', 'mid', 'ask', 'open', 'close', 'high', 'low'; FactSet : 'bid', 'mid', 'ask', 'open', 'close'; SIX : 'bid', 'mid', 'ask', 'open', 'close', 'last', 'referencePrice', 'highPrice', 'lowPrice', 'maxRedemptionPrice', 'maxSubscriptionPrice', 'openPrice', 'bestBidPrice', 'lastBidPrice', 'bestAskPrice', 'lastAskPrice'; Bloomberg : 'bid', 'mid', 'ask', 'open', 'close', 'last'; Rimes : 'bid', 'mid', 'ask', 'open', 'close', 'last'; ICE : 'ask', 'bid'")
34
34
  __properties = ["provider", "priceSource", "instrumentId", "instrumentIdType", "quoteType", "field"]
35
35
 
36
36
  @validator('instrument_id_type')
@@ -29,8 +29,8 @@ class RealisedGainLoss(BaseModel):
29
29
  instrument_scope: Optional[StrictStr] = Field(None, alias="instrumentScope", description="The scope in which the instrument lies.")
30
30
  instrument_uid: constr(strict=True, min_length=1) = Field(..., alias="instrumentUid", description="The unique Lusid Instrument Id (LUID) of the instrument that this gain or loss is associated with.")
31
31
  units: Union[StrictFloat, StrictInt] = Field(..., description="The number of units of the associated instrument against which the gain or loss has been realised.")
32
- purchase_trade_date: Optional[datetime] = Field(None, alias="purchaseTradeDate", description="The effective datetime that the units associated with this gain or loss where originally purchased.")
33
- purchase_settlement_date: Optional[datetime] = Field(None, alias="purchaseSettlementDate", description="The effective datetime that the units associated with this gain or loss where originally settled.")
32
+ purchase_trade_date: Optional[datetime] = Field(None, alias="purchaseTradeDate", description="The effective datetime at which the units associated with this gain or loss were originally purchased.")
33
+ purchase_settlement_date: Optional[datetime] = Field(None, alias="purchaseSettlementDate", description="The effective datetime at which the units associated with this gain or loss were originally settled.")
34
34
  purchase_price: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="purchasePrice", description="The purchase price of each unit associated with this gain or loss.")
35
35
  cost_trade_ccy: CurrencyAndAmount = Field(..., alias="costTradeCcy")
36
36
  cost_portfolio_ccy: CurrencyAndAmount = Field(..., alias="costPortfolioCcy")
@@ -19,7 +19,7 @@ import json
19
19
 
20
20
 
21
21
  from typing import Any, Dict, Optional
22
- from pydantic.v1 import BaseModel, Field, StrictInt, constr
22
+ from pydantic.v1 import BaseModel, Field, StrictBool, StrictInt, constr
23
23
 
24
24
  class StagingRuleApprovalCriteria(BaseModel):
25
25
  """
@@ -27,7 +27,8 @@ class StagingRuleApprovalCriteria(BaseModel):
27
27
  """
28
28
  required_approvals: Optional[StrictInt] = Field(None, alias="requiredApprovals")
29
29
  deciding_user: Optional[constr(strict=True, max_length=16384, min_length=0)] = Field(None, alias="decidingUser")
30
- __properties = ["requiredApprovals", "decidingUser"]
30
+ staging_user_can_decide: Optional[StrictBool] = Field(None, alias="stagingUserCanDecide")
31
+ __properties = ["requiredApprovals", "decidingUser", "stagingUserCanDecide"]
31
32
 
32
33
  class Config:
33
34
  """Pydantic configuration"""
@@ -63,6 +64,11 @@ class StagingRuleApprovalCriteria(BaseModel):
63
64
  if self.deciding_user is None and "deciding_user" in self.__fields_set__:
64
65
  _dict['decidingUser'] = None
65
66
 
67
+ # set to None if staging_user_can_decide (nullable) is None
68
+ # and __fields_set__ contains the field
69
+ if self.staging_user_can_decide is None and "staging_user_can_decide" in self.__fields_set__:
70
+ _dict['stagingUserCanDecide'] = None
71
+
66
72
  return _dict
67
73
 
68
74
  @classmethod
@@ -76,6 +82,7 @@ class StagingRuleApprovalCriteria(BaseModel):
76
82
 
77
83
  _obj = StagingRuleApprovalCriteria.parse_obj({
78
84
  "required_approvals": obj.get("requiredApprovals"),
79
- "deciding_user": obj.get("decidingUser")
85
+ "deciding_user": obj.get("decidingUser"),
86
+ "staging_user_can_decide": obj.get("stagingUserCanDecide")
80
87
  })
81
88
  return _obj
@@ -33,7 +33,7 @@ class TransactionConfigurationMovementData(BaseModel):
33
33
  properties: Optional[Dict[str, PerpetualProperty]] = Field(None, description="The properties associated with the underlying Movement")
34
34
  mappings: Optional[conlist(TransactionPropertyMapping)] = Field(None, description="This allows you to map a transaction property to a property on the underlying holding")
35
35
  name: Optional[StrictStr] = Field(None, description="The movement name (optional)")
36
- movement_options: Optional[conlist(StrictStr)] = Field(None, alias="movementOptions", description="Allows extra specifications for the movement. The only option currently available is 'DirectAdjustment'. A movement type of 'StockMovement' with an option of 'DirectAdjusment' will allow you to adjust the unitsof a holding without affecting its cost base. You will, therefore, be able to reflect the impact of a stock split by loading a Transaction.")
36
+ movement_options: Optional[conlist(StrictStr)] = Field(None, alias="movementOptions", description="Allows extra specifications for the movement. The options currently available are 'DirectAdjustment' and 'IncludesTradedInterest'. A movement type of 'StockMovement' with an option of 'DirectAdjusment' will allow you to adjust the units of a holding without affecting its cost base. You will, therefore, be able to reflect the impact of a stock split by loading a Transaction.")
37
37
  __properties = ["movementTypes", "side", "direction", "properties", "mappings", "name", "movementOptions"]
38
38
 
39
39
  @validator('movement_types')
@@ -33,7 +33,7 @@ class TransactionConfigurationMovementDataRequest(BaseModel):
33
33
  properties: Optional[Dict[str, PerpetualProperty]] = Field(None, description="The properties associated with the underlying Movement.")
34
34
  mappings: Optional[conlist(TransactionPropertyMappingRequest)] = Field(None, description="This allows you to map a transaction property to a property on the underlying holding.")
35
35
  name: Optional[StrictStr] = Field(None, description="The movement name (optional)")
36
- movement_options: Optional[conlist(StrictStr)] = Field(None, alias="movementOptions", description="Allows extra specifications for the movement. The only option currently available is 'DirectAdjustment'. A movement type of 'StockMovement' with an option of 'DirectAdjusment' will allow you to adjust the unitsof a holding without affecting its cost base. You will, therefore, be able to reflect the impact of a stock split by loading a Transaction.")
36
+ movement_options: Optional[conlist(StrictStr)] = Field(None, alias="movementOptions", description="Allows extra specifications for the movement. The options currently available are 'DirectAdjustment' and 'IncludesTradedInterest'. A movement type of 'StockMovement' with an option of 'DirectAdjusment' will allow you to adjust the units of a holding without affecting its cost base. You will, therefore, be able to reflect the impact of a stock split by loading a Transaction.")
37
37
  __properties = ["movementTypes", "side", "direction", "properties", "mappings", "name", "movementOptions"]
38
38
 
39
39
  @validator('movement_types')
@@ -33,7 +33,7 @@ class TransactionTypeMovement(BaseModel):
33
33
  properties: Optional[Dict[str, PerpetualProperty]] = Field(None, description="The properties associated with the underlying Movement")
34
34
  mappings: Optional[conlist(TransactionTypePropertyMapping, max_items=5000)] = Field(None, description="This allows you to map a transaction property to a property on the underlying holding")
35
35
  name: Optional[constr(strict=True, max_length=512, min_length=1)] = Field(None, description="The movement name (optional)")
36
- movement_options: Optional[conlist(StrictStr)] = Field(None, alias="movementOptions", description="Allows extra specifications for the movement. The only option currently available is 'DirectAdjustment'. A movement type of 'StockMovement' with an option of 'DirectAdjusment' will allow you to adjust the unitsof a holding without affecting its cost base. You will, therefore, be able to reflect the impact of a stock split by loading a Transaction.")
36
+ movement_options: Optional[conlist(StrictStr)] = Field(None, alias="movementOptions", description="Allows extra specifications for the movement. The options currently available are 'DirectAdjustment' and 'IncludesTradedInterest'. A movement type of 'StockMovement' with an option of 'DirectAdjusment' will allow you to adjust the units of a holding without affecting its cost base. You will, therefore, be able to reflect the impact of a stock split by loading a Transaction.")
37
37
  settlement_date_override: Optional[StrictStr] = Field(None, alias="settlementDateOverride", description="Optional property key that must be in the Transaction domain when specified. When the movement is processed and the transaction has this property set to a valid date, then the property value will override the SettlementDate of the transaction.")
38
38
  __properties = ["movementTypes", "side", "direction", "properties", "mappings", "name", "movementOptions", "settlementDateOverride"]
39
39
 
@@ -0,0 +1,114 @@
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
+ from datetime import datetime
21
+ from typing import Any, Dict, List, Optional
22
+ from pydantic.v1 import BaseModel, Field, conlist
23
+ from lusid.models.error_detail import ErrorDetail
24
+ from lusid.models.link import Link
25
+ from lusid.models.person import Person
26
+
27
+ class UpsertPersonsResponse(BaseModel):
28
+ """
29
+ UpsertPersonsResponse
30
+ """
31
+ values: Dict[str, Person] = Field(..., description="The Person(s) that have been successfully upserted")
32
+ failed: Dict[str, ErrorDetail] = Field(..., description="The Person(s) that could not be upserted along with a reason for their failure.")
33
+ as_at_date: datetime = Field(..., alias="asAtDate", description="The as-at datetime at which Person(s) were created or updated.")
34
+ links: Optional[conlist(Link)] = None
35
+ __properties = ["values", "failed", "asAtDate", "links"]
36
+
37
+ class Config:
38
+ """Pydantic configuration"""
39
+ allow_population_by_field_name = True
40
+ validate_assignment = True
41
+
42
+ def to_str(self) -> str:
43
+ """Returns the string representation of the model using alias"""
44
+ return pprint.pformat(self.dict(by_alias=True))
45
+
46
+ def to_json(self) -> str:
47
+ """Returns the JSON representation of the model using alias"""
48
+ return json.dumps(self.to_dict())
49
+
50
+ @classmethod
51
+ def from_json(cls, json_str: str) -> UpsertPersonsResponse:
52
+ """Create an instance of UpsertPersonsResponse from a JSON string"""
53
+ return cls.from_dict(json.loads(json_str))
54
+
55
+ def to_dict(self):
56
+ """Returns the dictionary representation of the model using alias"""
57
+ _dict = self.dict(by_alias=True,
58
+ exclude={
59
+ },
60
+ exclude_none=True)
61
+ # override the default output from pydantic by calling `to_dict()` of each value in values (dict)
62
+ _field_dict = {}
63
+ if self.values:
64
+ for _key in self.values:
65
+ if self.values[_key]:
66
+ _field_dict[_key] = self.values[_key].to_dict()
67
+ _dict['values'] = _field_dict
68
+ # override the default output from pydantic by calling `to_dict()` of each value in failed (dict)
69
+ _field_dict = {}
70
+ if self.failed:
71
+ for _key in self.failed:
72
+ if self.failed[_key]:
73
+ _field_dict[_key] = self.failed[_key].to_dict()
74
+ _dict['failed'] = _field_dict
75
+ # override the default output from pydantic by calling `to_dict()` of each item in links (list)
76
+ _items = []
77
+ if self.links:
78
+ for _item in self.links:
79
+ if _item:
80
+ _items.append(_item.to_dict())
81
+ _dict['links'] = _items
82
+ # set to None if links (nullable) is None
83
+ # and __fields_set__ contains the field
84
+ if self.links is None and "links" in self.__fields_set__:
85
+ _dict['links'] = None
86
+
87
+ return _dict
88
+
89
+ @classmethod
90
+ def from_dict(cls, obj: dict) -> UpsertPersonsResponse:
91
+ """Create an instance of UpsertPersonsResponse from a dict"""
92
+ if obj is None:
93
+ return None
94
+
95
+ if not isinstance(obj, dict):
96
+ return UpsertPersonsResponse.parse_obj(obj)
97
+
98
+ _obj = UpsertPersonsResponse.parse_obj({
99
+ "values": dict(
100
+ (_k, Person.from_dict(_v))
101
+ for _k, _v in obj.get("values").items()
102
+ )
103
+ if obj.get("values") is not None
104
+ else None,
105
+ "failed": dict(
106
+ (_k, ErrorDetail.from_dict(_v))
107
+ for _k, _v in obj.get("failed").items()
108
+ )
109
+ if obj.get("failed") is not None
110
+ else None,
111
+ "as_at_date": obj.get("asAtDate"),
112
+ "links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None
113
+ })
114
+ return _obj
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lusid-sdk
3
- Version: 2.1.198
3
+ Version: 2.1.222
4
4
  Summary: LUSID API
5
5
  Home-page: https://github.com/finbourne/lusid-sdk-python
6
6
  License: MIT
@@ -29,8 +29,8 @@ FINBOURNE Technology
29
29
 
30
30
  This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
31
31
 
32
- - API version: 0.11.6632
33
- - Package version: 2.1.198
32
+ - API version: 0.11.6656
33
+ - Package version: 2.1.222
34
34
  - Build package: org.openapitools.codegen.languages.PythonClientCodegen
35
35
  For more information, please visit [https://www.finbourne.com](https://www.finbourne.com)
36
36
 
@@ -521,6 +521,7 @@ Class | Method | HTTP request | Description
521
521
  *PersonsApi* | [**set_person_properties**](docs/PersonsApi.md#set_person_properties) | **POST** /api/persons/{idTypeScope}/{idTypeCode}/{code}/properties | [EARLY ACCESS] SetPersonProperties: Set Person Properties
522
522
  *PersonsApi* | [**upsert_person**](docs/PersonsApi.md#upsert_person) | **POST** /api/persons | [EARLY ACCESS] UpsertPerson: Upsert Person
523
523
  *PersonsApi* | [**upsert_person_access_metadata**](docs/PersonsApi.md#upsert_person_access_metadata) | **PUT** /api/persons/{idTypeScope}/{idTypeCode}/{code}/metadata/{metadataKey} | [EARLY ACCESS] UpsertPersonAccessMetadata: Upsert a Person Access Metadata entry associated with a specific metadataKey. This creates or updates the data in LUSID.
524
+ *PersonsApi* | [**upsert_persons**](docs/PersonsApi.md#upsert_persons) | **POST** /api/persons/$batchUpsert | [EARLY ACCESS] UpsertPersons: Pluralised Upsert of Persons
524
525
  *PlacementsApi* | [**delete_placement**](docs/PlacementsApi.md#delete_placement) | **DELETE** /api/placements/{scope}/{code} | [EARLY ACCESS] DeletePlacement: Delete placement
525
526
  *PlacementsApi* | [**get_placement**](docs/PlacementsApi.md#get_placement) | **GET** /api/placements/{scope}/{code} | [EARLY ACCESS] GetPlacement: Get Placement
526
527
  *PlacementsApi* | [**list_placements**](docs/PlacementsApi.md#list_placements) | **GET** /api/placements | [EARLY ACCESS] ListPlacements: List Placements
@@ -1690,6 +1691,7 @@ Class | Method | HTTP request | Description
1690
1691
  - [UpsertLegalEntityRequest](docs/UpsertLegalEntityRequest.md)
1691
1692
  - [UpsertPersonAccessMetadataRequest](docs/UpsertPersonAccessMetadataRequest.md)
1692
1693
  - [UpsertPersonRequest](docs/UpsertPersonRequest.md)
1694
+ - [UpsertPersonsResponse](docs/UpsertPersonsResponse.md)
1693
1695
  - [UpsertPortfolioAccessMetadataRequest](docs/UpsertPortfolioAccessMetadataRequest.md)
1694
1696
  - [UpsertPortfolioGroupAccessMetadataRequest](docs/UpsertPortfolioGroupAccessMetadataRequest.md)
1695
1697
  - [UpsertPortfolioTransactionsResponse](docs/UpsertPortfolioTransactionsResponse.md)
@@ -1,4 +1,4 @@
1
- lusid/__init__.py,sha256=Fc_eQH5FJ4vyUWkKiCFXKQ2bKVEAvPTEvg28Xt9b7Y8,110353
1
+ lusid/__init__.py,sha256=D7YxBCamtXvcrdy2agoNMy3TQCCQwaAdkAICUu7VWiY,110453
2
2
  lusid/api/__init__.py,sha256=PFpT-ADthWd08-JqKOqQTbVW6cz9wdP_us6bg3aBFfs,5555
3
3
  lusid/api/abor_api.py,sha256=AvgsHuWE7qRSYJhKveBE2htSjHpqqS0VNJrysAfwME0,159655
4
4
  lusid/api/abor_configuration_api.py,sha256=G2bKPtMYOZ2GhUrg-nPJtCa9XIZdZYK7oafcbJWDMP8,64033
@@ -37,10 +37,10 @@ lusid/api/order_management_api.py,sha256=DI7QI_ePN1lEB5uS4FmocJLLsC2aIWW2O05ihDD
37
37
  lusid/api/orders_api.py,sha256=PjkqtLhbS6lQEEfZiXXAiIa5ls0jLokiqizseg7_nx0,43527
38
38
  lusid/api/packages_api.py,sha256=-2mdoL2HSQ2aCXqYUMxt-1rrlezyQhgCNtevVazqM9o,43985
39
39
  lusid/api/participations_api.py,sha256=nlVzeyfE33X9Ue9HC9rqCW3WACEPKBvcrEjFEmT8wlk,45263
40
- lusid/api/persons_api.py,sha256=0ZUZykUD46ow8j6sXjqaxCTylzUkssOyimAxCoDMUb4,247306
40
+ lusid/api/persons_api.py,sha256=wYB_EaDB9LXTXuSIQr8SIR4h-0NrTgisfwd5uShz8JQ,256317
41
41
  lusid/api/placements_api.py,sha256=bsX7VHZlvnxJiZ3ZPtlJ8md_exerU-Qa_BkHGVRphH8,45797
42
42
  lusid/api/portfolio_groups_api.py,sha256=IueIpi-krYvm5w-I0gkvkYAgxHXfiWejRYcW6DW8400,380452
43
- lusid/api/portfolios_api.py,sha256=azolh8b5KzRMWFPAfRSD-DczqnHjq_Kgpjtgt4qomwg,421241
43
+ lusid/api/portfolios_api.py,sha256=pXwxugbm-zQf901tDlh_zbC4odf384sQKclu1rrIWXk,421231
44
44
  lusid/api/property_definitions_api.py,sha256=I3aISrQ3USeB-Vkx8OVyakx345aEhPATghGmEtL6ApU,140367
45
45
  lusid/api/queryable_keys_api.py,sha256=1HafmN22bU1bV5H5nua8EZ5oL0pe0LZ5xkVDQTDSezg,10281
46
46
  lusid/api/quotes_api.py,sha256=QPSJ6rFAI-hsvei1QA-PoCzpHRJlcvF_SiCxyGyG678,115595
@@ -67,7 +67,7 @@ lusid/api/transaction_portfolios_api.py,sha256=7G5m6iTQXTKCc6ASdxnlVJjvFascHxEgD
67
67
  lusid/api/translation_api.py,sha256=xTAaKEW96JTDIZBXCjxSguCa7Gz4oVd5jdObUE2egwo,20092
68
68
  lusid/api_client.py,sha256=dF6l9RAsdxdQjf6Qn4ny6LB-QXlJmsscWiozCvyyBFA,30709
69
69
  lusid/api_response.py,sha256=6-gnhty6lu8MMAERt3_kTVD7UxQgWFfcjgpcq6iN5IU,855
70
- lusid/configuration.py,sha256=UWwHjhH8symwmIp5KRe3j_7-59FpBjOwnmzjb5TPYWc,14404
70
+ lusid/configuration.py,sha256=2IflDAZl5HErWUzVWUR-Ic7L9lfDUNw0mdugG-8dguU,14404
71
71
  lusid/exceptions.py,sha256=HIQwgmQrszLlcVCLaqex8dO0laVuejUyOMz7U2ZWJ6s,5326
72
72
  lusid/extensions/__init__.py,sha256=L7EF4zKjcq1g2GodEumg1-C9xKs7YrQ0QHGPi8XbpO4,629
73
73
  lusid/extensions/api_client.py,sha256=Ob06urm4Em3MLzgP_geyeeGsPCkU225msW_1kpIeABM,30567
@@ -81,7 +81,7 @@ lusid/extensions/rest.py,sha256=tjVCu-cRrYcjp-ttB975vebPKtBNyBWaeoAdO3QXG2I,1269
81
81
  lusid/extensions/retry.py,sha256=orBJ1uF1iT1IncjWX1iGHVqsCgTh0SBe9rtiV_sPnwk,11564
82
82
  lusid/extensions/socket_keep_alive.py,sha256=NGlqsv-E25IjJOLGZhXZY6kUdx51nEF8qCQyVdzayRk,1653
83
83
  lusid/extensions/tcp_keep_alive_connector.py,sha256=zaGtUsygRsxB1_4B3x39K3ILwztdhMLDv5bFZV7zmGE,3877
84
- lusid/models/__init__.py,sha256=NaO3YY2YePlhZOMBPjDwDP347uGNyfQcMo0GjUWjukg,103766
84
+ lusid/models/__init__.py,sha256=kh-3eODFYDlfPJLqhPaK0XBx9L7ozJl6AQuQE3TGQEo,103866
85
85
  lusid/models/a2_b_breakdown.py,sha256=Txi12EIQw3mH6NM-25QkOnHSQc3BVAWrP7yl9bZswSY,2947
86
86
  lusid/models/a2_b_category.py,sha256=k6NPAACi0CUjKyhdQac4obQSrPmp2PXD6lkAtCnyEFM,2725
87
87
  lusid/models/a2_b_data_record.py,sha256=zKGS2P4fzNpzdcGJiSIpkY4P3d_jAcawYfyuPCDeQgk,9737
@@ -270,11 +270,11 @@ lusid/models/create_cut_label_definition_request.py,sha256=ipEHtZQsHX832_UDmsbhj
270
270
  lusid/models/create_data_map_request.py,sha256=uLO0ZBiCDek4dtTbY1sLXn_jBjpGk1h9P6eH71ZgokY,2478
271
271
  lusid/models/create_data_type_request.py,sha256=E4Ju3BNYIU23RmE0naixPbKYDRiKhRkmXgtgdIAeq9I,8058
272
272
  lusid/models/create_date_request.py,sha256=BewoN8Nijcbuc2SKo40yMbGVFo9pdaeinGlZYFrQ1Aw,4785
273
- lusid/models/create_derived_property_definition_request.py,sha256=uLbHxHP9ktdhXwfPcW6g4AMlWKtP3fE8iZUaZqcaTng,6031
273
+ lusid/models/create_derived_property_definition_request.py,sha256=D-AWs0ttNMr05keE1UZMXmfn3qtpeNCKEH4RHRMUmWg,7961
274
274
  lusid/models/create_derived_transaction_portfolio_request.py,sha256=jDqgwK3j-A5UHaeBSHZ_BADAo1fP5j3zZBkA7osrkfE,10150
275
275
  lusid/models/create_portfolio_details.py,sha256=yn9QqByAqH1RLx3lDnzr5PYj-y0xihxLzBYhhCRRq8A,2364
276
276
  lusid/models/create_portfolio_group_request.py,sha256=sRqA38fZ0Zj7Olc0fnCQnFliDBlQm-tjGp0mqtl-u9E,6132
277
- lusid/models/create_property_definition_request.py,sha256=8mhq4_Patvkw8t-u9FnDsBz33MkYSEoSRvV8_GL4k_o,7509
277
+ lusid/models/create_property_definition_request.py,sha256=i0vhBYHlZzmZJ8c-li7PJJwQNvrE7b5uyDqO_lnDPhQ,9439
278
278
  lusid/models/create_recipe_request.py,sha256=995tNY8Fkn_Pxsw1s4b5Nwc2Hh7Ux0uwtrq-14H85s0,3733
279
279
  lusid/models/create_reconciliation_request.py,sha256=QDbK3rJRsKeobn7VnR5Dp0Gm49FKgexNC9ZKj3Apjn0,6391
280
280
  lusid/models/create_reference_portfolio_request.py,sha256=yFEKW__RlQH7FtOh4aX88VJPwESgwaQEDdvrr_heDtc,5018
@@ -293,7 +293,7 @@ lusid/models/credit_rating.py,sha256=3EJjCwgdDT04iclq5OTBWughXAbXc9FkOtz-x7i5rks
293
293
  lusid/models/credit_spread_curve_data.py,sha256=N2gish4RNEdHNRwo8AceZbY5dPUtKy8Lt1WTRxrDHNw,7174
294
294
  lusid/models/credit_support_annex.py,sha256=YFEtXS7mDojadeeJOfvfNVCBHjgkgBFbUMV0YA5bNtI,5420
295
295
  lusid/models/criterion_type.py,sha256=Bd9KQZuS8O0ie_vYJZAvfnKMggoJOiCdcMFpik-m-q8,772
296
- lusid/models/currency_and_amount.py,sha256=izd4FdwwuPPB79pNkbk4tuwB3-JiTUE4B-OhHyboJ9k,2277
296
+ lusid/models/currency_and_amount.py,sha256=0fnwWNfI1_gMhmZBx_dCjujbM0EgwV28c_9u5k5kmlY,2069
297
297
  lusid/models/curve_options.py,sha256=QrYx3ty0D8guh0t5mnxs6makVs3zGlJDO2-6ypIHN_c,5131
298
298
  lusid/models/custodian_account.py,sha256=u12g4jvcWG-ueWSpbBBBfpjmp09ehY3wEXcORQI-hx0,5020
299
299
  lusid/models/custodian_account_properties.py,sha256=733uiIZZOx86tQVcX0zfb6-HqF6DXKy5w4hl-9T7uSU,4363
@@ -378,7 +378,7 @@ lusid/models/exercise_event.py,sha256=EZGXFc8riKkqeCnhDIY6MVtp3RAFlBehvMU4kC_KqJ
378
378
  lusid/models/exotic_instrument.py,sha256=Nfv3cttH2eWGX_aeU6zxmLD5hsNnWC6yBSFeFS6sr80,5705
379
379
  lusid/models/expanded_group.py,sha256=e1fIiusdlI_VtjJlF4g5O_yg6A_5VDOg2LaW94CUyJU,5931
380
380
  lusid/models/expiry_event.py,sha256=o1jn1kCnF2zSL8WJ3TSuJ-E9t-s22esebwaJGrqUGKg,4686
381
- lusid/models/fee.py,sha256=NmBhi0yLXK18pRbL-jiaDlm4SrVv6Ddgm-Lc_IwaEUY,11510
381
+ lusid/models/fee.py,sha256=oMJgUsrJ3IsvK6bZlEtsTA2LF_4yncnzecVgh4w9VpU,10618
382
382
  lusid/models/fee_accrual.py,sha256=A9DaaFrEY1JqMbym_7TIcMMQxSqnQFMxuVZzljnggIk,2862
383
383
  lusid/models/fee_properties.py,sha256=Q92whmRw6aIwyxsgLVF9vntTY5WLwtrDdJMw9sSNoEQ,4232
384
384
  lusid/models/fee_request.py,sha256=aJbg758cpQ9tDD30G9_HLgnOOJcpxBvUDOPNvy7FL4E,8633
@@ -574,7 +574,7 @@ lusid/models/option_entry.py,sha256=KJfFze7xIJxeIJ7hXxJhkUydFhg9KJU4rIAfLdBaT8k,
574
574
  lusid/models/optionality_schedule.py,sha256=lZh9nWhUmmkcfzAjsM8qvTAtXf4Fm97vhIbqD-EIboU,5501
575
575
  lusid/models/order.py,sha256=-47dm6-P-pNB--pBRn6UxGCv7Az7ECBAgoykBdR3agM,9659
576
576
  lusid/models/order_by_spec.py,sha256=9RyLPdTBImMEcjhN2mq-BtMykndyNLZSpJ3xO_biaZk,2319
577
- lusid/models/order_flow_configuration.py,sha256=2Hkp1PwSVqdfawZq07A_nIoPqH-41yEhC_6aIvk3e98,1979
577
+ lusid/models/order_flow_configuration.py,sha256=qtSDRosH6YswgQBadMDy-JG3VbtwBr2Cl07eLokaAdo,2273
578
578
  lusid/models/order_graph_block.py,sha256=NkPRWJSby5JizR6KHiS1v_UxyWDQCk1sXP4e-zz2-sI,5332
579
579
  lusid/models/order_graph_block_allocation_detail.py,sha256=L51Rl6sgG8R7jiwRtSYH6R2AT09M0SaIBB7jO8ykHdc,2178
580
580
  lusid/models/order_graph_block_allocation_synopsis.py,sha256=PTlPTHowUDna144w0yNEESTbK5cZ4BWLDL_jur42Nro,2766
@@ -713,10 +713,10 @@ lusid/models/pricing_context.py,sha256=E8B73sz2c6A2o4HykfbMMfaspv4F6gQfx4fjzDLr6
713
713
  lusid/models/pricing_model.py,sha256=DqxFxGtRJHj3BIDdHqND5MwI9X3d1jh6cPc3hDkzuCk,1447
714
714
  lusid/models/pricing_options.py,sha256=ueSekxM9_XWSVd7uVELUtY86w-ul8WnLJR2gtTQm264,7961
715
715
  lusid/models/processed_command.py,sha256=YJ13QMu5M7XCkOqabOvkh3d-w_7P_2VEgRkliLsjTn4,2970
716
- lusid/models/property_definition.py,sha256=vkZqzG7vUsTrf0G48ljdnLp8LeTpUJovC-iDLZvRQL0,14816
717
- lusid/models/property_definition_search_result.py,sha256=BZTBhBAaoI295ZMnvFvt5hMGuaj7ZZxBP78TqLTUNxc,12931
716
+ lusid/models/property_definition.py,sha256=_u0Qcl9SsCfWGB3sQvs_gnh062JE6hDV2a37QxdmDXM,16746
717
+ lusid/models/property_definition_search_result.py,sha256=HZDRgjbbpwzddBWAXMowLcRQC9lY3z66rf7t-CjJQpI,14861
718
718
  lusid/models/property_definition_type.py,sha256=0OhOMXLaFU6yGWTx0XfyrbQL3LSWYiVW2eFE6D9y9Pw,731
719
- lusid/models/property_domain.py,sha256=DOTnD-dqTuMIV2e7TGLVpTWX8cX1BKbQ1FCtBpaKkpQ,2120
719
+ lusid/models/property_domain.py,sha256=jL6mA2e1u8zhozuNf0IVB7GT661sQpno4d4gBjerwfs,3520
720
720
  lusid/models/property_filter.py,sha256=DZ3_PZe4U9pJapQ69CH5zGFbJuVPQkUUfHP4OoAkw0I,3647
721
721
  lusid/models/property_interval.py,sha256=d8Beue8awpdtK-bLATPbQyqg91RQVgkq3GddTa_4q9k,3221
722
722
  lusid/models/property_key_compliance_parameter.py,sha256=pXUQRaKuNZ1NLiVoADRcDQQ4aA7YaESaH6TyU6C3Fpo,5316
@@ -737,15 +737,15 @@ lusid/models/query_trade_tickets_request.py,sha256=fNQ0Y0sQ_x19G1y3lnqXV2d3L9jZR
737
737
  lusid/models/queryable_key.py,sha256=wuXBcvzYrjRJZ-eZ34cHwJWzRYhoyKMjqWjClosoR9Y,8320
738
738
  lusid/models/quote.py,sha256=zuGCv7tOb-k4bBXJLaEa3g3s7FW_zhbI3Ux9yb2a-DI,4479
739
739
  lusid/models/quote_access_metadata_rule.py,sha256=s0-r0q6h72-XRO4_9G6abSWp88OFM7QUS0MOGXYV9s8,3179
740
- lusid/models/quote_access_metadata_rule_id.py,sha256=LBmWiRI7lmXxW_bECPxDNLOEleHtzG_T3_Ez_-jXAEo,6376
740
+ lusid/models/quote_access_metadata_rule_id.py,sha256=qc2bySwq38ZvxuSW105zZehvRFWrIiqVx2aGj6oLtk0,6401
741
741
  lusid/models/quote_dependency.py,sha256=1xlJfTJjjLVnN5lTY7JQLUT_5IPEUNtNaLUFfBjDC9E,4595
742
742
  lusid/models/quote_id.py,sha256=dPe08swumG6Hc4Rk2p2YstGQafjJRcdQTF78EqYZEPk,2419
743
743
  lusid/models/quote_instrument_id_type.py,sha256=xLx1GjV_zFUIJcpw2JmCyWmzd9QR6S7ORFajcjtAHBw,886
744
- lusid/models/quote_series_id.py,sha256=C2P5iTb29S36znzVjaiaOFcECkKdlLjCYIgHmWZSap4,6300
744
+ lusid/models/quote_series_id.py,sha256=8R3ate409A4V-XqIviXhhxBWfKR0Ksy5R4pD7yuK3Mo,6325
745
745
  lusid/models/quote_type.py,sha256=dwYbZgzgJticaNVZmTZaYx6VgJtC30GtjDk9bPyseFQ,958
746
746
  lusid/models/raw_vendor_event.py,sha256=lQQMtXytsx4NQeC_dLWT-BVGa7GXcwJ6jKfWhtfXlTE,5529
747
747
  lusid/models/re_open_period_diary_entry_request.py,sha256=CcQqX5ekcLT_XTdWFJGZAmNQ2I5NMpzkwoLvfdoJ4X0,2792
748
- lusid/models/realised_gain_loss.py,sha256=zs9WnDKYfegeKs_QTbR9RNKyYoKCiEq0oZomoQjJg_I,7184
748
+ lusid/models/realised_gain_loss.py,sha256=SqOAkbqLzwVkwmV4V4kFRLB6n55CJJhIfSDVK7xRHvg,7190
749
749
  lusid/models/recipe_block.py,sha256=HDA6kexcMXEZXYEknTdRhyTNXi44WOmE1KtadUkVDC0,2848
750
750
  lusid/models/recipe_composer.py,sha256=p8itR-GLgssfN4fQgjCAEEVuitsEDlK_MXEBclZhvEA,3703
751
751
  lusid/models/recipe_value.py,sha256=oJJICDF14eeMhGg7tHPbA1BhCDAiWWojlRYmc1RDhVQ,3332
@@ -906,7 +906,7 @@ lusid/models/staged_modifications_entity_hrefs.py,sha256=f0mhz_WUwZmSHhF4xxou76T
906
906
  lusid/models/staged_modifications_info.py,sha256=z2GkecAm0BLbrCmyBf5n_WzlWP-LPZW-s0io15Z5Spk,2827
907
907
  lusid/models/staged_modifications_requested_change_interval.py,sha256=IcTpdybRf8Ojcyd4_TAUkg_4WmbNR9O5PTTYTVX6TEA,5025
908
908
  lusid/models/staging_rule.py,sha256=RxvQoGTR8tShrGw4MLFhaR5L4kxdjeXK8hCGp0kagsk,3560
909
- lusid/models/staging_rule_approval_criteria.py,sha256=qmAPg2CfdCQvgSiSLte1n9PAz0fYipc8oDVb2QaMIxk,2687
909
+ lusid/models/staging_rule_approval_criteria.py,sha256=gkdB2pNgVE4-LvE6-P-QrLnT7zcDQMwSsXTB8PfOjJE,3157
910
910
  lusid/models/staging_rule_match_criteria.py,sha256=_RxCyvulK3necsQz6LI7YacbSZAktEN5cITthxm9F-w,3561
911
911
  lusid/models/staging_rule_set.py,sha256=05h5vV_9s3V2MYoH7o1K8pmjlUq15jJSsmyJ5ObRyKs,4896
912
912
  lusid/models/step_schedule.py,sha256=1xCC_C_GzTIOY8GPUIaF75YoieJ6fwV4qQFQHTsJypg,4580
@@ -933,8 +933,8 @@ lusid/models/trade_ticket_type.py,sha256=j7f2bfiA_cxaFtjZpT3Natl4BoaGAaEXF6E0ltE
933
933
  lusid/models/transaction.py,sha256=s_t93axEEHXHIFkmTCqeWWbJ0b2IuaP465yBvQGtK2w,11577
934
934
  lusid/models/transaction_configuration_data.py,sha256=BSHXnMn6TWaubn2zTxPvbRUOsRtGYb0N4sDNUcf1SaY,4318
935
935
  lusid/models/transaction_configuration_data_request.py,sha256=mypVKRfltmkG5NEUGqDDyBYdIir3S1nkYzGL8BwHWgo,4398
936
- lusid/models/transaction_configuration_movement_data.py,sha256=LzoIgeauRPD2KnvYHchjYXv7LiOx2aazLaCcydjGuwU,6984
937
- lusid/models/transaction_configuration_movement_data_request.py,sha256=9-PcxYeRBTC2PfWebPGMt99tjnv8qWp_EMVsryxmZ90,6623
936
+ lusid/models/transaction_configuration_movement_data.py,sha256=_reiT_ZkjGFvAzyuftXxFfJNJ3YIe0lLws9wFBPGmd8,7011
937
+ lusid/models/transaction_configuration_movement_data_request.py,sha256=3o7WmlP4XNSjLfWWmlfcCsZSeRUFCRBdZERr-TnHYRk,6650
938
938
  lusid/models/transaction_configuration_type_alias.py,sha256=YXhlJeoClTMcY0KmAfqGGV6mkYQFP2YF6B4PXOLjQt0,4750
939
939
  lusid/models/transaction_currency_and_amount.py,sha256=us7dfLcpX_55r_K3EjDeTha0k2NTDl0FkkWg9LhX6Lo,2524
940
940
  lusid/models/transaction_field_map.py,sha256=sFREEtmXIwCv2HWoXVFiuU_uLrSSDCAis3CRKXazwtY,4329
@@ -959,7 +959,7 @@ lusid/models/transaction_template_specification.py,sha256=dggD7J8ZSUTznJddC_Sn65
959
959
  lusid/models/transaction_type.py,sha256=zcWUQPVY5JKEOzNWQls7TjTiKOB7QVY8iFh1zgJXYUc,5765
960
960
  lusid/models/transaction_type_alias.py,sha256=xL9k8kjgAcEPe5sfK8asHscvz7gLcAa6pC_eGgVvXlY,3532
961
961
  lusid/models/transaction_type_calculation.py,sha256=L44yItrCEO_L1lZ-blbKIkwHplM28a_5kwKlf-BvfGA,2734
962
- lusid/models/transaction_type_movement.py,sha256=RfcTLPKRDVzVFQm7mWgDGVUyvv9psJlSL-Ag5vwp__E,7324
962
+ lusid/models/transaction_type_movement.py,sha256=91L6LTeAGpAB52qmFZOPqiraol4G2JOgdf3ElzYSU2Y,7351
963
963
  lusid/models/transaction_type_property_mapping.py,sha256=2fmP3IJH-44GXE5-jt4Fd55xQscWTrEa76yjQJIUs_4,3249
964
964
  lusid/models/transaction_type_request.py,sha256=tuoF4_cUe0KLjF4FN_un_wGtraNfJAXoNrfudvA0zIc,5121
965
965
  lusid/models/transactions_reconciliations_response.py,sha256=ogcMW8W4vgIDqEdggwJDA0tH-SInrqIFCLved7SZ-VM,3083
@@ -1025,6 +1025,7 @@ lusid/models/upsert_legal_entity_access_metadata_request.py,sha256=YJ1lK6mS8rdBv
1025
1025
  lusid/models/upsert_legal_entity_request.py,sha256=H0JdP5DceJaM7UshA2X3Xtcb-4jTYD7egL2fx6-5TAA,5628
1026
1026
  lusid/models/upsert_person_access_metadata_request.py,sha256=A4dqDvLcSy8vmlFUrNe69E00qQoZyw3crsylz1vkNzM,2795
1027
1027
  lusid/models/upsert_person_request.py,sha256=WniK_xYrtBbHx0sSaZd0ejsZPr3_fge9fu5jBQMBlD8,4278
1028
+ lusid/models/upsert_persons_response.py,sha256=H-R-CZLG4AqmZlJcqO0tMTjPy-GTmIkVyRNIu9FaTOc,4184
1028
1029
  lusid/models/upsert_portfolio_access_metadata_request.py,sha256=DaD6GKXyOKWFt80u7B3PG420Rq2aVPSojjfExttElhM,2587
1029
1030
  lusid/models/upsert_portfolio_group_access_metadata_request.py,sha256=utQ8jcZx4Nnszx-BeWKMydstgs-4dpC9eGerBtRCbvg,2633
1030
1031
  lusid/models/upsert_portfolio_transactions_response.py,sha256=bnpOD9bKiA6dKC7izDN1C5E_S7idHBIj3h68bCa_-bk,4621
@@ -1076,6 +1077,6 @@ lusid/models/weighted_instruments.py,sha256=1y_y_vw4-LPsbkQx4FOzWdZc5fJnzhVkf1D3
1076
1077
  lusid/models/yield_curve_data.py,sha256=SbxvdJ4-GWK9kpMdw4Fnxc7_kvIMwgsRsd_31UJn7nw,6330
1077
1078
  lusid/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1078
1079
  lusid/rest.py,sha256=TNUzQ3yLNT2L053EdR7R0vNzQh2J3TlYD1T56Dye0W0,10138
1079
- lusid_sdk-2.1.198.dist-info/METADATA,sha256=NDuxMfk7bwqJl8BkLYYgBSSoQUw7P4NkhR34ehy0urQ,188870
1080
- lusid_sdk-2.1.198.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1081
- lusid_sdk-2.1.198.dist-info/RECORD,,
1080
+ lusid_sdk-2.1.222.dist-info/METADATA,sha256=lmy4FnQ7WnUeS4Ezo_9oLhjCiG4Unnxn7wLlTpUKvIE,189097
1081
+ lusid_sdk-2.1.222.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1082
+ lusid_sdk-2.1.222.dist-info/RECORD,,