lusid-sdk 2.1.91__py3-none-any.whl → 2.1.106__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 +6 -0
- lusid/api/portfolios_api.py +554 -0
- lusid/api/staged_modifications_api.py +12 -12
- lusid/configuration.py +1 -1
- lusid/models/__init__.py +6 -0
- lusid/models/account.py +1 -1
- lusid/models/custodian_account.py +1 -1
- lusid/models/custodian_account_request.py +1 -1
- lusid/models/fx_forward.py +1 -1
- lusid/models/instrument_event_instruction.py +121 -0
- lusid/models/instrument_event_instruction_request.py +87 -0
- lusid/models/instrument_event_instructions_response.py +107 -0
- lusid/models/staged_modification.py +17 -2
- lusid/models/staged_modifications_entity_hrefs.py +19 -4
- lusid/models/staged_modifications_requested_change_interval.py +19 -4
- lusid/models/staging_rule_set.py +17 -2
- lusid/models/version.py +0 -1
- {lusid_sdk-2.1.91.dist-info → lusid_sdk-2.1.106.dist-info}/METADATA +9 -3
- {lusid_sdk-2.1.91.dist-info → lusid_sdk-2.1.106.dist-info}/RECORD +20 -17
- {lusid_sdk-2.1.91.dist-info → lusid_sdk-2.1.106.dist-info}/WHEEL +0 -0
|
@@ -52,15 +52,15 @@ class StagedModificationsApi:
|
|
|
52
52
|
self.api_client = api_client
|
|
53
53
|
|
|
54
54
|
@overload
|
|
55
|
-
async def add_decision(self, id : Annotated[constr(strict=True, max_length=
|
|
55
|
+
async def add_decision(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="Unique Id for a staged modification..")], staged_modification_decision_request : Annotated[StagedModificationDecisionRequest, Field(..., description="The decision on the requested staged modification, \"Approve\" or \"Reject\".")], **kwargs) -> StagedModification: # noqa: E501
|
|
56
56
|
...
|
|
57
57
|
|
|
58
58
|
@overload
|
|
59
|
-
def add_decision(self, id : Annotated[constr(strict=True, max_length=
|
|
59
|
+
def add_decision(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="Unique Id for a staged modification..")], staged_modification_decision_request : Annotated[StagedModificationDecisionRequest, Field(..., description="The decision on the requested staged modification, \"Approve\" or \"Reject\".")], async_req: Optional[bool]=True, **kwargs) -> StagedModification: # noqa: E501
|
|
60
60
|
...
|
|
61
61
|
|
|
62
62
|
@validate_arguments
|
|
63
|
-
def add_decision(self, id : Annotated[constr(strict=True, max_length=
|
|
63
|
+
def add_decision(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="Unique Id for a staged modification..")], staged_modification_decision_request : Annotated[StagedModificationDecisionRequest, Field(..., description="The decision on the requested staged modification, \"Approve\" or \"Reject\".")], async_req: Optional[bool]=None, **kwargs) -> Union[StagedModification, Awaitable[StagedModification]]: # noqa: E501
|
|
64
64
|
"""[EXPERIMENTAL] AddDecision: AddDecision # noqa: E501
|
|
65
65
|
|
|
66
66
|
Add decision to staged modification, Approve or Reject. # noqa: E501
|
|
@@ -94,7 +94,7 @@ class StagedModificationsApi:
|
|
|
94
94
|
return self.add_decision_with_http_info(id, staged_modification_decision_request, **kwargs) # noqa: E501
|
|
95
95
|
|
|
96
96
|
@validate_arguments
|
|
97
|
-
def add_decision_with_http_info(self, id : Annotated[constr(strict=True, max_length=
|
|
97
|
+
def add_decision_with_http_info(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="Unique Id for a staged modification..")], staged_modification_decision_request : Annotated[StagedModificationDecisionRequest, Field(..., description="The decision on the requested staged modification, \"Approve\" or \"Reject\".")], **kwargs) -> ApiResponse: # noqa: E501
|
|
98
98
|
"""[EXPERIMENTAL] AddDecision: AddDecision # noqa: E501
|
|
99
99
|
|
|
100
100
|
Add decision to staged modification, Approve or Reject. # noqa: E501
|
|
@@ -218,15 +218,15 @@ class StagedModificationsApi:
|
|
|
218
218
|
_request_auth=_params.get('_request_auth'))
|
|
219
219
|
|
|
220
220
|
@overload
|
|
221
|
-
async def get_staged_modification(self, id : Annotated[constr(strict=True, max_length=
|
|
221
|
+
async def get_staged_modification(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="The unique identifier for a staged modification.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the staged modification. Defaults to latest if not specified.")] = None, **kwargs) -> StagedModification: # noqa: E501
|
|
222
222
|
...
|
|
223
223
|
|
|
224
224
|
@overload
|
|
225
|
-
def get_staged_modification(self, id : Annotated[constr(strict=True, max_length=
|
|
225
|
+
def get_staged_modification(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="The unique identifier for a staged modification.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the staged modification. Defaults to latest if not specified.")] = None, async_req: Optional[bool]=True, **kwargs) -> StagedModification: # noqa: E501
|
|
226
226
|
...
|
|
227
227
|
|
|
228
228
|
@validate_arguments
|
|
229
|
-
def get_staged_modification(self, id : Annotated[constr(strict=True, max_length=
|
|
229
|
+
def get_staged_modification(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="The unique identifier for a staged modification.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the staged modification. Defaults to latest if not specified.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[StagedModification, Awaitable[StagedModification]]: # noqa: E501
|
|
230
230
|
"""[EXPERIMENTAL] GetStagedModification: GetStagedModification # noqa: E501
|
|
231
231
|
|
|
232
232
|
Retrieve the details of a staged modification. # noqa: E501
|
|
@@ -260,7 +260,7 @@ class StagedModificationsApi:
|
|
|
260
260
|
return self.get_staged_modification_with_http_info(id, as_at, **kwargs) # noqa: E501
|
|
261
261
|
|
|
262
262
|
@validate_arguments
|
|
263
|
-
def get_staged_modification_with_http_info(self, id : Annotated[constr(strict=True, max_length=
|
|
263
|
+
def get_staged_modification_with_http_info(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="The unique identifier for a staged modification.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the staged modification. Defaults to latest if not specified.")] = None, **kwargs) -> ApiResponse: # noqa: E501
|
|
264
264
|
"""[EXPERIMENTAL] GetStagedModification: GetStagedModification # noqa: E501
|
|
265
265
|
|
|
266
266
|
Retrieve the details of a staged modification. # noqa: E501
|
|
@@ -380,15 +380,15 @@ class StagedModificationsApi:
|
|
|
380
380
|
_request_auth=_params.get('_request_auth'))
|
|
381
381
|
|
|
382
382
|
@overload
|
|
383
|
-
async def list_requested_changes(self, id : Annotated[constr(strict=True, max_length=
|
|
383
|
+
async def list_requested_changes(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="Unique Id for a staged modification..")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list changes. Defaults to return the latest version of each staged change if not specified.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing requested staged modification changes from a previous call to list requested staged modifications. This value is returned from the previous call. If a pagination token is provided the filter, effectiveAt and asAt fields must not have changed since the original request.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set. Read more about filtering results from LUSID here https://support.lusid.com/filtering-results-from-lusid.")] = None, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names suffixed by \" ASC\" or \" DESC\"")] = None, **kwargs) -> PagedResourceListOfStagedModificationsRequestedChangeInterval: # noqa: E501
|
|
384
384
|
...
|
|
385
385
|
|
|
386
386
|
@overload
|
|
387
|
-
def list_requested_changes(self, id : Annotated[constr(strict=True, max_length=
|
|
387
|
+
def list_requested_changes(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="Unique Id for a staged modification..")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list changes. Defaults to return the latest version of each staged change if not specified.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing requested staged modification changes from a previous call to list requested staged modifications. This value is returned from the previous call. If a pagination token is provided the filter, effectiveAt and asAt fields must not have changed since the original request.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set. Read more about filtering results from LUSID here https://support.lusid.com/filtering-results-from-lusid.")] = None, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names suffixed by \" ASC\" or \" DESC\"")] = None, async_req: Optional[bool]=True, **kwargs) -> PagedResourceListOfStagedModificationsRequestedChangeInterval: # noqa: E501
|
|
388
388
|
...
|
|
389
389
|
|
|
390
390
|
@validate_arguments
|
|
391
|
-
def list_requested_changes(self, id : Annotated[constr(strict=True, max_length=
|
|
391
|
+
def list_requested_changes(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="Unique Id for a staged modification..")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list changes. Defaults to return the latest version of each staged change if not specified.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing requested staged modification changes from a previous call to list requested staged modifications. This value is returned from the previous call. If a pagination token is provided the filter, effectiveAt and asAt fields must not have changed since the original request.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set. Read more about filtering results from LUSID here https://support.lusid.com/filtering-results-from-lusid.")] = None, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names suffixed by \" ASC\" or \" DESC\"")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[PagedResourceListOfStagedModificationsRequestedChangeInterval, Awaitable[PagedResourceListOfStagedModificationsRequestedChangeInterval]]: # noqa: E501
|
|
392
392
|
"""[EXPERIMENTAL] ListRequestedChanges: ListRequestedChanges # noqa: E501
|
|
393
393
|
|
|
394
394
|
List the requested changes for a staged modification. # noqa: E501
|
|
@@ -430,7 +430,7 @@ class StagedModificationsApi:
|
|
|
430
430
|
return self.list_requested_changes_with_http_info(id, as_at, page, limit, filter, sort_by, **kwargs) # noqa: E501
|
|
431
431
|
|
|
432
432
|
@validate_arguments
|
|
433
|
-
def list_requested_changes_with_http_info(self, id : Annotated[constr(strict=True, max_length=
|
|
433
|
+
def list_requested_changes_with_http_info(self, id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="Unique Id for a staged modification..")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list changes. Defaults to return the latest version of each staged change if not specified.")] = None, page : Annotated[Optional[constr(strict=True, max_length=500, min_length=1)], Field(description="The pagination token to use to continue listing requested staged modification changes from a previous call to list requested staged modifications. This value is returned from the previous call. If a pagination token is provided the filter, effectiveAt and asAt fields must not have changed since the original request.")] = None, limit : Annotated[Optional[conint(strict=True, le=5000, ge=1)], Field(description="When paginating, limit the number of returned results to this many. Defaults to 100 if not specified.")] = None, filter : Annotated[Optional[constr(strict=True, max_length=16384, min_length=0)], Field(description="Expression to filter the result set. Read more about filtering results from LUSID here https://support.lusid.com/filtering-results-from-lusid.")] = None, sort_by : Annotated[Optional[conlist(StrictStr)], Field(description="A list of field names suffixed by \" ASC\" or \" DESC\"")] = None, **kwargs) -> ApiResponse: # noqa: E501
|
|
434
434
|
"""[EXPERIMENTAL] ListRequestedChanges: ListRequestedChanges # noqa: E501
|
|
435
435
|
|
|
436
436
|
List the requested changes for a staged modification. # noqa: E501
|
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.
|
|
376
|
+
"Version of the API: 0.11.6540\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
|
@@ -396,6 +396,9 @@ from lusid.models.instrument_delete_modes import InstrumentDeleteModes
|
|
|
396
396
|
from lusid.models.instrument_event import InstrumentEvent
|
|
397
397
|
from lusid.models.instrument_event_configuration import InstrumentEventConfiguration
|
|
398
398
|
from lusid.models.instrument_event_holder import InstrumentEventHolder
|
|
399
|
+
from lusid.models.instrument_event_instruction import InstrumentEventInstruction
|
|
400
|
+
from lusid.models.instrument_event_instruction_request import InstrumentEventInstructionRequest
|
|
401
|
+
from lusid.models.instrument_event_instructions_response import InstrumentEventInstructionsResponse
|
|
399
402
|
from lusid.models.instrument_event_type import InstrumentEventType
|
|
400
403
|
from lusid.models.instrument_id_type_descriptor import InstrumentIdTypeDescriptor
|
|
401
404
|
from lusid.models.instrument_id_value import InstrumentIdValue
|
|
@@ -1350,6 +1353,9 @@ __all__ = [
|
|
|
1350
1353
|
"InstrumentEvent",
|
|
1351
1354
|
"InstrumentEventConfiguration",
|
|
1352
1355
|
"InstrumentEventHolder",
|
|
1356
|
+
"InstrumentEventInstruction",
|
|
1357
|
+
"InstrumentEventInstructionRequest",
|
|
1358
|
+
"InstrumentEventInstructionsResponse",
|
|
1353
1359
|
"InstrumentEventType",
|
|
1354
1360
|
"InstrumentIdTypeDescriptor",
|
|
1355
1361
|
"InstrumentIdValue",
|
lusid/models/account.py
CHANGED
|
@@ -29,7 +29,7 @@ class Account(BaseModel):
|
|
|
29
29
|
code: constr(strict=True, max_length=64, min_length=1) = Field(..., description="The code given for the Account.")
|
|
30
30
|
description: Optional[constr(strict=True, max_length=1024, min_length=0)] = Field(None, description="A description for the Account.")
|
|
31
31
|
type: constr(strict=True, min_length=1) = Field(..., description="The Account type. Can have the values: Asset/Liabilities/Income/Expense/Capital/Revenue.")
|
|
32
|
-
status: StrictStr = Field(..., description="The Account status. Can be Active, Inactive or Deleted.
|
|
32
|
+
status: StrictStr = Field(..., description="The Account status. Can be Active, Inactive or Deleted. The available values are: Active, Inactive, Deleted")
|
|
33
33
|
control: Optional[StrictStr] = Field(None, description="This allows users to specify whether this a protected Account that prevents direct manual journal adjustment. Can have the values: System/ManualIt will default to “Manual”.")
|
|
34
34
|
properties: Optional[Dict[str, ModelProperty]] = Field(None, description="A set of properties for the Account.")
|
|
35
35
|
__properties = ["code", "description", "type", "status", "control", "properties"]
|
|
@@ -29,7 +29,7 @@ class CustodianAccount(BaseModel):
|
|
|
29
29
|
CustodianAccount
|
|
30
30
|
"""
|
|
31
31
|
custodian_account_id: ResourceId = Field(..., alias="custodianAccountId")
|
|
32
|
-
status: constr(strict=True, min_length=1) = Field(..., description="The Account status. Can be Active, Inactive or Deleted.
|
|
32
|
+
status: constr(strict=True, min_length=1) = Field(..., description="The Account status. Can be Active, Inactive or Deleted.")
|
|
33
33
|
account_number: constr(strict=True, max_length=64, min_length=1) = Field(..., alias="accountNumber", description="The Custodian Account Number")
|
|
34
34
|
account_name: constr(strict=True, min_length=1) = Field(..., alias="accountName", description="The identifiable name given to the Custodian Account")
|
|
35
35
|
accounting_method: constr(strict=True, min_length=1) = Field(..., alias="accountingMethod", description="The Accounting method to be used")
|
|
@@ -29,7 +29,7 @@ class CustodianAccountRequest(BaseModel):
|
|
|
29
29
|
"""
|
|
30
30
|
scope: Optional[constr(strict=True, max_length=64, min_length=1)] = Field(None, description="The Scope assigned to the Custodian Account, where left blank the parent Portfolio Scope will be used")
|
|
31
31
|
code: constr(strict=True, max_length=64, min_length=1) = Field(..., description="Unique Code representing the Custodian Account")
|
|
32
|
-
status: Optional[StrictStr] = Field(None, description="The Account status. Can be Active, Inactive or Deleted.
|
|
32
|
+
status: Optional[StrictStr] = Field(None, description="The Account status. Can be Active, Inactive or Deleted.")
|
|
33
33
|
account_number: constr(strict=True, max_length=64, min_length=1) = Field(..., alias="accountNumber", description="The Custodian Account Number")
|
|
34
34
|
account_name: constr(strict=True, max_length=512, min_length=1) = Field(..., alias="accountName", description="The identifiable name given to the Custodian Account")
|
|
35
35
|
accounting_method: constr(strict=True, min_length=1) = Field(..., alias="accountingMethod", description="The Accounting method to be used")
|
lusid/models/fx_forward.py
CHANGED
|
@@ -31,7 +31,7 @@ class FxForward(LusidInstrument):
|
|
|
31
31
|
dom_amount: Union[StrictFloat, StrictInt] = Field(..., alias="domAmount", description="The amount that is to be paid in the domestic currency on the maturity date.")
|
|
32
32
|
dom_ccy: StrictStr = Field(..., alias="domCcy", description="The domestic currency of the instrument.")
|
|
33
33
|
fgn_amount: Union[StrictFloat, StrictInt] = Field(..., alias="fgnAmount", description="The amount that is to be paid in the foreign currency on the maturity date.")
|
|
34
|
-
fgn_ccy: StrictStr = Field(..., alias="fgnCcy", description="The foreign (other) currency of the instrument. In the NDF case, only payments are made in the domestic currency. For the outright forward, currencies are exchanged.
|
|
34
|
+
fgn_ccy: StrictStr = Field(..., alias="fgnCcy", description="The foreign (other) currency of the instrument. In the NDF case, only payments are made in the domestic currency. For the outright forward, currencies are exchanged.")
|
|
35
35
|
ref_spot_rate: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="refSpotRate", description="The reference Fx Spot rate for currency pair Foreign-Domestic that was seen on the trade start date (time).")
|
|
36
36
|
is_ndf: Optional[StrictBool] = Field(None, alias="isNdf", description="Is the contract an Fx-Forward of \"Non-Deliverable\" type, meaning a single payment in the domestic currency based on the change in fx-rate vs a reference rate is used.")
|
|
37
37
|
fixing_date: Optional[datetime] = Field(None, alias="fixingDate", description="The fixing date.")
|
|
@@ -0,0 +1,121 @@
|
|
|
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, Optional
|
|
22
|
+
from pydantic.v1 import BaseModel, Field, StrictInt, StrictStr
|
|
23
|
+
from lusid.models.resource_id import ResourceId
|
|
24
|
+
from lusid.models.version import Version
|
|
25
|
+
|
|
26
|
+
class InstrumentEventInstruction(BaseModel):
|
|
27
|
+
"""
|
|
28
|
+
An instruction for an instrument event # noqa: E501
|
|
29
|
+
"""
|
|
30
|
+
instrument_event_instruction_id: Optional[StrictStr] = Field(None, alias="instrumentEventInstructionId", description="The unique identifier for this instruction")
|
|
31
|
+
portfolio_id: Optional[ResourceId] = Field(None, alias="portfolioId")
|
|
32
|
+
instrument_event_id: Optional[StrictStr] = Field(None, alias="instrumentEventId", description="The identifier of the instrument event being instructed")
|
|
33
|
+
instruction_type: Optional[StrictStr] = Field(None, alias="instructionType", description="The type of instruction (Ignore, ElectForPortfolio, ElectForHolding)")
|
|
34
|
+
election_key: Optional[StrictStr] = Field(None, alias="electionKey", description="For elected instructions, the key to be chosen")
|
|
35
|
+
holding_id: Optional[StrictInt] = Field(None, alias="holdingId", description="For holding instructions, the id of the holding for which the instruction will apply")
|
|
36
|
+
version: Optional[Version] = None
|
|
37
|
+
href: Optional[StrictStr] = Field(None, description="The uri for this version of this instruction")
|
|
38
|
+
__properties = ["instrumentEventInstructionId", "portfolioId", "instrumentEventId", "instructionType", "electionKey", "holdingId", "version", "href"]
|
|
39
|
+
|
|
40
|
+
class Config:
|
|
41
|
+
"""Pydantic configuration"""
|
|
42
|
+
allow_population_by_field_name = True
|
|
43
|
+
validate_assignment = True
|
|
44
|
+
|
|
45
|
+
def to_str(self) -> str:
|
|
46
|
+
"""Returns the string representation of the model using alias"""
|
|
47
|
+
return pprint.pformat(self.dict(by_alias=True))
|
|
48
|
+
|
|
49
|
+
def to_json(self) -> str:
|
|
50
|
+
"""Returns the JSON representation of the model using alias"""
|
|
51
|
+
return json.dumps(self.to_dict())
|
|
52
|
+
|
|
53
|
+
@classmethod
|
|
54
|
+
def from_json(cls, json_str: str) -> InstrumentEventInstruction:
|
|
55
|
+
"""Create an instance of InstrumentEventInstruction from a JSON string"""
|
|
56
|
+
return cls.from_dict(json.loads(json_str))
|
|
57
|
+
|
|
58
|
+
def to_dict(self):
|
|
59
|
+
"""Returns the dictionary representation of the model using alias"""
|
|
60
|
+
_dict = self.dict(by_alias=True,
|
|
61
|
+
exclude={
|
|
62
|
+
},
|
|
63
|
+
exclude_none=True)
|
|
64
|
+
# override the default output from pydantic by calling `to_dict()` of portfolio_id
|
|
65
|
+
if self.portfolio_id:
|
|
66
|
+
_dict['portfolioId'] = self.portfolio_id.to_dict()
|
|
67
|
+
# override the default output from pydantic by calling `to_dict()` of version
|
|
68
|
+
if self.version:
|
|
69
|
+
_dict['version'] = self.version.to_dict()
|
|
70
|
+
# set to None if instrument_event_instruction_id (nullable) is None
|
|
71
|
+
# and __fields_set__ contains the field
|
|
72
|
+
if self.instrument_event_instruction_id is None and "instrument_event_instruction_id" in self.__fields_set__:
|
|
73
|
+
_dict['instrumentEventInstructionId'] = None
|
|
74
|
+
|
|
75
|
+
# set to None if instrument_event_id (nullable) is None
|
|
76
|
+
# and __fields_set__ contains the field
|
|
77
|
+
if self.instrument_event_id is None and "instrument_event_id" in self.__fields_set__:
|
|
78
|
+
_dict['instrumentEventId'] = None
|
|
79
|
+
|
|
80
|
+
# set to None if instruction_type (nullable) is None
|
|
81
|
+
# and __fields_set__ contains the field
|
|
82
|
+
if self.instruction_type is None and "instruction_type" in self.__fields_set__:
|
|
83
|
+
_dict['instructionType'] = None
|
|
84
|
+
|
|
85
|
+
# set to None if election_key (nullable) is None
|
|
86
|
+
# and __fields_set__ contains the field
|
|
87
|
+
if self.election_key is None and "election_key" in self.__fields_set__:
|
|
88
|
+
_dict['electionKey'] = None
|
|
89
|
+
|
|
90
|
+
# set to None if holding_id (nullable) is None
|
|
91
|
+
# and __fields_set__ contains the field
|
|
92
|
+
if self.holding_id is None and "holding_id" in self.__fields_set__:
|
|
93
|
+
_dict['holdingId'] = None
|
|
94
|
+
|
|
95
|
+
# set to None if href (nullable) is None
|
|
96
|
+
# and __fields_set__ contains the field
|
|
97
|
+
if self.href is None and "href" in self.__fields_set__:
|
|
98
|
+
_dict['href'] = None
|
|
99
|
+
|
|
100
|
+
return _dict
|
|
101
|
+
|
|
102
|
+
@classmethod
|
|
103
|
+
def from_dict(cls, obj: dict) -> InstrumentEventInstruction:
|
|
104
|
+
"""Create an instance of InstrumentEventInstruction from a dict"""
|
|
105
|
+
if obj is None:
|
|
106
|
+
return None
|
|
107
|
+
|
|
108
|
+
if not isinstance(obj, dict):
|
|
109
|
+
return InstrumentEventInstruction.parse_obj(obj)
|
|
110
|
+
|
|
111
|
+
_obj = InstrumentEventInstruction.parse_obj({
|
|
112
|
+
"instrument_event_instruction_id": obj.get("instrumentEventInstructionId"),
|
|
113
|
+
"portfolio_id": ResourceId.from_dict(obj.get("portfolioId")) if obj.get("portfolioId") is not None else None,
|
|
114
|
+
"instrument_event_id": obj.get("instrumentEventId"),
|
|
115
|
+
"instruction_type": obj.get("instructionType"),
|
|
116
|
+
"election_key": obj.get("electionKey"),
|
|
117
|
+
"holding_id": obj.get("holdingId"),
|
|
118
|
+
"version": Version.from_dict(obj.get("version")) if obj.get("version") is not None else None,
|
|
119
|
+
"href": obj.get("href")
|
|
120
|
+
})
|
|
121
|
+
return _obj
|
|
@@ -0,0 +1,87 @@
|
|
|
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, Optional
|
|
22
|
+
from pydantic.v1 import BaseModel, Field, StrictInt, StrictStr, constr
|
|
23
|
+
|
|
24
|
+
class InstrumentEventInstructionRequest(BaseModel):
|
|
25
|
+
"""
|
|
26
|
+
The request to create an instruction for an instrument event # noqa: E501
|
|
27
|
+
"""
|
|
28
|
+
instrument_event_instruction_id: constr(strict=True, min_length=1) = Field(..., alias="instrumentEventInstructionId", description="The unique identifier for this instruction")
|
|
29
|
+
instrument_event_id: constr(strict=True, min_length=1) = Field(..., alias="instrumentEventId", description="The identifier of the instrument event being instructed")
|
|
30
|
+
instruction_type: constr(strict=True, min_length=1) = Field(..., alias="instructionType", description="The type of instruction (Ignore, ElectForPortfolio, ElectForHolding)")
|
|
31
|
+
election_key: Optional[StrictStr] = Field(None, alias="electionKey", description="For elected instructions, the key to be chosen")
|
|
32
|
+
holding_id: Optional[StrictInt] = Field(None, alias="holdingId", description="For holding instructions, the id of the holding for which the instruction will apply")
|
|
33
|
+
__properties = ["instrumentEventInstructionId", "instrumentEventId", "instructionType", "electionKey", "holdingId"]
|
|
34
|
+
|
|
35
|
+
class Config:
|
|
36
|
+
"""Pydantic configuration"""
|
|
37
|
+
allow_population_by_field_name = True
|
|
38
|
+
validate_assignment = True
|
|
39
|
+
|
|
40
|
+
def to_str(self) -> str:
|
|
41
|
+
"""Returns the string representation of the model using alias"""
|
|
42
|
+
return pprint.pformat(self.dict(by_alias=True))
|
|
43
|
+
|
|
44
|
+
def to_json(self) -> str:
|
|
45
|
+
"""Returns the JSON representation of the model using alias"""
|
|
46
|
+
return json.dumps(self.to_dict())
|
|
47
|
+
|
|
48
|
+
@classmethod
|
|
49
|
+
def from_json(cls, json_str: str) -> InstrumentEventInstructionRequest:
|
|
50
|
+
"""Create an instance of InstrumentEventInstructionRequest from a JSON string"""
|
|
51
|
+
return cls.from_dict(json.loads(json_str))
|
|
52
|
+
|
|
53
|
+
def to_dict(self):
|
|
54
|
+
"""Returns the dictionary representation of the model using alias"""
|
|
55
|
+
_dict = self.dict(by_alias=True,
|
|
56
|
+
exclude={
|
|
57
|
+
},
|
|
58
|
+
exclude_none=True)
|
|
59
|
+
# set to None if election_key (nullable) is None
|
|
60
|
+
# and __fields_set__ contains the field
|
|
61
|
+
if self.election_key is None and "election_key" in self.__fields_set__:
|
|
62
|
+
_dict['electionKey'] = None
|
|
63
|
+
|
|
64
|
+
# set to None if holding_id (nullable) is None
|
|
65
|
+
# and __fields_set__ contains the field
|
|
66
|
+
if self.holding_id is None and "holding_id" in self.__fields_set__:
|
|
67
|
+
_dict['holdingId'] = None
|
|
68
|
+
|
|
69
|
+
return _dict
|
|
70
|
+
|
|
71
|
+
@classmethod
|
|
72
|
+
def from_dict(cls, obj: dict) -> InstrumentEventInstructionRequest:
|
|
73
|
+
"""Create an instance of InstrumentEventInstructionRequest from a dict"""
|
|
74
|
+
if obj is None:
|
|
75
|
+
return None
|
|
76
|
+
|
|
77
|
+
if not isinstance(obj, dict):
|
|
78
|
+
return InstrumentEventInstructionRequest.parse_obj(obj)
|
|
79
|
+
|
|
80
|
+
_obj = InstrumentEventInstructionRequest.parse_obj({
|
|
81
|
+
"instrument_event_instruction_id": obj.get("instrumentEventInstructionId"),
|
|
82
|
+
"instrument_event_id": obj.get("instrumentEventId"),
|
|
83
|
+
"instruction_type": obj.get("instructionType"),
|
|
84
|
+
"election_key": obj.get("electionKey"),
|
|
85
|
+
"holding_id": obj.get("holdingId")
|
|
86
|
+
})
|
|
87
|
+
return _obj
|
|
@@ -0,0 +1,107 @@
|
|
|
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, Optional
|
|
22
|
+
from pydantic.v1 import BaseModel, Field
|
|
23
|
+
from lusid.models.error_detail import ErrorDetail
|
|
24
|
+
from lusid.models.instrument_event_instruction import InstrumentEventInstruction
|
|
25
|
+
|
|
26
|
+
class InstrumentEventInstructionsResponse(BaseModel):
|
|
27
|
+
"""
|
|
28
|
+
The collection of successfully upserted instructions, and the collection of failures for those instructions that could not be upserted # noqa: E501
|
|
29
|
+
"""
|
|
30
|
+
values: Optional[Dict[str, InstrumentEventInstruction]] = Field(None, description="The collection of successfully upserted instructions")
|
|
31
|
+
failed: Optional[Dict[str, ErrorDetail]] = Field(None, description="The collection of error information for instructions that could not be upserted")
|
|
32
|
+
__properties = ["values", "failed"]
|
|
33
|
+
|
|
34
|
+
class Config:
|
|
35
|
+
"""Pydantic configuration"""
|
|
36
|
+
allow_population_by_field_name = True
|
|
37
|
+
validate_assignment = True
|
|
38
|
+
|
|
39
|
+
def to_str(self) -> str:
|
|
40
|
+
"""Returns the string representation of the model using alias"""
|
|
41
|
+
return pprint.pformat(self.dict(by_alias=True))
|
|
42
|
+
|
|
43
|
+
def to_json(self) -> str:
|
|
44
|
+
"""Returns the JSON representation of the model using alias"""
|
|
45
|
+
return json.dumps(self.to_dict())
|
|
46
|
+
|
|
47
|
+
@classmethod
|
|
48
|
+
def from_json(cls, json_str: str) -> InstrumentEventInstructionsResponse:
|
|
49
|
+
"""Create an instance of InstrumentEventInstructionsResponse from a JSON string"""
|
|
50
|
+
return cls.from_dict(json.loads(json_str))
|
|
51
|
+
|
|
52
|
+
def to_dict(self):
|
|
53
|
+
"""Returns the dictionary representation of the model using alias"""
|
|
54
|
+
_dict = self.dict(by_alias=True,
|
|
55
|
+
exclude={
|
|
56
|
+
},
|
|
57
|
+
exclude_none=True)
|
|
58
|
+
# override the default output from pydantic by calling `to_dict()` of each value in values (dict)
|
|
59
|
+
_field_dict = {}
|
|
60
|
+
if self.values:
|
|
61
|
+
for _key in self.values:
|
|
62
|
+
if self.values[_key]:
|
|
63
|
+
_field_dict[_key] = self.values[_key].to_dict()
|
|
64
|
+
_dict['values'] = _field_dict
|
|
65
|
+
# override the default output from pydantic by calling `to_dict()` of each value in failed (dict)
|
|
66
|
+
_field_dict = {}
|
|
67
|
+
if self.failed:
|
|
68
|
+
for _key in self.failed:
|
|
69
|
+
if self.failed[_key]:
|
|
70
|
+
_field_dict[_key] = self.failed[_key].to_dict()
|
|
71
|
+
_dict['failed'] = _field_dict
|
|
72
|
+
# set to None if values (nullable) is None
|
|
73
|
+
# and __fields_set__ contains the field
|
|
74
|
+
if self.values is None and "values" in self.__fields_set__:
|
|
75
|
+
_dict['values'] = None
|
|
76
|
+
|
|
77
|
+
# set to None if failed (nullable) is None
|
|
78
|
+
# and __fields_set__ contains the field
|
|
79
|
+
if self.failed is None and "failed" in self.__fields_set__:
|
|
80
|
+
_dict['failed'] = None
|
|
81
|
+
|
|
82
|
+
return _dict
|
|
83
|
+
|
|
84
|
+
@classmethod
|
|
85
|
+
def from_dict(cls, obj: dict) -> InstrumentEventInstructionsResponse:
|
|
86
|
+
"""Create an instance of InstrumentEventInstructionsResponse from a dict"""
|
|
87
|
+
if obj is None:
|
|
88
|
+
return None
|
|
89
|
+
|
|
90
|
+
if not isinstance(obj, dict):
|
|
91
|
+
return InstrumentEventInstructionsResponse.parse_obj(obj)
|
|
92
|
+
|
|
93
|
+
_obj = InstrumentEventInstructionsResponse.parse_obj({
|
|
94
|
+
"values": dict(
|
|
95
|
+
(_k, InstrumentEventInstruction.from_dict(_v))
|
|
96
|
+
for _k, _v in obj.get("values").items()
|
|
97
|
+
)
|
|
98
|
+
if obj.get("values") is not None
|
|
99
|
+
else None,
|
|
100
|
+
"failed": dict(
|
|
101
|
+
(_k, ErrorDetail.from_dict(_v))
|
|
102
|
+
for _k, _v in obj.get("failed").items()
|
|
103
|
+
)
|
|
104
|
+
if obj.get("failed") is not None
|
|
105
|
+
else None
|
|
106
|
+
})
|
|
107
|
+
return _obj
|
|
@@ -20,6 +20,7 @@ import json
|
|
|
20
20
|
from datetime import datetime
|
|
21
21
|
from typing import Any, Dict, List, Optional
|
|
22
22
|
from pydantic.v1 import BaseModel, Field, StrictInt, StrictStr, conlist
|
|
23
|
+
from lusid.models.link import Link
|
|
23
24
|
from lusid.models.requested_changes import RequestedChanges
|
|
24
25
|
from lusid.models.staged_modification_decision import StagedModificationDecision
|
|
25
26
|
from lusid.models.staged_modification_staging_rule import StagedModificationStagingRule
|
|
@@ -43,7 +44,8 @@ class StagedModification(BaseModel):
|
|
|
43
44
|
entity_unique_id: Optional[StrictStr] = Field(None, alias="entityUniqueId", description="The unique Id of the entity the staged modification applies to.")
|
|
44
45
|
requested_changes: Optional[RequestedChanges] = Field(None, alias="requestedChanges")
|
|
45
46
|
entity_hrefs: Optional[StagedModificationsEntityHrefs] = Field(None, alias="entityHrefs")
|
|
46
|
-
|
|
47
|
+
links: Optional[conlist(Link)] = None
|
|
48
|
+
__properties = ["id", "asAtStaged", "userIdStaged", "requestedIdStaged", "action", "stagingRule", "decisions", "decisionsCount", "status", "entityType", "scope", "entityUniqueId", "requestedChanges", "entityHrefs", "links"]
|
|
47
49
|
|
|
48
50
|
class Config:
|
|
49
51
|
"""Pydantic configuration"""
|
|
@@ -85,6 +87,13 @@ class StagedModification(BaseModel):
|
|
|
85
87
|
# override the default output from pydantic by calling `to_dict()` of entity_hrefs
|
|
86
88
|
if self.entity_hrefs:
|
|
87
89
|
_dict['entityHrefs'] = self.entity_hrefs.to_dict()
|
|
90
|
+
# override the default output from pydantic by calling `to_dict()` of each item in links (list)
|
|
91
|
+
_items = []
|
|
92
|
+
if self.links:
|
|
93
|
+
for _item in self.links:
|
|
94
|
+
if _item:
|
|
95
|
+
_items.append(_item.to_dict())
|
|
96
|
+
_dict['links'] = _items
|
|
88
97
|
# set to None if id (nullable) is None
|
|
89
98
|
# and __fields_set__ contains the field
|
|
90
99
|
if self.id is None and "id" in self.__fields_set__:
|
|
@@ -130,6 +139,11 @@ class StagedModification(BaseModel):
|
|
|
130
139
|
if self.entity_unique_id is None and "entity_unique_id" in self.__fields_set__:
|
|
131
140
|
_dict['entityUniqueId'] = None
|
|
132
141
|
|
|
142
|
+
# set to None if links (nullable) is None
|
|
143
|
+
# and __fields_set__ contains the field
|
|
144
|
+
if self.links is None and "links" in self.__fields_set__:
|
|
145
|
+
_dict['links'] = None
|
|
146
|
+
|
|
133
147
|
return _dict
|
|
134
148
|
|
|
135
149
|
@classmethod
|
|
@@ -155,6 +169,7 @@ class StagedModification(BaseModel):
|
|
|
155
169
|
"scope": obj.get("scope"),
|
|
156
170
|
"entity_unique_id": obj.get("entityUniqueId"),
|
|
157
171
|
"requested_changes": RequestedChanges.from_dict(obj.get("requestedChanges")) if obj.get("requestedChanges") is not None else None,
|
|
158
|
-
"entity_hrefs": StagedModificationsEntityHrefs.from_dict(obj.get("entityHrefs")) if obj.get("entityHrefs") is not None else None
|
|
172
|
+
"entity_hrefs": StagedModificationsEntityHrefs.from_dict(obj.get("entityHrefs")) if obj.get("entityHrefs") is not None else None,
|
|
173
|
+
"links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None
|
|
159
174
|
})
|
|
160
175
|
return _obj
|
|
@@ -18,8 +18,9 @@ import re # noqa: F401
|
|
|
18
18
|
import json
|
|
19
19
|
|
|
20
20
|
|
|
21
|
-
from typing import Any, Dict, Optional
|
|
22
|
-
from pydantic.v1 import BaseModel, Field, StrictStr
|
|
21
|
+
from typing import Any, Dict, List, Optional
|
|
22
|
+
from pydantic.v1 import BaseModel, Field, StrictStr, conlist
|
|
23
|
+
from lusid.models.link import Link
|
|
23
24
|
|
|
24
25
|
class StagedModificationsEntityHrefs(BaseModel):
|
|
25
26
|
"""
|
|
@@ -28,7 +29,8 @@ class StagedModificationsEntityHrefs(BaseModel):
|
|
|
28
29
|
when_staged: Optional[StrictStr] = Field(None, alias="whenStaged", description="The specific Uniform Resource Identifier (URI) for the staged modification change at the time when the change was requested.")
|
|
29
30
|
preview: Optional[StrictStr] = Field(None, description="The specific Uniform Resource Identifier (URI) for the preview of staged modification change once applied.")
|
|
30
31
|
latest: Optional[StrictStr] = Field(None, description="The specific Uniform Resource Identifier (URI) for the staged modification at latest time.")
|
|
31
|
-
|
|
32
|
+
links: Optional[conlist(Link)] = None
|
|
33
|
+
__properties = ["whenStaged", "preview", "latest", "links"]
|
|
32
34
|
|
|
33
35
|
class Config:
|
|
34
36
|
"""Pydantic configuration"""
|
|
@@ -54,6 +56,13 @@ class StagedModificationsEntityHrefs(BaseModel):
|
|
|
54
56
|
exclude={
|
|
55
57
|
},
|
|
56
58
|
exclude_none=True)
|
|
59
|
+
# override the default output from pydantic by calling `to_dict()` of each item in links (list)
|
|
60
|
+
_items = []
|
|
61
|
+
if self.links:
|
|
62
|
+
for _item in self.links:
|
|
63
|
+
if _item:
|
|
64
|
+
_items.append(_item.to_dict())
|
|
65
|
+
_dict['links'] = _items
|
|
57
66
|
# set to None if when_staged (nullable) is None
|
|
58
67
|
# and __fields_set__ contains the field
|
|
59
68
|
if self.when_staged is None and "when_staged" in self.__fields_set__:
|
|
@@ -69,6 +78,11 @@ class StagedModificationsEntityHrefs(BaseModel):
|
|
|
69
78
|
if self.latest is None and "latest" in self.__fields_set__:
|
|
70
79
|
_dict['latest'] = None
|
|
71
80
|
|
|
81
|
+
# set to None if links (nullable) is None
|
|
82
|
+
# and __fields_set__ contains the field
|
|
83
|
+
if self.links is None and "links" in self.__fields_set__:
|
|
84
|
+
_dict['links'] = None
|
|
85
|
+
|
|
72
86
|
return _dict
|
|
73
87
|
|
|
74
88
|
@classmethod
|
|
@@ -83,6 +97,7 @@ class StagedModificationsEntityHrefs(BaseModel):
|
|
|
83
97
|
_obj = StagedModificationsEntityHrefs.parse_obj({
|
|
84
98
|
"when_staged": obj.get("whenStaged"),
|
|
85
99
|
"preview": obj.get("preview"),
|
|
86
|
-
"latest": obj.get("latest")
|
|
100
|
+
"latest": obj.get("latest"),
|
|
101
|
+
"links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None
|
|
87
102
|
})
|
|
88
103
|
return _obj
|