lusid-sdk 2.1.744__py3-none-any.whl → 2.1.746__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.
lusid/__init__.py CHANGED
@@ -159,6 +159,14 @@ from lusid.models.amount import Amount
159
159
  from lusid.models.annul_quotes_response import AnnulQuotesResponse
160
160
  from lusid.models.annul_single_structured_data_response import AnnulSingleStructuredDataResponse
161
161
  from lusid.models.annul_structured_data_response import AnnulStructuredDataResponse
162
+ from lusid.models.append_complex_market_data_request import AppendComplexMarketDataRequest
163
+ from lusid.models.append_fx_forward_curve_by_quote_reference import AppendFxForwardCurveByQuoteReference
164
+ from lusid.models.append_fx_forward_curve_data import AppendFxForwardCurveData
165
+ from lusid.models.append_fx_forward_pips_curve_data import AppendFxForwardPipsCurveData
166
+ from lusid.models.append_fx_forward_tenor_curve_data import AppendFxForwardTenorCurveData
167
+ from lusid.models.append_fx_forward_tenor_pips_curve_data import AppendFxForwardTenorPipsCurveData
168
+ from lusid.models.append_market_data import AppendMarketData
169
+ from lusid.models.append_market_data_type import AppendMarketDataType
162
170
  from lusid.models.applicable_instrument_event import ApplicableInstrumentEvent
163
171
  from lusid.models.asset_class import AssetClass
164
172
  from lusid.models.asset_leg import AssetLeg
@@ -1439,6 +1447,14 @@ __all__ = [
1439
1447
  "AnnulQuotesResponse",
1440
1448
  "AnnulSingleStructuredDataResponse",
1441
1449
  "AnnulStructuredDataResponse",
1450
+ "AppendComplexMarketDataRequest",
1451
+ "AppendFxForwardCurveByQuoteReference",
1452
+ "AppendFxForwardCurveData",
1453
+ "AppendFxForwardPipsCurveData",
1454
+ "AppendFxForwardTenorCurveData",
1455
+ "AppendFxForwardTenorPipsCurveData",
1456
+ "AppendMarketData",
1457
+ "AppendMarketDataType",
1442
1458
  "ApplicableInstrumentEvent",
1443
1459
  "AssetClass",
1444
1460
  "AssetLeg",
@@ -27,10 +27,12 @@ from pydantic.v1 import Field, StrictStr, constr, validator
27
27
  from typing import Dict, Optional
28
28
 
29
29
  from lusid.models.annul_structured_data_response import AnnulStructuredDataResponse
30
+ from lusid.models.append_complex_market_data_request import AppendComplexMarketDataRequest
30
31
  from lusid.models.complex_market_data_id import ComplexMarketDataId
31
32
  from lusid.models.get_complex_market_data_response import GetComplexMarketDataResponse
32
33
  from lusid.models.resource_list_of_list_complex_market_data_with_meta_data_response import ResourceListOfListComplexMarketDataWithMetaDataResponse
33
34
  from lusid.models.upsert_complex_market_data_request import UpsertComplexMarketDataRequest
35
+ from lusid.models.upsert_single_structured_data_response import UpsertSingleStructuredDataResponse
34
36
  from lusid.models.upsert_structured_data_response import UpsertStructuredDataResponse
35
37
 
36
38
  from lusid.api_client import ApiClient
@@ -575,6 +577,192 @@ class ComplexMarketDataApi:
575
577
  _request_auth=_params.get('_request_auth'))
576
578
 
577
579
 
580
+ @overload
581
+ async def upsert_append_complex_market_data(self, scope : Annotated[StrictStr, Field(..., description="The scope of the complex market data to append.")], append_complex_market_data_request : Annotated[AppendComplexMarketDataRequest, Field(..., description="Request definition of the point to append.")], effective_at : Annotated[Optional[StrictStr], Field( description="The effective datetime at which to retrieve the complex market data. Defaults to the current LUSID system datetime if not specified. Must match the effectiveAt of the ComplexMarketDataId given in the request body.")] = None, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the complex market data. Defaults to return the latest version if not specified.")] = None, **kwargs) -> UpsertSingleStructuredDataResponse: # noqa: E501
582
+ ...
583
+
584
+ @overload
585
+ def upsert_append_complex_market_data(self, scope : Annotated[StrictStr, Field(..., description="The scope of the complex market data to append.")], append_complex_market_data_request : Annotated[AppendComplexMarketDataRequest, Field(..., description="Request definition of the point to append.")], effective_at : Annotated[Optional[StrictStr], Field( description="The effective datetime at which to retrieve the complex market data. Defaults to the current LUSID system datetime if not specified. Must match the effectiveAt of the ComplexMarketDataId given in the request body.")] = None, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the complex market data. Defaults to return the latest version if not specified.")] = None, async_req: Optional[bool]=True, **kwargs) -> UpsertSingleStructuredDataResponse: # noqa: E501
586
+ ...
587
+
588
+ @validate_arguments
589
+ def upsert_append_complex_market_data(self, scope : Annotated[StrictStr, Field(..., description="The scope of the complex market data to append.")], append_complex_market_data_request : Annotated[AppendComplexMarketDataRequest, Field(..., description="Request definition of the point to append.")], effective_at : Annotated[Optional[StrictStr], Field( description="The effective datetime at which to retrieve the complex market data. Defaults to the current LUSID system datetime if not specified. Must match the effectiveAt of the ComplexMarketDataId given in the request body.")] = None, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the complex market data. Defaults to return the latest version if not specified.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[UpsertSingleStructuredDataResponse, Awaitable[UpsertSingleStructuredDataResponse]]: # noqa: E501
590
+ """[EARLY ACCESS] UpsertAppendComplexMarketData: Appends a new point to the end of a ComplexMarketData definition. # noqa: E501
591
+
592
+ Update a complex market data item in a single scope by appending a new point onto the end. NOTE: This operation is only supported for FX curves with one of the following data types: FxForwardCurveByQuoteReference, FxForwardCurveData, FxForwardPipsCurveData, FxForwardTenorCurveData, FxForwardTenorPipsCurveData # noqa: E501
593
+ This method makes a synchronous HTTP request by default. To make an
594
+ asynchronous HTTP request, please pass async_req=True
595
+
596
+ >>> thread = api.upsert_append_complex_market_data(scope, append_complex_market_data_request, effective_at, as_at, async_req=True)
597
+ >>> result = thread.get()
598
+
599
+ :param scope: The scope of the complex market data to append. (required)
600
+ :type scope: str
601
+ :param append_complex_market_data_request: Request definition of the point to append. (required)
602
+ :type append_complex_market_data_request: AppendComplexMarketDataRequest
603
+ :param effective_at: The effective datetime at which to retrieve the complex market data. Defaults to the current LUSID system datetime if not specified. Must match the effectiveAt of the ComplexMarketDataId given in the request body.
604
+ :type effective_at: str
605
+ :param as_at: The asAt datetime at which to retrieve the complex market data. Defaults to return the latest version if not specified.
606
+ :type as_at: datetime
607
+ :param async_req: Whether to execute the request asynchronously.
608
+ :type async_req: bool, optional
609
+ :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
610
+ :param opts: Configuration options for this request
611
+ :type opts: ConfigurationOptions, optional
612
+ :return: Returns the result object.
613
+ If the method is called asynchronously,
614
+ returns the request thread.
615
+ :rtype: UpsertSingleStructuredDataResponse
616
+ """
617
+ kwargs['_return_http_data_only'] = True
618
+ if '_preload_content' in kwargs:
619
+ message = "Error! Please call the upsert_append_complex_market_data_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
620
+ raise ValueError(message)
621
+ if async_req is not None:
622
+ kwargs['async_req'] = async_req
623
+ return self.upsert_append_complex_market_data_with_http_info(scope, append_complex_market_data_request, effective_at, as_at, **kwargs) # noqa: E501
624
+
625
+ @validate_arguments
626
+ def upsert_append_complex_market_data_with_http_info(self, scope : Annotated[StrictStr, Field(..., description="The scope of the complex market data to append.")], append_complex_market_data_request : Annotated[AppendComplexMarketDataRequest, Field(..., description="Request definition of the point to append.")], effective_at : Annotated[Optional[StrictStr], Field( description="The effective datetime at which to retrieve the complex market data. Defaults to the current LUSID system datetime if not specified. Must match the effectiveAt of the ComplexMarketDataId given in the request body.")] = None, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the complex market data. Defaults to return the latest version if not specified.")] = None, **kwargs) -> ApiResponse: # noqa: E501
627
+ """[EARLY ACCESS] UpsertAppendComplexMarketData: Appends a new point to the end of a ComplexMarketData definition. # noqa: E501
628
+
629
+ Update a complex market data item in a single scope by appending a new point onto the end. NOTE: This operation is only supported for FX curves with one of the following data types: FxForwardCurveByQuoteReference, FxForwardCurveData, FxForwardPipsCurveData, FxForwardTenorCurveData, FxForwardTenorPipsCurveData # noqa: E501
630
+ This method makes a synchronous HTTP request by default. To make an
631
+ asynchronous HTTP request, please pass async_req=True
632
+
633
+ >>> thread = api.upsert_append_complex_market_data_with_http_info(scope, append_complex_market_data_request, effective_at, as_at, async_req=True)
634
+ >>> result = thread.get()
635
+
636
+ :param scope: The scope of the complex market data to append. (required)
637
+ :type scope: str
638
+ :param append_complex_market_data_request: Request definition of the point to append. (required)
639
+ :type append_complex_market_data_request: AppendComplexMarketDataRequest
640
+ :param effective_at: The effective datetime at which to retrieve the complex market data. Defaults to the current LUSID system datetime if not specified. Must match the effectiveAt of the ComplexMarketDataId given in the request body.
641
+ :type effective_at: str
642
+ :param as_at: The asAt datetime at which to retrieve the complex market data. Defaults to return the latest version if not specified.
643
+ :type as_at: datetime
644
+ :param async_req: Whether to execute the request asynchronously.
645
+ :type async_req: bool, optional
646
+ :param _preload_content: if False, the ApiResponse.data will
647
+ be set to none and raw_data will store the
648
+ HTTP response body without reading/decoding.
649
+ Default is True.
650
+ :type _preload_content: bool, optional
651
+ :param _return_http_data_only: response data instead of ApiResponse
652
+ object with status code, headers, etc
653
+ :type _return_http_data_only: bool, optional
654
+ :param _request_timeout: Timeout setting. Do not use - use the opts parameter instead
655
+ :param opts: Configuration options for this request
656
+ :type opts: ConfigurationOptions, optional
657
+ :param _request_auth: set to override the auth_settings for an a single
658
+ request; this effectively ignores the authentication
659
+ in the spec for a single request.
660
+ :type _request_auth: dict, optional
661
+ :type _content_type: string, optional: force content-type for the request
662
+ :return: Returns the result object.
663
+ If the method is called asynchronously,
664
+ returns the request thread.
665
+ :rtype: tuple(UpsertSingleStructuredDataResponse, status_code(int), headers(HTTPHeaderDict))
666
+ """
667
+
668
+ _params = locals()
669
+
670
+ _all_params = [
671
+ 'scope',
672
+ 'append_complex_market_data_request',
673
+ 'effective_at',
674
+ 'as_at'
675
+ ]
676
+ _all_params.extend(
677
+ [
678
+ 'async_req',
679
+ '_return_http_data_only',
680
+ '_preload_content',
681
+ '_request_timeout',
682
+ '_request_auth',
683
+ '_content_type',
684
+ '_headers',
685
+ 'opts'
686
+ ]
687
+ )
688
+
689
+ # validate the arguments
690
+ for _key, _val in _params['kwargs'].items():
691
+ if _key not in _all_params:
692
+ raise ApiTypeError(
693
+ "Got an unexpected keyword argument '%s'"
694
+ " to method upsert_append_complex_market_data" % _key
695
+ )
696
+ _params[_key] = _val
697
+ del _params['kwargs']
698
+
699
+ _collection_formats = {}
700
+
701
+ # process the path parameters
702
+ _path_params = {}
703
+ if _params['scope']:
704
+ _path_params['scope'] = _params['scope']
705
+
706
+
707
+ # process the query parameters
708
+ _query_params = []
709
+ if _params.get('effective_at') is not None: # noqa: E501
710
+ _query_params.append(('effectiveAt', _params['effective_at']))
711
+
712
+ if _params.get('as_at') is not None: # noqa: E501
713
+ if isinstance(_params['as_at'], datetime):
714
+ _query_params.append(('asAt', _params['as_at'].strftime(self.api_client.configuration.datetime_format)))
715
+ else:
716
+ _query_params.append(('asAt', _params['as_at']))
717
+
718
+ # process the header parameters
719
+ _header_params = dict(_params.get('_headers', {}))
720
+ # process the form parameters
721
+ _form_params = []
722
+ _files = {}
723
+ # process the body parameter
724
+ _body_params = None
725
+ if _params['append_complex_market_data_request'] is not None:
726
+ _body_params = _params['append_complex_market_data_request']
727
+
728
+ # set the HTTP header `Accept`
729
+ _header_params['Accept'] = self.api_client.select_header_accept(
730
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
731
+
732
+ # set the HTTP header `Content-Type`
733
+ _content_types_list = _params.get('_content_type',
734
+ self.api_client.select_header_content_type(
735
+ ['application/json-patch+json', 'application/json', 'text/json', 'application/*+json']))
736
+ if _content_types_list:
737
+ _header_params['Content-Type'] = _content_types_list
738
+
739
+ # authentication setting
740
+ _auth_settings = ['oauth2'] # noqa: E501
741
+
742
+ _response_types_map = {
743
+ '200': "UpsertSingleStructuredDataResponse",
744
+ '400': "LusidValidationProblemDetails",
745
+ }
746
+
747
+ return self.api_client.call_api(
748
+ '/api/complexmarketdata/{scope}/$append', 'POST',
749
+ _path_params,
750
+ _query_params,
751
+ _header_params,
752
+ body=_body_params,
753
+ post_params=_form_params,
754
+ files=_files,
755
+ response_types_map=_response_types_map,
756
+ auth_settings=_auth_settings,
757
+ async_req=_params.get('async_req'),
758
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
759
+ _preload_content=_params.get('_preload_content', True),
760
+ _request_timeout=_params.get('_request_timeout'),
761
+ opts=_params.get('opts'),
762
+ collection_formats=_collection_formats,
763
+ _request_auth=_params.get('_request_auth'))
764
+
765
+
578
766
  @overload
579
767
  async def upsert_complex_market_data(self, scope : Annotated[StrictStr, Field(..., description="The scope to use when updating or inserting the complex market data.")], request_body : Annotated[Dict[str, UpsertComplexMarketDataRequest], Field(..., description="The set of complex market data items to update or insert keyed by a unique correlation id.")], **kwargs) -> UpsertStructuredDataResponse: # noqa: E501
580
768
  ...
@@ -231,7 +231,7 @@ class ConfigurationRecipeApi:
231
231
 
232
232
  @validate_arguments
233
233
  def delete_recipe_composer(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Recipe Composer to delete.")], code : Annotated[StrictStr, Field(..., description="The Recipe Composer to delete.")], async_req: Optional[bool]=None, **kwargs) -> Union[AnnulSingleStructuredDataResponse, Awaitable[AnnulSingleStructuredDataResponse]]: # noqa: E501
234
- """[EXPERIMENTAL] DeleteRecipeComposer: Delete a Recipe Composer, assuming that it is present. # noqa: E501
234
+ """DeleteRecipeComposer: Delete a Recipe Composer, assuming that it is present. # noqa: E501
235
235
 
236
236
  Delete the specified Recipe Composer from a single scope. The response will return either detail of the deleted item, or an explanation (failure) as to why this did not succeed. It is important to always check for any unsuccessful response. # noqa: E501
237
237
  This method makes a synchronous HTTP request by default. To make an
@@ -264,7 +264,7 @@ class ConfigurationRecipeApi:
264
264
 
265
265
  @validate_arguments
266
266
  def delete_recipe_composer_with_http_info(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Recipe Composer to delete.")], code : Annotated[StrictStr, Field(..., description="The Recipe Composer to delete.")], **kwargs) -> ApiResponse: # noqa: E501
267
- """[EXPERIMENTAL] DeleteRecipeComposer: Delete a Recipe Composer, assuming that it is present. # noqa: E501
267
+ """DeleteRecipeComposer: Delete a Recipe Composer, assuming that it is present. # noqa: E501
268
268
 
269
269
  Delete the specified Recipe Composer from a single scope. The response will return either detail of the deleted item, or an explanation (failure) as to why this did not succeed. It is important to always check for any unsuccessful response. # noqa: E501
270
270
  This method makes a synchronous HTTP request by default. To make an
@@ -562,7 +562,7 @@ class ConfigurationRecipeApi:
562
562
 
563
563
  @validate_arguments
564
564
  def get_derived_recipe(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Configuration Recipe or Recipe Composer to return.")], code : Annotated[StrictStr, Field(..., description="The code of the Configuration Recipe or Recipe Composer to return.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the Configuration Recipe. Defaults to return the latest version if not specified.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[GetRecipeResponse, Awaitable[GetRecipeResponse]]: # noqa: E501
565
- """[EXPERIMENTAL] GetDerivedRecipe: Get Configuration Recipe either from the store or expanded from a Recipe Composer. # noqa: E501
565
+ """GetDerivedRecipe: Get Configuration Recipe either from the store or expanded from a Recipe Composer. # noqa: E501
566
566
 
567
567
  If scope-code is referring to a Configuration Recipe it is returned, if it refers to Recipe Composer, it is expanded into a Configuration Recipe and returned. # noqa: E501
568
568
  This method makes a synchronous HTTP request by default. To make an
@@ -597,7 +597,7 @@ class ConfigurationRecipeApi:
597
597
 
598
598
  @validate_arguments
599
599
  def get_derived_recipe_with_http_info(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Configuration Recipe or Recipe Composer to return.")], code : Annotated[StrictStr, Field(..., description="The code of the Configuration Recipe or Recipe Composer to return.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the Configuration Recipe. Defaults to return the latest version if not specified.")] = None, **kwargs) -> ApiResponse: # noqa: E501
600
- """[EXPERIMENTAL] GetDerivedRecipe: Get Configuration Recipe either from the store or expanded from a Recipe Composer. # noqa: E501
600
+ """GetDerivedRecipe: Get Configuration Recipe either from the store or expanded from a Recipe Composer. # noqa: E501
601
601
 
602
602
  If scope-code is referring to a Configuration Recipe it is returned, if it refers to Recipe Composer, it is expanded into a Configuration Recipe and returned. # noqa: E501
603
603
  This method makes a synchronous HTTP request by default. To make an
@@ -733,7 +733,7 @@ class ConfigurationRecipeApi:
733
733
 
734
734
  @validate_arguments
735
735
  def get_recipe_composer(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Recipe Composer to retrieve.")], code : Annotated[StrictStr, Field(..., description="The name of the Recipe Composer to retrieve the data for.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the Recipe Composer. Defaults to return the latest version if not specified.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[GetRecipeComposerResponse, Awaitable[GetRecipeComposerResponse]]: # noqa: E501
736
- """[EXPERIMENTAL] GetRecipeComposer: Get Recipe Composer # noqa: E501
736
+ """GetRecipeComposer: Get Recipe Composer # noqa: E501
737
737
 
738
738
  Get a Recipe Composer from a single scope. The response will return either the recipe composer that has been stored, or a failure explaining why the request was unsuccessful. It is important to always check for any unsuccessful requests (failures). # noqa: E501
739
739
  This method makes a synchronous HTTP request by default. To make an
@@ -768,7 +768,7 @@ class ConfigurationRecipeApi:
768
768
 
769
769
  @validate_arguments
770
770
  def get_recipe_composer_with_http_info(self, scope : Annotated[StrictStr, Field(..., description="The scope of the Recipe Composer to retrieve.")], code : Annotated[StrictStr, Field(..., description="The name of the Recipe Composer to retrieve the data for.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the Recipe Composer. Defaults to return the latest version if not specified.")] = None, **kwargs) -> ApiResponse: # noqa: E501
771
- """[EXPERIMENTAL] GetRecipeComposer: Get Recipe Composer # noqa: E501
771
+ """GetRecipeComposer: Get Recipe Composer # noqa: E501
772
772
 
773
773
  Get a Recipe Composer from a single scope. The response will return either the recipe composer that has been stored, or a failure explaining why the request was unsuccessful. It is important to always check for any unsuccessful requests (failures). # noqa: E501
774
774
  This method makes a synchronous HTTP request by default. To make an
@@ -904,7 +904,7 @@ class ConfigurationRecipeApi:
904
904
 
905
905
  @validate_arguments
906
906
  def get_recipe_composer_resolved_inline(self, upsert_recipe_composer_request : Annotated[UpsertRecipeComposerRequest, Field(..., description="Recipe composer used to expand into the Configuration Recipe.")], async_req: Optional[bool]=None, **kwargs) -> Union[GetRecipeResponse, Awaitable[GetRecipeResponse]]: # noqa: E501
907
- """[EXPERIMENTAL] GetRecipeComposerResolvedInline: Given a Recipe Composer, this endpoint expands into a Configuration Recipe without persistence. Primarily used for testing purposes. # noqa: E501
907
+ """GetRecipeComposerResolvedInline: Given a Recipe Composer, this endpoint expands into a Configuration Recipe without persistence. Primarily used for testing purposes. # noqa: E501
908
908
 
909
909
  Resolves an inline recipe composer into a ConfigurationRecipe. # noqa: E501
910
910
  This method makes a synchronous HTTP request by default. To make an
@@ -935,7 +935,7 @@ class ConfigurationRecipeApi:
935
935
 
936
936
  @validate_arguments
937
937
  def get_recipe_composer_resolved_inline_with_http_info(self, upsert_recipe_composer_request : Annotated[UpsertRecipeComposerRequest, Field(..., description="Recipe composer used to expand into the Configuration Recipe.")], **kwargs) -> ApiResponse: # noqa: E501
938
- """[EXPERIMENTAL] GetRecipeComposerResolvedInline: Given a Recipe Composer, this endpoint expands into a Configuration Recipe without persistence. Primarily used for testing purposes. # noqa: E501
938
+ """GetRecipeComposerResolvedInline: Given a Recipe Composer, this endpoint expands into a Configuration Recipe without persistence. Primarily used for testing purposes. # noqa: E501
939
939
 
940
940
  Resolves an inline recipe composer into a ConfigurationRecipe. # noqa: E501
941
941
  This method makes a synchronous HTTP request by default. To make an
@@ -1226,7 +1226,7 @@ class ConfigurationRecipeApi:
1226
1226
 
1227
1227
  @validate_arguments
1228
1228
  def list_derived_recipes(self, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list the Configuration Recipes. Defaults to latest if not specified.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set, note this functionality is not yet enabled for this endpoint.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[ResourceListOfGetRecipeResponse, Awaitable[ResourceListOfGetRecipeResponse]]: # noqa: E501
1229
- """[EXPERIMENTAL] ListDerivedRecipes: List the complete set of all Configuration Recipes, both from the configuration recipe store and also from expanded recipe composers. # noqa: E501
1229
+ """ListDerivedRecipes: List the complete set of all Configuration Recipes, both from the configuration recipe store and also from expanded recipe composers. # noqa: E501
1230
1230
 
1231
1231
  This endpoints returns a union of the output of ListConfigurationRecipes and the resolved Recipe Composers from the ListRecipeComposers endpoints. # noqa: E501
1232
1232
  This method makes a synchronous HTTP request by default. To make an
@@ -1259,7 +1259,7 @@ class ConfigurationRecipeApi:
1259
1259
 
1260
1260
  @validate_arguments
1261
1261
  def list_derived_recipes_with_http_info(self, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list the Configuration Recipes. Defaults to latest if not specified.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set, note this functionality is not yet enabled for this endpoint.")] = None, **kwargs) -> ApiResponse: # noqa: E501
1262
- """[EXPERIMENTAL] ListDerivedRecipes: List the complete set of all Configuration Recipes, both from the configuration recipe store and also from expanded recipe composers. # noqa: E501
1262
+ """ListDerivedRecipes: List the complete set of all Configuration Recipes, both from the configuration recipe store and also from expanded recipe composers. # noqa: E501
1263
1263
 
1264
1264
  This endpoints returns a union of the output of ListConfigurationRecipes and the resolved Recipe Composers from the ListRecipeComposers endpoints. # noqa: E501
1265
1265
  This method makes a synchronous HTTP request by default. To make an
@@ -1389,7 +1389,7 @@ class ConfigurationRecipeApi:
1389
1389
 
1390
1390
  @validate_arguments
1391
1391
  def list_recipe_composers(self, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list the Recipes Composers. Defaults to latest if not specified.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set, note this functionality is not yet enabled for this endpoint.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[ResourceListOfGetRecipeComposerResponse, Awaitable[ResourceListOfGetRecipeComposerResponse]]: # noqa: E501
1392
- """[EXPERIMENTAL] ListRecipeComposers: List the set of Recipe Composers # noqa: E501
1392
+ """ListRecipeComposers: List the set of Recipe Composers # noqa: E501
1393
1393
 
1394
1394
  List the set of Recipe Composers at the specified date/time and scope # noqa: E501
1395
1395
  This method makes a synchronous HTTP request by default. To make an
@@ -1422,7 +1422,7 @@ class ConfigurationRecipeApi:
1422
1422
 
1423
1423
  @validate_arguments
1424
1424
  def list_recipe_composers_with_http_info(self, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to list the Recipes Composers. Defaults to latest if not specified.")] = None, filter : Annotated[Optional[StrictStr], Field( description="Expression to filter the result set, note this functionality is not yet enabled for this endpoint.")] = None, **kwargs) -> ApiResponse: # noqa: E501
1425
- """[EXPERIMENTAL] ListRecipeComposers: List the set of Recipe Composers # noqa: E501
1425
+ """ListRecipeComposers: List the set of Recipe Composers # noqa: E501
1426
1426
 
1427
1427
  List the set of Recipe Composers at the specified date/time and scope # noqa: E501
1428
1428
  This method makes a synchronous HTTP request by default. To make an
@@ -1711,7 +1711,7 @@ class ConfigurationRecipeApi:
1711
1711
 
1712
1712
  @validate_arguments
1713
1713
  def upsert_recipe_composer(self, upsert_recipe_composer_request : Annotated[UpsertRecipeComposerRequest, Field(..., description="The Recipe Composer to update or insert")], async_req: Optional[bool]=None, **kwargs) -> Union[UpsertSingleStructuredDataResponse, Awaitable[UpsertSingleStructuredDataResponse]]: # noqa: E501
1714
- """[EXPERIMENTAL] UpsertRecipeComposer: Upsert a Recipe Composer. This creates or updates the data in Lusid. # noqa: E501
1714
+ """UpsertRecipeComposer: Upsert a Recipe Composer. This creates or updates the data in Lusid. # noqa: E501
1715
1715
 
1716
1716
  Update or insert one Recipe Composer in a single scope. An item will be updated if it already exists and inserted if it does not. The response will return the successfully updated or inserted Recipe Composer or failure message if unsuccessful It is important to always check to verify success (or failure). # noqa: E501
1717
1717
  This method makes a synchronous HTTP request by default. To make an
@@ -1742,7 +1742,7 @@ class ConfigurationRecipeApi:
1742
1742
 
1743
1743
  @validate_arguments
1744
1744
  def upsert_recipe_composer_with_http_info(self, upsert_recipe_composer_request : Annotated[UpsertRecipeComposerRequest, Field(..., description="The Recipe Composer to update or insert")], **kwargs) -> ApiResponse: # noqa: E501
1745
- """[EXPERIMENTAL] UpsertRecipeComposer: Upsert a Recipe Composer. This creates or updates the data in Lusid. # noqa: E501
1745
+ """UpsertRecipeComposer: Upsert a Recipe Composer. This creates or updates the data in Lusid. # noqa: E501
1746
1746
 
1747
1747
  Update or insert one Recipe Composer in a single scope. An item will be updated if it already exists and inserted if it does not. The response will return the successfully updated or inserted Recipe Composer or failure message if unsuccessful It is important to always check to verify success (or failure). # noqa: E501
1748
1748
  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.7546\n"\
448
+ "Version of the API: 0.11.7557\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
@@ -74,6 +74,14 @@ from lusid.models.amount import Amount
74
74
  from lusid.models.annul_quotes_response import AnnulQuotesResponse
75
75
  from lusid.models.annul_single_structured_data_response import AnnulSingleStructuredDataResponse
76
76
  from lusid.models.annul_structured_data_response import AnnulStructuredDataResponse
77
+ from lusid.models.append_complex_market_data_request import AppendComplexMarketDataRequest
78
+ from lusid.models.append_fx_forward_curve_by_quote_reference import AppendFxForwardCurveByQuoteReference
79
+ from lusid.models.append_fx_forward_curve_data import AppendFxForwardCurveData
80
+ from lusid.models.append_fx_forward_pips_curve_data import AppendFxForwardPipsCurveData
81
+ from lusid.models.append_fx_forward_tenor_curve_data import AppendFxForwardTenorCurveData
82
+ from lusid.models.append_fx_forward_tenor_pips_curve_data import AppendFxForwardTenorPipsCurveData
83
+ from lusid.models.append_market_data import AppendMarketData
84
+ from lusid.models.append_market_data_type import AppendMarketDataType
77
85
  from lusid.models.applicable_instrument_event import ApplicableInstrumentEvent
78
86
  from lusid.models.asset_class import AssetClass
79
87
  from lusid.models.asset_leg import AssetLeg
@@ -1270,6 +1278,14 @@ __all__ = [
1270
1278
  "AnnulQuotesResponse",
1271
1279
  "AnnulSingleStructuredDataResponse",
1272
1280
  "AnnulStructuredDataResponse",
1281
+ "AppendComplexMarketDataRequest",
1282
+ "AppendFxForwardCurveByQuoteReference",
1283
+ "AppendFxForwardCurveData",
1284
+ "AppendFxForwardPipsCurveData",
1285
+ "AppendFxForwardTenorCurveData",
1286
+ "AppendFxForwardTenorPipsCurveData",
1287
+ "AppendMarketData",
1288
+ "AppendMarketDataType",
1273
1289
  "ApplicableInstrumentEvent",
1274
1290
  "AssetClass",
1275
1291
  "AssetLeg",
@@ -0,0 +1,87 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict
22
+ from pydantic.v1 import StrictStr, Field, BaseModel, Field
23
+ from lusid.models.append_market_data import AppendMarketData
24
+ from lusid.models.complex_market_data_id import ComplexMarketDataId
25
+
26
+ class AppendComplexMarketDataRequest(BaseModel):
27
+ """
28
+ The details of the point to be appended to a complex market data item. # noqa: E501
29
+ """
30
+ market_data_id: ComplexMarketDataId = Field(..., alias="marketDataId")
31
+ append_market_data: AppendMarketData = Field(..., alias="appendMarketData")
32
+ __properties = ["marketDataId", "appendMarketData"]
33
+
34
+ class Config:
35
+ """Pydantic configuration"""
36
+ allow_population_by_field_name = True
37
+ validate_assignment = True
38
+
39
+ def __str__(self):
40
+ """For `print` and `pprint`"""
41
+ return pprint.pformat(self.dict(by_alias=False))
42
+
43
+ def __repr__(self):
44
+ """For `print` and `pprint`"""
45
+ return self.to_str()
46
+
47
+ def to_str(self) -> str:
48
+ """Returns the string representation of the model using alias"""
49
+ return pprint.pformat(self.dict(by_alias=True))
50
+
51
+ def to_json(self) -> str:
52
+ """Returns the JSON representation of the model using alias"""
53
+ return json.dumps(self.to_dict())
54
+
55
+ @classmethod
56
+ def from_json(cls, json_str: str) -> AppendComplexMarketDataRequest:
57
+ """Create an instance of AppendComplexMarketDataRequest from a JSON string"""
58
+ return cls.from_dict(json.loads(json_str))
59
+
60
+ def to_dict(self):
61
+ """Returns the dictionary representation of the model using alias"""
62
+ _dict = self.dict(by_alias=True,
63
+ exclude={
64
+ },
65
+ exclude_none=True)
66
+ # override the default output from pydantic by calling `to_dict()` of market_data_id
67
+ if self.market_data_id:
68
+ _dict['marketDataId'] = self.market_data_id.to_dict()
69
+ # override the default output from pydantic by calling `to_dict()` of append_market_data
70
+ if self.append_market_data:
71
+ _dict['appendMarketData'] = self.append_market_data.to_dict()
72
+ return _dict
73
+
74
+ @classmethod
75
+ def from_dict(cls, obj: dict) -> AppendComplexMarketDataRequest:
76
+ """Create an instance of AppendComplexMarketDataRequest from a dict"""
77
+ if obj is None:
78
+ return None
79
+
80
+ if not isinstance(obj, dict):
81
+ return AppendComplexMarketDataRequest.parse_obj(obj)
82
+
83
+ _obj = AppendComplexMarketDataRequest.parse_obj({
84
+ "market_data_id": ComplexMarketDataId.from_dict(obj.get("marketDataId")) if obj.get("marketDataId") is not None else None,
85
+ "append_market_data": AppendMarketData.from_dict(obj.get("appendMarketData")) if obj.get("appendMarketData") is not None else None
86
+ })
87
+ return _obj
@@ -0,0 +1,101 @@
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
22
+ from pydantic.v1 import StrictStr, Field, Field, StrictStr, constr, validator
23
+ from lusid.models.append_market_data import AppendMarketData
24
+
25
+ class AppendFxForwardCurveByQuoteReference(AppendMarketData):
26
+ """
27
+ Used to append a new point to an FX curve defined using `FxForwardCurveByQuoteReference`. # noqa: E501
28
+ """
29
+ tenor: StrictStr = Field(...,alias="tenor", description="Tenor for which the forward rate applies.")
30
+ quote_reference: Dict[str, StrictStr] = Field(..., alias="quoteReference", description="A collection of identifiers for the tenor, which will be used to query the LUSID Quote Store to resolve the actual rates. The keys must be chosen from the following enumeration: [LusidInstrumentId, Isin, Sedol, Cusip, ClientInternal, Figi, RIC, QuotePermId, REDCode, BBGId, ICECode]. For example: \"quoteReference\": {\"ClientInternal\": \"SomeIdentifierForTenor\"}")
31
+ market_data_type: StrictStr = Field(...,alias="marketDataType", description="The available values are: AppendFxForwardCurveByQuoteReference, AppendFxForwardCurveData, AppendFxForwardPipsCurveData, AppendFxForwardTenorCurveData, AppendFxForwardTenorPipsCurveData")
32
+ additional_properties: Dict[str, Any] = {}
33
+ __properties = ["marketDataType", "tenor", "quoteReference"]
34
+
35
+ @validator('market_data_type')
36
+ def market_data_type_validate_enum(cls, value):
37
+ """Validates the enum"""
38
+ if value not in ('AppendFxForwardCurveByQuoteReference', 'AppendFxForwardCurveData', 'AppendFxForwardPipsCurveData', 'AppendFxForwardTenorCurveData', 'AppendFxForwardTenorPipsCurveData'):
39
+ raise ValueError("must be one of enum values ('AppendFxForwardCurveByQuoteReference', 'AppendFxForwardCurveData', 'AppendFxForwardPipsCurveData', 'AppendFxForwardTenorCurveData', 'AppendFxForwardTenorPipsCurveData')")
40
+ return value
41
+
42
+ class Config:
43
+ """Pydantic configuration"""
44
+ allow_population_by_field_name = True
45
+ validate_assignment = True
46
+
47
+ def __str__(self):
48
+ """For `print` and `pprint`"""
49
+ return pprint.pformat(self.dict(by_alias=False))
50
+
51
+ def __repr__(self):
52
+ """For `print` and `pprint`"""
53
+ return self.to_str()
54
+
55
+ def to_str(self) -> str:
56
+ """Returns the string representation of the model using alias"""
57
+ return pprint.pformat(self.dict(by_alias=True))
58
+
59
+ def to_json(self) -> str:
60
+ """Returns the JSON representation of the model using alias"""
61
+ return json.dumps(self.to_dict())
62
+
63
+ @classmethod
64
+ def from_json(cls, json_str: str) -> AppendFxForwardCurveByQuoteReference:
65
+ """Create an instance of AppendFxForwardCurveByQuoteReference from a JSON string"""
66
+ return cls.from_dict(json.loads(json_str))
67
+
68
+ def to_dict(self):
69
+ """Returns the dictionary representation of the model using alias"""
70
+ _dict = self.dict(by_alias=True,
71
+ exclude={
72
+ "additional_properties"
73
+ },
74
+ exclude_none=True)
75
+ # puts key-value pairs in additional_properties in the top level
76
+ if self.additional_properties is not None:
77
+ for _key, _value in self.additional_properties.items():
78
+ _dict[_key] = _value
79
+
80
+ return _dict
81
+
82
+ @classmethod
83
+ def from_dict(cls, obj: dict) -> AppendFxForwardCurveByQuoteReference:
84
+ """Create an instance of AppendFxForwardCurveByQuoteReference from a dict"""
85
+ if obj is None:
86
+ return None
87
+
88
+ if not isinstance(obj, dict):
89
+ return AppendFxForwardCurveByQuoteReference.parse_obj(obj)
90
+
91
+ _obj = AppendFxForwardCurveByQuoteReference.parse_obj({
92
+ "market_data_type": obj.get("marketDataType"),
93
+ "tenor": obj.get("tenor"),
94
+ "quote_reference": obj.get("quoteReference")
95
+ })
96
+ # store additional fields in additional_properties
97
+ for _key in obj.keys():
98
+ if _key not in cls.__properties:
99
+ _obj.additional_properties[_key] = obj.get(_key)
100
+
101
+ return _obj
@@ -0,0 +1,101 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from datetime import datetime
21
+ from typing import Any, Dict, Union
22
+ from pydantic.v1 import StrictStr, Field, Field, StrictFloat, StrictInt, StrictStr, validator
23
+ from lusid.models.append_market_data import AppendMarketData
24
+
25
+ class AppendFxForwardCurveData(AppendMarketData):
26
+ """
27
+ Used to append a new point to an FX curve defined using `FxForwardCurveData`. # noqa: E501
28
+ """
29
+ var_date: datetime = Field(..., alias="date", description="Date for which the forward rate applies.")
30
+ rate: Union[StrictFloat, StrictInt] = Field(..., description="Rate provided for the fx forward (price in FgnCcy per unit of DomCcy).")
31
+ market_data_type: StrictStr = Field(...,alias="marketDataType", description="The available values are: AppendFxForwardCurveByQuoteReference, AppendFxForwardCurveData, AppendFxForwardPipsCurveData, AppendFxForwardTenorCurveData, AppendFxForwardTenorPipsCurveData")
32
+ additional_properties: Dict[str, Any] = {}
33
+ __properties = ["marketDataType", "date", "rate"]
34
+
35
+ @validator('market_data_type')
36
+ def market_data_type_validate_enum(cls, value):
37
+ """Validates the enum"""
38
+ if value not in ('AppendFxForwardCurveByQuoteReference', 'AppendFxForwardCurveData', 'AppendFxForwardPipsCurveData', 'AppendFxForwardTenorCurveData', 'AppendFxForwardTenorPipsCurveData'):
39
+ raise ValueError("must be one of enum values ('AppendFxForwardCurveByQuoteReference', 'AppendFxForwardCurveData', 'AppendFxForwardPipsCurveData', 'AppendFxForwardTenorCurveData', 'AppendFxForwardTenorPipsCurveData')")
40
+ return value
41
+
42
+ class Config:
43
+ """Pydantic configuration"""
44
+ allow_population_by_field_name = True
45
+ validate_assignment = True
46
+
47
+ def __str__(self):
48
+ """For `print` and `pprint`"""
49
+ return pprint.pformat(self.dict(by_alias=False))
50
+
51
+ def __repr__(self):
52
+ """For `print` and `pprint`"""
53
+ return self.to_str()
54
+
55
+ def to_str(self) -> str:
56
+ """Returns the string representation of the model using alias"""
57
+ return pprint.pformat(self.dict(by_alias=True))
58
+
59
+ def to_json(self) -> str:
60
+ """Returns the JSON representation of the model using alias"""
61
+ return json.dumps(self.to_dict())
62
+
63
+ @classmethod
64
+ def from_json(cls, json_str: str) -> AppendFxForwardCurveData:
65
+ """Create an instance of AppendFxForwardCurveData from a JSON string"""
66
+ return cls.from_dict(json.loads(json_str))
67
+
68
+ def to_dict(self):
69
+ """Returns the dictionary representation of the model using alias"""
70
+ _dict = self.dict(by_alias=True,
71
+ exclude={
72
+ "additional_properties"
73
+ },
74
+ exclude_none=True)
75
+ # puts key-value pairs in additional_properties in the top level
76
+ if self.additional_properties is not None:
77
+ for _key, _value in self.additional_properties.items():
78
+ _dict[_key] = _value
79
+
80
+ return _dict
81
+
82
+ @classmethod
83
+ def from_dict(cls, obj: dict) -> AppendFxForwardCurveData:
84
+ """Create an instance of AppendFxForwardCurveData from a dict"""
85
+ if obj is None:
86
+ return None
87
+
88
+ if not isinstance(obj, dict):
89
+ return AppendFxForwardCurveData.parse_obj(obj)
90
+
91
+ _obj = AppendFxForwardCurveData.parse_obj({
92
+ "market_data_type": obj.get("marketDataType"),
93
+ "var_date": obj.get("date"),
94
+ "rate": obj.get("rate")
95
+ })
96
+ # store additional fields in additional_properties
97
+ for _key in obj.keys():
98
+ if _key not in cls.__properties:
99
+ _obj.additional_properties[_key] = obj.get(_key)
100
+
101
+ return _obj
@@ -0,0 +1,101 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from datetime import datetime
21
+ from typing import Any, Dict, Union
22
+ from pydantic.v1 import StrictStr, Field, Field, StrictFloat, StrictInt, StrictStr, validator
23
+ from lusid.models.append_market_data import AppendMarketData
24
+
25
+ class AppendFxForwardPipsCurveData(AppendMarketData):
26
+ """
27
+ Used to append a new point to an FX curve defined using `FxForwardPipsCurveData`. # noqa: E501
28
+ """
29
+ var_date: datetime = Field(..., alias="date", description="Date for which the forward rate applies.")
30
+ pip_rate: Union[StrictFloat, StrictInt] = Field(..., alias="pipRate", description="Rate provided for the fx forward (price in FgnCcy per unit of DomCcy), expressed in pips.")
31
+ market_data_type: StrictStr = Field(...,alias="marketDataType", description="The available values are: AppendFxForwardCurveByQuoteReference, AppendFxForwardCurveData, AppendFxForwardPipsCurveData, AppendFxForwardTenorCurveData, AppendFxForwardTenorPipsCurveData")
32
+ additional_properties: Dict[str, Any] = {}
33
+ __properties = ["marketDataType", "date", "pipRate"]
34
+
35
+ @validator('market_data_type')
36
+ def market_data_type_validate_enum(cls, value):
37
+ """Validates the enum"""
38
+ if value not in ('AppendFxForwardCurveByQuoteReference', 'AppendFxForwardCurveData', 'AppendFxForwardPipsCurveData', 'AppendFxForwardTenorCurveData', 'AppendFxForwardTenorPipsCurveData'):
39
+ raise ValueError("must be one of enum values ('AppendFxForwardCurveByQuoteReference', 'AppendFxForwardCurveData', 'AppendFxForwardPipsCurveData', 'AppendFxForwardTenorCurveData', 'AppendFxForwardTenorPipsCurveData')")
40
+ return value
41
+
42
+ class Config:
43
+ """Pydantic configuration"""
44
+ allow_population_by_field_name = True
45
+ validate_assignment = True
46
+
47
+ def __str__(self):
48
+ """For `print` and `pprint`"""
49
+ return pprint.pformat(self.dict(by_alias=False))
50
+
51
+ def __repr__(self):
52
+ """For `print` and `pprint`"""
53
+ return self.to_str()
54
+
55
+ def to_str(self) -> str:
56
+ """Returns the string representation of the model using alias"""
57
+ return pprint.pformat(self.dict(by_alias=True))
58
+
59
+ def to_json(self) -> str:
60
+ """Returns the JSON representation of the model using alias"""
61
+ return json.dumps(self.to_dict())
62
+
63
+ @classmethod
64
+ def from_json(cls, json_str: str) -> AppendFxForwardPipsCurveData:
65
+ """Create an instance of AppendFxForwardPipsCurveData from a JSON string"""
66
+ return cls.from_dict(json.loads(json_str))
67
+
68
+ def to_dict(self):
69
+ """Returns the dictionary representation of the model using alias"""
70
+ _dict = self.dict(by_alias=True,
71
+ exclude={
72
+ "additional_properties"
73
+ },
74
+ exclude_none=True)
75
+ # puts key-value pairs in additional_properties in the top level
76
+ if self.additional_properties is not None:
77
+ for _key, _value in self.additional_properties.items():
78
+ _dict[_key] = _value
79
+
80
+ return _dict
81
+
82
+ @classmethod
83
+ def from_dict(cls, obj: dict) -> AppendFxForwardPipsCurveData:
84
+ """Create an instance of AppendFxForwardPipsCurveData from a dict"""
85
+ if obj is None:
86
+ return None
87
+
88
+ if not isinstance(obj, dict):
89
+ return AppendFxForwardPipsCurveData.parse_obj(obj)
90
+
91
+ _obj = AppendFxForwardPipsCurveData.parse_obj({
92
+ "market_data_type": obj.get("marketDataType"),
93
+ "var_date": obj.get("date"),
94
+ "pip_rate": obj.get("pipRate")
95
+ })
96
+ # store additional fields in additional_properties
97
+ for _key in obj.keys():
98
+ if _key not in cls.__properties:
99
+ _obj.additional_properties[_key] = obj.get(_key)
100
+
101
+ return _obj
@@ -0,0 +1,101 @@
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, Union
22
+ from pydantic.v1 import StrictStr, Field, Field, StrictFloat, StrictInt, StrictStr, constr, validator
23
+ from lusid.models.append_market_data import AppendMarketData
24
+
25
+ class AppendFxForwardTenorCurveData(AppendMarketData):
26
+ """
27
+ Used to append a new point to an FX curve defined using `FxForwardTenorCurveData`. # noqa: E501
28
+ """
29
+ tenor: StrictStr = Field(...,alias="tenor", description="Tenor for which the forward rate applies.")
30
+ rate: Union[StrictFloat, StrictInt] = Field(..., description="Rate provided for the fx forward (price in FgnCcy per unit of DomCcy).")
31
+ market_data_type: StrictStr = Field(...,alias="marketDataType", description="The available values are: AppendFxForwardCurveByQuoteReference, AppendFxForwardCurveData, AppendFxForwardPipsCurveData, AppendFxForwardTenorCurveData, AppendFxForwardTenorPipsCurveData")
32
+ additional_properties: Dict[str, Any] = {}
33
+ __properties = ["marketDataType", "tenor", "rate"]
34
+
35
+ @validator('market_data_type')
36
+ def market_data_type_validate_enum(cls, value):
37
+ """Validates the enum"""
38
+ if value not in ('AppendFxForwardCurveByQuoteReference', 'AppendFxForwardCurveData', 'AppendFxForwardPipsCurveData', 'AppendFxForwardTenorCurveData', 'AppendFxForwardTenorPipsCurveData'):
39
+ raise ValueError("must be one of enum values ('AppendFxForwardCurveByQuoteReference', 'AppendFxForwardCurveData', 'AppendFxForwardPipsCurveData', 'AppendFxForwardTenorCurveData', 'AppendFxForwardTenorPipsCurveData')")
40
+ return value
41
+
42
+ class Config:
43
+ """Pydantic configuration"""
44
+ allow_population_by_field_name = True
45
+ validate_assignment = True
46
+
47
+ def __str__(self):
48
+ """For `print` and `pprint`"""
49
+ return pprint.pformat(self.dict(by_alias=False))
50
+
51
+ def __repr__(self):
52
+ """For `print` and `pprint`"""
53
+ return self.to_str()
54
+
55
+ def to_str(self) -> str:
56
+ """Returns the string representation of the model using alias"""
57
+ return pprint.pformat(self.dict(by_alias=True))
58
+
59
+ def to_json(self) -> str:
60
+ """Returns the JSON representation of the model using alias"""
61
+ return json.dumps(self.to_dict())
62
+
63
+ @classmethod
64
+ def from_json(cls, json_str: str) -> AppendFxForwardTenorCurveData:
65
+ """Create an instance of AppendFxForwardTenorCurveData from a JSON string"""
66
+ return cls.from_dict(json.loads(json_str))
67
+
68
+ def to_dict(self):
69
+ """Returns the dictionary representation of the model using alias"""
70
+ _dict = self.dict(by_alias=True,
71
+ exclude={
72
+ "additional_properties"
73
+ },
74
+ exclude_none=True)
75
+ # puts key-value pairs in additional_properties in the top level
76
+ if self.additional_properties is not None:
77
+ for _key, _value in self.additional_properties.items():
78
+ _dict[_key] = _value
79
+
80
+ return _dict
81
+
82
+ @classmethod
83
+ def from_dict(cls, obj: dict) -> AppendFxForwardTenorCurveData:
84
+ """Create an instance of AppendFxForwardTenorCurveData from a dict"""
85
+ if obj is None:
86
+ return None
87
+
88
+ if not isinstance(obj, dict):
89
+ return AppendFxForwardTenorCurveData.parse_obj(obj)
90
+
91
+ _obj = AppendFxForwardTenorCurveData.parse_obj({
92
+ "market_data_type": obj.get("marketDataType"),
93
+ "tenor": obj.get("tenor"),
94
+ "rate": obj.get("rate")
95
+ })
96
+ # store additional fields in additional_properties
97
+ for _key in obj.keys():
98
+ if _key not in cls.__properties:
99
+ _obj.additional_properties[_key] = obj.get(_key)
100
+
101
+ return _obj
@@ -0,0 +1,101 @@
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, Union
22
+ from pydantic.v1 import StrictStr, Field, Field, StrictFloat, StrictInt, StrictStr, constr, validator
23
+ from lusid.models.append_market_data import AppendMarketData
24
+
25
+ class AppendFxForwardTenorPipsCurveData(AppendMarketData):
26
+ """
27
+ Used to append a new point to an FX curve defined using `FxForwardTenorPipsCurveData`. # noqa: E501
28
+ """
29
+ tenor: StrictStr = Field(...,alias="tenor", description="Tenor for which the forward rate applies.")
30
+ pip_rate: Union[StrictFloat, StrictInt] = Field(..., alias="pipRate", description="Rate provided for the fx forward (price in FgnCcy per unit of DomCcy), expressed in pips.")
31
+ market_data_type: StrictStr = Field(...,alias="marketDataType", description="The available values are: AppendFxForwardCurveByQuoteReference, AppendFxForwardCurveData, AppendFxForwardPipsCurveData, AppendFxForwardTenorCurveData, AppendFxForwardTenorPipsCurveData")
32
+ additional_properties: Dict[str, Any] = {}
33
+ __properties = ["marketDataType", "tenor", "pipRate"]
34
+
35
+ @validator('market_data_type')
36
+ def market_data_type_validate_enum(cls, value):
37
+ """Validates the enum"""
38
+ if value not in ('AppendFxForwardCurveByQuoteReference', 'AppendFxForwardCurveData', 'AppendFxForwardPipsCurveData', 'AppendFxForwardTenorCurveData', 'AppendFxForwardTenorPipsCurveData'):
39
+ raise ValueError("must be one of enum values ('AppendFxForwardCurveByQuoteReference', 'AppendFxForwardCurveData', 'AppendFxForwardPipsCurveData', 'AppendFxForwardTenorCurveData', 'AppendFxForwardTenorPipsCurveData')")
40
+ return value
41
+
42
+ class Config:
43
+ """Pydantic configuration"""
44
+ allow_population_by_field_name = True
45
+ validate_assignment = True
46
+
47
+ def __str__(self):
48
+ """For `print` and `pprint`"""
49
+ return pprint.pformat(self.dict(by_alias=False))
50
+
51
+ def __repr__(self):
52
+ """For `print` and `pprint`"""
53
+ return self.to_str()
54
+
55
+ def to_str(self) -> str:
56
+ """Returns the string representation of the model using alias"""
57
+ return pprint.pformat(self.dict(by_alias=True))
58
+
59
+ def to_json(self) -> str:
60
+ """Returns the JSON representation of the model using alias"""
61
+ return json.dumps(self.to_dict())
62
+
63
+ @classmethod
64
+ def from_json(cls, json_str: str) -> AppendFxForwardTenorPipsCurveData:
65
+ """Create an instance of AppendFxForwardTenorPipsCurveData from a JSON string"""
66
+ return cls.from_dict(json.loads(json_str))
67
+
68
+ def to_dict(self):
69
+ """Returns the dictionary representation of the model using alias"""
70
+ _dict = self.dict(by_alias=True,
71
+ exclude={
72
+ "additional_properties"
73
+ },
74
+ exclude_none=True)
75
+ # puts key-value pairs in additional_properties in the top level
76
+ if self.additional_properties is not None:
77
+ for _key, _value in self.additional_properties.items():
78
+ _dict[_key] = _value
79
+
80
+ return _dict
81
+
82
+ @classmethod
83
+ def from_dict(cls, obj: dict) -> AppendFxForwardTenorPipsCurveData:
84
+ """Create an instance of AppendFxForwardTenorPipsCurveData from a dict"""
85
+ if obj is None:
86
+ return None
87
+
88
+ if not isinstance(obj, dict):
89
+ return AppendFxForwardTenorPipsCurveData.parse_obj(obj)
90
+
91
+ _obj = AppendFxForwardTenorPipsCurveData.parse_obj({
92
+ "market_data_type": obj.get("marketDataType"),
93
+ "tenor": obj.get("tenor"),
94
+ "pip_rate": obj.get("pipRate")
95
+ })
96
+ # store additional fields in additional_properties
97
+ for _key in obj.keys():
98
+ if _key not in cls.__properties:
99
+ _obj.additional_properties[_key] = obj.get(_key)
100
+
101
+ return _obj
@@ -0,0 +1,105 @@
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, Union
22
+ from pydantic.v1 import StrictStr, Field, BaseModel, Field, StrictStr, validator
23
+ import lusid.models
24
+
25
+ class AppendMarketData(BaseModel):
26
+ """
27
+ Base class for types containing required data to append to complex market data. # noqa: E501
28
+ """
29
+ market_data_type: StrictStr = Field(...,alias="marketDataType", description="The available values are: AppendFxForwardCurveByQuoteReference, AppendFxForwardCurveData, AppendFxForwardPipsCurveData, AppendFxForwardTenorCurveData, AppendFxForwardTenorPipsCurveData")
30
+ __properties = ["marketDataType"]
31
+
32
+ @validator('market_data_type')
33
+ def market_data_type_validate_enum(cls, value):
34
+ """Validates the enum"""
35
+ if value not in ('AppendFxForwardCurveByQuoteReference', 'AppendFxForwardCurveData', 'AppendFxForwardPipsCurveData', 'AppendFxForwardTenorCurveData', 'AppendFxForwardTenorPipsCurveData'):
36
+ raise ValueError("must be one of enum values ('AppendFxForwardCurveByQuoteReference', 'AppendFxForwardCurveData', 'AppendFxForwardPipsCurveData', 'AppendFxForwardTenorCurveData', 'AppendFxForwardTenorPipsCurveData')")
37
+ return value
38
+
39
+ class Config:
40
+ """Pydantic configuration"""
41
+ allow_population_by_field_name = True
42
+ validate_assignment = True
43
+
44
+ # JSON field name that stores the object type
45
+ __discriminator_property_name = 'marketDataType'
46
+
47
+ # discriminator mappings
48
+ __discriminator_value_class_map = {
49
+ 'AppendFxForwardCurveByQuoteReference': 'AppendFxForwardCurveByQuoteReference',
50
+ 'AppendFxForwardCurveData': 'AppendFxForwardCurveData',
51
+ 'AppendFxForwardPipsCurveData': 'AppendFxForwardPipsCurveData',
52
+ 'AppendFxForwardTenorCurveData': 'AppendFxForwardTenorCurveData',
53
+ 'AppendFxForwardTenorPipsCurveData': 'AppendFxForwardTenorPipsCurveData'
54
+ }
55
+
56
+ @classmethod
57
+ def get_discriminator_value(cls, obj: dict) -> str:
58
+ """Returns the discriminator value (object type) of the data"""
59
+ discriminator_value = obj[cls.__discriminator_property_name]
60
+ if discriminator_value:
61
+ return cls.__discriminator_value_class_map.get(discriminator_value)
62
+ else:
63
+ return None
64
+
65
+ def __str__(self):
66
+ """For `print` and `pprint`"""
67
+ return pprint.pformat(self.dict(by_alias=False))
68
+
69
+ def __repr__(self):
70
+ """For `print` and `pprint`"""
71
+ return self.to_str()
72
+
73
+ def to_str(self) -> str:
74
+ """Returns the string representation of the model using alias"""
75
+ return pprint.pformat(self.dict(by_alias=True))
76
+
77
+ def to_json(self) -> str:
78
+ """Returns the JSON representation of the model using alias"""
79
+ return json.dumps(self.to_dict())
80
+
81
+ @classmethod
82
+ def from_json(cls, json_str: str) -> Union(AppendFxForwardCurveByQuoteReference, AppendFxForwardCurveData, AppendFxForwardPipsCurveData, AppendFxForwardTenorCurveData, AppendFxForwardTenorPipsCurveData):
83
+ """Create an instance of AppendMarketData from a JSON string"""
84
+ return cls.from_dict(json.loads(json_str))
85
+
86
+ def to_dict(self):
87
+ """Returns the dictionary representation of the model using alias"""
88
+ _dict = self.dict(by_alias=True,
89
+ exclude={
90
+ },
91
+ exclude_none=True)
92
+ return _dict
93
+
94
+ @classmethod
95
+ def from_dict(cls, obj: dict) -> Union(AppendFxForwardCurveByQuoteReference, AppendFxForwardCurveData, AppendFxForwardPipsCurveData, AppendFxForwardTenorCurveData, AppendFxForwardTenorPipsCurveData):
96
+ """Create an instance of AppendMarketData from a dict"""
97
+ # look up the object type based on discriminator mapping
98
+ object_type = cls.get_discriminator_value(obj)
99
+ if object_type:
100
+ klass = getattr(lusid.models, object_type)
101
+ return klass.from_dict(obj)
102
+ else:
103
+ raise ValueError("AppendMarketData failed to lookup discriminator value from " +
104
+ json.dumps(obj) + ". Discriminator property name: " + cls.__discriminator_property_name +
105
+ ", mapping: " + json.dumps(cls.__discriminator_value_class_map))
@@ -0,0 +1,41 @@
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
+ import json
16
+ import pprint
17
+ import re # noqa: F401
18
+ from aenum import Enum, no_arg
19
+
20
+
21
+
22
+
23
+
24
+ class AppendMarketDataType(str, Enum):
25
+ """
26
+ The supported complex market data types which can be appended to.
27
+ """
28
+
29
+ """
30
+ allowed enum values
31
+ """
32
+ APPENDFXFORWARDCURVEBYQUOTEREFERENCE = 'AppendFxForwardCurveByQuoteReference'
33
+ APPENDFXFORWARDCURVEDATA = 'AppendFxForwardCurveData'
34
+ APPENDFXFORWARDPIPSCURVEDATA = 'AppendFxForwardPipsCurveData'
35
+ APPENDFXFORWARDTENORCURVEDATA = 'AppendFxForwardTenorCurveData'
36
+ APPENDFXFORWARDTENORPIPSCURVEDATA = 'AppendFxForwardTenorPipsCurveData'
37
+
38
+ @classmethod
39
+ def from_json(cls, json_str: str) -> AppendMarketDataType:
40
+ """Create an instance of AppendMarketDataType from a JSON string"""
41
+ return AppendMarketDataType(json.loads(json_str))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lusid-sdk
3
- Version: 2.1.744
3
+ Version: 2.1.746
4
4
  Summary: LUSID API
5
5
  Home-page: https://github.com/finbourne/lusid-sdk-python
6
6
  License: MIT
@@ -127,6 +127,7 @@ Class | Method | HTTP request | Description
127
127
  *ComplexMarketDataApi* | [**delete_complex_market_data**](docs/ComplexMarketDataApi.md#delete_complex_market_data) | **POST** /api/complexmarketdata/{scope}/$delete | DeleteComplexMarketData: Delete one or more items of complex market data, assuming they are present.
128
128
  *ComplexMarketDataApi* | [**get_complex_market_data**](docs/ComplexMarketDataApi.md#get_complex_market_data) | **POST** /api/complexmarketdata/{scope}/$get | GetComplexMarketData: Get complex market data
129
129
  *ComplexMarketDataApi* | [**list_complex_market_data**](docs/ComplexMarketDataApi.md#list_complex_market_data) | **GET** /api/complexmarketdata | ListComplexMarketData: List the set of ComplexMarketData
130
+ *ComplexMarketDataApi* | [**upsert_append_complex_market_data**](docs/ComplexMarketDataApi.md#upsert_append_complex_market_data) | **POST** /api/complexmarketdata/{scope}/$append | [EARLY ACCESS] UpsertAppendComplexMarketData: Appends a new point to the end of a ComplexMarketData definition.
130
131
  *ComplexMarketDataApi* | [**upsert_complex_market_data**](docs/ComplexMarketDataApi.md#upsert_complex_market_data) | **POST** /api/complexmarketdata/{scope} | UpsertComplexMarketData: Upsert a set of complex market data items. This creates or updates the data in Lusid.
131
132
  *ComplianceApi* | [**create_compliance_template**](docs/ComplianceApi.md#create_compliance_template) | **POST** /api/compliance/templates/{scope} | [EARLY ACCESS] CreateComplianceTemplate: Create a Compliance Rule Template
132
133
  *ComplianceApi* | [**delete_compliance_rule**](docs/ComplianceApi.md#delete_compliance_rule) | **DELETE** /api/compliance/rules/{scope}/{code} | [EARLY ACCESS] DeleteComplianceRule: Delete compliance rule.
@@ -144,16 +145,16 @@ Class | Method | HTTP request | Description
144
145
  *ComplianceApi* | [**upsert_compliance_rule**](docs/ComplianceApi.md#upsert_compliance_rule) | **POST** /api/compliance/rules | [EARLY ACCESS] UpsertComplianceRule: Upsert a compliance rule.
145
146
  *ComplianceApi* | [**upsert_compliance_run_summary**](docs/ComplianceApi.md#upsert_compliance_run_summary) | **POST** /api/compliance/runs/summary | [EARLY ACCESS] UpsertComplianceRunSummary: Upsert a compliance run summary.
146
147
  *ConfigurationRecipeApi* | [**delete_configuration_recipe**](docs/ConfigurationRecipeApi.md#delete_configuration_recipe) | **DELETE** /api/recipes/{scope}/{code} | DeleteConfigurationRecipe: Delete a Configuration Recipe, assuming that it is present.
147
- *ConfigurationRecipeApi* | [**delete_recipe_composer**](docs/ConfigurationRecipeApi.md#delete_recipe_composer) | **DELETE** /api/recipes/composer/{scope}/{code} | [EXPERIMENTAL] DeleteRecipeComposer: Delete a Recipe Composer, assuming that it is present.
148
+ *ConfigurationRecipeApi* | [**delete_recipe_composer**](docs/ConfigurationRecipeApi.md#delete_recipe_composer) | **DELETE** /api/recipes/composer/{scope}/{code} | DeleteRecipeComposer: Delete a Recipe Composer, assuming that it is present.
148
149
  *ConfigurationRecipeApi* | [**get_configuration_recipe**](docs/ConfigurationRecipeApi.md#get_configuration_recipe) | **GET** /api/recipes/{scope}/{code} | GetConfigurationRecipe: Get Configuration Recipe
149
- *ConfigurationRecipeApi* | [**get_derived_recipe**](docs/ConfigurationRecipeApi.md#get_derived_recipe) | **GET** /api/recipes/derived/{scope}/{code} | [EXPERIMENTAL] GetDerivedRecipe: Get Configuration Recipe either from the store or expanded from a Recipe Composer.
150
- *ConfigurationRecipeApi* | [**get_recipe_composer**](docs/ConfigurationRecipeApi.md#get_recipe_composer) | **GET** /api/recipes/composer/{scope}/{code} | [EXPERIMENTAL] GetRecipeComposer: Get Recipe Composer
151
- *ConfigurationRecipeApi* | [**get_recipe_composer_resolved_inline**](docs/ConfigurationRecipeApi.md#get_recipe_composer_resolved_inline) | **POST** /api/recipes/composer/resolvedinline$ | [EXPERIMENTAL] GetRecipeComposerResolvedInline: Given a Recipe Composer, this endpoint expands into a Configuration Recipe without persistence. Primarily used for testing purposes.
150
+ *ConfigurationRecipeApi* | [**get_derived_recipe**](docs/ConfigurationRecipeApi.md#get_derived_recipe) | **GET** /api/recipes/derived/{scope}/{code} | GetDerivedRecipe: Get Configuration Recipe either from the store or expanded from a Recipe Composer.
151
+ *ConfigurationRecipeApi* | [**get_recipe_composer**](docs/ConfigurationRecipeApi.md#get_recipe_composer) | **GET** /api/recipes/composer/{scope}/{code} | GetRecipeComposer: Get Recipe Composer
152
+ *ConfigurationRecipeApi* | [**get_recipe_composer_resolved_inline**](docs/ConfigurationRecipeApi.md#get_recipe_composer_resolved_inline) | **POST** /api/recipes/composer/resolvedinline$ | GetRecipeComposerResolvedInline: Given a Recipe Composer, this endpoint expands into a Configuration Recipe without persistence. Primarily used for testing purposes.
152
153
  *ConfigurationRecipeApi* | [**list_configuration_recipes**](docs/ConfigurationRecipeApi.md#list_configuration_recipes) | **GET** /api/recipes | ListConfigurationRecipes: List the set of Configuration Recipes
153
- *ConfigurationRecipeApi* | [**list_derived_recipes**](docs/ConfigurationRecipeApi.md#list_derived_recipes) | **GET** /api/recipes/derived | [EXPERIMENTAL] ListDerivedRecipes: List the complete set of all Configuration Recipes, both from the configuration recipe store and also from expanded recipe composers.
154
- *ConfigurationRecipeApi* | [**list_recipe_composers**](docs/ConfigurationRecipeApi.md#list_recipe_composers) | **GET** /api/recipes/composer | [EXPERIMENTAL] ListRecipeComposers: List the set of Recipe Composers
154
+ *ConfigurationRecipeApi* | [**list_derived_recipes**](docs/ConfigurationRecipeApi.md#list_derived_recipes) | **GET** /api/recipes/derived | ListDerivedRecipes: List the complete set of all Configuration Recipes, both from the configuration recipe store and also from expanded recipe composers.
155
+ *ConfigurationRecipeApi* | [**list_recipe_composers**](docs/ConfigurationRecipeApi.md#list_recipe_composers) | **GET** /api/recipes/composer | ListRecipeComposers: List the set of Recipe Composers
155
156
  *ConfigurationRecipeApi* | [**upsert_configuration_recipe**](docs/ConfigurationRecipeApi.md#upsert_configuration_recipe) | **POST** /api/recipes | UpsertConfigurationRecipe: Upsert a Configuration Recipe. This creates or updates the data in Lusid.
156
- *ConfigurationRecipeApi* | [**upsert_recipe_composer**](docs/ConfigurationRecipeApi.md#upsert_recipe_composer) | **POST** /api/recipes/composer | [EXPERIMENTAL] UpsertRecipeComposer: Upsert a Recipe Composer. This creates or updates the data in Lusid.
157
+ *ConfigurationRecipeApi* | [**upsert_recipe_composer**](docs/ConfigurationRecipeApi.md#upsert_recipe_composer) | **POST** /api/recipes/composer | UpsertRecipeComposer: Upsert a Recipe Composer. This creates or updates the data in Lusid.
157
158
  *ConventionsApi* | [**delete_cds_flow_conventions**](docs/ConventionsApi.md#delete_cds_flow_conventions) | **DELETE** /api/conventions/credit/conventions/{scope}/{code} | [BETA] DeleteCdsFlowConventions: Delete the CDS Flow Conventions of given scope and code, assuming that it is present.
158
159
  *ConventionsApi* | [**delete_flow_conventions**](docs/ConventionsApi.md#delete_flow_conventions) | **DELETE** /api/conventions/rates/flowconventions/{scope}/{code} | [BETA] DeleteFlowConventions: Delete the Flow Conventions of given scope and code, assuming that it is present.
159
160
  *ConventionsApi* | [**delete_index_convention**](docs/ConventionsApi.md#delete_index_convention) | **DELETE** /api/conventions/rates/indexconventions/{scope}/{code} | [BETA] DeleteIndexConvention: Delete the Index Convention of given scope and code, assuming that it is present.
@@ -720,6 +721,14 @@ Class | Method | HTTP request | Description
720
721
  - [AnnulQuotesResponse](docs/AnnulQuotesResponse.md)
721
722
  - [AnnulSingleStructuredDataResponse](docs/AnnulSingleStructuredDataResponse.md)
722
723
  - [AnnulStructuredDataResponse](docs/AnnulStructuredDataResponse.md)
724
+ - [AppendComplexMarketDataRequest](docs/AppendComplexMarketDataRequest.md)
725
+ - [AppendFxForwardCurveByQuoteReference](docs/AppendFxForwardCurveByQuoteReference.md)
726
+ - [AppendFxForwardCurveData](docs/AppendFxForwardCurveData.md)
727
+ - [AppendFxForwardPipsCurveData](docs/AppendFxForwardPipsCurveData.md)
728
+ - [AppendFxForwardTenorCurveData](docs/AppendFxForwardTenorCurveData.md)
729
+ - [AppendFxForwardTenorPipsCurveData](docs/AppendFxForwardTenorPipsCurveData.md)
730
+ - [AppendMarketData](docs/AppendMarketData.md)
731
+ - [AppendMarketDataType](docs/AppendMarketDataType.md)
723
732
  - [ApplicableInstrumentEvent](docs/ApplicableInstrumentEvent.md)
724
733
  - [AssetClass](docs/AssetClass.md)
725
734
  - [AssetLeg](docs/AssetLeg.md)
@@ -1,4 +1,4 @@
1
- lusid/__init__.py,sha256=kHlR516UijAajXglYteUjDH57twtZT_QorwujdyVxpQ,134967
1
+ lusid/__init__.py,sha256=jp_9cGtuxZulAsSAtG-x6aohwipaDMlNWZ4a5L7yrnU,135930
2
2
  lusid/api/__init__.py,sha256=b9BsX0qfl4jZSlEid6ihux1dyYgNwjtKQZk23veBuc0,6204
3
3
  lusid/api/abor_api.py,sha256=oAvtx9mQGWa5ZQRKjhzkJJH110GiIqiPIefIYNoiT14,166017
4
4
  lusid/api/abor_configuration_api.py,sha256=3Y3KwOOJqPsCsl7rfP-ScCYrKvVsQSP5adbsAsJ9G1s,74238
@@ -10,9 +10,9 @@ lusid/api/application_metadata_api.py,sha256=GdueWnWdBjIhbyb6gfBgLYqQ7_UerR0J68T
10
10
  lusid/api/blocks_api.py,sha256=WvkS7tK4jY1R_SWV8FqjCr5zpF9Gx1basp62FBdyH_E,43230
11
11
  lusid/api/calendars_api.py,sha256=Z1Zo2PDggpII8e6DyKlun1EZkCqU0I9MtqTsKfu5buI,141755
12
12
  lusid/api/chart_of_accounts_api.py,sha256=IjcmZkafnygX94B-Efv43JzCBPVkrambPnOvAbhmOzk,404308
13
- lusid/api/complex_market_data_api.py,sha256=zMbTs8l7LUVn7Zgv3nvf2C42D_b5WzQWvOXcWaW0l5Y,47893
13
+ lusid/api/complex_market_data_api.py,sha256=drK_yzRLmdbgXlbavPB3_ygdG8kIWCKvV65VbZ_e1rc,61051
14
14
  lusid/api/compliance_api.py,sha256=mbq3E4h6nMQp7mowJussYN2f92YDIsjwYQw7wiTjHG4,147595
15
- lusid/api/configuration_recipe_api.py,sha256=R29CEx8cl9v-byQyolSkBOnEG-0J_CT1ibkP1DhKkqQ,99391
15
+ lusid/api/configuration_recipe_api.py,sha256=UIiHuWdWVhe4tcHXYjQpAHqsOhEFYQIexIjDoA2Gii0,99181
16
16
  lusid/api/conventions_api.py,sha256=dsvB_lAcR5oVQLTqVJj9_zruF7Tyn8aGzD9EmEKvfWY,104288
17
17
  lusid/api/corporate_action_sources_api.py,sha256=7Js9dAFi_HOsYjZvYQew8SjK8x45x-Bi3VJxY-dhDKU,98350
18
18
  lusid/api/counterparties_api.py,sha256=dvRW05miC9_DBYAvJavmNucbNY4ZDwFjqLNXSoP-05A,71156
@@ -74,7 +74,7 @@ lusid/api/translation_api.py,sha256=xpRuTfwQvYBlWe6r_L2EI_uVpXqHFnEOim-i-kVQ85E,
74
74
  lusid/api/workspace_api.py,sha256=RplAKcky_SrK0V3nhh2K0UmWGeXggr6RQ4-g9Hqy7hw,190986
75
75
  lusid/api_client.py,sha256=ewMTmf9SRurY8pYnUx9jy24RdldPCOa4US38pnrVxjA,31140
76
76
  lusid/api_response.py,sha256=6-gnhty6lu8MMAERt3_kTVD7UxQgWFfcjgpcq6iN5IU,855
77
- lusid/configuration.py,sha256=IcEpmxB7MvA_ZKfXlrE01f5WQkWL6EBiT0Zkyqf2Lso,17972
77
+ lusid/configuration.py,sha256=cp4scTdQPIkVbVXx6nuVSYyipg8-hqVBioQCQ19RzzM,17972
78
78
  lusid/exceptions.py,sha256=HIQwgmQrszLlcVCLaqex8dO0laVuejUyOMz7U2ZWJ6s,5326
79
79
  lusid/extensions/__init__.py,sha256=dzDHEzpn-9smd2-_UMWQzeyX6Ha4jGf6fnqx7qxKxNI,630
80
80
  lusid/extensions/api_client.py,sha256=GzygWg_h603QK1QS2HvAijuE2R1TnvoF6-Yg0CeM3ug,30943
@@ -89,7 +89,7 @@ lusid/extensions/rest.py,sha256=dp-bD_LMR2zAL1tmC3-urhWKLomXx7r5iGN1VteMBVQ,1601
89
89
  lusid/extensions/retry.py,sha256=EhW9OKJmGHipxN3H7eROH5DiMlAnfBVl95NQrttcsdg,14834
90
90
  lusid/extensions/socket_keep_alive.py,sha256=NGlqsv-E25IjJOLGZhXZY6kUdx51nEF8qCQyVdzayRk,1653
91
91
  lusid/extensions/tcp_keep_alive_connector.py,sha256=zaGtUsygRsxB1_4B3x39K3ILwztdhMLDv5bFZV7zmGE,3877
92
- lusid/models/__init__.py,sha256=aG-JNcd-oxp5HteVVe_fyWBlDigBatl5QEZc-yj6oVc,127731
92
+ lusid/models/__init__.py,sha256=Bjyqlnv_H-ricS6MOSg6fkXAO3v9k-fgy8pFReAXP-4,128694
93
93
  lusid/models/a2_b_breakdown.py,sha256=-FXgILrvtZXQDmvS0ARaJVGBq5LJ4AH-o3HjujFVmS4,3198
94
94
  lusid/models/a2_b_category.py,sha256=WunXUgx-dCnApPeLC8Qo5tVCX8Ywxkehib1vmNqNgNs,2957
95
95
  lusid/models/a2_b_data_record.py,sha256=qANTmV1_HUEo4l72-F8qzZjlQxOe0Onc9WPz7h-WWuY,9993
@@ -150,6 +150,14 @@ lusid/models/amount.py,sha256=fDUp4Da2iLPrxVxKWWR-iAF4f4xGTyRAQC5qDSsLNEY,2025
150
150
  lusid/models/annul_quotes_response.py,sha256=Xc0G7wHGrzyB6NuvIK1CSp7MD0XUe79YzQyeo48Uh-g,4594
151
151
  lusid/models/annul_single_structured_data_response.py,sha256=xdtEUZbi2rklM1brkvv46ua-J6Vogq2QHzB_nfcSVLA,3575
152
152
  lusid/models/annul_structured_data_response.py,sha256=7n66EMbMj7wL_VwRRzvfm2nWi20-r5SvmRXlRSzVTkQ,4746
153
+ lusid/models/append_complex_market_data_request.py,sha256=XTZLEQ-jd9bkDBfpehlEPf2slwrfzIY6elA3XGHrflE,3128
154
+ lusid/models/append_fx_forward_curve_by_quote_reference.py,sha256=Z2ZjgUiMlIXCFgRG2zvUKWa2Z9c0UncqDkOzcGnJxo0,4424
155
+ lusid/models/append_fx_forward_curve_data.py,sha256=UGZ4FRoH9EqrZrSGjaKGnqoQdndATtN8QP8HlMgAjK0,4020
156
+ lusid/models/append_fx_forward_pips_curve_data.py,sha256=DSGqUVB78YaPEeJIwNMMCkSwVrfYvirsVj40FlIA5BQ,4102
157
+ lusid/models/append_fx_forward_tenor_curve_data.py,sha256=ZCvlDpj0TkHBdXd0eHvAqCmFN4qRN9Q5W7O3vbCALFQ,4039
158
+ lusid/models/append_fx_forward_tenor_pips_curve_data.py,sha256=CRrdXZ1iyNUu-I6PtNX9o0qRfCQBMFV8_9N0TuFz-rE,4121
159
+ lusid/models/append_market_data.py,sha256=f5z0KYKH-vXQWRnfuKAB0CAZDhpQRz0aGITjSVfgvrE,4515
160
+ lusid/models/append_market_data_type.py,sha256=GS-6IYAIcnqdk5HeDunGvz4a_OB71jR7Lmnv3FSlkAU,1036
153
161
  lusid/models/applicable_instrument_event.py,sha256=XT10BwbXdWKfQOZON1MLEouLyHyEKCNy2G1sDRDunwg,7064
154
162
  lusid/models/asset_class.py,sha256=yurc1IbYS3HCMRBncPFfIl8pBiYnt64MP4tiBYJ8usU,793
155
163
  lusid/models/asset_leg.py,sha256=zsJ_nkV4KuTtqNrBgb18Wf-g86Bgbr8NKKCcMyIWXuU,2834
@@ -1285,6 +1293,6 @@ lusid/models/workspace_update_request.py,sha256=ihKnBY685hfgs9uoyAXQNt1w7iOF-6Jc
1285
1293
  lusid/models/yield_curve_data.py,sha256=eDxj1qjChju3anFaQzywjFOuchX5i0pOTh5N-zcvJzg,6540
1286
1294
  lusid/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1287
1295
  lusid/rest.py,sha256=HQT__5LQEMu6_1sLKvYj-DI4FH1DJXBIPYfZCTTyrY4,13431
1288
- lusid_sdk-2.1.744.dist-info/METADATA,sha256=3EnA62bXj-Vqgq14Zgqpd8bMzdKx2Z0q4NVWToIT52M,219288
1289
- lusid_sdk-2.1.744.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
1290
- lusid_sdk-2.1.744.dist-info/RECORD,,
1296
+ lusid_sdk-2.1.746.dist-info/METADATA,sha256=GaGCzn7_UupH8cJFrYh8bv7miPW8fyAS6hp6pQHQFI4,220036
1297
+ lusid_sdk-2.1.746.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
1298
+ lusid_sdk-2.1.746.dist-info/RECORD,,