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.

@@ -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=64, min_length=1), 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
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=64, min_length=1), 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
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=64, min_length=1), 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
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=64, min_length=1), 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
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=64, min_length=1), 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
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=64, min_length=1), 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
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=64, min_length=1), 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
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=64, min_length=1), 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
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=64, min_length=1), 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
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=64, min_length=1), 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
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=64, min_length=1), 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
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=64, min_length=1), 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
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.6526\n"\
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. Defaults to Active. The available values are: Active, Inactive, 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. Defaults to Active.")
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. Defaults to Active.")
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")
@@ -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. By domestic is then that of the portfolio.")
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
- __properties = ["id", "asAtStaged", "userIdStaged", "requestedIdStaged", "action", "stagingRule", "decisions", "decisionsCount", "status", "entityType", "scope", "entityUniqueId", "requestedChanges", "entityHrefs"]
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
- __properties = ["whenStaged", "preview", "latest"]
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