lusid-sdk 2.1.222__py3-none-any.whl → 2.1.254__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of lusid-sdk might be problematic. Click here for more details.

Files changed (103) hide show
  1. lusid/__init__.py +16 -0
  2. lusid/api/entities_api.py +360 -0
  3. lusid/api/fee_types_api.py +143 -0
  4. lusid/api/funds_api.py +8 -16
  5. lusid/api/order_management_api.py +161 -1
  6. lusid/configuration.py +1 -1
  7. lusid/extensions/__init__.py +1 -1
  8. lusid/models/__init__.py +16 -0
  9. lusid/models/address_key_compliance_parameter.py +3 -3
  10. lusid/models/address_key_list_compliance_parameter.py +3 -3
  11. lusid/models/basket.py +3 -3
  12. lusid/models/bond.py +3 -3
  13. lusid/models/bool_compliance_parameter.py +3 -3
  14. lusid/models/bool_list_compliance_parameter.py +3 -3
  15. lusid/models/branch_step.py +3 -3
  16. lusid/models/branch_step_request.py +10 -3
  17. lusid/models/cap_floor.py +3 -3
  18. lusid/models/cash_perpetual.py +3 -3
  19. lusid/models/cds_index.py +3 -3
  20. lusid/models/check_step.py +3 -3
  21. lusid/models/check_step_request.py +10 -3
  22. lusid/models/complex_bond.py +3 -3
  23. lusid/models/compliance_parameter.py +6 -5
  24. lusid/models/compliance_parameter_type.py +1 -0
  25. lusid/models/compliance_step.py +6 -5
  26. lusid/models/compliance_step_request.py +7 -6
  27. lusid/models/compliance_step_type.py +1 -0
  28. lusid/models/compliance_step_type_request.py +1 -0
  29. lusid/models/contract_for_difference.py +3 -3
  30. lusid/models/credit_default_swap.py +3 -3
  31. lusid/models/date_time_compliance_parameter.py +3 -3
  32. lusid/models/date_time_list_compliance_parameter.py +3 -3
  33. lusid/models/decimal_compliance_parameter.py +3 -3
  34. lusid/models/decimal_list_compliance_parameter.py +3 -3
  35. lusid/models/dependency_source_filter.py +9 -2
  36. lusid/models/equity.py +3 -3
  37. lusid/models/equity_option.py +3 -3
  38. lusid/models/equity_swap.py +3 -3
  39. lusid/models/exchange_traded_option.py +3 -3
  40. lusid/models/exotic_instrument.py +3 -3
  41. lusid/models/fee_accrual.py +32 -14
  42. lusid/models/fee_request.py +10 -1
  43. lusid/models/fee_transaction_template_specification.py +79 -0
  44. lusid/models/filter_predicate_compliance_parameter.py +3 -3
  45. lusid/models/filter_step.py +3 -3
  46. lusid/models/filter_step_request.py +10 -3
  47. lusid/models/fixed_leg.py +3 -3
  48. lusid/models/flexible_loan.py +3 -3
  49. lusid/models/floating_leg.py +3 -3
  50. lusid/models/forward_rate_agreement.py +3 -3
  51. lusid/models/fund_share_class.py +3 -3
  52. lusid/models/funding_leg.py +3 -3
  53. lusid/models/future.py +3 -3
  54. lusid/models/fx_forward.py +3 -3
  55. lusid/models/fx_option.py +3 -3
  56. lusid/models/fx_swap.py +3 -3
  57. lusid/models/group_by_selector_compliance_parameter.py +3 -3
  58. lusid/models/group_by_step.py +3 -3
  59. lusid/models/group_by_step_request.py +10 -3
  60. lusid/models/group_calculation_compliance_parameter.py +91 -0
  61. lusid/models/group_filter_predicate_compliance_parameter.py +3 -3
  62. lusid/models/group_filter_step.py +3 -3
  63. lusid/models/group_filter_step_request.py +10 -3
  64. lusid/models/inflation_leg.py +3 -3
  65. lusid/models/inflation_linked_bond.py +3 -3
  66. lusid/models/inflation_swap.py +3 -3
  67. lusid/models/instrument.py +7 -1
  68. lusid/models/instrument_entity.py +146 -0
  69. lusid/models/instrument_leg.py +3 -3
  70. lusid/models/instrument_list_compliance_parameter.py +3 -3
  71. lusid/models/instrument_type.py +2 -0
  72. lusid/models/interest_rate_swap.py +3 -3
  73. lusid/models/interest_rate_swaption.py +3 -3
  74. lusid/models/intermediate_compliance_step.py +3 -3
  75. lusid/models/intermediate_compliance_step_request.py +10 -3
  76. lusid/models/lusid_instrument.py +3 -3
  77. lusid/models/percent_check_step.py +110 -0
  78. lusid/models/percent_check_step_request.py +98 -0
  79. lusid/models/placement_update_request.py +116 -0
  80. lusid/models/portfolio_group_id_compliance_parameter.py +3 -3
  81. lusid/models/portfolio_group_id_list_compliance_parameter.py +3 -3
  82. lusid/models/portfolio_id_compliance_parameter.py +3 -3
  83. lusid/models/portfolio_id_list_compliance_parameter.py +3 -3
  84. lusid/models/property_definition_entity.py +146 -0
  85. lusid/models/property_key_compliance_parameter.py +3 -3
  86. lusid/models/property_key_list_compliance_parameter.py +3 -3
  87. lusid/models/property_list_compliance_parameter.py +3 -3
  88. lusid/models/recombine_step.py +3 -3
  89. lusid/models/reference_instrument.py +3 -3
  90. lusid/models/repo.py +3 -3
  91. lusid/models/simple_cash_flow_loan.py +3 -3
  92. lusid/models/simple_instrument.py +3 -3
  93. lusid/models/string_compliance_parameter.py +3 -3
  94. lusid/models/string_list_compliance_parameter.py +3 -3
  95. lusid/models/term_deposit.py +3 -3
  96. lusid/models/total_return_swap.py +3 -3
  97. lusid/models/transaction_type_calculation.py +11 -14
  98. lusid/models/transaction_type_movement.py +19 -2
  99. lusid/models/update_placements_response.py +153 -0
  100. lusid/models/upsert_instruments_response.py +20 -1
  101. {lusid_sdk-2.1.222.dist-info → lusid_sdk-2.1.254.dist-info}/METADATA +16 -4
  102. {lusid_sdk-2.1.222.dist-info → lusid_sdk-2.1.254.dist-info}/RECORD +103 -95
  103. {lusid_sdk-2.1.222.dist-info → lusid_sdk-2.1.254.dist-info}/WHEEL +0 -0
@@ -31,7 +31,7 @@ class SimpleInstrument(LusidInstrument):
31
31
  asset_class: StrictStr = Field(..., alias="assetClass", description="The available values are: InterestRates, FX, Inflation, Equities, Credit, Commodities, Money, Unknown")
32
32
  fgn_ccys: Optional[conlist(StrictStr)] = Field(None, alias="fgnCcys", description="The set of foreign currencies, if any (optional).")
33
33
  simple_instrument_type: constr(strict=True, min_length=1) = Field(..., alias="simpleInstrumentType", description="The Instrument type of the simple instrument.")
34
- 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")
34
+ 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")
35
35
  additional_properties: Dict[str, Any] = {}
36
36
  __properties = ["instrumentType", "maturityDate", "domCcy", "assetClass", "fgnCcys", "simpleInstrumentType"]
37
37
 
@@ -45,8 +45,8 @@ class SimpleInstrument(LusidInstrument):
45
45
  @validator('instrument_type')
46
46
  def instrument_type_validate_enum(cls, value):
47
47
  """Validates the enum"""
48
- if value not in ('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'):
49
- raise ValueError("must be one of enum values ('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')")
48
+ if value not in ('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'):
49
+ raise ValueError("must be one of enum values ('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')")
50
50
  return value
51
51
 
52
52
  class Config:
@@ -27,15 +27,15 @@ class StringComplianceParameter(ComplianceParameter):
27
27
  StringComplianceParameter
28
28
  """
29
29
  value: constr(strict=True, min_length=1) = Field(...)
30
- compliance_parameter_type: StrictStr = Field(..., alias="complianceParameterType", description="The parameter type. The available values are: BoolComplianceParameter, StringComplianceParameter, DecimalComplianceParameter, DateTimeComplianceParameter, PropertyKeyComplianceParameter, AddressKeyComplianceParameter, PortfolioIdComplianceParameter, PortfolioGroupIdComplianceParameter, StringListComplianceParameter, BoolListComplianceParameter, DateTimeListComplianceParameter, DecimalListComplianceParameter, PropertyKeyListComplianceParameter, AddressKeyListComplianceParameter, PortfolioIdListComplianceParameter, PortfolioGroupIdListComplianceParameter, InstrumentListComplianceParameter, FilterPredicateComplianceParameter, GroupFilterPredicateComplianceParameter, GroupBySelectorComplianceParameter, PropertyListComplianceParameter")
30
+ compliance_parameter_type: StrictStr = Field(..., alias="complianceParameterType", description="The parameter type. The available values are: BoolComplianceParameter, StringComplianceParameter, DecimalComplianceParameter, DateTimeComplianceParameter, PropertyKeyComplianceParameter, AddressKeyComplianceParameter, PortfolioIdComplianceParameter, PortfolioGroupIdComplianceParameter, StringListComplianceParameter, BoolListComplianceParameter, DateTimeListComplianceParameter, DecimalListComplianceParameter, PropertyKeyListComplianceParameter, AddressKeyListComplianceParameter, PortfolioIdListComplianceParameter, PortfolioGroupIdListComplianceParameter, InstrumentListComplianceParameter, FilterPredicateComplianceParameter, GroupFilterPredicateComplianceParameter, GroupBySelectorComplianceParameter, PropertyListComplianceParameter, GroupCalculationComplianceParameter")
31
31
  additional_properties: Dict[str, Any] = {}
32
32
  __properties = ["complianceParameterType", "value"]
33
33
 
34
34
  @validator('compliance_parameter_type')
35
35
  def compliance_parameter_type_validate_enum(cls, value):
36
36
  """Validates the enum"""
37
- if value not in ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter'):
38
- raise ValueError("must be one of enum values ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter')")
37
+ if value not in ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter', 'GroupCalculationComplianceParameter'):
38
+ raise ValueError("must be one of enum values ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter', 'GroupCalculationComplianceParameter')")
39
39
  return value
40
40
 
41
41
  class Config:
@@ -28,15 +28,15 @@ class StringListComplianceParameter(ComplianceParameter):
28
28
  StringListComplianceParameter
29
29
  """
30
30
  value: ResourceId = Field(...)
31
- compliance_parameter_type: StrictStr = Field(..., alias="complianceParameterType", description="The parameter type. The available values are: BoolComplianceParameter, StringComplianceParameter, DecimalComplianceParameter, DateTimeComplianceParameter, PropertyKeyComplianceParameter, AddressKeyComplianceParameter, PortfolioIdComplianceParameter, PortfolioGroupIdComplianceParameter, StringListComplianceParameter, BoolListComplianceParameter, DateTimeListComplianceParameter, DecimalListComplianceParameter, PropertyKeyListComplianceParameter, AddressKeyListComplianceParameter, PortfolioIdListComplianceParameter, PortfolioGroupIdListComplianceParameter, InstrumentListComplianceParameter, FilterPredicateComplianceParameter, GroupFilterPredicateComplianceParameter, GroupBySelectorComplianceParameter, PropertyListComplianceParameter")
31
+ compliance_parameter_type: StrictStr = Field(..., alias="complianceParameterType", description="The parameter type. The available values are: BoolComplianceParameter, StringComplianceParameter, DecimalComplianceParameter, DateTimeComplianceParameter, PropertyKeyComplianceParameter, AddressKeyComplianceParameter, PortfolioIdComplianceParameter, PortfolioGroupIdComplianceParameter, StringListComplianceParameter, BoolListComplianceParameter, DateTimeListComplianceParameter, DecimalListComplianceParameter, PropertyKeyListComplianceParameter, AddressKeyListComplianceParameter, PortfolioIdListComplianceParameter, PortfolioGroupIdListComplianceParameter, InstrumentListComplianceParameter, FilterPredicateComplianceParameter, GroupFilterPredicateComplianceParameter, GroupBySelectorComplianceParameter, PropertyListComplianceParameter, GroupCalculationComplianceParameter")
32
32
  additional_properties: Dict[str, Any] = {}
33
33
  __properties = ["complianceParameterType", "value"]
34
34
 
35
35
  @validator('compliance_parameter_type')
36
36
  def compliance_parameter_type_validate_enum(cls, value):
37
37
  """Validates the enum"""
38
- if value not in ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter'):
39
- raise ValueError("must be one of enum values ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter')")
38
+ if value not in ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter', 'GroupCalculationComplianceParameter'):
39
+ raise ValueError("must be one of enum values ('BoolComplianceParameter', 'StringComplianceParameter', 'DecimalComplianceParameter', 'DateTimeComplianceParameter', 'PropertyKeyComplianceParameter', 'AddressKeyComplianceParameter', 'PortfolioIdComplianceParameter', 'PortfolioGroupIdComplianceParameter', 'StringListComplianceParameter', 'BoolListComplianceParameter', 'DateTimeListComplianceParameter', 'DecimalListComplianceParameter', 'PropertyKeyListComplianceParameter', 'AddressKeyListComplianceParameter', 'PortfolioIdListComplianceParameter', 'PortfolioGroupIdListComplianceParameter', 'InstrumentListComplianceParameter', 'FilterPredicateComplianceParameter', 'GroupFilterPredicateComplianceParameter', 'GroupBySelectorComplianceParameter', 'PropertyListComplianceParameter', 'GroupCalculationComplianceParameter')")
40
40
  return value
41
41
 
42
42
  class Config:
@@ -33,15 +33,15 @@ class TermDeposit(LusidInstrument):
33
33
  flow_convention: FlowConventions = Field(..., alias="flowConvention")
34
34
  rate: Union[StrictFloat, StrictInt] = Field(..., description="The fixed rate for the term deposit. Specified as a decimal, e.g 0.03 is meant to be 3% interest")
35
35
  dom_ccy: Optional[StrictStr] = Field(None, alias="domCcy", description="The domestic currency of the instrument. This should be the same as the Currency set on the FlowConventions. You do not need to populate this field for Term Deposits in LUSID as all functionality is driven by the Currency set on the FlowConventions. LUSID will not store values saved on this field.")
36
- 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")
36
+ 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")
37
37
  additional_properties: Dict[str, Any] = {}
38
38
  __properties = ["instrumentType", "startDate", "maturityDate", "contractSize", "flowConvention", "rate", "domCcy"]
39
39
 
40
40
  @validator('instrument_type')
41
41
  def instrument_type_validate_enum(cls, value):
42
42
  """Validates the enum"""
43
- if value not in ('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'):
44
- raise ValueError("must be one of enum values ('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')")
43
+ if value not in ('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'):
44
+ raise ValueError("must be one of enum values ('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')")
45
45
  return value
46
46
 
47
47
  class Config:
@@ -32,15 +32,15 @@ class TotalReturnSwap(LusidInstrument):
32
32
  maturity_date: datetime = Field(..., alias="maturityDate", description="The final maturity date of the instrument. This means the last date on which the instruments makes a payment of any amount. For the avoidance of doubt, that is not necessarily prior to its last sensitivity date for the purposes of risk; e.g. instruments such as Constant Maturity Swaps (CMS) often have sensitivities to rates that may well be observed or set prior to the maturity date, but refer to a termination date beyond it.")
33
33
  asset_leg: AssetLeg = Field(..., alias="assetLeg")
34
34
  funding_leg: InstrumentLeg = Field(..., alias="fundingLeg")
35
- 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")
35
+ 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")
36
36
  additional_properties: Dict[str, Any] = {}
37
37
  __properties = ["instrumentType", "startDate", "maturityDate", "assetLeg", "fundingLeg"]
38
38
 
39
39
  @validator('instrument_type')
40
40
  def instrument_type_validate_enum(cls, value):
41
41
  """Validates the enum"""
42
- if value not in ('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'):
43
- raise ValueError("must be one of enum values ('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')")
42
+ if value not in ('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'):
43
+ raise ValueError("must be one of enum values ('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')")
44
44
  return value
45
45
 
46
46
  class Config:
@@ -19,25 +19,16 @@ import json
19
19
 
20
20
 
21
21
  from typing import Any, Dict, Optional
22
- from pydantic.v1 import BaseModel, Field, constr, validator
22
+ from pydantic.v1 import BaseModel, Field, constr
23
23
 
24
24
  class TransactionTypeCalculation(BaseModel):
25
25
  """
26
26
  TransactionTypeCalculation
27
27
  """
28
28
  type: constr(strict=True, max_length=64, min_length=1) = Field(..., description="The type of calculation to perform")
29
- side: Optional[constr(strict=True, max_length=64, min_length=0)] = Field(None, description="The side to which the calculation is applied")
30
- __properties = ["type", "side"]
31
-
32
- @validator('side')
33
- def side_validate_regular_expression(cls, value):
34
- """Validates the regular expression"""
35
- if value is None:
36
- return value
37
-
38
- if not re.match(r"^[a-zA-Z0-9\-_]+$", value):
39
- raise ValueError(r"must validate the regular expression /^[a-zA-Z0-9\-_]+$/")
40
- return value
29
+ side: Optional[constr(strict=True, max_length=64, min_length=1)] = Field(None, description="The side to which the calculation is applied")
30
+ formula: Optional[constr(strict=True, max_length=1024, min_length=0)] = Field(None, description="The formula used to derive the total consideration amount when it is not provided on the transaction")
31
+ __properties = ["type", "side", "formula"]
41
32
 
42
33
  class Config:
43
34
  """Pydantic configuration"""
@@ -68,6 +59,11 @@ class TransactionTypeCalculation(BaseModel):
68
59
  if self.side is None and "side" in self.__fields_set__:
69
60
  _dict['side'] = None
70
61
 
62
+ # set to None if formula (nullable) is None
63
+ # and __fields_set__ contains the field
64
+ if self.formula is None and "formula" in self.__fields_set__:
65
+ _dict['formula'] = None
66
+
71
67
  return _dict
72
68
 
73
69
  @classmethod
@@ -81,6 +77,7 @@ class TransactionTypeCalculation(BaseModel):
81
77
 
82
78
  _obj = TransactionTypeCalculation.parse_obj({
83
79
  "type": obj.get("type"),
84
- "side": obj.get("side")
80
+ "side": obj.get("side"),
81
+ "formula": obj.get("formula")
85
82
  })
86
83
  return _obj
@@ -35,7 +35,8 @@ class TransactionTypeMovement(BaseModel):
35
35
  name: Optional[constr(strict=True, max_length=512, min_length=1)] = Field(None, description="The movement name (optional)")
36
36
  movement_options: Optional[conlist(StrictStr)] = Field(None, alias="movementOptions", description="Allows extra specifications for the movement. The options currently available are 'DirectAdjustment' and 'IncludesTradedInterest'. A movement type of 'StockMovement' with an option of 'DirectAdjusment' will allow you to adjust the units of a holding without affecting its cost base. You will, therefore, be able to reflect the impact of a stock split by loading a Transaction.")
37
37
  settlement_date_override: Optional[StrictStr] = Field(None, alias="settlementDateOverride", description="Optional property key that must be in the Transaction domain when specified. When the movement is processed and the transaction has this property set to a valid date, then the property value will override the SettlementDate of the transaction.")
38
- __properties = ["movementTypes", "side", "direction", "properties", "mappings", "name", "movementOptions", "settlementDateOverride"]
38
+ condition: Optional[constr(strict=True, max_length=16384, min_length=0)] = Field(None, description="The condition that the transaction must satisfy to generate the movement, such as: Portfolio.BaseCurrency eq 'GBP'. The condition can contain fields and properties from transactions and portfolios. If no condition is provided, the movement will apply for all transactions of this type.")
39
+ __properties = ["movementTypes", "side", "direction", "properties", "mappings", "name", "movementOptions", "settlementDateOverride", "condition"]
39
40
 
40
41
  @validator('side')
41
42
  def side_validate_regular_expression(cls, value):
@@ -54,6 +55,16 @@ class TransactionTypeMovement(BaseModel):
54
55
  raise ValueError(r"must validate the regular expression /^[\s\S]*$/")
55
56
  return value
56
57
 
58
+ @validator('condition')
59
+ def condition_validate_regular_expression(cls, value):
60
+ """Validates the regular expression"""
61
+ if value is None:
62
+ return value
63
+
64
+ if not re.match(r"^[\s\S]*$", value):
65
+ raise ValueError(r"must validate the regular expression /^[\s\S]*$/")
66
+ return value
67
+
57
68
  class Config:
58
69
  """Pydantic configuration"""
59
70
  allow_population_by_field_name = True
@@ -117,6 +128,11 @@ class TransactionTypeMovement(BaseModel):
117
128
  if self.settlement_date_override is None and "settlement_date_override" in self.__fields_set__:
118
129
  _dict['settlementDateOverride'] = None
119
130
 
131
+ # set to None if condition (nullable) is None
132
+ # and __fields_set__ contains the field
133
+ if self.condition is None and "condition" in self.__fields_set__:
134
+ _dict['condition'] = None
135
+
120
136
  return _dict
121
137
 
122
138
  @classmethod
@@ -141,6 +157,7 @@ class TransactionTypeMovement(BaseModel):
141
157
  "mappings": [TransactionTypePropertyMapping.from_dict(_item) for _item in obj.get("mappings")] if obj.get("mappings") is not None else None,
142
158
  "name": obj.get("name"),
143
159
  "movement_options": obj.get("movementOptions"),
144
- "settlement_date_override": obj.get("settlementDateOverride")
160
+ "settlement_date_override": obj.get("settlementDateOverride"),
161
+ "condition": obj.get("condition")
145
162
  })
146
163
  return _obj
@@ -0,0 +1,153 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict, List, Optional
22
+ from pydantic.v1 import BaseModel, Field, StrictStr, conlist
23
+ from lusid.models.error_detail import ErrorDetail
24
+ from lusid.models.link import Link
25
+ from lusid.models.placement import Placement
26
+ from lusid.models.response_meta_data import ResponseMetaData
27
+
28
+ class UpdatePlacementsResponse(BaseModel):
29
+ """
30
+ UpdatePlacementsResponse
31
+ """
32
+ href: Optional[StrictStr] = Field(None, description="The specific Uniform Resource Identifier (URI) for this resource at the requested effective and asAt datetime.")
33
+ values: Optional[Dict[str, Placement]] = Field(None, description="The placements which have been successfully updated.")
34
+ failed: Optional[Dict[str, ErrorDetail]] = Field(None, description="The placements that could not be updated, along with a reason for their failure.")
35
+ metadata: Optional[Dict[str, conlist(ResponseMetaData)]] = Field(None, description="Meta data associated with the update event.")
36
+ links: Optional[conlist(Link)] = None
37
+ __properties = ["href", "values", "failed", "metadata", "links"]
38
+
39
+ class Config:
40
+ """Pydantic configuration"""
41
+ allow_population_by_field_name = True
42
+ validate_assignment = True
43
+
44
+ def to_str(self) -> str:
45
+ """Returns the string representation of the model using alias"""
46
+ return pprint.pformat(self.dict(by_alias=True))
47
+
48
+ def to_json(self) -> str:
49
+ """Returns the JSON representation of the model using alias"""
50
+ return json.dumps(self.to_dict())
51
+
52
+ @classmethod
53
+ def from_json(cls, json_str: str) -> UpdatePlacementsResponse:
54
+ """Create an instance of UpdatePlacementsResponse from a JSON string"""
55
+ return cls.from_dict(json.loads(json_str))
56
+
57
+ def to_dict(self):
58
+ """Returns the dictionary representation of the model using alias"""
59
+ _dict = self.dict(by_alias=True,
60
+ exclude={
61
+ },
62
+ exclude_none=True)
63
+ # override the default output from pydantic by calling `to_dict()` of each value in values (dict)
64
+ _field_dict = {}
65
+ if self.values:
66
+ for _key in self.values:
67
+ if self.values[_key]:
68
+ _field_dict[_key] = self.values[_key].to_dict()
69
+ _dict['values'] = _field_dict
70
+ # override the default output from pydantic by calling `to_dict()` of each value in failed (dict)
71
+ _field_dict = {}
72
+ if self.failed:
73
+ for _key in self.failed:
74
+ if self.failed[_key]:
75
+ _field_dict[_key] = self.failed[_key].to_dict()
76
+ _dict['failed'] = _field_dict
77
+ # override the default output from pydantic by calling `to_dict()` of each value in metadata (dict of array)
78
+ _field_dict_of_array = {}
79
+ if self.metadata:
80
+ for _key in self.metadata:
81
+ if self.metadata[_key]:
82
+ _field_dict_of_array[_key] = [
83
+ _item.to_dict() for _item in self.metadata[_key]
84
+ ]
85
+ _dict['metadata'] = _field_dict_of_array
86
+ # override the default output from pydantic by calling `to_dict()` of each item in links (list)
87
+ _items = []
88
+ if self.links:
89
+ for _item in self.links:
90
+ if _item:
91
+ _items.append(_item.to_dict())
92
+ _dict['links'] = _items
93
+ # set to None if href (nullable) is None
94
+ # and __fields_set__ contains the field
95
+ if self.href is None and "href" in self.__fields_set__:
96
+ _dict['href'] = None
97
+
98
+ # set to None if values (nullable) is None
99
+ # and __fields_set__ contains the field
100
+ if self.values is None and "values" in self.__fields_set__:
101
+ _dict['values'] = None
102
+
103
+ # set to None if failed (nullable) is None
104
+ # and __fields_set__ contains the field
105
+ if self.failed is None and "failed" in self.__fields_set__:
106
+ _dict['failed'] = None
107
+
108
+ # set to None if metadata (nullable) is None
109
+ # and __fields_set__ contains the field
110
+ if self.metadata is None and "metadata" in self.__fields_set__:
111
+ _dict['metadata'] = None
112
+
113
+ # set to None if links (nullable) is None
114
+ # and __fields_set__ contains the field
115
+ if self.links is None and "links" in self.__fields_set__:
116
+ _dict['links'] = None
117
+
118
+ return _dict
119
+
120
+ @classmethod
121
+ def from_dict(cls, obj: dict) -> UpdatePlacementsResponse:
122
+ """Create an instance of UpdatePlacementsResponse from a dict"""
123
+ if obj is None:
124
+ return None
125
+
126
+ if not isinstance(obj, dict):
127
+ return UpdatePlacementsResponse.parse_obj(obj)
128
+
129
+ _obj = UpdatePlacementsResponse.parse_obj({
130
+ "href": obj.get("href"),
131
+ "values": dict(
132
+ (_k, Placement.from_dict(_v))
133
+ for _k, _v in obj.get("values").items()
134
+ )
135
+ if obj.get("values") is not None
136
+ else None,
137
+ "failed": dict(
138
+ (_k, ErrorDetail.from_dict(_v))
139
+ for _k, _v in obj.get("failed").items()
140
+ )
141
+ if obj.get("failed") is not None
142
+ else None,
143
+ "metadata": dict(
144
+ (_k,
145
+ [ResponseMetaData.from_dict(_item) for _item in _v]
146
+ if _v is not None
147
+ else None
148
+ )
149
+ for _k, _v in obj.get("metadata").items()
150
+ ),
151
+ "links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None
152
+ })
153
+ return _obj
@@ -31,10 +31,11 @@ class UpsertInstrumentsResponse(BaseModel):
31
31
  """
32
32
  href: Optional[StrictStr] = Field(None, description="The specific Uniform Resource Identifier (URI) for this resource at the requested effective and asAt datetime.")
33
33
  values: Optional[Dict[str, Instrument]] = Field(None, description="The instruments which have been successfully updated or created.")
34
+ staged: Optional[Dict[str, Instrument]] = Field(None, description="The instruments that have been staged for updation or creation.")
34
35
  failed: Optional[Dict[str, ErrorDetail]] = Field(None, description="The instruments that could not be updated or created or were left unchanged without error along with a reason for their failure.")
35
36
  metadata: Optional[Dict[str, conlist(ResponseMetaData)]] = Field(None, description="Meta data associated with the upsert event.")
36
37
  links: Optional[conlist(Link)] = None
37
- __properties = ["href", "values", "failed", "metadata", "links"]
38
+ __properties = ["href", "values", "staged", "failed", "metadata", "links"]
38
39
 
39
40
  class Config:
40
41
  """Pydantic configuration"""
@@ -67,6 +68,13 @@ class UpsertInstrumentsResponse(BaseModel):
67
68
  if self.values[_key]:
68
69
  _field_dict[_key] = self.values[_key].to_dict()
69
70
  _dict['values'] = _field_dict
71
+ # override the default output from pydantic by calling `to_dict()` of each value in staged (dict)
72
+ _field_dict = {}
73
+ if self.staged:
74
+ for _key in self.staged:
75
+ if self.staged[_key]:
76
+ _field_dict[_key] = self.staged[_key].to_dict()
77
+ _dict['staged'] = _field_dict
70
78
  # override the default output from pydantic by calling `to_dict()` of each value in failed (dict)
71
79
  _field_dict = {}
72
80
  if self.failed:
@@ -100,6 +108,11 @@ class UpsertInstrumentsResponse(BaseModel):
100
108
  if self.values is None and "values" in self.__fields_set__:
101
109
  _dict['values'] = None
102
110
 
111
+ # set to None if staged (nullable) is None
112
+ # and __fields_set__ contains the field
113
+ if self.staged is None and "staged" in self.__fields_set__:
114
+ _dict['staged'] = None
115
+
103
116
  # set to None if failed (nullable) is None
104
117
  # and __fields_set__ contains the field
105
118
  if self.failed is None and "failed" in self.__fields_set__:
@@ -134,6 +147,12 @@ class UpsertInstrumentsResponse(BaseModel):
134
147
  )
135
148
  if obj.get("values") is not None
136
149
  else None,
150
+ "staged": dict(
151
+ (_k, Instrument.from_dict(_v))
152
+ for _k, _v in obj.get("staged").items()
153
+ )
154
+ if obj.get("staged") is not None
155
+ else None,
137
156
  "failed": dict(
138
157
  (_k, ErrorDetail.from_dict(_v))
139
158
  for _k, _v in obj.get("failed").items()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lusid-sdk
3
- Version: 2.1.222
3
+ Version: 2.1.254
4
4
  Summary: LUSID API
5
5
  Home-page: https://github.com/finbourne/lusid-sdk-python
6
6
  License: MIT
@@ -29,8 +29,8 @@ FINBOURNE Technology
29
29
 
30
30
  This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
31
31
 
32
- - API version: 0.11.6656
33
- - Package version: 2.1.222
32
+ - API version: 0.11.6687
33
+ - Package version: 2.1.254
34
34
  - Build package: org.openapitools.codegen.languages.PythonClientCodegen
35
35
  For more information, please visit [https://www.finbourne.com](https://www.finbourne.com)
36
36
 
@@ -394,19 +394,22 @@ Class | Method | HTTP request | Description
394
394
  *DataTypesApi* | [**update_reference_values**](docs/DataTypesApi.md#update_reference_values) | **PUT** /api/datatypes/{scope}/{code}/referencedatavalues | [EARLY ACCESS] UpdateReferenceValues: Update reference data on a data type
395
395
  *DerivedTransactionPortfoliosApi* | [**create_derived_portfolio**](docs/DerivedTransactionPortfoliosApi.md#create_derived_portfolio) | **POST** /api/derivedtransactionportfolios/{scope} | CreateDerivedPortfolio: Create derived portfolio
396
396
  *DerivedTransactionPortfoliosApi* | [**delete_derived_portfolio_details**](docs/DerivedTransactionPortfoliosApi.md#delete_derived_portfolio_details) | **DELETE** /api/derivedtransactionportfolios/{scope}/{code}/details | [EARLY ACCESS] DeleteDerivedPortfolioDetails: Delete derived portfolio details
397
+ *EntitiesApi* | [**get_instrument_by_entity_unique_id**](docs/EntitiesApi.md#get_instrument_by_entity_unique_id) | **GET** /api/entities/instruments/{entityUniqueId} | [EXPERIMENTAL] GetInstrumentByEntityUniqueId: Get instrument by EntityUniqueId
397
398
  *EntitiesApi* | [**get_portfolio_by_entity_unique_id**](docs/EntitiesApi.md#get_portfolio_by_entity_unique_id) | **GET** /api/entities/portfolios/{entityUniqueId} | [EXPERIMENTAL] GetPortfolioByEntityUniqueId: Get portfolio by EntityUniqueId
398
399
  *EntitiesApi* | [**get_portfolio_changes**](docs/EntitiesApi.md#get_portfolio_changes) | **GET** /api/entities/changes/portfolios | GetPortfolioChanges: Get the next change to each portfolio in a scope.
400
+ *EntitiesApi* | [**get_property_definition_by_entity_unique_id**](docs/EntitiesApi.md#get_property_definition_by_entity_unique_id) | **GET** /api/entities/propertydefinitions/{entityUniqueId} | [EXPERIMENTAL] GetPropertyDefinitionByEntityUniqueId: Get property definition by EntityUniqueId
399
401
  *ExecutionsApi* | [**delete_execution**](docs/ExecutionsApi.md#delete_execution) | **DELETE** /api/executions/{scope}/{code} | [EARLY ACCESS] DeleteExecution: Delete execution
400
402
  *ExecutionsApi* | [**get_execution**](docs/ExecutionsApi.md#get_execution) | **GET** /api/executions/{scope}/{code} | [EARLY ACCESS] GetExecution: Get Execution
401
403
  *ExecutionsApi* | [**list_executions**](docs/ExecutionsApi.md#list_executions) | **GET** /api/executions | ListExecutions: List Executions
402
404
  *ExecutionsApi* | [**upsert_executions**](docs/ExecutionsApi.md#upsert_executions) | **POST** /api/executions | UpsertExecutions: Upsert Execution
403
405
  *FeeTypesApi* | [**create_fee_type**](docs/FeeTypesApi.md#create_fee_type) | **POST** /api/feetypes/{scope} | [EXPERIMENTAL] CreateFeeType: Create a FeeType.
404
406
  *FeeTypesApi* | [**delete_fee_type**](docs/FeeTypesApi.md#delete_fee_type) | **DELETE** /api/feetypes/{scope}/{code} | [EXPERIMENTAL] DeleteFeeType: Delete a FeeType.
407
+ *FeeTypesApi* | [**get_fee_template_specifications**](docs/FeeTypesApi.md#get_fee_template_specifications) | **GET** /api/feetypes/feetransactiontemplatespecification | [EXPERIMENTAL] GetFeeTemplateSpecifications: Get FeeTemplateSpecifications used in the FeeType.
405
408
  *FeeTypesApi* | [**get_fee_type**](docs/FeeTypesApi.md#get_fee_type) | **GET** /api/feetypes/{scope}/{code} | [EXPERIMENTAL] GetFeeType: Get a FeeType
406
409
  *FeeTypesApi* | [**list_fee_types**](docs/FeeTypesApi.md#list_fee_types) | **GET** /api/feetypes | [EXPERIMENTAL] ListFeeTypes: List FeeTypes
407
410
  *FeeTypesApi* | [**update_fee_type**](docs/FeeTypesApi.md#update_fee_type) | **PUT** /api/feetypes/{scope}/{code} | [EXPERIMENTAL] UpdateFeeType: Update a FeeType.
408
411
  *FundsApi* | [**accept_estimate_valuation_point**](docs/FundsApi.md#accept_estimate_valuation_point) | **POST** /api/funds/{scope}/{code}/valuationpoints/$acceptestimate | [EXPERIMENTAL] AcceptEstimateValuationPoint: Accepts an Estimate Valuation Point.
409
- *FundsApi* | [**create_fee**](docs/FundsApi.md#create_fee) | **POST** /api/funds/{scope}/{code}/fees/{feeCode} | [EXPERIMENTAL] CreateFee: Create a Fee.
412
+ *FundsApi* | [**create_fee**](docs/FundsApi.md#create_fee) | **POST** /api/funds/{scope}/{code}/fees | [EXPERIMENTAL] CreateFee: Create a Fee.
410
413
  *FundsApi* | [**create_fund**](docs/FundsApi.md#create_fund) | **POST** /api/funds/{scope} | [EXPERIMENTAL] CreateFund: Create a Fund.
411
414
  *FundsApi* | [**delete_fee**](docs/FundsApi.md#delete_fee) | **DELETE** /api/funds/{scope}/{code}/fees/{feeCode} | [EXPERIMENTAL] DeleteFee: Delete a Fee.
412
415
  *FundsApi* | [**delete_fund**](docs/FundsApi.md#delete_fund) | **DELETE** /api/funds/{scope}/{code} | [EXPERIMENTAL] DeleteFund: Delete a Fund.
@@ -492,6 +495,7 @@ Class | Method | HTTP request | Description
492
495
  *OrderManagementApi* | [**move_orders**](docs/OrderManagementApi.md#move_orders) | **POST** /api/ordermanagement/moveorders | [EARLY ACCESS] MoveOrders: Move orders to new or existing block
493
496
  *OrderManagementApi* | [**place_blocks**](docs/OrderManagementApi.md#place_blocks) | **POST** /api/ordermanagement/placeblocks | [EARLY ACCESS] PlaceBlocks: Places blocks for a given list of placement requests.
494
497
  *OrderManagementApi* | [**run_allocation_service**](docs/OrderManagementApi.md#run_allocation_service) | **POST** /api/ordermanagement/allocate | [EXPERIMENTAL] RunAllocationService: Runs the Allocation Service
498
+ *OrderManagementApi* | [**update_placements**](docs/OrderManagementApi.md#update_placements) | **POST** /api/ordermanagement/$updateplacements | [EARLY ACCESS] UpdatePlacements: Update existing placements
495
499
  *OrdersApi* | [**delete_order**](docs/OrdersApi.md#delete_order) | **DELETE** /api/orders/{scope}/{code} | [EARLY ACCESS] DeleteOrder: Delete order
496
500
  *OrdersApi* | [**get_order**](docs/OrdersApi.md#get_order) | **GET** /api/orders/{scope}/{code} | [EARLY ACCESS] GetOrder: Get Order
497
501
  *OrdersApi* | [**list_orders**](docs/OrdersApi.md#list_orders) | **GET** /api/orders | ListOrders: List Orders
@@ -1051,6 +1055,7 @@ Class | Method | HTTP request | Description
1051
1055
  - [FeeRule](docs/FeeRule.md)
1052
1056
  - [FeeRuleUpsertRequest](docs/FeeRuleUpsertRequest.md)
1053
1057
  - [FeeRuleUpsertResponse](docs/FeeRuleUpsertResponse.md)
1058
+ - [FeeTransactionTemplateSpecification](docs/FeeTransactionTemplateSpecification.md)
1054
1059
  - [FeeType](docs/FeeType.md)
1055
1060
  - [FeeTypeRequest](docs/FeeTypeRequest.md)
1056
1061
  - [FieldDefinition](docs/FieldDefinition.md)
@@ -1116,6 +1121,7 @@ Class | Method | HTTP request | Description
1116
1121
  - [GroupBySelectorComplianceParameter](docs/GroupBySelectorComplianceParameter.md)
1117
1122
  - [GroupByStep](docs/GroupByStep.md)
1118
1123
  - [GroupByStepRequest](docs/GroupByStepRequest.md)
1124
+ - [GroupCalculationComplianceParameter](docs/GroupCalculationComplianceParameter.md)
1119
1125
  - [GroupFilterPredicateComplianceParameter](docs/GroupFilterPredicateComplianceParameter.md)
1120
1126
  - [GroupFilterStep](docs/GroupFilterStep.md)
1121
1127
  - [GroupFilterStepRequest](docs/GroupFilterStepRequest.md)
@@ -1150,6 +1156,7 @@ Class | Method | HTTP request | Description
1150
1156
  - [InstrumentDefinition](docs/InstrumentDefinition.md)
1151
1157
  - [InstrumentDefinitionFormat](docs/InstrumentDefinitionFormat.md)
1152
1158
  - [InstrumentDeleteModes](docs/InstrumentDeleteModes.md)
1159
+ - [InstrumentEntity](docs/InstrumentEntity.md)
1153
1160
  - [InstrumentEvent](docs/InstrumentEvent.md)
1154
1161
  - [InstrumentEventConfiguration](docs/InstrumentEventConfiguration.md)
1155
1162
  - [InstrumentEventHolder](docs/InstrumentEventHolder.md)
@@ -1333,6 +1340,8 @@ Class | Method | HTTP request | Description
1333
1340
  - [Participation](docs/Participation.md)
1334
1341
  - [ParticipationRequest](docs/ParticipationRequest.md)
1335
1342
  - [ParticipationSetRequest](docs/ParticipationSetRequest.md)
1343
+ - [PercentCheckStep](docs/PercentCheckStep.md)
1344
+ - [PercentCheckStepRequest](docs/PercentCheckStepRequest.md)
1336
1345
  - [PerformanceReturn](docs/PerformanceReturn.md)
1337
1346
  - [PerformanceReturnsMetric](docs/PerformanceReturnsMetric.md)
1338
1347
  - [PeriodDiaryEntriesReopenedResponse](docs/PeriodDiaryEntriesReopenedResponse.md)
@@ -1344,6 +1353,7 @@ Class | Method | HTTP request | Description
1344
1353
  - [Placement](docs/Placement.md)
1345
1354
  - [PlacementRequest](docs/PlacementRequest.md)
1346
1355
  - [PlacementSetRequest](docs/PlacementSetRequest.md)
1356
+ - [PlacementUpdateRequest](docs/PlacementUpdateRequest.md)
1347
1357
  - [Portfolio](docs/Portfolio.md)
1348
1358
  - [PortfolioCashFlow](docs/PortfolioCashFlow.md)
1349
1359
  - [PortfolioCashLadder](docs/PortfolioCashLadder.md)
@@ -1380,6 +1390,7 @@ Class | Method | HTTP request | Description
1380
1390
  - [PricingOptions](docs/PricingOptions.md)
1381
1391
  - [ProcessedCommand](docs/ProcessedCommand.md)
1382
1392
  - [PropertyDefinition](docs/PropertyDefinition.md)
1393
+ - [PropertyDefinitionEntity](docs/PropertyDefinitionEntity.md)
1383
1394
  - [PropertyDefinitionSearchResult](docs/PropertyDefinitionSearchResult.md)
1384
1395
  - [PropertyDefinitionType](docs/PropertyDefinitionType.md)
1385
1396
  - [PropertyDomain](docs/PropertyDomain.md)
@@ -1659,6 +1670,7 @@ Class | Method | HTTP request | Description
1659
1670
  - [UpdateDerivedPropertyDefinitionRequest](docs/UpdateDerivedPropertyDefinitionRequest.md)
1660
1671
  - [UpdateFeeTypeRequest](docs/UpdateFeeTypeRequest.md)
1661
1672
  - [UpdateInstrumentIdentifierRequest](docs/UpdateInstrumentIdentifierRequest.md)
1673
+ - [UpdatePlacementsResponse](docs/UpdatePlacementsResponse.md)
1662
1674
  - [UpdatePortfolioGroupRequest](docs/UpdatePortfolioGroupRequest.md)
1663
1675
  - [UpdatePortfolioRequest](docs/UpdatePortfolioRequest.md)
1664
1676
  - [UpdatePropertyDefinitionRequest](docs/UpdatePropertyDefinitionRequest.md)