lusid-sdk 2.1.846__py3-none-any.whl → 2.1.848__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. lusid/__init__.py +2 -2
  2. lusid/api/investor_records_api.py +2 -2
  3. lusid/api/legal_entities_api.py +2 -2
  4. lusid/api/persons_api.py +2 -2
  5. lusid/configuration.py +1 -1
  6. lusid/models/__init__.py +2 -2
  7. lusid/models/bond.py +8 -2
  8. lusid/models/cap_floor.py +8 -2
  9. lusid/models/cds_index.py +8 -2
  10. lusid/models/complex_bond.py +8 -2
  11. lusid/models/contract_for_difference.py +8 -2
  12. lusid/models/create_derived_property_definition_request.py +3 -3
  13. lusid/models/create_identifier_definition_request.py +3 -3
  14. lusid/models/create_property_definition_request.py +3 -3
  15. lusid/models/credit_default_swap.py +8 -2
  16. lusid/models/equity_option.py +8 -2
  17. lusid/models/equity_swap.py +8 -2
  18. lusid/models/exchange_traded_option.py +8 -2
  19. lusid/models/fixed_leg.py +8 -2
  20. lusid/models/flexible_deposit.py +8 -2
  21. lusid/models/flexible_loan.py +9 -3
  22. lusid/models/floating_leg.py +8 -2
  23. lusid/models/forward_rate_agreement.py +8 -2
  24. lusid/models/fund_share_class.py +8 -2
  25. lusid/models/funding_leg.py +8 -2
  26. lusid/models/future.py +8 -2
  27. lusid/models/fx_forward.py +8 -2
  28. lusid/models/fx_option.py +8 -2
  29. lusid/models/fx_swap.py +8 -2
  30. lusid/models/identifier_definition.py +3 -3
  31. lusid/models/inflation_leg.py +8 -2
  32. lusid/models/inflation_linked_bond.py +8 -2
  33. lusid/models/inflation_swap.py +8 -2
  34. lusid/models/interest_rate_swap.py +8 -2
  35. lusid/models/interest_rate_swaption.py +8 -2
  36. lusid/models/investor.py +1 -1
  37. lusid/models/{upsert_investor.py → investor_identifier.py} +10 -10
  38. lusid/models/loan_facility.py +9 -3
  39. lusid/models/property_definition.py +3 -3
  40. lusid/models/property_definition_search_result.py +3 -3
  41. lusid/models/property_domain.py +1 -0
  42. lusid/models/repo.py +8 -2
  43. lusid/models/simple_cash_flow_loan.py +9 -3
  44. lusid/models/term_deposit.py +8 -2
  45. lusid/models/total_return_swap.py +8 -2
  46. lusid/models/upsert_investor_record_request.py +7 -7
  47. {lusid_sdk-2.1.846.dist-info → lusid_sdk-2.1.848.dist-info}/METADATA +5 -5
  48. {lusid_sdk-2.1.846.dist-info → lusid_sdk-2.1.848.dist-info}/RECORD +49 -49
  49. {lusid_sdk-2.1.846.dist-info → lusid_sdk-2.1.848.dist-info}/WHEEL +0 -0
lusid/__init__.py CHANGED
@@ -654,6 +654,7 @@ from lusid.models.intermediate_compliance_step import IntermediateComplianceStep
654
654
  from lusid.models.intermediate_compliance_step_request import IntermediateComplianceStepRequest
655
655
  from lusid.models.intermediate_securities_distribution_event import IntermediateSecuritiesDistributionEvent
656
656
  from lusid.models.investor import Investor
657
+ from lusid.models.investor_identifier import InvestorIdentifier
657
658
  from lusid.models.investor_record import InvestorRecord
658
659
  from lusid.models.ir_vol_cube_data import IrVolCubeData
659
660
  from lusid.models.ir_vol_dependency import IrVolDependency
@@ -1262,7 +1263,6 @@ from lusid.models.upsert_instrument_events_response import UpsertInstrumentEvent
1262
1263
  from lusid.models.upsert_instrument_properties_response import UpsertInstrumentPropertiesResponse
1263
1264
  from lusid.models.upsert_instrument_property_request import UpsertInstrumentPropertyRequest
1264
1265
  from lusid.models.upsert_instruments_response import UpsertInstrumentsResponse
1265
- from lusid.models.upsert_investor import UpsertInvestor
1266
1266
  from lusid.models.upsert_investor_record_request import UpsertInvestorRecordRequest
1267
1267
  from lusid.models.upsert_investor_records_response import UpsertInvestorRecordsResponse
1268
1268
  from lusid.models.upsert_legal_entities_response import UpsertLegalEntitiesResponse
@@ -1977,6 +1977,7 @@ __all__ = [
1977
1977
  "IntermediateComplianceStepRequest",
1978
1978
  "IntermediateSecuritiesDistributionEvent",
1979
1979
  "Investor",
1980
+ "InvestorIdentifier",
1980
1981
  "InvestorRecord",
1981
1982
  "IrVolCubeData",
1982
1983
  "IrVolDependency",
@@ -2585,7 +2586,6 @@ __all__ = [
2585
2586
  "UpsertInstrumentPropertiesResponse",
2586
2587
  "UpsertInstrumentPropertyRequest",
2587
2588
  "UpsertInstrumentsResponse",
2588
- "UpsertInvestor",
2589
2589
  "UpsertInvestorRecordRequest",
2590
2590
  "UpsertInvestorRecordsResponse",
2591
2591
  "UpsertLegalEntitiesResponse",
@@ -655,7 +655,7 @@ class InvestorRecordsApi:
655
655
 
656
656
  @validate_arguments
657
657
  def upsert_investor_records(self, success_mode : Annotated[StrictStr, Field(..., description="Whether the batch request should fail Atomically or in a Partial fashion - Allowed Values: Atomic, Partial")], request_body : Annotated[Dict[str, UpsertInvestorRecordRequest], Field(..., description="A collection of requests to create or update Investor Records.")], async_req: Optional[bool]=None, **kwargs) -> Union[UpsertInvestorRecordsResponse, Awaitable[UpsertInvestorRecordsResponse]]: # noqa: E501
658
- """[EARLY ACCESS] UpsertInvestorRecords: Pluralised upsert of Investor Records # noqa: E501
658
+ """[EARLY ACCESS] UpsertInvestorRecords: Upsert investor records # noqa: E501
659
659
 
660
660
  Creates or updates a collection of Investor Records # noqa: E501
661
661
  This method makes a synchronous HTTP request by default. To make an
@@ -688,7 +688,7 @@ class InvestorRecordsApi:
688
688
 
689
689
  @validate_arguments
690
690
  def upsert_investor_records_with_http_info(self, success_mode : Annotated[StrictStr, Field(..., description="Whether the batch request should fail Atomically or in a Partial fashion - Allowed Values: Atomic, Partial")], request_body : Annotated[Dict[str, UpsertInvestorRecordRequest], Field(..., description="A collection of requests to create or update Investor Records.")], **kwargs) -> ApiResponse: # noqa: E501
691
- """[EARLY ACCESS] UpsertInvestorRecords: Pluralised upsert of Investor Records # noqa: E501
691
+ """[EARLY ACCESS] UpsertInvestorRecords: Upsert investor records # noqa: E501
692
692
 
693
693
  Creates or updates a collection of Investor Records # noqa: E501
694
694
  This method makes a synchronous HTTP request by default. To make an
@@ -3029,7 +3029,7 @@ class LegalEntitiesApi:
3029
3029
 
3030
3030
  @validate_arguments
3031
3031
  def upsert_legal_entities(self, success_mode : Annotated[StrictStr, Field(..., description="Whether the batch request should fail Atomically or in a Partial fashion - Allowed Values: Atomic, Partial")], request_body : Annotated[Dict[str, UpsertLegalEntityRequest], Field(..., description="A collection of requests to create or update Legal Entities.")], async_req: Optional[bool]=None, **kwargs) -> Union[UpsertLegalEntitiesResponse, Awaitable[UpsertLegalEntitiesResponse]]: # noqa: E501
3032
- """[EARLY ACCESS] UpsertLegalEntities: Pluralised upsert of Legal Entities # noqa: E501
3032
+ """[EARLY ACCESS] UpsertLegalEntities: Batch upsert Legal Entities # noqa: E501
3033
3033
 
3034
3034
  Creates or updates a collection of Legal Entities # noqa: E501
3035
3035
  This method makes a synchronous HTTP request by default. To make an
@@ -3062,7 +3062,7 @@ class LegalEntitiesApi:
3062
3062
 
3063
3063
  @validate_arguments
3064
3064
  def upsert_legal_entities_with_http_info(self, success_mode : Annotated[StrictStr, Field(..., description="Whether the batch request should fail Atomically or in a Partial fashion - Allowed Values: Atomic, Partial")], request_body : Annotated[Dict[str, UpsertLegalEntityRequest], Field(..., description="A collection of requests to create or update Legal Entities.")], **kwargs) -> ApiResponse: # noqa: E501
3065
- """[EARLY ACCESS] UpsertLegalEntities: Pluralised upsert of Legal Entities # noqa: E501
3065
+ """[EARLY ACCESS] UpsertLegalEntities: Batch upsert Legal Entities # noqa: E501
3066
3066
 
3067
3067
  Creates or updates a collection of Legal Entities # noqa: E501
3068
3068
  This method makes a synchronous HTTP request by default. To make an
lusid/api/persons_api.py CHANGED
@@ -3380,7 +3380,7 @@ class PersonsApi:
3380
3380
 
3381
3381
  @validate_arguments
3382
3382
  def upsert_persons(self, success_mode : Annotated[StrictStr, 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
3383
- """[EARLY ACCESS] UpsertPersons: Pluralised Upsert of Persons # noqa: E501
3383
+ """[EARLY ACCESS] UpsertPersons: Batch upsert Persons # noqa: E501
3384
3384
 
3385
3385
  Create or updates a collection of person(s). # noqa: E501
3386
3386
  This method makes a synchronous HTTP request by default. To make an
@@ -3413,7 +3413,7 @@ class PersonsApi:
3413
3413
 
3414
3414
  @validate_arguments
3415
3415
  def upsert_persons_with_http_info(self, success_mode : Annotated[StrictStr, 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
3416
- """[EARLY ACCESS] UpsertPersons: Pluralised Upsert of Persons # noqa: E501
3416
+ """[EARLY ACCESS] UpsertPersons: Batch upsert Persons # noqa: E501
3417
3417
 
3418
3418
  Create or updates a collection of person(s). # noqa: E501
3419
3419
  This method makes a synchronous HTTP request by default. To make an
lusid/configuration.py CHANGED
@@ -445,7 +445,7 @@ class Configuration:
445
445
  return "Python SDK Debug Report:\n"\
446
446
  "OS: {env}\n"\
447
447
  "Python Version: {pyversion}\n"\
448
- "Version of the API: 0.11.7945\n"\
448
+ "Version of the API: 0.11.7960\n"\
449
449
  "SDK Package Version: {package_version}".\
450
450
  format(env=sys.platform, pyversion=sys.version, package_version=package_version)
451
451
 
lusid/models/__init__.py CHANGED
@@ -566,6 +566,7 @@ from lusid.models.intermediate_compliance_step import IntermediateComplianceStep
566
566
  from lusid.models.intermediate_compliance_step_request import IntermediateComplianceStepRequest
567
567
  from lusid.models.intermediate_securities_distribution_event import IntermediateSecuritiesDistributionEvent
568
568
  from lusid.models.investor import Investor
569
+ from lusid.models.investor_identifier import InvestorIdentifier
569
570
  from lusid.models.investor_record import InvestorRecord
570
571
  from lusid.models.ir_vol_cube_data import IrVolCubeData
571
572
  from lusid.models.ir_vol_dependency import IrVolDependency
@@ -1174,7 +1175,6 @@ from lusid.models.upsert_instrument_events_response import UpsertInstrumentEvent
1174
1175
  from lusid.models.upsert_instrument_properties_response import UpsertInstrumentPropertiesResponse
1175
1176
  from lusid.models.upsert_instrument_property_request import UpsertInstrumentPropertyRequest
1176
1177
  from lusid.models.upsert_instruments_response import UpsertInstrumentsResponse
1177
- from lusid.models.upsert_investor import UpsertInvestor
1178
1178
  from lusid.models.upsert_investor_record_request import UpsertInvestorRecordRequest
1179
1179
  from lusid.models.upsert_investor_records_response import UpsertInvestorRecordsResponse
1180
1180
  from lusid.models.upsert_legal_entities_response import UpsertLegalEntitiesResponse
@@ -1802,6 +1802,7 @@ __all__ = [
1802
1802
  "IntermediateComplianceStepRequest",
1803
1803
  "IntermediateSecuritiesDistributionEvent",
1804
1804
  "Investor",
1805
+ "InvestorIdentifier",
1805
1806
  "InvestorRecord",
1806
1807
  "IrVolCubeData",
1807
1808
  "IrVolDependency",
@@ -2410,7 +2411,6 @@ __all__ = [
2410
2411
  "UpsertInstrumentPropertiesResponse",
2411
2412
  "UpsertInstrumentPropertyRequest",
2412
2413
  "UpsertInstrumentsResponse",
2413
- "UpsertInvestor",
2414
2414
  "UpsertInvestorRecordRequest",
2415
2415
  "UpsertInvestorRecordsResponse",
2416
2416
  "UpsertLegalEntitiesResponse",
lusid/models/bond.py CHANGED
@@ -24,6 +24,7 @@ from lusid.models.ex_dividend_configuration import ExDividendConfiguration
24
24
  from lusid.models.flow_conventions import FlowConventions
25
25
  from lusid.models.lusid_instrument import LusidInstrument
26
26
  from lusid.models.rounding_convention import RoundingConvention
27
+ from lusid.models.time_zone_conventions import TimeZoneConventions
27
28
  from lusid.models.trading_conventions import TradingConventions
28
29
 
29
30
  class Bond(LusidInstrument):
@@ -45,9 +46,10 @@ class Bond(LusidInstrument):
45
46
  ex_dividend_configuration: Optional[ExDividendConfiguration] = Field(None, alias="exDividendConfiguration")
46
47
  original_issue_price: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="originalIssuePrice", description="The price the bond was issued at. This is to be entered as a percentage of par, for example a value of 98.5 would represent 98.5%.")
47
48
  trading_conventions: Optional[TradingConventions] = Field(None, alias="tradingConventions")
49
+ time_zone_conventions: Optional[TimeZoneConventions] = Field(None, alias="timeZoneConventions")
48
50
  instrument_type: StrictStr = Field(...,alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash, MasteredInstrument, LoanFacility, FlexibleDeposit")
49
51
  additional_properties: Dict[str, Any] = {}
50
- __properties = ["instrumentType", "startDate", "maturityDate", "domCcy", "flowConventions", "principal", "couponRate", "identifiers", "exDividendDays", "initialCouponDate", "firstCouponPayDate", "calculationType", "roundingConventions", "exDividendConfiguration", "originalIssuePrice", "tradingConventions"]
52
+ __properties = ["instrumentType", "startDate", "maturityDate", "domCcy", "flowConventions", "principal", "couponRate", "identifiers", "exDividendDays", "initialCouponDate", "firstCouponPayDate", "calculationType", "roundingConventions", "exDividendConfiguration", "originalIssuePrice", "tradingConventions", "timeZoneConventions"]
51
53
 
52
54
  @validator('instrument_type')
53
55
  def instrument_type_validate_enum(cls, value):
@@ -157,6 +159,9 @@ class Bond(LusidInstrument):
157
159
  # override the default output from pydantic by calling `to_dict()` of trading_conventions
158
160
  if self.trading_conventions:
159
161
  _dict['tradingConventions'] = self.trading_conventions.to_dict()
162
+ # override the default output from pydantic by calling `to_dict()` of time_zone_conventions
163
+ if self.time_zone_conventions:
164
+ _dict['timeZoneConventions'] = self.time_zone_conventions.to_dict()
160
165
  # puts key-value pairs in additional_properties in the top level
161
166
  if self.additional_properties is not None:
162
167
  for _key, _value in self.additional_properties.items():
@@ -224,7 +229,8 @@ class Bond(LusidInstrument):
224
229
  "rounding_conventions": [RoundingConvention.from_dict(_item) for _item in obj.get("roundingConventions")] if obj.get("roundingConventions") is not None else None,
225
230
  "ex_dividend_configuration": ExDividendConfiguration.from_dict(obj.get("exDividendConfiguration")) if obj.get("exDividendConfiguration") is not None else None,
226
231
  "original_issue_price": obj.get("originalIssuePrice"),
227
- "trading_conventions": TradingConventions.from_dict(obj.get("tradingConventions")) if obj.get("tradingConventions") is not None else None
232
+ "trading_conventions": TradingConventions.from_dict(obj.get("tradingConventions")) if obj.get("tradingConventions") is not None else None,
233
+ "time_zone_conventions": TimeZoneConventions.from_dict(obj.get("timeZoneConventions")) if obj.get("timeZoneConventions") is not None else None
228
234
  })
229
235
  # store additional fields in additional_properties
230
236
  for _key in obj.keys():
lusid/models/cap_floor.py CHANGED
@@ -23,6 +23,7 @@ from pydantic.v1 import StrictStr, Field, Field, StrictBool, StrictFloat, Strict
23
23
  from lusid.models.additional_payment import AdditionalPayment
24
24
  from lusid.models.floating_leg import FloatingLeg
25
25
  from lusid.models.lusid_instrument import LusidInstrument
26
+ from lusid.models.time_zone_conventions import TimeZoneConventions
26
27
 
27
28
  class CapFloor(LusidInstrument):
28
29
  """
@@ -34,9 +35,10 @@ class CapFloor(LusidInstrument):
34
35
  include_first_caplet: StrictBool = Field(..., alias="includeFirstCaplet", description="Include first caplet flag.")
35
36
  underlying_floating_leg: FloatingLeg = Field(..., alias="underlyingFloatingLeg")
36
37
  additional_payments: Optional[conlist(AdditionalPayment)] = Field(None, alias="additionalPayments", description="Optional additional payments at a given date e.g. to level off an uneven equity swap. The dates must be distinct and either all payments are Pay or all payments are Receive.")
38
+ time_zone_conventions: Optional[TimeZoneConventions] = Field(None, alias="timeZoneConventions")
37
39
  instrument_type: StrictStr = Field(...,alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash, MasteredInstrument, LoanFacility, FlexibleDeposit")
38
40
  additional_properties: Dict[str, Any] = {}
39
- __properties = ["instrumentType", "capFloorType", "capStrike", "floorStrike", "includeFirstCaplet", "underlyingFloatingLeg", "additionalPayments"]
41
+ __properties = ["instrumentType", "capFloorType", "capStrike", "floorStrike", "includeFirstCaplet", "underlyingFloatingLeg", "additionalPayments", "timeZoneConventions"]
40
42
 
41
43
  @validator('instrument_type')
42
44
  def instrument_type_validate_enum(cls, value):
@@ -140,6 +142,9 @@ class CapFloor(LusidInstrument):
140
142
  if _item:
141
143
  _items.append(_item.to_dict())
142
144
  _dict['additionalPayments'] = _items
145
+ # override the default output from pydantic by calling `to_dict()` of time_zone_conventions
146
+ if self.time_zone_conventions:
147
+ _dict['timeZoneConventions'] = self.time_zone_conventions.to_dict()
143
148
  # puts key-value pairs in additional_properties in the top level
144
149
  if self.additional_properties is not None:
145
150
  for _key, _value in self.additional_properties.items():
@@ -178,7 +183,8 @@ class CapFloor(LusidInstrument):
178
183
  "floor_strike": obj.get("floorStrike"),
179
184
  "include_first_caplet": obj.get("includeFirstCaplet"),
180
185
  "underlying_floating_leg": FloatingLeg.from_dict(obj.get("underlyingFloatingLeg")) if obj.get("underlyingFloatingLeg") is not None else None,
181
- "additional_payments": [AdditionalPayment.from_dict(_item) for _item in obj.get("additionalPayments")] if obj.get("additionalPayments") is not None else None
186
+ "additional_payments": [AdditionalPayment.from_dict(_item) for _item in obj.get("additionalPayments")] if obj.get("additionalPayments") is not None else None,
187
+ "time_zone_conventions": TimeZoneConventions.from_dict(obj.get("timeZoneConventions")) if obj.get("timeZoneConventions") is not None else None
182
188
  })
183
189
  # store additional fields in additional_properties
184
190
  for _key in obj.keys():
lusid/models/cds_index.py CHANGED
@@ -25,6 +25,7 @@ from lusid.models.basket import Basket
25
25
  from lusid.models.cds_flow_conventions import CdsFlowConventions
26
26
  from lusid.models.flow_convention_name import FlowConventionName
27
27
  from lusid.models.lusid_instrument import LusidInstrument
28
+ from lusid.models.time_zone_conventions import TimeZoneConventions
28
29
 
29
30
  class CdsIndex(LusidInstrument):
30
31
  """
@@ -39,9 +40,10 @@ class CdsIndex(LusidInstrument):
39
40
  convention_name: Optional[FlowConventionName] = Field(None, alias="conventionName")
40
41
  notional: Union[StrictFloat, StrictInt] = Field(..., description="The notional quantity that applies to both the premium and protection legs.")
41
42
  additional_payments: Optional[conlist(AdditionalPayment)] = Field(None, alias="additionalPayments", description="Optional additional payments at a given date e.g. to level off an uneven swap. The dates must be distinct and either all payments are Pay or all payments are Receive.")
43
+ time_zone_conventions: Optional[TimeZoneConventions] = Field(None, alias="timeZoneConventions")
42
44
  instrument_type: StrictStr = Field(...,alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash, MasteredInstrument, LoanFacility, FlexibleDeposit")
43
45
  additional_properties: Dict[str, Any] = {}
44
- __properties = ["instrumentType", "startDate", "maturityDate", "flowConventions", "couponRate", "identifiers", "basket", "conventionName", "notional", "additionalPayments"]
46
+ __properties = ["instrumentType", "startDate", "maturityDate", "flowConventions", "couponRate", "identifiers", "basket", "conventionName", "notional", "additionalPayments", "timeZoneConventions"]
45
47
 
46
48
  @validator('instrument_type')
47
49
  def instrument_type_validate_enum(cls, value):
@@ -151,6 +153,9 @@ class CdsIndex(LusidInstrument):
151
153
  if _item:
152
154
  _items.append(_item.to_dict())
153
155
  _dict['additionalPayments'] = _items
156
+ # override the default output from pydantic by calling `to_dict()` of time_zone_conventions
157
+ if self.time_zone_conventions:
158
+ _dict['timeZoneConventions'] = self.time_zone_conventions.to_dict()
154
159
  # puts key-value pairs in additional_properties in the top level
155
160
  if self.additional_properties is not None:
156
161
  for _key, _value in self.additional_properties.items():
@@ -182,7 +187,8 @@ class CdsIndex(LusidInstrument):
182
187
  "basket": Basket.from_dict(obj.get("basket")) if obj.get("basket") is not None else None,
183
188
  "convention_name": FlowConventionName.from_dict(obj.get("conventionName")) if obj.get("conventionName") is not None else None,
184
189
  "notional": obj.get("notional"),
185
- "additional_payments": [AdditionalPayment.from_dict(_item) for _item in obj.get("additionalPayments")] if obj.get("additionalPayments") is not None else None
190
+ "additional_payments": [AdditionalPayment.from_dict(_item) for _item in obj.get("additionalPayments")] if obj.get("additionalPayments") is not None else None,
191
+ "time_zone_conventions": TimeZoneConventions.from_dict(obj.get("timeZoneConventions")) if obj.get("timeZoneConventions") is not None else None
186
192
  })
187
193
  # store additional fields in additional_properties
188
194
  for _key in obj.keys():
@@ -23,6 +23,7 @@ from pydantic.v1 import StrictStr, Field, Field, StrictBool, StrictFloat, Strict
23
23
  from lusid.models.lusid_instrument import LusidInstrument
24
24
  from lusid.models.rounding_convention import RoundingConvention
25
25
  from lusid.models.schedule import Schedule
26
+ from lusid.models.time_zone_conventions import TimeZoneConventions
26
27
  from lusid.models.trading_conventions import TradingConventions
27
28
 
28
29
  class ComplexBond(LusidInstrument):
@@ -37,9 +38,10 @@ class ComplexBond(LusidInstrument):
37
38
  asset_backed: Optional[StrictBool] = Field(None, alias="assetBacked", description="If this flag is set to true, then the outstanding notional and principal repayments will be calculated based on pool factors in the quote store. Usually AssetBacked bonds also require a RollConvention setting of within the FlowConventions any given rates schedule (to ensure payment dates always happen on the same day of the month) and US Agency MBSs with Pay Delay features also require their rates schedules to include an ExDividendConfiguration to drive the lag between interest accrual and payment.")
38
39
  asset_pool_identifier: Optional[StrictStr] = Field(None,alias="assetPoolIdentifier", description="Identifier used to retrieve pool factor information about this bond from the quote store. This is typically the bond's ISIN, but can also be ClientInternal. Please ensure you align the MarketDataKeyRule with the correct Quote (Quote.ClientInternal.* or Quote.Isin.*)")
39
40
  trading_conventions: Optional[TradingConventions] = Field(None, alias="tradingConventions")
41
+ time_zone_conventions: Optional[TimeZoneConventions] = Field(None, alias="timeZoneConventions")
40
42
  instrument_type: StrictStr = Field(...,alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash, MasteredInstrument, LoanFacility, FlexibleDeposit")
41
43
  additional_properties: Dict[str, Any] = {}
42
- __properties = ["instrumentType", "identifiers", "calculationType", "schedules", "originalIssuePrice", "roundingConventions", "assetBacked", "assetPoolIdentifier", "tradingConventions"]
44
+ __properties = ["instrumentType", "identifiers", "calculationType", "schedules", "originalIssuePrice", "roundingConventions", "assetBacked", "assetPoolIdentifier", "tradingConventions", "timeZoneConventions"]
43
45
 
44
46
  @validator('instrument_type')
45
47
  def instrument_type_validate_enum(cls, value):
@@ -150,6 +152,9 @@ class ComplexBond(LusidInstrument):
150
152
  # override the default output from pydantic by calling `to_dict()` of trading_conventions
151
153
  if self.trading_conventions:
152
154
  _dict['tradingConventions'] = self.trading_conventions.to_dict()
155
+ # override the default output from pydantic by calling `to_dict()` of time_zone_conventions
156
+ if self.time_zone_conventions:
157
+ _dict['timeZoneConventions'] = self.time_zone_conventions.to_dict()
153
158
  # puts key-value pairs in additional_properties in the top level
154
159
  if self.additional_properties is not None:
155
160
  for _key, _value in self.additional_properties.items():
@@ -210,7 +215,8 @@ class ComplexBond(LusidInstrument):
210
215
  "rounding_conventions": [RoundingConvention.from_dict(_item) for _item in obj.get("roundingConventions")] if obj.get("roundingConventions") is not None else None,
211
216
  "asset_backed": obj.get("assetBacked"),
212
217
  "asset_pool_identifier": obj.get("assetPoolIdentifier"),
213
- "trading_conventions": TradingConventions.from_dict(obj.get("tradingConventions")) if obj.get("tradingConventions") is not None else None
218
+ "trading_conventions": TradingConventions.from_dict(obj.get("tradingConventions")) if obj.get("tradingConventions") is not None else None,
219
+ "time_zone_conventions": TimeZoneConventions.from_dict(obj.get("timeZoneConventions")) if obj.get("timeZoneConventions") is not None else None
214
220
  })
215
221
  # store additional fields in additional_properties
216
222
  for _key in obj.keys():
@@ -21,6 +21,7 @@ from datetime import datetime
21
21
  from typing import Any, Dict, Optional, Union
22
22
  from pydantic.v1 import StrictStr, Field, Field, StrictFloat, StrictInt, StrictStr, constr, validator
23
23
  from lusid.models.lusid_instrument import LusidInstrument
24
+ from lusid.models.time_zone_conventions import TimeZoneConventions
24
25
 
25
26
  class ContractForDifference(LusidInstrument):
26
27
  """
@@ -37,9 +38,10 @@ class ContractForDifference(LusidInstrument):
37
38
  underlying_identifier: Optional[StrictStr] = Field(None,alias="underlyingIdentifier", description="External market codes and identifiers for the CFD, e.g. RIC. Supported string (enumeration) values are: [LusidInstrumentId, Isin, Sedol, Cusip, ClientInternal, Figi, RIC, QuotePermId, REDCode, BBGId, ICECode].")
38
39
  lot_size: Optional[StrictInt] = Field(None, alias="lotSize", description="CFD LotSize, the minimum number of shares that can be bought or sold at once. Optional, if set must be non-negative, if not set defaults to 1.")
39
40
  underlying: Optional[LusidInstrument] = None
41
+ time_zone_conventions: Optional[TimeZoneConventions] = Field(None, alias="timeZoneConventions")
40
42
  instrument_type: StrictStr = Field(...,alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash, MasteredInstrument, LoanFacility, FlexibleDeposit")
41
43
  additional_properties: Dict[str, Any] = {}
42
- __properties = ["instrumentType", "startDate", "maturityDate", "code", "contractSize", "payCcy", "referenceRate", "type", "underlyingCcy", "underlyingIdentifier", "lotSize", "underlying"]
44
+ __properties = ["instrumentType", "startDate", "maturityDate", "code", "contractSize", "payCcy", "referenceRate", "type", "underlyingCcy", "underlyingIdentifier", "lotSize", "underlying", "timeZoneConventions"]
43
45
 
44
46
  @validator('instrument_type')
45
47
  def instrument_type_validate_enum(cls, value):
@@ -136,6 +138,9 @@ class ContractForDifference(LusidInstrument):
136
138
  # override the default output from pydantic by calling `to_dict()` of underlying
137
139
  if self.underlying:
138
140
  _dict['underlying'] = self.underlying.to_dict()
141
+ # override the default output from pydantic by calling `to_dict()` of time_zone_conventions
142
+ if self.time_zone_conventions:
143
+ _dict['timeZoneConventions'] = self.time_zone_conventions.to_dict()
139
144
  # puts key-value pairs in additional_properties in the top level
140
145
  if self.additional_properties is not None:
141
146
  for _key, _value in self.additional_properties.items():
@@ -179,7 +184,8 @@ class ContractForDifference(LusidInstrument):
179
184
  "underlying_ccy": obj.get("underlyingCcy"),
180
185
  "underlying_identifier": obj.get("underlyingIdentifier"),
181
186
  "lot_size": obj.get("lotSize"),
182
- "underlying": LusidInstrument.from_dict(obj.get("underlying")) if obj.get("underlying") is not None else None
187
+ "underlying": LusidInstrument.from_dict(obj.get("underlying")) if obj.get("underlying") is not None else None,
188
+ "time_zone_conventions": TimeZoneConventions.from_dict(obj.get("timeZoneConventions")) if obj.get("timeZoneConventions") is not None else None
183
189
  })
184
190
  # store additional fields in additional_properties
185
191
  for _key in obj.keys():
@@ -26,7 +26,7 @@ class CreateDerivedPropertyDefinitionRequest(BaseModel):
26
26
  """
27
27
  CreateDerivedPropertyDefinitionRequest
28
28
  """
29
- domain: StrictStr = Field(...,alias="domain", 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, InvestorRecord, Placement, Execution, Block, Participation, Package, OrderInstruction, NextBestAction, CustomEntity, InstrumentEvent, Account, ChartOfAccounts, CustodianAccount, Abor, AborConfiguration, Fund, FundConfiguration, Fee, Reconciliation, PropertyDefinition, Compliance, DiaryEntry, Leg, DerivedValuation, Timeline, ClosedPeriod, 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, IdentifierDefinition")
29
+ domain: StrictStr = Field(...,alias="domain", 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, InvestorRecord, InvestmentAccount, Placement, Execution, Block, Participation, Package, OrderInstruction, NextBestAction, CustomEntity, InstrumentEvent, Account, ChartOfAccounts, CustodianAccount, Abor, AborConfiguration, Fund, FundConfiguration, Fee, Reconciliation, PropertyDefinition, Compliance, DiaryEntry, Leg, DerivedValuation, Timeline, ClosedPeriod, 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, IdentifierDefinition")
30
30
  scope: StrictStr = Field(...,alias="scope", description="The scope that the property exists in.")
31
31
  code: StrictStr = Field(...,alias="code", description="The code of the property. Together with the domain and scope this uniquely identifies the property.")
32
32
  display_name: StrictStr = Field(...,alias="displayName", description="The display name of the property.")
@@ -91,8 +91,8 @@ class CreateDerivedPropertyDefinitionRequest(BaseModel):
91
91
  if "domain" != "type":
92
92
  return value
93
93
 
94
- if value not in ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'InvestorRecord', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation', 'Timeline', 'ClosedPeriod', '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', 'IdentifierDefinition'):
95
- 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', 'InvestorRecord', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation', 'Timeline', 'ClosedPeriod', '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', 'IdentifierDefinition')")
94
+ if value not in ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'InvestorRecord', 'InvestmentAccount', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation', 'Timeline', 'ClosedPeriod', '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', 'IdentifierDefinition'):
95
+ 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', 'InvestorRecord', 'InvestmentAccount', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation', 'Timeline', 'ClosedPeriod', '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', 'IdentifierDefinition')")
96
96
  return value
97
97
 
98
98
  class Config:
@@ -26,7 +26,7 @@ class CreateIdentifierDefinitionRequest(BaseModel):
26
26
  """
27
27
  CreateIdentifierDefinitionRequest
28
28
  """
29
- domain: StrictStr = Field(...,alias="domain", description="The type of entity to which the identifier can be attached. Supported values are \"Instrument\", \"Person\", \"LegalEntity\"and \"CustomEntity\". The available values are: NotDefined, Transaction, Portfolio, Holding, ReferenceHolding, TransactionConfiguration, Instrument, CutLabelDefinition, Analytic, PortfolioGroup, Person, AccessMetadata, Order, UnitResult, MarketData, ConfigurationRecipe, Allocation, Calendar, LegalEntity, InvestorRecord, Placement, Execution, Block, Participation, Package, OrderInstruction, NextBestAction, CustomEntity, InstrumentEvent, Account, ChartOfAccounts, CustodianAccount, Abor, AborConfiguration, Fund, FundConfiguration, Fee, Reconciliation, PropertyDefinition, Compliance, DiaryEntry, Leg, DerivedValuation, Timeline, ClosedPeriod, 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, IdentifierDefinition")
29
+ domain: StrictStr = Field(...,alias="domain", description="The type of entity to which the identifier can be attached. Supported values are \"Instrument\", \"Person\", \"LegalEntity\"and \"CustomEntity\". The available values are: NotDefined, Transaction, Portfolio, Holding, ReferenceHolding, TransactionConfiguration, Instrument, CutLabelDefinition, Analytic, PortfolioGroup, Person, AccessMetadata, Order, UnitResult, MarketData, ConfigurationRecipe, Allocation, Calendar, LegalEntity, InvestorRecord, InvestmentAccount, Placement, Execution, Block, Participation, Package, OrderInstruction, NextBestAction, CustomEntity, InstrumentEvent, Account, ChartOfAccounts, CustodianAccount, Abor, AborConfiguration, Fund, FundConfiguration, Fee, Reconciliation, PropertyDefinition, Compliance, DiaryEntry, Leg, DerivedValuation, Timeline, ClosedPeriod, 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, IdentifierDefinition")
30
30
  identifier_scope: StrictStr = Field(...,alias="identifierScope", description="The scope that the identifier definition exists in.")
31
31
  identifier_type: StrictStr = Field(...,alias="identifierType", description="What the identifier represents. Together with \"domain\" and \"identifierScope\" this uniquely identifies the identifier definition.")
32
32
  life_time: StrictStr = Field(...,alias="lifeTime", description="Describes whether an identifier value is associated with an entity for all effective dates (“Perpetual”) or applies within a specified effective date range (“TimeVariant”). The available values are: Perpetual, TimeVariant")
@@ -92,8 +92,8 @@ class CreateIdentifierDefinitionRequest(BaseModel):
92
92
  if "domain" != "type":
93
93
  return value
94
94
 
95
- if value not in ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'InvestorRecord', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation', 'Timeline', 'ClosedPeriod', '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', 'IdentifierDefinition'):
96
- 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', 'InvestorRecord', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation', 'Timeline', 'ClosedPeriod', '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', 'IdentifierDefinition')")
95
+ if value not in ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'InvestorRecord', 'InvestmentAccount', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation', 'Timeline', 'ClosedPeriod', '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', 'IdentifierDefinition'):
96
+ 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', 'InvestorRecord', 'InvestmentAccount', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation', 'Timeline', 'ClosedPeriod', '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', 'IdentifierDefinition')")
97
97
  return value
98
98
 
99
99
  @validator('life_time')
@@ -26,7 +26,7 @@ class CreatePropertyDefinitionRequest(BaseModel):
26
26
  """
27
27
  CreatePropertyDefinitionRequest
28
28
  """
29
- domain: StrictStr = Field(...,alias="domain", 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, InvestorRecord, Placement, Execution, Block, Participation, Package, OrderInstruction, NextBestAction, CustomEntity, InstrumentEvent, Account, ChartOfAccounts, CustodianAccount, Abor, AborConfiguration, Fund, FundConfiguration, Fee, Reconciliation, PropertyDefinition, Compliance, DiaryEntry, Leg, DerivedValuation, Timeline, ClosedPeriod, 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, IdentifierDefinition")
29
+ domain: StrictStr = Field(...,alias="domain", 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, InvestorRecord, InvestmentAccount, Placement, Execution, Block, Participation, Package, OrderInstruction, NextBestAction, CustomEntity, InstrumentEvent, Account, ChartOfAccounts, CustodianAccount, Abor, AborConfiguration, Fund, FundConfiguration, Fee, Reconciliation, PropertyDefinition, Compliance, DiaryEntry, Leg, DerivedValuation, Timeline, ClosedPeriod, 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, IdentifierDefinition")
30
30
  scope: StrictStr = Field(...,alias="scope", description="The scope that the property exists in.")
31
31
  code: StrictStr = Field(...,alias="code", 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.")
@@ -93,8 +93,8 @@ class CreatePropertyDefinitionRequest(BaseModel):
93
93
  if "domain" != "type":
94
94
  return value
95
95
 
96
- if value not in ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'InvestorRecord', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation', 'Timeline', 'ClosedPeriod', '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', 'IdentifierDefinition'):
97
- 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', 'InvestorRecord', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation', 'Timeline', 'ClosedPeriod', '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', 'IdentifierDefinition')")
96
+ if value not in ('NotDefined', 'Transaction', 'Portfolio', 'Holding', 'ReferenceHolding', 'TransactionConfiguration', 'Instrument', 'CutLabelDefinition', 'Analytic', 'PortfolioGroup', 'Person', 'AccessMetadata', 'Order', 'UnitResult', 'MarketData', 'ConfigurationRecipe', 'Allocation', 'Calendar', 'LegalEntity', 'InvestorRecord', 'InvestmentAccount', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation', 'Timeline', 'ClosedPeriod', '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', 'IdentifierDefinition'):
97
+ 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', 'InvestorRecord', 'InvestmentAccount', 'Placement', 'Execution', 'Block', 'Participation', 'Package', 'OrderInstruction', 'NextBestAction', 'CustomEntity', 'InstrumentEvent', 'Account', 'ChartOfAccounts', 'CustodianAccount', 'Abor', 'AborConfiguration', 'Fund', 'FundConfiguration', 'Fee', 'Reconciliation', 'PropertyDefinition', 'Compliance', 'DiaryEntry', 'Leg', 'DerivedValuation', 'Timeline', 'ClosedPeriod', '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', 'IdentifierDefinition')")
98
98
  return value
99
99
 
100
100
  @validator('life_time')
@@ -25,6 +25,7 @@ from lusid.models.cds_flow_conventions import CdsFlowConventions
25
25
  from lusid.models.cds_protection_detail_specification import CdsProtectionDetailSpecification
26
26
  from lusid.models.flow_convention_name import FlowConventionName
27
27
  from lusid.models.lusid_instrument import LusidInstrument
28
+ from lusid.models.time_zone_conventions import TimeZoneConventions
28
29
 
29
30
  class CreditDefaultSwap(LusidInstrument):
30
31
  """
@@ -39,9 +40,10 @@ class CreditDefaultSwap(LusidInstrument):
39
40
  notional: Optional[Union[StrictFloat, StrictInt]] = Field(None, description="The notional protected by the Credit Default Swap")
40
41
  protection_detail_specification: Optional[CdsProtectionDetailSpecification] = Field(None, alias="protectionDetailSpecification")
41
42
  additional_payments: Optional[conlist(AdditionalPayment)] = Field(None, alias="additionalPayments", description="Optional additional payments at a given date e.g. to level off an uneven swap. The dates must be distinct and either all payments are Pay or all payments are Receive.")
43
+ time_zone_conventions: Optional[TimeZoneConventions] = Field(None, alias="timeZoneConventions")
42
44
  instrument_type: StrictStr = Field(...,alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash, MasteredInstrument, LoanFacility, FlexibleDeposit")
43
45
  additional_properties: Dict[str, Any] = {}
44
- __properties = ["instrumentType", "ticker", "startDate", "maturityDate", "flowConventions", "couponRate", "conventionName", "notional", "protectionDetailSpecification", "additionalPayments"]
46
+ __properties = ["instrumentType", "ticker", "startDate", "maturityDate", "flowConventions", "couponRate", "conventionName", "notional", "protectionDetailSpecification", "additionalPayments", "timeZoneConventions"]
45
47
 
46
48
  @validator('instrument_type')
47
49
  def instrument_type_validate_enum(cls, value):
@@ -151,6 +153,9 @@ class CreditDefaultSwap(LusidInstrument):
151
153
  if _item:
152
154
  _items.append(_item.to_dict())
153
155
  _dict['additionalPayments'] = _items
156
+ # override the default output from pydantic by calling `to_dict()` of time_zone_conventions
157
+ if self.time_zone_conventions:
158
+ _dict['timeZoneConventions'] = self.time_zone_conventions.to_dict()
154
159
  # puts key-value pairs in additional_properties in the top level
155
160
  if self.additional_properties is not None:
156
161
  for _key, _value in self.additional_properties.items():
@@ -192,7 +197,8 @@ class CreditDefaultSwap(LusidInstrument):
192
197
  "convention_name": FlowConventionName.from_dict(obj.get("conventionName")) if obj.get("conventionName") is not None else None,
193
198
  "notional": obj.get("notional"),
194
199
  "protection_detail_specification": CdsProtectionDetailSpecification.from_dict(obj.get("protectionDetailSpecification")) if obj.get("protectionDetailSpecification") is not None else None,
195
- "additional_payments": [AdditionalPayment.from_dict(_item) for _item in obj.get("additionalPayments")] if obj.get("additionalPayments") is not None else None
200
+ "additional_payments": [AdditionalPayment.from_dict(_item) for _item in obj.get("additionalPayments")] if obj.get("additionalPayments") is not None else None,
201
+ "time_zone_conventions": TimeZoneConventions.from_dict(obj.get("timeZoneConventions")) if obj.get("timeZoneConventions") is not None else None
196
202
  })
197
203
  # store additional fields in additional_properties
198
204
  for _key in obj.keys():
@@ -22,6 +22,7 @@ from typing import Any, Dict, List, Optional, Union
22
22
  from pydantic.v1 import StrictStr, Field, Field, StrictFloat, StrictInt, StrictStr, conlist, constr, validator
23
23
  from lusid.models.lusid_instrument import LusidInstrument
24
24
  from lusid.models.premium import Premium
25
+ from lusid.models.time_zone_conventions import TimeZoneConventions
25
26
 
26
27
  class EquityOption(LusidInstrument):
27
28
  """
@@ -44,9 +45,10 @@ class EquityOption(LusidInstrument):
44
45
  delivery_days: Optional[StrictInt] = Field(None, alias="deliveryDays", description="Number of business days between exercise date and settlement of the option payoff or underlying.")
45
46
  business_day_convention: Optional[StrictStr] = Field(None,alias="businessDayConvention", description="Business day convention for option exercise date to settlement date calculation. Supported string (enumeration) values are: [NoAdjustment, Previous, P, Following, F, ModifiedPrevious, MP, ModifiedFollowing, MF, HalfMonthModifiedFollowing, Nearest].")
46
47
  settlement_calendars: Optional[conlist(StrictStr)] = Field(None, alias="settlementCalendars", description="Holiday calendars for option exercise date to settlement date calculation.")
48
+ time_zone_conventions: Optional[TimeZoneConventions] = Field(None, alias="timeZoneConventions")
47
49
  instrument_type: StrictStr = Field(...,alias="instrumentType", description="The available values are: QuotedSecurity, InterestRateSwap, FxForward, Future, ExoticInstrument, FxOption, CreditDefaultSwap, InterestRateSwaption, Bond, EquityOption, FixedLeg, FloatingLeg, BespokeCashFlowsLeg, Unknown, TermDeposit, ContractForDifference, EquitySwap, CashPerpetual, CapFloor, CashSettled, CdsIndex, Basket, FundingLeg, FxSwap, ForwardRateAgreement, SimpleInstrument, Repo, Equity, ExchangeTradedOption, ReferenceInstrument, ComplexBond, InflationLinkedBond, InflationSwap, SimpleCashFlowLoan, TotalReturnSwap, InflationLeg, FundShareClass, FlexibleLoan, UnsettledCash, Cash, MasteredInstrument, LoanFacility, FlexibleDeposit")
48
50
  additional_properties: Dict[str, Any] = {}
49
- __properties = ["instrumentType", "startDate", "optionMaturityDate", "optionSettlementDate", "deliveryType", "optionType", "strike", "domCcy", "underlyingIdentifier", "code", "equityOptionType", "numberOfShares", "premium", "exerciseType", "underlying", "deliveryDays", "businessDayConvention", "settlementCalendars"]
51
+ __properties = ["instrumentType", "startDate", "optionMaturityDate", "optionSettlementDate", "deliveryType", "optionType", "strike", "domCcy", "underlyingIdentifier", "code", "equityOptionType", "numberOfShares", "premium", "exerciseType", "underlying", "deliveryDays", "businessDayConvention", "settlementCalendars", "timeZoneConventions"]
50
52
 
51
53
  @validator('instrument_type')
52
54
  def instrument_type_validate_enum(cls, value):
@@ -146,6 +148,9 @@ class EquityOption(LusidInstrument):
146
148
  # override the default output from pydantic by calling `to_dict()` of underlying
147
149
  if self.underlying:
148
150
  _dict['underlying'] = self.underlying.to_dict()
151
+ # override the default output from pydantic by calling `to_dict()` of time_zone_conventions
152
+ if self.time_zone_conventions:
153
+ _dict['timeZoneConventions'] = self.time_zone_conventions.to_dict()
149
154
  # puts key-value pairs in additional_properties in the top level
150
155
  if self.additional_properties is not None:
151
156
  for _key, _value in self.additional_properties.items():
@@ -220,7 +225,8 @@ class EquityOption(LusidInstrument):
220
225
  "underlying": LusidInstrument.from_dict(obj.get("underlying")) if obj.get("underlying") is not None else None,
221
226
  "delivery_days": obj.get("deliveryDays"),
222
227
  "business_day_convention": obj.get("businessDayConvention"),
223
- "settlement_calendars": obj.get("settlementCalendars")
228
+ "settlement_calendars": obj.get("settlementCalendars"),
229
+ "time_zone_conventions": TimeZoneConventions.from_dict(obj.get("timeZoneConventions")) if obj.get("timeZoneConventions") is not None else None
224
230
  })
225
231
  # store additional fields in additional_properties
226
232
  for _key in obj.keys():